From: Cameron Nemo <cnemo@xxxxxxxxxxxx> A recent commit [1] introduced an unintended behavioral change by reordering certain function calls. The sysfs_notify call for pin_assignment should only be invoked when the dp_altmode_notify call returns 0, and in the dp->data.conf == 0 case. [1] https://lore.kernel.org/r/20210817215201.795062-8-hdegoede@xxxxxxxxxx Signed-off-by: Cameron Nemo <cnemo@xxxxxxxxxxxx> --- drivers/usb/typec/altmodes/displayport.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c index c1d8c23baa39..a15ae78066e3 100644 --- a/drivers/usb/typec/altmodes/displayport.c +++ b/drivers/usb/typec/altmodes/displayport.c @@ -154,10 +154,17 @@ static int dp_altmode_status_update(struct dp_altmode *dp) static int dp_altmode_configured(struct dp_altmode *dp) { + int ret; + sysfs_notify(&dp->alt->dev.kobj, "displayport", "configuration"); + + ret = dp_altmode_notify(dp); + if (ret || !dp->data.conf) + return ret; + sysfs_notify(&dp->alt->dev.kobj, "displayport", "pin_assignment"); - return dp_altmode_notify(dp); + return 0; } static int dp_altmode_configure_vdm(struct dp_altmode *dp, u32 conf) -- 2.33.0