diff mbox series

[v4,08/12] power: supply: smb347-charger: Remove caching of charger state

Message ID 20210717121112.3248-9-digetx@gmail.com
State Superseded
Headers show
Series Add OTG mode support to Tegra USB PHY, SMB347 and Nexus 7 | expand

Commit Message

Dmitry Osipenko July 17, 2021, 12:11 p.m. UTC
Regmap already provides us with the caching, so remove caching of charger
state to make code cleaner.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/power/supply/smb347-charger.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

Comments

Sebastian Reichel July 17, 2021, 4:20 p.m. UTC | #1
Hi,

On Sat, Jul 17, 2021 at 03:11:08PM +0300, Dmitry Osipenko wrote:
> Regmap already provides us with the caching, so remove caching of charger
> state to make code cleaner.

cache_type is not initialized in smb347's regmap config and thus
set to 0 = REGCACHE_NONE:

static const struct regmap_config smb347_regmap = {
	.reg_bits	= 8,
	.val_bits	= 8,
	.max_register	= SMB347_MAX_REGISTER,
	.volatile_reg	= smb347_volatile_reg,
	.readable_reg	= smb347_readable_reg,
};

-- Sebastian


> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/power/supply/smb347-charger.c | 14 ++------------
>  1 file changed, 2 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/power/supply/smb347-charger.c b/drivers/power/supply/smb347-charger.c
> index db1378b41f80..f81c60c679a0 100644
> --- a/drivers/power/supply/smb347-charger.c
> +++ b/drivers/power/supply/smb347-charger.c
> @@ -135,7 +135,6 @@
>   * @id: SMB charger ID
>   * @mains_online: is AC/DC input connected
>   * @usb_online: is USB input connected
> - * @charging_enabled: is charging enabled
>   * @irq_unsupported: is interrupt unsupported by SMB hardware
>   * @max_charge_current: maximum current (in uA) the battery can be charged
>   * @max_charge_voltage: maximum voltage (in uV) the battery can be charged
> @@ -192,7 +191,6 @@ struct smb347_charger {
>  	unsigned int		id;
>  	bool			mains_online;
>  	bool			usb_online;
> -	bool			charging_enabled;
>  	bool			irq_unsupported;
>  
>  	unsigned int		max_charge_current;
> @@ -358,21 +356,13 @@ static int smb347_charging_status(struct smb347_charger *smb)
>  
>  static int smb347_charging_set(struct smb347_charger *smb, bool enable)
>  {
> -	int ret = 0;
> -
>  	if (smb->enable_control != SMB3XX_CHG_ENABLE_SW) {
>  		dev_dbg(smb->dev, "charging enable/disable in SW disabled\n");
>  		return 0;
>  	}
>  
> -	if (smb->charging_enabled != enable) {
> -		ret = regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED,
> -					 enable ? CMD_A_CHG_ENABLED : 0);
> -		if (!ret)
> -			smb->charging_enabled = enable;
> -	}
> -
> -	return ret;
> +	return regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED,
> +				  enable ? CMD_A_CHG_ENABLED : 0);
>  }
>  
>  static inline int smb347_charging_enable(struct smb347_charger *smb)
> -- 
> 2.32.0
>
Dmitry Osipenko July 17, 2021, 5:29 p.m. UTC | #2
17.07.2021 19:20, Sebastian Reichel пишет:
> Hi,
> 
> On Sat, Jul 17, 2021 at 03:11:08PM +0300, Dmitry Osipenko wrote:
>> Regmap already provides us with the caching, so remove caching of charger
>> state to make code cleaner.
> 
> cache_type is not initialized in smb347's regmap config and thus
> set to 0 = REGCACHE_NONE:
> 
> static const struct regmap_config smb347_regmap = {
> 	.reg_bits	= 8,
> 	.val_bits	= 8,
> 	.max_register	= SMB347_MAX_REGISTER,
> 	.volatile_reg	= smb347_volatile_reg,
> 	.readable_reg	= smb347_readable_reg,
> };

Good catch, thank you. I'll add patch to enable caching.
diff mbox series

Patch

diff --git a/drivers/power/supply/smb347-charger.c b/drivers/power/supply/smb347-charger.c
index db1378b41f80..f81c60c679a0 100644
--- a/drivers/power/supply/smb347-charger.c
+++ b/drivers/power/supply/smb347-charger.c
@@ -135,7 +135,6 @@ 
  * @id: SMB charger ID
  * @mains_online: is AC/DC input connected
  * @usb_online: is USB input connected
- * @charging_enabled: is charging enabled
  * @irq_unsupported: is interrupt unsupported by SMB hardware
  * @max_charge_current: maximum current (in uA) the battery can be charged
  * @max_charge_voltage: maximum voltage (in uV) the battery can be charged
@@ -192,7 +191,6 @@  struct smb347_charger {
 	unsigned int		id;
 	bool			mains_online;
 	bool			usb_online;
-	bool			charging_enabled;
 	bool			irq_unsupported;
 
 	unsigned int		max_charge_current;
@@ -358,21 +356,13 @@  static int smb347_charging_status(struct smb347_charger *smb)
 
 static int smb347_charging_set(struct smb347_charger *smb, bool enable)
 {
-	int ret = 0;
-
 	if (smb->enable_control != SMB3XX_CHG_ENABLE_SW) {
 		dev_dbg(smb->dev, "charging enable/disable in SW disabled\n");
 		return 0;
 	}
 
-	if (smb->charging_enabled != enable) {
-		ret = regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED,
-					 enable ? CMD_A_CHG_ENABLED : 0);
-		if (!ret)
-			smb->charging_enabled = enable;
-	}
-
-	return ret;
+	return regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED,
+				  enable ? CMD_A_CHG_ENABLED : 0);
 }
 
 static inline int smb347_charging_enable(struct smb347_charger *smb)