@@ -806,13 +806,19 @@ struct xhci_transfer_event {
806
806
__le32 flags ;
807
807
};
808
808
809
+ /* Transfer event flags bitfield, also for select command completion events */
810
+ #define TRB_TO_SLOT_ID (p ) (((p) >> 24) & 0xff)
811
+ #define SLOT_ID_FOR_TRB (p ) (((p) & 0xff) << 24)
812
+
813
+ #define TRB_TO_EP_ID (p ) (((p) >> 16) & 0x1f) /* Endpoint ID 1 - 31 */
814
+ #define EP_ID_FOR_TRB (p ) (((p) & 0x1f) << 16)
815
+
816
+ #define TRB_TO_EP_INDEX (p ) (TRB_TO_EP_ID(p) - 1) /* Endpoint index 0 - 30 */
817
+ #define EP_INDEX_FOR_TRB (p ) ((((p) + 1) & 0x1f) << 16)
818
+
809
819
/* Transfer event TRB length bit mask */
810
- /* bits 0:23 */
811
820
#define EVENT_TRB_LEN (p ) ((p) & 0xffffff)
812
821
813
- /** Transfer Event bit fields **/
814
- #define TRB_TO_EP_ID (p ) (((p) >> 16) & 0x1f)
815
-
816
822
/* Completion Code - only applicable for some types of TRBs */
817
823
#define COMP_CODE_MASK (0xff << 24)
818
824
#define GET_COMP_CODE (p ) (((p) & COMP_CODE_MASK) >> 24)
@@ -951,8 +957,6 @@ struct xhci_event_cmd {
951
957
__le32 flags ;
952
958
};
953
959
954
- /* flags bitmasks */
955
-
956
960
/* Address device - disable SetAddress */
957
961
#define TRB_BSR (1<<9)
958
962
@@ -988,13 +992,8 @@ enum xhci_setup_dev {
988
992
989
993
/* bits 16:23 are the virtual function ID */
990
994
/* bits 24:31 are the slot ID */
991
- #define TRB_TO_SLOT_ID (p ) (((p) & (0xff<<24)) >> 24)
992
- #define SLOT_ID_FOR_TRB (p ) (((p) & 0xff) << 24)
993
995
994
996
/* Stop Endpoint TRB - ep_index to endpoint ID for this TRB */
995
- #define TRB_TO_EP_INDEX (p ) ((((p) & (0x1f << 16)) >> 16) - 1)
996
- #define EP_ID_FOR_TRB (p ) ((((p) + 1) & 0x1f) << 16)
997
-
998
997
#define SUSPEND_PORT_FOR_TRB (p ) (((p) & 1) << 23)
999
998
#define TRB_TO_SUSPEND_PORT (p ) (((p) & (1 << 23)) >> 23)
1000
999
#define LAST_EP_INDEX 30
@@ -2025,8 +2024,7 @@ static inline const char *xhci_decode_trb(char *str, size_t size,
2025
2024
field1 , field0 ,
2026
2025
xhci_trb_comp_code_string (GET_COMP_CODE (field2 )),
2027
2026
EVENT_TRB_LEN (field2 ), TRB_TO_SLOT_ID (field3 ),
2028
- /* Macro decrements 1, maybe it shouldn't?!? */
2029
- TRB_TO_EP_INDEX (field3 ) + 1 ,
2027
+ TRB_TO_EP_ID (field3 ),
2030
2028
xhci_trb_type_string (type ),
2031
2029
field3 & EVENT_DATA ? 'E' : 'e' ,
2032
2030
field3 & TRB_CYCLE ? 'C' : 'c' );
@@ -2141,8 +2139,7 @@ static inline const char *xhci_decode_trb(char *str, size_t size,
2141
2139
xhci_trb_type_string (type ),
2142
2140
field1 , field0 ,
2143
2141
TRB_TO_SLOT_ID (field3 ),
2144
- /* Macro decrements 1, maybe it shouldn't?!? */
2145
- TRB_TO_EP_INDEX (field3 ) + 1 ,
2142
+ TRB_TO_EP_ID (field3 ),
2146
2143
field3 & TRB_TSP ? 'T' : 't' ,
2147
2144
field3 & TRB_CYCLE ? 'C' : 'c' );
2148
2145
break ;
@@ -2152,8 +2149,7 @@ static inline const char *xhci_decode_trb(char *str, size_t size,
2152
2149
xhci_trb_type_string (type ),
2153
2150
TRB_TO_SLOT_ID (field3 ),
2154
2151
TRB_TO_SUSPEND_PORT (field3 ),
2155
- /* Macro decrements 1, maybe it shouldn't?!? */
2156
- TRB_TO_EP_INDEX (field3 ) + 1 ,
2152
+ TRB_TO_EP_ID (field3 ),
2157
2153
field3 & TRB_CYCLE ? 'C' : 'c' );
2158
2154
break ;
2159
2155
case TRB_SET_DEQ :
@@ -2163,8 +2159,7 @@ static inline const char *xhci_decode_trb(char *str, size_t size,
2163
2159
field1 , field0 ,
2164
2160
TRB_TO_STREAM_ID (field2 ),
2165
2161
TRB_TO_SLOT_ID (field3 ),
2166
- /* Macro decrements 1, maybe it shouldn't?!? */
2167
- TRB_TO_EP_INDEX (field3 ) + 1 ,
2162
+ TRB_TO_EP_ID (field3 ),
2168
2163
field3 & TRB_CYCLE ? 'C' : 'c' );
2169
2164
break ;
2170
2165
case TRB_RESET_DEV :
0 commit comments