OSDN Git Service

usb: typec: Correct the bit values for the Thunderbolt rounded/non-rounded cable...
authorUtkarsh Patel <utkarsh.h.patel@intel.com>
Fri, 13 Nov 2020 20:24:56 +0000 (12:24 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Nov 2020 11:53:45 +0000 (12:53 +0100)
Rounded and non-rounded Thunderbolt cables are represented by two bits as
per USB Type-C Connector specification v2.0 section F.2.6.
Corrected that in the Thunderbolt 3 cable discover mode VDO.

Signed-off-by: Utkarsh Patel <utkarsh.h.patel@intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
--
Changes in v2:
- Removed the fixes tag as there is no functional implication.
--
Link: https://lore.kernel.org/r/20201113202503.6559-2-utkarsh.h.patel@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/usb/typec_tbt.h

index 47c2d50..aad648d 100644 (file)
@@ -40,11 +40,16 @@ struct typec_thunderbolt_data {
 #define   TBT_CABLE_USB3_PASSIVE       2
 #define   TBT_CABLE_10_AND_20GBPS      3
 #define TBT_CABLE_ROUNDED              BIT(19)
+#define TBT_CABLE_ROUNDED_SUPPORT(_vdo_) \
+                                       (((_vdo_) & GENMASK(20, 19)) >> 19)
+#define   TBT_GEN3_NON_ROUNDED                 0
+#define   TBT_GEN3_GEN4_ROUNDED_NON_ROUNDED    1
 #define TBT_CABLE_OPTICAL              BIT(21)
 #define TBT_CABLE_RETIMER              BIT(22)
 #define TBT_CABLE_LINK_TRAINING                BIT(23)
 
 #define TBT_SET_CABLE_SPEED(_s_)       (((_s_) & GENMASK(2, 0)) << 16)
+#define TBT_SET_CABLE_ROUNDED(_g_)     (((_g_) & GENMASK(1, 0)) << 19)
 
 /* TBT3 Device Enter Mode VDO bits */
 #define TBT_ENTER_MODE_CABLE_SPEED(s)  TBT_SET_CABLE_SPEED(s)