lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200619180348.hmjedqcp3uqlyj7i@earth.universe>
Date:   Fri, 19 Jun 2020 20:03:48 +0200
From:   Sebastian Reichel <sre@...nel.org>
To:     Jonathan Bakker <xc-racer2@...e.ca>
Cc:     linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] power: supply: max8998_charger: Correct ONLINE and add
 STATUS props

Hi,

On Sat, May 16, 2020 at 03:35:44PM -0700, Jonathan Bakker wrote:
> The ONLINE prop should be when the charger is present (ie able to
> charge), however, it was for when it was actually charging or not.
> Instead, add the STATUS prop to show whether charging is actually
> going on or not.
> 
> The magic numbers have been ported from a downstream kernel for the
> SGH-T959V.
> 
> Signed-off-by: Jonathan Bakker <xc-racer2@...e.ca>
> ---

Thanks, queued.

-- Sebastian

>  drivers/power/supply/max8998_charger.c | 25 ++++++++++++++++++++++---
>  1 file changed, 22 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/power/supply/max8998_charger.c b/drivers/power/supply/max8998_charger.c
> index 9a926c7c0f22..c26023b19f26 100644
> --- a/drivers/power/supply/max8998_charger.c
> +++ b/drivers/power/supply/max8998_charger.c
> @@ -23,6 +23,7 @@ struct max8998_battery_data {
>  static enum power_supply_property max8998_battery_props[] = {
>  	POWER_SUPPLY_PROP_PRESENT, /* the presence of battery */
>  	POWER_SUPPLY_PROP_ONLINE, /* charger is active or not */
> +	POWER_SUPPLY_PROP_STATUS, /* charger is charging/discharging/full */
>  };
>  
>  /* Note that the charger control is done by a current regulator "CHARGER" */
> @@ -49,10 +50,28 @@ static int max8998_battery_get_property(struct power_supply *psy,
>  		ret = max8998_read_reg(i2c, MAX8998_REG_STATUS2, &reg);
>  		if (ret)
>  			return ret;
> -		if (reg & (1 << 3))
> -			val->intval = 0;
> -		else
> +
> +		if (reg & (1 << 5))
>  			val->intval = 1;
> +		else
> +			val->intval = 0;
> +
> +		break;
> +	case POWER_SUPPLY_PROP_STATUS:
> +		ret = max8998_read_reg(i2c, MAX8998_REG_STATUS2, &reg);
> +		if (ret)
> +			return ret;
> +
> +		if (!(reg & (1 << 5))) {
> +			val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
> +		} else {
> +			if (reg & (1 << 6))
> +				val->intval = POWER_SUPPLY_STATUS_FULL;
> +			else if (reg & (1 << 3))
> +				val->intval = POWER_SUPPLY_STATUS_CHARGING;
> +			else
> +				val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
> +		}
>  		break;
>  	default:
>  		return -EINVAL;
> -- 
> 2.20.1
> 

Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ