]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
usb: typec: mux: intel: Fix DP_HPD_LVL bit field
authorPrashant Malani <pmalani@chromium.org>
Mon, 11 May 2020 09:18:34 +0000 (02:18 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 May 2020 12:33:51 +0000 (14:33 +0200)
According to the PMC Type C Subsystem (TCSS) Mux programming guide rev
0.6, the PMC HPD request LVL bit field is bit 4.
Fix the definition here to match the programming guide.

Since this bit field is changing, explicitly define a field for the
HPD_HIGH mode data bit.

Signed-off-by: Prashant Malani <pmalani@chromium.org>
Fixes: 6701adfa9693 ("usb: typec: driver for Intel PMC mux control")
Reviewed-by: Benson Leung <bleung@chromium.org>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200511091837.102508-1-pmalani@chromium.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/mux/intel_pmc_mux.c

index 67c5139cfa0deeb6e4ad784ac0335b85d08e7c3f..c22e5c4bbf1a9e1bf25ed0fa310198b836b5b7c6 100644 (file)
@@ -63,6 +63,7 @@ enum {
 #define PMC_USB_ALTMODE_DP_MODE_SHIFT  8
 
 /* TBT specific Mode Data bits */
+#define PMC_USB_ALTMODE_HPD_HIGH       BIT(14)
 #define PMC_USB_ALTMODE_TBT_TYPE       BIT(17)
 #define PMC_USB_ALTMODE_CABLE_TYPE     BIT(18)
 #define PMC_USB_ALTMODE_ACTIVE_LINK    BIT(20)
@@ -74,8 +75,8 @@ enum {
 #define PMC_USB_ALTMODE_TBT_GEN(_g_)   (((_g_) & GENMASK(1, 0)) << 28)
 
 /* Display HPD Request bits */
+#define PMC_USB_DP_HPD_LVL             BIT(4)
 #define PMC_USB_DP_HPD_IRQ             BIT(5)
-#define PMC_USB_DP_HPD_LVL             BIT(6)
 
 struct pmc_usb;
 
@@ -158,8 +159,7 @@ pmc_usb_mux_dp(struct pmc_usb_port *port, struct typec_mux_state *state)
                         PMC_USB_ALTMODE_DP_MODE_SHIFT;
 
        if (data->status & DP_STATUS_HPD_STATE)
-               req.mode_data |= PMC_USB_DP_HPD_LVL <<
-                                PMC_USB_ALTMODE_DP_MODE_SHIFT;
+               req.mode_data |= PMC_USB_ALTMODE_HPD_HIGH;
 
        return pmc_usb_command(port, (void *)&req, sizeof(req));
 }