rt2x00 update: Apply correct endian annotation for structures that are DMA'ed to device.
Subsystems (3)
PATCH 5/6 rt2x00 update: Apply correct endian annotation for structures that are DMA'ed to device.
From: Ivo van Doorn <[email protected]>
Use __le32 annotations for all fields in the descriptor, since these should always be treated as little endian.
Signed-off-by Ivo van Doorn <[email protected]>
drivers/net/wireless/d80211/rt2x00/rt2400pci.h +16 -16
@@ -739,7 +739,7 @@* TX descriptor format for TX, PRIO, ATIM and Beacon Ring. */ struct txd { -u32 word0; +__le32 word0;#define TXD_W0_OWNER_NIC FIELD32(0x00000001)#define TXD_W0_VALID FIELD32(0x00000002)#define TXD_W0_RESULT FIELD32(0x0000001c)
@@ -753,32 +753,32 @@ struct txd{#define TXD_W0_AGC FIELD32(0x00ff0000)#define TXD_W0_R2 FIELD32(0xff000000) -u32 word1; +__le32 word1;#define TXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff) -u32 word2; +__le32 word2;#define TXD_W2_BUFFER_LENGTH FIELD32(0x0000ffff)#define TXD_W2_DATABYTE_COUNT FIELD32(0xffff0000) -u32 word3; +__le32 word3;#define TXD_W3_PLCP_SIGNAL FIELD32(0x0000ffff)#define TXD_W3_PLCP_SERVICE FIELD32(0xffff0000) -u32 word4; +__le32 word4;#define TXD_W4_PLCP_LENGTH_LOW FIELD32(0x0000ffff)#define TXD_W4_PLCP_LENGTH_HIGH FIELD32(0xffff0000) -u32 word5; +__le32 word5;#define TXD_W5_BBCR4 FIELD32(0x0000ffff)#define TXD_W5_AGC_REG FIELD32(0x007f0000)#define TXD_W5_AGC_REG_VALID FIELD32(0x00800000)#define TXD_W5_XXX_REG FIELD32(0x7f000000)#define TXD_W5_XXX_REG_VALID FIELD32(0x80000000) -u32 word6; +__le32 word6;#define TXD_W6_SK_BUFF FIELD32(0xffffffff) -u32 word7; +__le32 word7;#define TXD_W7_RESERVED FIELD32(0xffffffff) } __attribute__ ((packed));
@@ -786,7 +786,7 @@ struct txd{* RX descriptor format for RX Ring. */ struct rxd { -u32 word0; +__le32 word0;#define RXD_W0_OWNER_NIC FIELD32(0x00000001)#define RXD_W0_UNICAST_TO_ME FIELD32(0x00000002)#define RXD_W0_MULTICAST FIELD32(0x00000004)
@@ -796,30 +796,30 @@ struct rxd{#define RXD_W0_PHYSICAL_ERROR FIELD32(0x00000080)#define RXD_W0_DATABYTE_COUNT FIELD32(0xffff0000) -u32 word1; +__le32 word1;#define RXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff) -u32 word2; +__le32 word2;#define RXD_W2_BUFFER_LENGTH FIELD32(0x0000ffff)#define RXD_W2_BBR0 FIELD32(0x00ff0000)#define RXD_W2_RSSI FIELD32(0xff000000) -u32 word3; +__le32 word3;#define RXD_W3_BBR2 FIELD32(0x000000ff)#define RXD_W3_BBR3 FIELD32(0x0000ff00)#define RXD_W3_BBR4 FIELD32(0x00ff0000)#define RXD_W3_BBR5 FIELD32(0xff000000) -u32 word4; +__le32 word4;#define RXD_W4_RX_END_TIME FIELD32(0xffffffff) -u32 word5; +__le32 word5;#define RXD_W5_RESERVED FIELD32(0xffffffff) -u32 word6; +__le32 word6;#define RXD_W6_RESERVED FIELD32(0xffffffff) -u32 word7; +__le32 word7;#define RXD_W7_RESERVED FIELD32(0xffffffff) } __attribute__ ((packed));
drivers/net/wireless/d80211/rt2x00/rt2500pci.h +22 -22
112 lines not on this page · raw message
drivers/net/wireless/d80211/rt2x00/rt2500usb.h +9 -9
@@ -553,7 +553,7 @@* TX descriptor format for TX, PRIO, ATIM and Beacon Ring. */ struct txd { -u32 word0; +__le32 word0;#define TXD_W0_PACKET_ID FIELD32(0x0000000f)#define TXD_W0_RETRY_LIMIT FIELD32(0x000000f0)#define TXD_W0_MORE_FRAG FIELD32(0x00000100)
@@ -566,22 +566,22 @@ struct txd{#define TXD_W0_CIPHER FIELD32(0x20000000)#define TXD_W0_KEY_ID FIELD32(0xc0000000) -u32 word1; +__le32 word1;#define TXD_W1_IV_OFFSET FIELD32(0x0000003f)#define TXD_W1_AIFS FIELD32(0x000000c0)#define TXD_W1_CWMIN FIELD32(0x00000f00)#define TXD_W1_CWMAX FIELD32(0x0000f000) -u32 word2; +__le32 word2;#define TXD_W2_PLCP_SIGNAL FIELD32(0x000000ff)#define TXD_W2_PLCP_SERVICE FIELD32(0x0000ff00)#define TXD_W2_PLCP_LENGTH_LOW FIELD32(0x00ff0000)#define TXD_W2_PLCP_LENGTH_HIGH FIELD32(0xff000000) -u32 word3; +__le32 word3;#define TXD_W3_IV FIELD32(0xffffffff) -u32 word4; +__le32 word4;#define TXD_W4_EIV FIELD32(0xffffffff) } __attribute__ ((packed));
@@ -589,7 +589,7 @@ struct txd{* RX descriptor format for RX Ring. */ struct rxd { -u32 word0; +__le32 word0;#define RXD_W0_UNICAST_TO_ME FIELD32(0x00000002)#define RXD_W0_MULTICAST FIELD32(0x00000004)#define RXD_W0_BROADCAST FIELD32(0x00000008)
@@ -601,14 +601,14 @@ struct rxd{#define RXD_W0_CI_ERROR FIELD32(0x00000200)#define RXD_W0_DATABYTE_COUNT FIELD32(0x0fff0000) -u32 word1; +__le32 word1;#define RXD_W1_SIGNAL FIELD32(0x000000ff)#define RXD_W1_RSSI FIELD32(0x0000ff00) -u32 word2; +__le32 word2;#define RXD_W2_IV FIELD32(0xffffffff) -u32 word3; +__le32 word3;#define RXD_W3_EIV FIELD32(0xffffffff) } __attribute__ ((packed));