On Tue, Oct 07, 2025 at 12:00:06AM +0000, Jameson Thies wrote:
> The ucsi_psy_get_current_max function defaults to 0.1A when it is not
> clear how much current the partner device can support. But this does
> not check the port is connected, and will report 0.1A max current when
> nothing is connected. Update ucsi_psy_get_current_max to report 0A when
> there is no connection.
>
> Signed-off-by: Jameson Thies <jthies@google.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> drivers/usb/typec/ucsi/psy.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/usb/typec/ucsi/psy.c b/drivers/usb/typec/ucsi/psy.c
> index 985a90d3f898..3a209de55c14 100644
> --- a/drivers/usb/typec/ucsi/psy.c
> +++ b/drivers/usb/typec/ucsi/psy.c
> @@ -169,6 +169,11 @@ static int ucsi_psy_get_current_max(struct ucsi_connector *con,
> {
> u32 pdo;
>
> + if (!UCSI_CONSTAT(con, CONNECTED)) {
> + val->intval = 0;
> + return 0;
> + }
> +
> switch (UCSI_CONSTAT(con, PWR_OPMODE)) {
> case UCSI_CONSTAT_PWR_OPMODE_PD:
> if (con->num_pdos > 0) {
> --
> 2.51.0.618.g983fd99d29-goog
--
heikki