diff options
author | Heikki Krogerus <[email protected]> | 2024-08-16 16:58:56 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <[email protected]> | 2024-08-23 18:47:38 +0800 |
commit | 73910c511b1a665a993d66dceb0ffafbacd2ece6 (patch) | |
tree | a5c52f61eb9db9371d8d44a6d9b2a5e06dc841fe | |
parent | 1d05c382ddb4e43ce251a50f308df5e42a2f6088 (diff) |
usb: typec: ucsi: Only assign the identity structure if the PPM supports it
This will make sure that the identity sysfs attribute files
are kept hidden if the UCSI interface doesn't support
reading the USB Power Delivery messages.
Signed-off-by: Heikki Krogerus <[email protected]>
Reviewed-by: Abhishek Pandit-Subedi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
-rw-r--r-- | drivers/usb/typec/ucsi/ucsi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c index 250bd20f2cd9..4c128c2342f3 100644 --- a/drivers/usb/typec/ucsi/ucsi.c +++ b/drivers/usb/typec/ucsi/ucsi.c @@ -979,7 +979,8 @@ static int ucsi_register_cable(struct ucsi_connector *con) break; } - desc.identity = &con->cable_identity; + if (con->ucsi->cap.features & UCSI_CAP_GET_PD_MESSAGE) + desc.identity = &con->cable_identity; desc.active = !!(UCSI_CABLE_PROP_FLAG_ACTIVE_CABLE & con->cable_prop.flags); desc.pd_revision = UCSI_CABLE_PROP_FLAG_PD_MAJOR_REV_AS_BCD( @@ -1058,7 +1059,8 @@ static int ucsi_register_partner(struct ucsi_connector *con) if (pwr_opmode == UCSI_CONSTAT_PWR_OPMODE_PD) ucsi_register_device_pdos(con); - desc.identity = &con->partner_identity; + if (con->ucsi->cap.features & UCSI_CAP_GET_PD_MESSAGE) + desc.identity = &con->partner_identity; desc.usb_pd = pwr_opmode == UCSI_CONSTAT_PWR_OPMODE_PD; desc.pd_revision = UCSI_CONCAP_FLAG_PARTNER_PD_MAJOR_REV_AS_BCD(con->cap.flags); |