From 83f25ea1cd5ea96f502ec6d6279919fed774721b Mon Sep 17 00:00:00 2001 From: Juuso Oikarinen Date: Mon, 22 Feb 2010 08:38:39 +0200 Subject: [PATCH] --- yaml --- r: 193671 b: refs/heads/master c: 5c9417f1656b0f415f4be5a7cd7195ecadd7dd1a h: refs/heads/master i: 193669: 2ce61983f918d7bd0a40598f91974f55abe963b1 193667: 1132c3a3f137d8f96157a6b7d7f88a8083da3a3f 193663: 5e77599638dfb0eb83aee0161d10c9f094757d5d v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/wl12xx/wl1271_tx.c | 10 +++------- trunk/drivers/net/wireless/wl12xx/wl1271_tx.h | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 4d718b38277c..b811f1388c03 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ac5e1e39c1eeaaff7e6f03bf7cf7a444b42fbc23 +refs/heads/master: 5c9417f1656b0f415f4be5a7cd7195ecadd7dd1a diff --git a/trunk/drivers/net/wireless/wl12xx/wl1271_tx.c b/trunk/drivers/net/wireless/wl12xx/wl1271_tx.c index a32d3014781d..d3ed63e92cf4 100644 --- a/trunk/drivers/net/wireless/wl12xx/wl1271_tx.c +++ b/trunk/drivers/net/wireless/wl12xx/wl1271_tx.c @@ -46,7 +46,7 @@ static int wl1271_tx_allocate(struct wl1271 *wl, struct sk_buff *skb, u32 extra) { struct wl1271_tx_hw_descr *desc; u32 total_len = skb->len + sizeof(struct wl1271_tx_hw_descr) + extra; - u32 total_blocks, excluded; + u32 total_blocks; int id, ret = -EBUSY; /* allocate free identifier for the packet */ @@ -56,12 +56,8 @@ static int wl1271_tx_allocate(struct wl1271 *wl, struct sk_buff *skb, u32 extra) /* approximate the number of blocks required for this packet in the firmware */ - /* FIXME: try to figure out what is done here and make it cleaner */ - total_blocks = (total_len + 20) >> TX_HW_BLOCK_SHIFT_DIV; - excluded = (total_blocks << 2) + ((total_len + 20) & 0xff) + 34; - total_blocks += (excluded > 252) ? 2 : 1; - total_blocks += TX_HW_BLOCK_SPARE; - + total_blocks = total_len + TX_HW_BLOCK_SIZE - 1; + total_blocks = total_blocks / TX_HW_BLOCK_SIZE + TX_HW_BLOCK_SPARE; if (total_blocks <= wl->tx_blocks_available) { desc = (struct wl1271_tx_hw_descr *)skb_push( skb, total_len - skb->len); diff --git a/trunk/drivers/net/wireless/wl12xx/wl1271_tx.h b/trunk/drivers/net/wireless/wl12xx/wl1271_tx.h index ca92bd811292..8b9f6b4f5652 100644 --- a/trunk/drivers/net/wireless/wl12xx/wl1271_tx.h +++ b/trunk/drivers/net/wireless/wl12xx/wl1271_tx.h @@ -26,7 +26,7 @@ #define __WL1271_TX_H__ #define TX_HW_BLOCK_SPARE 2 -#define TX_HW_BLOCK_SHIFT_DIV 8 +#define TX_HW_BLOCK_SIZE 252 #define TX_HW_MGMT_PKT_LIFETIME_TU 2000 /* The chipset reference driver states, that the "aid" value 1