[PATCH] libertas: remove adapter->radiomode
Dan Williams
dcbw at redhat.com
Thu Jul 5 23:11:15 EDT 2007
On Tue, 2007-07-03 at 17:22 +0200, Holger Schurig wrote:
> radiomode was never initialized, so because of kzalloc() it was 0, which is
> WLAN_RADIOMODE_NONE. There was no code anywhere that would have changed this
> variable, so I killed it as well as any occurence/test for
> WLAN_RADIOMODE_RADIOTAP.
I'm going to hold off on this one too until the stuff Luis proposed gets
finalized.
Dan
> Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
> ---
> drivers/net/wireless/libertas/dev.h | 1 -
> drivers/net/wireless/libertas/main.c | 8 +---
> drivers/net/wireless/libertas/tx.c | 78 +--------------------------------
> drivers/net/wireless/libertas/wext.h | 3 -
> 4 files changed, 4 insertions(+), 86 deletions(-)
>
> diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h
> index ba31140..2ec2b9a 100644
> --- a/drivers/net/wireless/libertas/dev.h
> +++ b/drivers/net/wireless/libertas/dev.h
> @@ -379,7 +379,6 @@ struct _wlan_adapter {
> u32 pkttxctrl;
>
> u16 txrate;
> - u32 radiomode;
> u8 fw_ready;
>
> u8 last_scanned_channel;
> diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
> index 1d439cd..f0c2df9 100644
> --- a/drivers/net/wireless/libertas/main.c
> +++ b/drivers/net/wireless/libertas/main.c
> @@ -512,13 +512,7 @@ static void libertas_tx_timeout(struct net_device *dev)
> dev->trans_start = jiffies;
>
> if (priv->adapter->currenttxskb) {
> - if (priv->adapter->radiomode == WLAN_RADIOMODE_RADIOTAP) {
> - /* If we are here, we have not received feedback from
> - the previous packet. Assume TX_FAIL and move on. */
> - priv->adapter->eventcause = 0x01000000;
> - libertas_send_tx_feedback(priv);
> - } else
> - wake_up_interruptible(&priv->waitq);
> + wake_up_interruptible(&priv->waitq);
> } else if (priv->adapter->connect_status == LIBERTAS_CONNECTED) {
> netif_wake_queue(priv->dev);
> if (priv->mesh_dev)
> diff --git a/drivers/net/wireless/libertas/tx.c b/drivers/net/wireless/libertas/tx.c
> index a8787b0..f5f54ed 100644
> --- a/drivers/net/wireless/libertas/tx.c
> +++ b/drivers/net/wireless/libertas/tx.c
> @@ -11,44 +11,6 @@
> #include "wext.h"
>
> /**
> - * @brief This function converts Tx/Rx rates from IEEE80211_RADIOTAP_RATE
> - * units (500 Kb/s) into Marvell WLAN format (see Table 8 in Section 3.2.1)
> - *
> - * @param rate Input rate
> - * @return Output Rate (0 if invalid)
> - */
> -static u32 convert_radiotap_rate_to_mv(u8 rate)
> -{
> - switch (rate) {
> - case 2: /* 1 Mbps */
> - return 0 | (1 << 4);
> - case 4: /* 2 Mbps */
> - return 1 | (1 << 4);
> - case 11: /* 5.5 Mbps */
> - return 2 | (1 << 4);
> - case 22: /* 11 Mbps */
> - return 3 | (1 << 4);
> - case 12: /* 6 Mbps */
> - return 4 | (1 << 4);
> - case 18: /* 9 Mbps */
> - return 5 | (1 << 4);
> - case 24: /* 12 Mbps */
> - return 6 | (1 << 4);
> - case 36: /* 18 Mbps */
> - return 7 | (1 << 4);
> - case 48: /* 24 Mbps */
> - return 8 | (1 << 4);
> - case 72: /* 36 Mbps */
> - return 9 | (1 << 4);
> - case 96: /* 48 Mbps */
> - return 10 | (1 << 4);
> - case 108: /* 54 Mbps */
> - return 11 | (1 << 4);
> - }
> - return 0;
> -}
> -
> -/**
> * @brief This function processes a single packet and sends
> * to IF layer
> *
> @@ -63,8 +25,6 @@ static int SendSinglePacket(wlan_private * priv, struct sk_buff *skb)
> struct txpd localtxpd;
> struct txpd *plocaltxpd = &localtxpd;
> u8 *p802x_hdr;
> - struct tx_radiotap_hdr *pradiotap_hdr;
> - u32 new_rate;
> u8 *ptr = priv->adapter->tmptxbuf;
>
> lbs_deb_enter(LBS_DEB_TX);
> @@ -90,26 +50,7 @@ static int SendSinglePacket(wlan_private * priv, struct sk_buff *skb)
> plocaltxpd->tx_control = cpu_to_le32(adapter->pkttxctrl);
>
> p802x_hdr = skb->data;
> - if (priv->adapter->radiomode == WLAN_RADIOMODE_RADIOTAP) {
> -
> - /* locate radiotap header */
> - pradiotap_hdr = (struct tx_radiotap_hdr *)skb->data;
>
> - /* set txpd fields from the radiotap header */
> - new_rate = convert_radiotap_rate_to_mv(pradiotap_hdr->rate);
> - if (new_rate != 0) {
> - /* use new tx_control[4:0] */
> - new_rate |= (adapter->pkttxctrl & ~0x1f);
> - plocaltxpd->tx_control = cpu_to_le32(new_rate);
> - }
> -
> - /* skip the radiotap header */
> - p802x_hdr += sizeof(struct tx_radiotap_hdr);
> - plocaltxpd->tx_packet_length =
> - cpu_to_le16(le16_to_cpu(plocaltxpd->tx_packet_length)
> - - sizeof(struct tx_radiotap_hdr));
> -
> - }
> /* copy destination address from 802.3 header */
> memcpy(plocaltxpd->tx_dest_addr_high, p802x_hdr, ETH_ALEN);
>
> @@ -146,20 +87,8 @@ done:
> priv->stats.tx_errors++;
> }
>
> - if (!ret && priv->adapter->radiomode == WLAN_RADIOMODE_RADIOTAP) {
> - /* Keep the skb to echo it back once Tx feedback is
> - received from FW */
> - skb_orphan(skb);
> - /* stop processing outgoing pkts */
> - netif_stop_queue(priv->dev);
> - if (priv->mesh_dev)
> - netif_stop_queue(priv->mesh_dev);
> - /* freeze any packets already in our queues */
> - priv->adapter->TxLockFlag = 1;
> - } else {
> - dev_kfree_skb_any(skb);
> - priv->adapter->currenttxskb = NULL;
> - }
> + dev_kfree_skb_any(skb);
> + priv->adapter->currenttxskb = NULL;
>
> lbs_deb_leave_args(LBS_DEB_TX, "ret %d", ret);
> return ret;
> @@ -254,8 +183,7 @@ void libertas_send_tx_feedback(wlan_private * priv)
> int txfail;
> int try_count;
>
> - if (adapter->radiomode != WLAN_RADIOMODE_RADIOTAP ||
> - adapter->currenttxskb == NULL)
> + if (adapter->currenttxskb == NULL)
> return;
>
> radiotap_hdr = (struct tx_radiotap_hdr *)adapter->currenttxskb->data;
> diff --git a/drivers/net/wireless/libertas/wext.h b/drivers/net/wireless/libertas/wext.h
> index 16ecc89..399b32b 100644
> --- a/drivers/net/wireless/libertas/wext.h
> +++ b/drivers/net/wireless/libertas/wext.h
> @@ -15,9 +15,6 @@ struct wlan_ioctl_regrdwr {
> u32 value;
> };
>
> -#define WLAN_RADIOMODE_NONE 0
> -#define WLAN_RADIOMODE_RADIOTAP 2
> -
> extern struct iw_handler_def libertas_handler_def;
> extern struct iw_handler_def mesh_handler_def;
>
More information about the libertas-dev
mailing list