diff mbox series

[v2] usb: typec: add missing uevent when partner support PD

Message ID 1656662934-10226-1-git-send-email-quic_linyyuan@quicinc.com (mailing list archive)
State Accepted
Commit 6fb9e1d94789e8ee5a258a23bc588693f743fd6c
Headers show
Series [v2] usb: typec: add missing uevent when partner support PD | expand

Commit Message

Linyu Yuan July 1, 2022, 8:08 a.m. UTC
System like Android allow user control power role from UI, it is possible
to implement application base on typec uevent to refresh UI, but found
there is chance that UI show different state from typec attribute file.

In typec_set_pwr_opmode(), when partner support PD, there is no uevent
send to user space which cause the problem.

Fix it by sending uevent notification when change power mode to PD.

Fixes: bdecb33af34f ("usb: typec: API for controlling USB Type-C Multiplexers")
Cc: stable@vger.kernel.org
Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
---
v2: (v1 https://lore.kernel.org/linux-usb/1656637315-31229-1-git-send-email-quic_linyyuan@quicinc.com/)
    fix review comment from Greg,
    add Fixes tag,
    improve commit description.

 drivers/usb/typec/class.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Heikki Krogerus July 12, 2022, 8:19 a.m. UTC | #1
Fri, Jul 01, 2022 at 04:08:54PM +0800, Linyu Yuan kirjoitti:
> System like Android allow user control power role from UI, it is possible
> to implement application base on typec uevent to refresh UI, but found
> there is chance that UI show different state from typec attribute file.
> 
> In typec_set_pwr_opmode(), when partner support PD, there is no uevent
> send to user space which cause the problem.
> 
> Fix it by sending uevent notification when change power mode to PD.
> 
> Fixes: bdecb33af34f ("usb: typec: API for controlling USB Type-C Multiplexers")
> Cc: stable@vger.kernel.org
> Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>

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

> ---
> v2: (v1 https://lore.kernel.org/linux-usb/1656637315-31229-1-git-send-email-quic_linyyuan@quicinc.com/)
>     fix review comment from Greg,
>     add Fixes tag,
>     improve commit description.
> 
>  drivers/usb/typec/class.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
> index bbc46b1..3da94f712 100644
> --- a/drivers/usb/typec/class.c
> +++ b/drivers/usb/typec/class.c
> @@ -1851,6 +1851,7 @@ void typec_set_pwr_opmode(struct typec_port *port,
>  			partner->usb_pd = 1;
>  			sysfs_notify(&partner_dev->kobj, NULL,
>  				     "supports_usb_power_delivery");
> +			kobject_uevent(&partner_dev->kobj, KOBJ_CHANGE);
>  		}
>  		put_device(partner_dev);
>  	}
> -- 
> 2.7.4
diff mbox series

Patch

diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index bbc46b1..3da94f712 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -1851,6 +1851,7 @@  void typec_set_pwr_opmode(struct typec_port *port,
 			partner->usb_pd = 1;
 			sysfs_notify(&partner_dev->kobj, NULL,
 				     "supports_usb_power_delivery");
+			kobject_uevent(&partner_dev->kobj, KOBJ_CHANGE);
 		}
 		put_device(partner_dev);
 	}