From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752956AbbBXJzD (ORCPT ); Tue, 24 Feb 2015 04:55:03 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:35166 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752516AbbBXJy7 (ORCPT ); Tue, 24 Feb 2015 04:54:59 -0500 X-AuditID: cbfec7f4-b7f126d000001e9a-d0-54ec49de0970 From: Krzysztof Kozlowski To: Sebastian Reichel , Dmitry Eremin-Solenikov , David Woodhouse , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski Subject: [PATCH 5/5] power_supply: max17042: Use regmap_update_bits instead read and write Date: Tue, 24 Feb 2015 10:54:47 +0100 Message-id: <1424771687-7976-5-git-send-email-k.kozlowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1424771687-7976-1-git-send-email-k.kozlowski@samsung.com> References: <1424771687-7976-1-git-send-email-k.kozlowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHJMWRmVeSWpSXmKPExsVy+t/xK7r3PN+EGJxtFreY9OQ9s8XElZOZ LV6/MLS4vGsOm8Xn3iOMFqd3lziweeycdZfdY/MKLY9NqzrZPPq2rGL0+LxJLoA1issmJTUn syy1SN8ugSvj2YQ1zAXfeStONG5mbmC8yN3FyMkhIWAisbftITOELSZx4d56ti5GLg4hgaWM Eq3PpzNDOH1MEnMmrgarYhMwlti8fAlYlYjAbkaJCVOXs4AkmAUMJX6++8MOYgsLxEhc3/Sd FcRmEVCVmHrqARuIzSvgJnHu+X02iHVyEiePTQaq4eDgFHCX+Da7CCQsBFRyo7+JeQIj7wJG hlWMoqmlyQXFSem5hnrFibnFpXnpesn5uZsYIWH0ZQfj4mNWhxgFOBiVeHgflL0KEWJNLCuu zD3EKMHBrCTCu8D2TYgQb0piZVVqUX58UWlOavEhRiYOTqkGxpZsK6+oC73HGNarrG046fO1 qaHJ8N4thdT2KKYDmWbJz9d7J73v+3uKzXqbt+dSqaZb0zjSZGc5vQjVjv3PPjP864VpJ2MU Hln4r3kg/W7d6jNRxu4MnGvfHPPbqXvh2zLf0Mc36qevvnl6q3ZOkmsex6uGEL0424uFO47f P3VXTrU4Rt7USomlOCPRUIu5qDgRABtyVogBAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Consolidate regmap_read() and regmap_write() into one regmap_update_bits() call. This is more readable and safer because regmap's mutex will prevent any concurrent access to modified registers (the concurrent access could happen through max17042_init_chip() in scheduled work). Signed-off-by: Krzysztof Kozlowski --- drivers/power/max17042_battery.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/power/max17042_battery.c b/drivers/power/max17042_battery.c index 1da6c5fbdff5..830435adfb64 100644 --- a/drivers/power/max17042_battery.c +++ b/drivers/power/max17042_battery.c @@ -529,7 +529,6 @@ static int max17042_init_chip(struct max17042_chip *chip) { struct regmap *map = chip->regmap; int ret; - int val; max17042_override_por_values(chip); /* After Power up, the MAX17042 requires 500mS in order @@ -572,8 +571,7 @@ static int max17042_init_chip(struct max17042_chip *chip) max17042_load_new_capacity_params(chip); /* Init complete, Clear the POR bit */ - regmap_read(map, MAX17042_STATUS, &val); - regmap_write(map, MAX17042_STATUS, val & (~STATUS_POR_BIT)); + regmap_update_bits(map, MAX17042_STATUS, STATUS_POR_BIT, 0x0); return 0; } @@ -745,9 +743,9 @@ static int max17042_probe(struct i2c_client *client, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, chip->battery.name, chip); if (!ret) { - regmap_read(chip->regmap, MAX17042_CONFIG, &val); - val |= CONFIG_ALRT_BIT_ENBL; - regmap_write(chip->regmap, MAX17042_CONFIG, val); + regmap_update_bits(chip->regmap, MAX17042_CONFIG, + CONFIG_ALRT_BIT_ENBL, + CONFIG_ALRT_BIT_ENBL); max17042_set_soc_threshold(chip, 1); } else { client->irq = 0; -- 1.9.1