mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
UPSTREAM: usb: typec: tcpm: Return ENOTSUPP for power supply prop writes
When the port does not support USB PD, prevent transition to PD only states when power supply property is written. In this case, TCPM transitions to SNK_NEGOTIATE_CAPABILITIES which should not be the case given that the port is not pd_capable. [ 84.308251] state change SNK_READY -> SNK_NEGOTIATE_CAPABILITIES [rev3 NONE_AMS] [ 84.308335] Setting usb_comm capable false [ 84.323367] set_auto_vbus_discharge_threshold mode:3 pps_active:n vbus:5000 ret:0 [ 84.323376] state change SNK_NEGOTIATE_CAPABILITIES -> SNK_WAIT_CAPABILITIES [rev3 NONE_AMS] Bug: 254441685 Fixes:e9e6e164ed("usb: typec: tcpm: Support non-PD mode") Cc: stable@vger.kernel.org Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Link: https://lore.kernel.org/r/20220817215410.1807477-1-badhri@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commitf2d38edc5e) Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: If1c20f957e3644cf42e69bd1dad3be089d54f888
This commit is contained in:
committed by
Treehugger Robot
parent
bb44ca0133
commit
4bb9418c72
@@ -6406,6 +6406,13 @@ static int tcpm_psy_set_prop(struct power_supply *psy,
|
||||
struct tcpm_port *port = power_supply_get_drvdata(psy);
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* All the properties below are related to USB PD. The check needs to be
|
||||
* property specific when a non-pd related property is added.
|
||||
*/
|
||||
if (!port->pd_supported)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
switch (psp) {
|
||||
case POWER_SUPPLY_PROP_ONLINE:
|
||||
ret = tcpm_psy_set_online(port, val);
|
||||
|
||||
Reference in New Issue
Block a user