RE: [PATCH 4.18 REGRESSION fix 1/2] typec: tcpm: Correctly report power_supply current and voltage for non pd supply

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01 July 2018 10:49, Hans de Goede wrote:

> Commit f2a8aa053c17 ("typec: tcpm: Represent source supply through
> power_supply") moved the code to register a power_supply representing
> the device supplying power to the type-C connector, from the fusb302
> code to the generic tcpm code so that we have a psy reporting the
> supply voltage and current for all tcpm devices.
> 
> This broke the reporting of current and voltage through the psy interface
> when supplied by a a non pd supply (5V, current as reported by
> get_current_limit). The cause of this breakage is port->supply_voltage
> and port->current_limit not being set in that case.
> 
> This commit fixes this by setting port->supply_voltage and
> port->current_limit from tcpm_set_current_limit().
> 
> This commit also removes setting supply_voltage and current_limit
> from tcpm_reset_port() as that calls tcpm_set_current_limit(0, 0)
> which now already sets these to 0.
> 
> Fixes: f2a8aa053c17 ("typec: tcpm: Represent source supply through...")
> Cc: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx>
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Apologies for this, and thanks for the fix.

Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx>

> ---
>  drivers/usb/typec/tcpm.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/typec/tcpm.c b/drivers/usb/typec/tcpm.c
> index 8a201dd53d36..316959c26db9 100644
> --- a/drivers/usb/typec/tcpm.c
> +++ b/drivers/usb/typec/tcpm.c
> @@ -724,6 +724,9 @@ static int tcpm_set_current_limit(struct tcpm_port *port,
> u32 max_ma, u32 mv)
> 
>  	tcpm_log(port, "Setting voltage/current limit %u mV %u mA", mv, max_ma);
> 
> +	port->supply_voltage = mv;
> +	port->current_limit = max_ma;
> +
>  	if (port->tcpc->set_current_limit)
>  		ret = port->tcpc->set_current_limit(port->tcpc, max_ma, mv);
> 
> @@ -2594,8 +2597,6 @@ static void tcpm_reset_port(struct tcpm_port *port)
>  	tcpm_set_attached_state(port, false);
>  	port->try_src_count = 0;
>  	port->try_snk_count = 0;
> -	port->supply_voltage = 0;
> -	port->current_limit = 0;
>  	port->usb_type = POWER_SUPPLY_USB_TYPE_C;
> 
>  	power_supply_changed(port->psy);
> --
> 2.17.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux