summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ti/wl18xx
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2012-05-10 09:13:19 (GMT)
committerLuciano Coelho <coelho@ti.com>2012-06-05 12:54:57 (GMT)
commitd2361c5140694c39add831693abcf82ad87fe31e (patch)
tree95d6a40aab9fe07a7e0f37d8cc3822233c975bb1 /drivers/net/wireless/ti/wl18xx
parentfb0f2e4ac0635549ce035c461d5050643ea5684c (diff)
downloadlinux-fsl-qoriq-d2361c5140694c39add831693abcf82ad87fe31e.tar.xz
wl18xx: implement hw op for setting frame length in tx_hw_desc
Set the frame length during Tx in a way compatible with the 18xx FW. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti/wl18xx')
-rw-r--r--drivers/net/wireless/ti/wl18xx/main.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
index c85492e..0a5422c 100644
--- a/drivers/net/wireless/ti/wl18xx/main.c
+++ b/drivers/net/wireless/ti/wl18xx/main.c
@@ -321,6 +321,19 @@ wl18xx_set_tx_desc_blocks(struct wl1271 *wl, struct wl1271_tx_hw_descr *desc,
desc->wl18xx_mem.reserved = 0;
}
+static void
+wl18xx_set_tx_desc_data_len(struct wl1271 *wl, struct wl1271_tx_hw_descr *desc,
+ struct sk_buff *skb)
+{
+ desc->length = cpu_to_le16(skb->len);
+
+ wl1271_debug(DEBUG_TX, "tx_fill_hdr: hlid: %d "
+ "len: %d life: %d mem: %d", desc->hlid,
+ le16_to_cpu(desc->length),
+ le16_to_cpu(desc->life_time),
+ desc->wl18xx_mem.total_mem_blocks);
+}
+
static struct wlcore_ops wl18xx_ops = {
.identify_chip = wl18xx_identify_chip,
.boot = wl18xx_boot,
@@ -328,6 +341,7 @@ static struct wlcore_ops wl18xx_ops = {
.ack_event = wl18xx_ack_event,
.calc_tx_blocks = wl18xx_calc_tx_blocks,
.set_tx_desc_blocks = wl18xx_set_tx_desc_blocks,
+ .set_tx_desc_data_len = wl18xx_set_tx_desc_data_len,
};
int __devinit wl18xx_probe(struct platform_device *pdev)