drivers/usb/typec/ucsi/psy.c | 5 +++++ 1 file changed, 5 insertions(+)
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.
v2 changes:
- added cc stable tag to commit message
Fixes: af833e7f7db3 ("usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default")
Cc: stable@vger.kernel.org
Signed-off-by: Jameson Thies <jthies@google.com>
Reviewed-by: Benson Leung <bleung@chromium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Tested-by: Kenneth R. Crudup <kenny@panix.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 62a9d68bb66d..8ae900c8c132 100644
--- a/drivers/usb/typec/ucsi/psy.c
+++ b/drivers/usb/typec/ucsi/psy.c
@@ -145,6 +145,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) {
base-commit: e40b984b6c4ce3f80814f39f86f87b2a48f2e662
--
2.51.0.858.gf9c4a03a3a-goog
Hi,
On Fri, Oct 17, 2025 at 10:30:53PM +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.
>
> v2 changes:
> - added cc stable tag to commit message
>
> Fixes: af833e7f7db3 ("usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default")
> Cc: stable@vger.kernel.org
> Signed-off-by: Jameson Thies <jthies@google.com>
> Reviewed-by: Benson Leung <bleung@chromium.org>
> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> Tested-by: Kenneth R. Crudup <kenny@panix.com>
> ---
With the changelog moved under ---:
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Greetings,
-- Sebastian
> 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 62a9d68bb66d..8ae900c8c132 100644
> --- a/drivers/usb/typec/ucsi/psy.c
> +++ b/drivers/usb/typec/ucsi/psy.c
> @@ -145,6 +145,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) {
>
> base-commit: e40b984b6c4ce3f80814f39f86f87b2a48f2e662
> --
> 2.51.0.858.gf9c4a03a3a-goog
>
>
On Fri, Oct 17, 2025 at 10:30:53PM +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. > > v2 changes: > - added cc stable tag to commit message Note, as per the documentation, this needs to go below the --- line. thanks, greg k-h
On Fri, Oct 17, 2025 at 10:30:53PM +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.
>
> v2 changes:
> - added cc stable tag to commit message
>
> Fixes: af833e7f7db3 ("usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default")
> Cc: stable@vger.kernel.org
> Signed-off-by: Jameson Thies <jthies@google.com>
> Reviewed-by: Benson Leung <bleung@chromium.org>
> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> Tested-by: Kenneth R. Crudup <kenny@panix.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 62a9d68bb66d..8ae900c8c132 100644
> --- a/drivers/usb/typec/ucsi/psy.c
> +++ b/drivers/usb/typec/ucsi/psy.c
> @@ -145,6 +145,11 @@ static int ucsi_psy_get_current_max(struct ucsi_connector *con,
> {
> u32 pdo;
>
> + if (!UCSI_CONSTAT(con, CONNECTED)) {
> + val->intval = 0;
> + return 0;
> + }
What prevents this from changing right after checking it?
thanks,
greg k-h
Sorry for the incorrect commit message formatting. I'll resolve this in a v3 update. > What prevents this from changing right after checking it? There is nothing that prevents the connection status from changing just after this is checked, but that is true of most of the values we are using to set power supply properties. If there is a connection change, ucsi_port_psy_changed() will be called from ucsi_handle_connector_change() in ucsi.c. This then calls power_supply_changed() which should signal to userspace or other drivers that this value needs to be reevaluated based on the updated connector status. -Jameson
© 2016 - 2026 Red Hat, Inc.