usb: typec: intel_pmc_mux: Configure Thunderbolt cable generation bits
authorUtkarsh Patel <utkarsh.h.patel@intel.com>
Fri, 13 Nov 2020 20:24:58 +0000 (12:24 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Nov 2020 11:53:45 +0000 (12:53 +0100)
Thunderbolt cable generation bits received as a part of Thunderbolt 3 cable
discover mode VDO needs to be configured for Thunderbolt rounded and
non-rounded cable support in the Thunderbolt alternate mode.

Signed-off-by: Utkarsh Patel <utkarsh.h.patel@intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
--
Changes in v2:
- No change.
--
Link: https://lore.kernel.org/r/20201113202503.6559-4-utkarsh.h.patel@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/mux/intel_pmc_mux.c

index d7f63b7..aa3211f 100644 (file)
@@ -256,6 +256,7 @@ static int
 pmc_usb_mux_tbt(struct pmc_usb_port *port, struct typec_mux_state *state)
 {
        struct typec_thunderbolt_data *data = state->data;
+       u8 cable_rounded = TBT_CABLE_ROUNDED_SUPPORT(data->cable_mode);
        u8 cable_speed = TBT_CABLE_SPEED(data->cable_mode);
        struct altmode_req req = { };
 
@@ -284,6 +285,8 @@ pmc_usb_mux_tbt(struct pmc_usb_port *port, struct typec_mux_state *state)
 
        req.mode_data |= PMC_USB_ALTMODE_CABLE_SPD(cable_speed);
 
+       req.mode_data |= PMC_USB_ALTMODE_TBT_GEN(cable_rounded);
+
        return pmc_usb_command(port, (void *)&req, sizeof(req));
 }