aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/tx.h
diff options
context:
space:
mode:
authorShahar Levi <shahar_levi@ti.com>2011-03-06 09:32:08 -0500
committerLuciano Coelho <coelho@ti.com>2011-04-19 09:19:47 -0400
commit48a61477bdc04896bd96d259388a0c42a7019943 (patch)
treed36c7638d2405a63db333713a5c7897d736011a5 /drivers/net/wireless/wl12xx/tx.h
parent5aa42346bba2e385674eb1dd4019dfce4c2ef771 (diff)
wl12xx: 1281/1283 support - Add acx commands
New acx command that sets: Rx fifo enable reduced bus transactions in RX path. Tx bus transactions padding to SDIO block size that improve preference in Tx and essential for working with SDIO HS (48Mhz). The max SDIO block size is 256 when working with Tx bus transactions padding to SDIO block. Add new ops to SDIO & SPI that handles the win size change in case of transactions padding (relevant only for SDIO). [Fix endianess issues; simplify sdio-specific block_size handling; minor changes in comments; use "aligned_len" in one calculation instead of "pad" to avoid confusion -- Luca] Signed-off-by: Shahar Levi <shahar_levi@ti.com> Reviewed-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/tx.h')
-rw-r--r--drivers/net/wireless/wl12xx/tx.h46
1 files changed, 37 insertions, 9 deletions
diff --git a/drivers/net/wireless/wl12xx/tx.h b/drivers/net/wireless/wl12xx/tx.h
index 02f07fa66e82..e31317717ab2 100644
--- a/drivers/net/wireless/wl12xx/tx.h
+++ b/drivers/net/wireless/wl12xx/tx.h
@@ -55,20 +55,48 @@
55#define WL1271_TX_ALIGN_TO 4 55#define WL1271_TX_ALIGN_TO 4
56#define WL1271_TKIP_IV_SPACE 4 56#define WL1271_TKIP_IV_SPACE 4
57 57
58struct wl127x_tx_mem {
59 /*
60 * Number of extra memory blocks to allocate for this packet
61 * in addition to the number of blocks derived from the packet
62 * length.
63 */
64 u8 extra_blocks;
65 /*
66 * Total number of memory blocks allocated by the host for
67 * this packet. Must be equal or greater than the actual
68 * blocks number allocated by HW.
69 */
70 u8 total_mem_blocks;
71} __packed;
72
73struct wl128x_tx_mem {
74 /*
75 * Total number of memory blocks allocated by the host for
76 * this packet.
77 */
78 u8 total_mem_blocks;
79 /*
80 * Number of extra bytes, at the end of the frame. the host
81 * uses this padding to complete each frame to integer number
82 * of SDIO blocks.
83 */
84 u8 extra_bytes;
85} __packed;
86
58struct wl1271_tx_hw_descr { 87struct wl1271_tx_hw_descr {
59 /* Length of packet in words, including descriptor+header+data */ 88 /* Length of packet in words, including descriptor+header+data */
60 __le16 length; 89 __le16 length;
61 /* Number of extra memory blocks to allocate for this packet in 90 union {
62 addition to the number of blocks derived from the packet length */ 91 struct wl127x_tx_mem wl127x_mem;
63 u8 extra_mem_blocks; 92 struct wl128x_tx_mem wl128x_mem;
64 /* Total number of memory blocks allocated by the host for this packet. 93 } __packed;
65 Must be equal or greater than the actual blocks number allocated by
66 HW!! */
67 u8 total_mem_blocks;
68 /* Device time (in us) when the packet arrived to the driver */ 94 /* Device time (in us) when the packet arrived to the driver */
69 __le32 start_time; 95 __le32 start_time;
70 /* Max delay in TUs until transmission. The last device time the 96 /*
71 packet can be transmitted is: startTime+(1024*LifeTime) */ 97 * Max delay in TUs until transmission. The last device time the
98 * packet can be transmitted is: start_time + (1024 * life_time)
99 */
72 __le16 life_time; 100 __le16 life_time;
73 /* Bitwise fields - see TX_ATTR... definitions above. */ 101 /* Bitwise fields - see TX_ATTR... definitions above. */
74 __le16 tx_attr; 102 __le16 tx_attr;