]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
usb: typec: ucsi: Enable UCSI v2.0 notifications
authorDiogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Fri, 24 May 2024 10:58:21 +0000 (11:58 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jun 2024 13:45:16 +0000 (15:45 +0200)
UCSI version 2.0 and above define new PPM notifications. Update the
logic to determine which notifications to enable taking into account
these changes.

Signed-off-by: Diogo Ivo <diogo.ivo@tecnico.ulisboa.pt>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20240524105837.15342-3-diogo.ivo@tecnico.ulisboa.pt
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi.c

index 52a14bfe4107e5e0e30660340c6514ccf20c29d7..f2424a9a5dee4ea95ed6cccc455f88a78723e6f6 100644 (file)
@@ -1672,7 +1672,7 @@ out_unlock:
 
 static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
 {
-       u8 features = ucsi->cap.features;
+       u16 features = ucsi->cap.features;
        u64 ntfy = UCSI_ENABLE_NTFY_ALL;
 
        if (!(features & UCSI_CAP_ALT_MODE_DETAILS))
@@ -1688,6 +1688,23 @@ static u64 ucsi_get_supported_notifications(struct ucsi *ucsi)
        if (!(features & UCSI_CAP_PD_RESET))
                ntfy &= ~UCSI_ENABLE_NTFY_PD_RESET_COMPLETE;
 
+       if (ucsi->version <= UCSI_VERSION_1_2)
+               return ntfy;
+
+       ntfy |= UCSI_ENABLE_NTFY_SINK_PATH_STS_CHANGE;
+
+       if (features & UCSI_CAP_GET_ATTENTION_VDO)
+               ntfy |= UCSI_ENABLE_NTFY_ATTENTION;
+
+       if (features & UCSI_CAP_FW_UPDATE_REQUEST)
+               ntfy |= UCSI_ENABLE_NTFY_LPM_FW_UPDATE_REQ;
+
+       if (features & UCSI_CAP_SECURITY_REQUEST)
+               ntfy |= UCSI_ENABLE_NTFY_SECURITY_REQ_PARTNER;
+
+       if (features & UCSI_CAP_SET_RETIMER_MODE)
+               ntfy |= UCSI_ENABLE_NTFY_SET_RETIMER_MODE;
+
        return ntfy;
 }