All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Benson Leung <bleung@chromium.org>
Cc: sebastian.reichel@collabora.com, gregkh@linuxfoundation.org,
	jthies@google.com, bleung@google.com, linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] usb: typec: ucsi: psy: Fix ucsi_psy_get_current_now in non-PD cases
Date: Thu, 11 Dec 2025 15:54:03 +0200	[thread overview]
Message-ID: <aTrM-1HiOtnLtLyc@kuha> (raw)
In-Reply-To: <20251208174918.289394-2-bleung@chromium.org>

Mon, Dec 08, 2025 at 05:48:47PM +0000, Benson Leung kirjoitti:
> current_now would always return 0 in for non-PD power sources, and the
> negotiated current based on the Request RDO in PD mode.
> 
> For USB Type-C current or legacy Default USB cases current_now will present
> the max value of those modes, as that is the equivalent of the Request RDO
> in PD.
> 
> Also, current_now will now return 0 when the port is disconnected to match
> the same behavior of current_max.
> 
> Signed-off-by: Benson Leung <bleung@chromium.org>

Looks good to me. Shouldn't this be applied also to the stable trees?

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>

> ---
>  drivers/usb/typec/ucsi/psy.c | 24 +++++++++++++++++++++---
>  1 file changed, 21 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/typec/ucsi/psy.c b/drivers/usb/typec/ucsi/psy.c
> index 3abe9370ffaa..b828719e33df 100644
> --- a/drivers/usb/typec/ucsi/psy.c
> +++ b/drivers/usb/typec/ucsi/psy.c
> @@ -202,10 +202,28 @@ static int ucsi_psy_get_current_max(struct ucsi_connector *con,
>  static int ucsi_psy_get_current_now(struct ucsi_connector *con,
>  				    union power_supply_propval *val)
>  {
> -	if (UCSI_CONSTAT(con, PWR_OPMODE) == UCSI_CONSTAT_PWR_OPMODE_PD)
> -		val->intval = rdo_op_current(con->rdo) * 1000;
> -	else
> +	if (!UCSI_CONSTAT(con, CONNECTED)) {
>  		val->intval = 0;
> +		return 0;
> +	}
> +
> +	switch (UCSI_CONSTAT(con, PWR_OPMODE)) {
> +	case UCSI_CONSTAT_PWR_OPMODE_PD:
> +		val->intval = rdo_op_current(con->rdo) * 1000;
> +		break;
> +	case UCSI_CONSTAT_PWR_OPMODE_TYPEC1_5:
> +		val->intval = UCSI_TYPEC_1_5_CURRENT * 1000;
> +		break;
> +	case UCSI_CONSTAT_PWR_OPMODE_TYPEC3_0:
> +		val->intval = UCSI_TYPEC_3_0_CURRENT * 1000;
> +		break;
> +	case UCSI_CONSTAT_PWR_OPMODE_BC:
> +	case UCSI_CONSTAT_PWR_OPMODE_DEFAULT:
> +	/* UCSI can't tell b/w DCP/CDP or USB2/3x1/3x2 SDP chargers */
> +	default:
> +		val->intval = UCSI_TYPEC_DEFAULT_CURRENT * 1000;
> +		break;
> +	}
>  	return 0;
>  }
>  
> -- 
> 2.52.0.223.gf5cc29aaa4-goog

-- 
heikki

  reply	other threads:[~2025-12-11 13:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-08 17:48 [Dry run PATCH 0/2] usb: typec: ucsi: psy: Fix non-PD and advanced PD sources Benson Leung
2025-12-08 17:48 ` [PATCH 1/2] usb: typec: ucsi: psy: Fix ucsi_psy_get_current_now in non-PD cases Benson Leung
2025-12-11 13:54   ` Heikki Krogerus [this message]
2025-12-08 17:48 ` [PATCH 2/2] usb: typec: ucsi: psy: Fix voltage and current max for non-Fixed PDOs Benson Leung
2025-12-11 14:00   ` Heikki Krogerus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aTrM-1HiOtnLtLyc@kuha \
    --to=heikki.krogerus@linux.intel.com \
    --cc=bleung@chromium.org \
    --cc=bleung@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jthies@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=sebastian.reichel@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.