Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[cascardo/linux.git] / drivers / staging / rtl8192u / r8192U_core.c
index 369d62f..14c14c2 100644 (file)
@@ -103,8 +103,7 @@ double __extendsfdf2(float a)
 
 #include "dot11d.h"
 //set here to open your trace code. //WB
-u32 rt_global_debug_component = \
-                               COMP_DOWN       |
+u32 rt_global_debug_component = COMP_DOWN      |
                                COMP_SEC        |
                                COMP_ERR; //always open err flags on
 
@@ -151,7 +150,7 @@ MODULE_PARM_DESC(hwwep, " Try to use hardware security support. ");
 MODULE_PARM_DESC(channels, " Channel bitmask for specific locales. NYI");
 
 static int rtl8192_usb_probe(struct usb_interface *intf,
-                        const struct usb_device_id *id);
+                            const struct usb_device_id *id);
 static void rtl8192_usb_disconnect(struct usb_interface *intf);
 
 
@@ -203,7 +202,7 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv)
        case COUNTRY_CODE_MKK1:
        case COUNTRY_CODE_ISRAEL:
        case COUNTRY_CODE_TELEC:
-       case COUNTRY_CODE_MIC:  
+       case COUNTRY_CODE_MIC:
                Dot11d_Init(ieee);
                ieee->bGlobalDomain = false;
                //actually 8225 & 8256 rf chips only support B,G,24N mode
@@ -230,19 +229,13 @@ static void rtl819x_set_channel_map(u8 channel_plan, struct r8192_priv *priv)
                Dot11d_Reset(ieee);
                ieee->bGlobalDomain = true;
                break;
-       
+
        default:
                break;
        }
 }
 
 
-#define                rx_hal_is_cck_rate(_pdrvinfo)\
-                       (_pdrvinfo->RxRate == DESC90_RATE1M ||\
-                       _pdrvinfo->RxRate == DESC90_RATE2M ||\
-                       _pdrvinfo->RxRate == DESC90_RATE5_5M ||\
-                       _pdrvinfo->RxRate == DESC90_RATE11M) &&\
-                       !_pdrvinfo->RxHT\
 
 
 void CamResetAllEntry(struct net_device *dev)
@@ -265,8 +258,11 @@ void write_cam(struct net_device *dev, u8 addr, u32 data)
 
 u32 read_cam(struct net_device *dev, u8 addr)
 {
+       u32 data;
+
        write_nic_dword(dev, RWCAM, 0x80000000|(addr&0xff));
-       return read_nic_dword(dev, 0xa8);
+       read_nic_dword(dev, 0xa8, &data);
+       return data;
 }
 
 void write_nic_byte_E(struct net_device *dev, int indx, u8 data)
@@ -276,28 +272,29 @@ void write_nic_byte_E(struct net_device *dev, int indx, u8 data)
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
-                              RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
-                              indx|0xfe00, 0, &data, 1, HZ / 2);
+                                RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
+                                indx|0xfe00, 0, &data, 1, HZ / 2);
 
        if (status < 0)
                netdev_err(dev, "write_nic_byte_E TimeOut! status: %d\n", status);
 }
 
-u8 read_nic_byte_E(struct net_device *dev, int indx)
+int read_nic_byte_E(struct net_device *dev, int indx, u8 *data)
 {
        int status;
-       u8 data;
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
-                              RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
-                              indx|0xfe00, 0, &data, 1, HZ / 2);
+                                RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
+                                indx|0xfe00, 0, data, 1, HZ / 2);
 
-       if (status < 0)
-               netdev_err(dev, "read_nic_byte_E TimeOut! status: %d\n", status);
+       if (status < 0) {
+               netdev_err(dev, "%s failure status: %d\n", __func__, status);
+               return status;
+       }
 
-       return data;
+       return 0;
 }
 //as 92U has extend page from 4 to 16, so modify functions below.
 void write_nic_byte(struct net_device *dev, int indx, u8 data)
@@ -308,8 +305,8 @@ void write_nic_byte(struct net_device *dev, int indx, u8 data)
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
-                              RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
-                              (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 1, HZ / 2);
+                                RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
+                                (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 1, HZ / 2);
 
        if (status < 0)
                netdev_err(dev, "write_nic_byte TimeOut! status: %d\n", status);
@@ -327,8 +324,8 @@ void write_nic_word(struct net_device *dev, int indx, u16 data)
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
-                              RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
-                              (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 2, HZ / 2);
+                                RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
+                                (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 2, HZ / 2);
 
        if (status < 0)
                netdev_err(dev, "write_nic_word TimeOut! status: %d\n", status);
@@ -345,8 +342,8 @@ void write_nic_dword(struct net_device *dev, int indx, u32 data)
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
-                              RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
-                              (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 4, HZ / 2);
+                                RTL8187_REQ_SET_REGS, RTL8187_REQT_WRITE,
+                                (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 4, HZ / 2);
 
 
        if (status < 0)
@@ -356,77 +353,81 @@ void write_nic_dword(struct net_device *dev, int indx, u32 data)
 
 
 
-u8 read_nic_byte(struct net_device *dev, int indx)
+int read_nic_byte(struct net_device *dev, int indx, u8 *data)
 {
-       u8 data;
        int status;
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
-                              RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
-                              (indx&0xff)|0xff00, (indx>>8)&0x0f, &data, 1, HZ / 2);
+                                RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
+                                (indx&0xff)|0xff00, (indx>>8)&0x0f, data, 1, HZ / 2);
 
-       if (status < 0)
-               netdev_err(dev, "read_nic_byte TimeOut! status: %d\n", status);
+       if (status < 0) {
+               netdev_err(dev, "%s failure status: %d\n", __func__, status);
+               return status;
+       }
 
-       return data;
+       return 0;
 }
 
 
 
-u16 read_nic_word(struct net_device *dev, int indx)
+int read_nic_word(struct net_device *dev, int indx, u16 *data)
 {
-       u16 data;
        int status;
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
-                                      RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
-                                      (indx&0xff)|0xff00, (indx>>8)&0x0f,
-                                                       &data, 2, HZ / 2);
+                                RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
+                                (indx&0xff)|0xff00, (indx>>8)&0x0f,
+                                data, 2, HZ / 2);
 
-       if (status < 0)
-               netdev_err(dev, "read_nic_word TimeOut! status: %d\n", status);
+       if (status < 0) {
+               netdev_err(dev, "%s failure status: %d\n", __func__, status);
+               return status;
+       }
 
-       return data;
+       return 0;
 }
 
-u16 read_nic_word_E(struct net_device *dev, int indx)
+int read_nic_word_E(struct net_device *dev, int indx, u16 *data)
 {
-       u16 data;
        int status;
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
-                              RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
-                                      indx|0xfe00, 0, &data, 2, HZ / 2);
+                                RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
+                                indx|0xfe00, 0, data, 2, HZ / 2);
 
-       if (status < 0)
-               netdev_err(dev, "read_nic_word TimeOut! status: %d\n", status);
+       if (status < 0) {
+               netdev_err(dev, "%s failure status: %d\n", __func__, status);
+               return status;
+       }
 
-       return data;
+       return 0;
 }
 
-u32 read_nic_dword(struct net_device *dev, int indx)
+int read_nic_dword(struct net_device *dev, int indx, u32 *data)
 {
-       u32 data;
        int status;
 
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
        struct usb_device *udev = priv->udev;
 
        status = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
-                                      RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
-                                       (indx&0xff)|0xff00, (indx>>8)&0x0f,
-                                                       &data, 4, HZ / 2);
+                                RTL8187_REQ_GET_REGS, RTL8187_REQT_READ,
+                                (indx&0xff)|0xff00, (indx>>8)&0x0f,
+                                data, 4, HZ / 2);
 
-       if (status < 0)
-               netdev_err(dev, "read_nic_dword TimeOut! status:%d\n", status);
+       if (status < 0) {
+               netdev_err(dev, "%s failure status: %d\n", __func__, status);
+               return status;
+       }
 
-       return data;
+       return 0;
 }
 
 /* u8 read_phy_cck(struct net_device *dev, u8 adr); */
@@ -472,30 +473,37 @@ static int proc_get_registers(struct seq_file *m, void *v)
 {
        struct net_device *dev = m->private;
        int i, n, max = 0xff;
+       u8 byte_rd;
 
        seq_puts(m, "\n####################page 0##################\n ");
 
        for (n = 0; n <= max;) {
                seq_printf(m, "\nD:  %2x > ", n);
 
-               for (i = 0; i < 16 && n <= max; i++, n++)
-                       seq_printf(m, "%2x ", read_nic_byte(dev, 0x000|n));
+               for (i = 0; i < 16 && n <= max; i++, n++) {
+                       read_nic_byte(dev, 0x000|n, &byte_rd);
+                       seq_printf(m, "%2x ", byte_rd);
+               }
        }
 
        seq_puts(m, "\n####################page 1##################\n ");
        for (n = 0; n <= max;) {
                seq_printf(m, "\nD:  %2x > ", n);
 
-               for (i = 0; i < 16 && n <= max; i++, n++)
-                       seq_printf(m, "%2x ", read_nic_byte(dev, 0x100|n));
+               for (i = 0; i < 16 && n <= max; i++, n++) {
+                       read_nic_byte(dev, 0x100|n, &byte_rd);
+                       seq_printf(m, "%2x ", byte_rd);
+               }
        }
 
        seq_puts(m, "\n####################page 3##################\n ");
        for (n = 0; n <= max;) {
                seq_printf(m, "\nD:  %2x > ", n);
 
-               for (i = 0; i < 16 && n <= max; i++, n++)
-                       seq_printf(m, "%2x ", read_nic_byte(dev, 0x300|n));
+               for (i = 0; i < 16 && n <= max; i++, n++) {
+                       read_nic_byte(dev, 0x300|n, &byte_rd);
+                       seq_printf(m, "%2x ", byte_rd);
+               }
        }
 
        seq_putc(m, '\n');
@@ -508,54 +516,54 @@ static int proc_get_stats_tx(struct seq_file *m, void *v)
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
 
        seq_printf(m,
-               "TX VI priority ok int: %lu\n"
-               "TX VI priority error int: %lu\n"
-               "TX VO priority ok int: %lu\n"
-               "TX VO priority error int: %lu\n"
-               "TX BE priority ok int: %lu\n"
-               "TX BE priority error int: %lu\n"
-               "TX BK priority ok int: %lu\n"
-               "TX BK priority error int: %lu\n"
-               "TX MANAGE priority ok int: %lu\n"
-               "TX MANAGE priority error int: %lu\n"
-               "TX BEACON priority ok int: %lu\n"
-               "TX BEACON priority error int: %lu\n"
-               "TX queue resume: %lu\n"
-               "TX queue stopped?: %d\n"
-               "TX fifo overflow: %lu\n"
-               "TX VI queue: %d\n"
-               "TX VO queue: %d\n"
-               "TX BE queue: %d\n"
-               "TX BK queue: %d\n"
-               "TX VI dropped: %lu\n"
-               "TX VO dropped: %lu\n"
-               "TX BE dropped: %lu\n"
-               "TX BK dropped: %lu\n"
-               "TX total data packets %lu\n",
-               priv->stats.txviokint,
-               priv->stats.txvierr,
-               priv->stats.txvookint,
-               priv->stats.txvoerr,
-               priv->stats.txbeokint,
-               priv->stats.txbeerr,
-               priv->stats.txbkokint,
-               priv->stats.txbkerr,
-               priv->stats.txmanageokint,
-               priv->stats.txmanageerr,
-               priv->stats.txbeaconokint,
-               priv->stats.txbeaconerr,
-               priv->stats.txresumed,
-               netif_queue_stopped(dev),
-               priv->stats.txoverflow,
-               atomic_read(&(priv->tx_pending[VI_PRIORITY])),
-               atomic_read(&(priv->tx_pending[VO_PRIORITY])),
-               atomic_read(&(priv->tx_pending[BE_PRIORITY])),
-               atomic_read(&(priv->tx_pending[BK_PRIORITY])),
-               priv->stats.txvidrop,
-               priv->stats.txvodrop,
-               priv->stats.txbedrop,
-               priv->stats.txbkdrop,
-               priv->stats.txdatapkt
+                  "TX VI priority ok int: %lu\n"
+                  "TX VI priority error int: %lu\n"
+                  "TX VO priority ok int: %lu\n"
+                  "TX VO priority error int: %lu\n"
+                  "TX BE priority ok int: %lu\n"
+                  "TX BE priority error int: %lu\n"
+                  "TX BK priority ok int: %lu\n"
+                  "TX BK priority error int: %lu\n"
+                  "TX MANAGE priority ok int: %lu\n"
+                  "TX MANAGE priority error int: %lu\n"
+                  "TX BEACON priority ok int: %lu\n"
+                  "TX BEACON priority error int: %lu\n"
+                  "TX queue resume: %lu\n"
+                  "TX queue stopped?: %d\n"
+                  "TX fifo overflow: %lu\n"
+                  "TX VI queue: %d\n"
+                  "TX VO queue: %d\n"
+                  "TX BE queue: %d\n"
+                  "TX BK queue: %d\n"
+                  "TX VI dropped: %lu\n"
+                  "TX VO dropped: %lu\n"
+                  "TX BE dropped: %lu\n"
+                  "TX BK dropped: %lu\n"
+                  "TX total data packets %lu\n",
+                  priv->stats.txviokint,
+                  priv->stats.txvierr,
+                  priv->stats.txvookint,
+                  priv->stats.txvoerr,
+                  priv->stats.txbeokint,
+                  priv->stats.txbeerr,
+                  priv->stats.txbkokint,
+                  priv->stats.txbkerr,
+                  priv->stats.txmanageokint,
+                  priv->stats.txmanageerr,
+                  priv->stats.txbeaconokint,
+                  priv->stats.txbeaconerr,
+                  priv->stats.txresumed,
+                  netif_queue_stopped(dev),
+                  priv->stats.txoverflow,
+                  atomic_read(&(priv->tx_pending[VI_PRIORITY])),
+                  atomic_read(&(priv->tx_pending[VO_PRIORITY])),
+                  atomic_read(&(priv->tx_pending[BE_PRIORITY])),
+                  atomic_read(&(priv->tx_pending[BK_PRIORITY])),
+                  priv->stats.txvidrop,
+                  priv->stats.txvodrop,
+                  priv->stats.txbedrop,
+                  priv->stats.txbkdrop,
+                  priv->stats.txdatapkt
                );
 
        return 0;
@@ -567,12 +575,12 @@ static int proc_get_stats_rx(struct seq_file *m, void *v)
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
 
        seq_printf(m,
-               "RX packets: %lu\n"
-               "RX urb status error: %lu\n"
-               "RX invalid urb error: %lu\n",
-               priv->stats.rxoktotal,
-               priv->stats.rxstaterr,
-               priv->stats.rxurberr);
+                  "RX packets: %lu\n"
+                  "RX urb status error: %lu\n"
+                  "RX invalid urb error: %lu\n",
+                  priv->stats.rxoktotal,
+                  priv->stats.rxstaterr,
+                  priv->stats.rxurberr);
 
        return 0;
 }
@@ -690,11 +698,11 @@ void dump_eprom(struct net_device *dev)
 void rtl8192_set_mode(struct net_device *dev, int mode)
 {
        u8 ecmd;
-       ecmd = read_nic_byte(dev, EPROM_CMD);
+       read_nic_byte(dev, EPROM_CMD, &ecmd);
        ecmd = ecmd & ~EPROM_CMD_OPERATING_MODE_MASK;
        ecmd = ecmd | (mode<<EPROM_CMD_OPERATING_MODE_SHIFT);
-       ecmd = ecmd & ~(1<<EPROM_CS_SHIFT);
-       ecmd = ecmd & ~(1<<EPROM_CK_SHIFT);
+       ecmd = ecmd & ~EPROM_CS_BIT;
+       ecmd = ecmd & ~EPROM_CK_BIT;
        write_nic_byte(dev, EPROM_CMD, ecmd);
 }
 
@@ -704,7 +712,7 @@ void rtl8192_update_msr(struct net_device *dev)
        struct r8192_priv *priv = ieee80211_priv(dev);
        u8 msr;
 
-       msr  = read_nic_byte(dev, MSR);
+       read_nic_byte(dev, MSR, &msr);
        msr &= ~MSR_LINK_MASK;
 
        /* do not change in link_state != WLAN_LINK_ASSOCIATED.
@@ -740,7 +748,7 @@ void rtl8192_set_chan(struct net_device *dev, short ch)
        //need to implement rf set channel here WB
 
        if (priv->rf_set_chan)
-       priv->rf_set_chan(dev, priv->chan);
+               priv->rf_set_chan(dev, priv->chan);
        mdelay(10);
 #endif
 }
@@ -757,7 +765,7 @@ u32 get_rxpacket_shiftbytes_819xusb(struct ieee80211_rx_stats *pstats)
        else
 #endif
                return (sizeof(rx_desc_819x_usb) + pstats->RxDrvInfoSize
-                               + pstats->RxBufShift);
+                       + pstats->RxBufShift);
 
 }
 static int rtl8192_rx_initiate(struct net_device *dev)
@@ -804,7 +812,7 @@ static int rtl8192_rx_initiate(struct net_device *dev)
                info = (struct rtl8192_rx_info *) skb->cb;
                info->urb = entry;
                info->dev = dev;
-                  info->out_pipe = 9; //denote rx cmd packet queue
+               info->out_pipe = 9; //denote rx cmd packet queue
                skb_queue_tail(&priv->rx_queue, skb);
                usb_submit_urb(entry, GFP_KERNEL);
        }
@@ -817,7 +825,7 @@ void rtl8192_set_rxconf(struct net_device *dev)
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
        u32 rxconf;
 
-       rxconf = read_nic_dword(dev, RCR);
+       read_nic_dword(dev, RCR, &rxconf);
        rxconf = rxconf & ~MAC_FILTER_MASK;
        rxconf = rxconf | RCR_AMF;
        rxconf = rxconf | RCR_ADF;
@@ -827,8 +835,8 @@ void rtl8192_set_rxconf(struct net_device *dev)
        if (dev->flags & IFF_PROMISC)
                DMESG("NIC in promisc mode");
 
-       if (priv->ieee80211->iw_mode == IW_MODE_MONITOR || \
-          dev->flags & IFF_PROMISC) {
+       if (priv->ieee80211->iw_mode == IW_MODE_MONITOR ||
+           dev->flags & IFF_PROMISC) {
                rxconf = rxconf | RCR_AAP;
        } else {
                rxconf = rxconf | RCR_APM;
@@ -853,10 +861,6 @@ void rtl8192_set_rxconf(struct net_device *dev)
        rxconf = rxconf | RCR_ONLYERLPKT;
 
        write_nic_dword(dev, RCR, rxconf);
-
-       #ifdef DEBUG_RX
-       DMESG("rxconf: %x %x", rxconf, read_nic_dword(dev, RCR));
-       #endif
 }
 //wait to be removed
 void rtl8192_rx_enable(struct net_device *dev)
@@ -878,9 +882,8 @@ void rtl8192_rtx_disable(struct net_device *dev)
        struct sk_buff *skb;
        struct rtl8192_rx_info *info;
 
-       cmd = read_nic_byte(dev, CMDR);
-       write_nic_byte(dev, CMDR, cmd & \
-               ~(CR_TE|CR_RE));
+       read_nic_byte(dev, CMDR, &cmd);
+       write_nic_byte(dev, CMDR, cmd & ~(CR_TE|CR_RE));
        force_pci_posting(dev);
        mdelay(10);
 
@@ -910,31 +913,31 @@ inline u16 ieeerate2rtlrate(int rate)
 {
        switch (rate) {
        case 10:
-       return 0;
+               return 0;
        case 20:
-       return 1;
+               return 1;
        case 55:
-       return 2;
+               return 2;
        case 110:
-       return 3;
+               return 3;
        case 60:
-       return 4;
+               return 4;
        case 90:
-       return 5;
+               return 5;
        case 120:
-       return 6;
+               return 6;
        case 180:
-       return 7;
+               return 7;
        case 240:
-       return 8;
+               return 8;
        case 360:
-       return 9;
+               return 9;
        case 480:
-       return 10;
+               return 10;
        case 540:
-       return 11;
+               return 11;
        default:
-       return 3;
+               return 3;
 
        }
 }
@@ -979,8 +982,8 @@ static void rtl8192_rx_isr(struct urb *urb)
        }
 
        usb_fill_bulk_urb(urb, priv->udev,
-                       usb_rcvbulkpipe(priv->udev, out_pipe), skb_tail_pointer(skb),
-                       RX_URB_SIZE, rtl8192_rx_isr, skb);
+                         usb_rcvbulkpipe(priv->udev, out_pipe), skb_tail_pointer(skb),
+                         RX_URB_SIZE, rtl8192_rx_isr, skb);
 
        info = (struct rtl8192_rx_info *) skb->cb;
        info->urb = urb;
@@ -1031,7 +1034,7 @@ void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rat
        u8 queue_index = tcb_desc->queue_index;
 
        /* shall not be referred by command packet */
-       assert(queue_index != TXCMD_QUEUE);
+       RTL8192U_ASSERT(queue_index != TXCMD_QUEUE);
 
        spin_lock_irqsave(&priv->tx_lock, flags);
 
@@ -1085,7 +1088,7 @@ void rtl8192_try_wake_queue(struct net_device *dev, int pri);
 u16 DrvAggr_PaddingAdd(struct net_device *dev, struct sk_buff *skb)
 {
        u16     PaddingNum =  256 - ((skb->len + TX_PACKET_DRVAGGR_SUBFRAME_SHIFT_BYTES) % 256);
-       return  (PaddingNum&0xff);
+       return  PaddingNum & 0xff;
 }
 
 u8 MRateToHwRate8190Pci(u8 rate);
@@ -1141,12 +1144,12 @@ struct sk_buff *DrvAggr_Aggregation(struct net_device *dev, struct ieee80211_drv
                /* Subframe drv Tx descriptor and firmware info setting */
                skb = pSendList->tx_agg_frames[i];
                tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
-               tx_agg_desc = (tx_desc_819x_usb_aggr_subframe *)agg_skb->tail;
-               tx_fwinfo = (tx_fwinfo_819x_usb *)(agg_skb->tail + sizeof(tx_desc_819x_usb_aggr_subframe));
+               tx_agg_desc = (tx_desc_819x_usb_aggr_subframe *)skb_tail_pointer(agg_skb);
+               tx_fwinfo = (tx_fwinfo_819x_usb *)(skb_tail_pointer(agg_skb) + sizeof(tx_desc_819x_usb_aggr_subframe));
 
                memset(tx_fwinfo, 0, sizeof(tx_fwinfo_819x_usb));
                /* DWORD 0 */
-               tx_fwinfo->TxHT = (tcb_desc->data_rate&0x80)?1:0;
+               tx_fwinfo->TxHT = (tcb_desc->data_rate&0x80) ? 1 : 0;
                tx_fwinfo->TxRate = MRateToHwRate8190Pci(tcb_desc->data_rate);
                tx_fwinfo->EnableCPUDur = tcb_desc->bTxEnableFwCalcDur;
                tx_fwinfo->Short = QueryIsShort(tx_fwinfo->TxHT, tx_fwinfo->TxRate, tcb_desc);
@@ -1163,15 +1166,15 @@ struct sk_buff *DrvAggr_Aggregation(struct net_device *dev, struct ieee80211_drv
                }
 
                /* Protection mode related */
-               tx_fwinfo->RtsEnable = (tcb_desc->bRTSEnable)?1:0;
-               tx_fwinfo->CtsEnable = (tcb_desc->bCTSEnable)?1:0;
-               tx_fwinfo->RtsSTBC = (tcb_desc->bRTSSTBC)?1:0;
-               tx_fwinfo->RtsHT = (tcb_desc->rts_rate&0x80)?1:0;
+               tx_fwinfo->RtsEnable = (tcb_desc->bRTSEnable) ? 1 : 0;
+               tx_fwinfo->CtsEnable = (tcb_desc->bCTSEnable) ? 1 : 0;
+               tx_fwinfo->RtsSTBC = (tcb_desc->bRTSSTBC) ? 1 : 0;
+               tx_fwinfo->RtsHT = (tcb_desc->rts_rate&0x80) ? 1 : 0;
                tx_fwinfo->RtsRate =  MRateToHwRate8190Pci((u8)tcb_desc->rts_rate);
-               tx_fwinfo->RtsSubcarrier = (tx_fwinfo->RtsHT == 0)?(tcb_desc->RTSSC):0;
-               tx_fwinfo->RtsBandwidth = (tx_fwinfo->RtsHT == 1)?((tcb_desc->bRTSBW)?1:0):0;
-               tx_fwinfo->RtsShort = (tx_fwinfo->RtsHT == 0)?(tcb_desc->bRTSUseShortPreamble?1:0):\
-                                     (tcb_desc->bRTSUseShortGI?1:0);
+               tx_fwinfo->RtsSubcarrier = (tx_fwinfo->RtsHT == 0) ? (tcb_desc->RTSSC) : 0;
+               tx_fwinfo->RtsBandwidth = (tx_fwinfo->RtsHT == 1) ? ((tcb_desc->bRTSBW) ? 1 : 0) : 0;
+               tx_fwinfo->RtsShort = (tx_fwinfo->RtsHT == 0) ? (tcb_desc->bRTSUseShortPreamble ? 1 : 0) :
+                                     (tcb_desc->bRTSUseShortGI ? 1 : 0);
 
                /* Set Bandwidth and sub-channel settings. */
                if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) {
@@ -1197,28 +1200,28 @@ struct sk_buff *DrvAggr_Aggregation(struct net_device *dev, struct ieee80211_drv
                /*DWORD 1*/
                tx_agg_desc->SecCAMID = 0;
                tx_agg_desc->RATid = tcb_desc->RATRIndex;
-                       tx_agg_desc->NoEnc = 1;
+               tx_agg_desc->NoEnc = 1;
                tx_agg_desc->SecType = 0x0;
 
                if (tcb_desc->bHwSec) {
                        switch (priv->ieee80211->pairwise_key_type) {
-                               case KEY_TYPE_WEP40:
-                               case KEY_TYPE_WEP104:
-                                       tx_agg_desc->SecType = 0x1;
-                                       tx_agg_desc->NoEnc = 0;
-                                       break;
-                               case KEY_TYPE_TKIP:
-                                       tx_agg_desc->SecType = 0x2;
-                                       tx_agg_desc->NoEnc = 0;
-                                       break;
-                               case KEY_TYPE_CCMP:
-                                       tx_agg_desc->SecType = 0x3;
-                                       tx_agg_desc->NoEnc = 0;
-                                       break;
-                               case KEY_TYPE_NA:
-                                       tx_agg_desc->SecType = 0x0;
-                                       tx_agg_desc->NoEnc = 1;
-                                       break;
+                       case KEY_TYPE_WEP40:
+                       case KEY_TYPE_WEP104:
+                               tx_agg_desc->SecType = 0x1;
+                               tx_agg_desc->NoEnc = 0;
+                               break;
+                       case KEY_TYPE_TKIP:
+                               tx_agg_desc->SecType = 0x2;
+                               tx_agg_desc->NoEnc = 0;
+                               break;
+                       case KEY_TYPE_CCMP:
+                               tx_agg_desc->SecType = 0x3;
+                               tx_agg_desc->NoEnc = 0;
+                               break;
+                       case KEY_TYPE_NA:
+                               tx_agg_desc->SecType = 0x0;
+                               tx_agg_desc->NoEnc = 1;
+                               break;
                        }
                }
 
@@ -1249,7 +1252,7 @@ struct sk_buff *DrvAggr_Aggregation(struct net_device *dev, struct ieee80211_drv
        If no proper TCB is found to do aggregation, SendList will only contain the input TCB.
 */
 u8 DrvAggr_GetAggregatibleList(struct net_device *dev, struct sk_buff *skb,
-               struct ieee80211_drv_agg_txb *pSendList)
+                              struct ieee80211_drv_agg_txb *pSendList)
 {
        struct ieee80211_device *ieee = netdev_priv(dev);
        PRT_HIGH_THROUGHPUT     pHTInfo = ieee->pHTInfo;
@@ -1299,59 +1302,59 @@ static void rtl8192_tx_isr(struct urb *tx_urb)
                atomic_dec(&priv->tx_pending[queue_index]);
        }
 
-               //
-               // Handle HW Beacon:
-               // We had transfer our beacon frame to host controller at this moment.
-               //
-               //
-               // Caution:
-               // Handling the wait queue of command packets.
-               // For Tx command packets, we must not do TCB fragment because it is not handled right now.
-               // We must cut the packets to match the size of TX_CMD_PKT before we send it.
-               //
+       //
+       // Handle HW Beacon:
+       // We had transfer our beacon frame to host controller at this moment.
+       //
+       //
+       // Caution:
+       // Handling the wait queue of command packets.
+       // For Tx command packets, we must not do TCB fragment because it is not handled right now.
+       // We must cut the packets to match the size of TX_CMD_PKT before we send it.
+       //
 
-               /* Handle MPDU in wait queue. */
-               if (queue_index != BEACON_QUEUE) {
-                       /* Don't send data frame during scanning.*/
-                       if ((skb_queue_len(&priv->ieee80211->skb_waitQ[queue_index]) != 0)&&\
-                                       (!(priv->ieee80211->queue_stop))) {
-                               if (NULL != (skb = skb_dequeue(&(priv->ieee80211->skb_waitQ[queue_index]))))
-                                       priv->ieee80211->softmac_hard_start_xmit(skb, dev);
+       /* Handle MPDU in wait queue. */
+       if (queue_index != BEACON_QUEUE) {
+               /* Don't send data frame during scanning.*/
+               if ((skb_queue_len(&priv->ieee80211->skb_waitQ[queue_index]) != 0) &&
+                   (!(priv->ieee80211->queue_stop))) {
+                       if (NULL != (skb = skb_dequeue(&(priv->ieee80211->skb_waitQ[queue_index]))))
+                               priv->ieee80211->softmac_hard_start_xmit(skb, dev);
 
-                               return; //modified by david to avoid further processing AMSDU
-                       }
+                       return; //modified by david to avoid further processing AMSDU
+               }
 #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
-                       else if ((skb_queue_len(&priv->ieee80211->skb_drv_aggQ[queue_index]) != 0)&&\
-                               (!(priv->ieee80211->queue_stop))) {
-                               // Tx Driver Aggregation process
-                               /* The driver will aggregation the packets according to the following stats
-                                * 1. check whether there's tx irq available, for it's a completion return
-                                *    function, it should contain enough tx irq;
-                                * 2. check packet type;
-                                * 3. initialize sendlist, check whether the to-be send packet no greater than 1
-                                * 4. aggregates the packets, and fill firmware info and tx desc into it, etc.
-                                * 5. check whether the packet could be sent, otherwise just insert into wait head
-                                * */
-                               skb = skb_dequeue(&priv->ieee80211->skb_drv_aggQ[queue_index]);
-                               if (!check_nic_enough_desc(dev, queue_index)) {
-                                       skb_queue_head(&(priv->ieee80211->skb_drv_aggQ[queue_index]), skb);
-                                       return;
-                               }
+               else if ((skb_queue_len(&priv->ieee80211->skb_drv_aggQ[queue_index]) != 0) &&
+                        (!(priv->ieee80211->queue_stop))) {
+                       // Tx Driver Aggregation process
+                       /* The driver will aggregation the packets according to the following stats
+                        * 1. check whether there's tx irq available, for it's a completion return
+                        *    function, it should contain enough tx irq;
+                        * 2. check packet type;
+                        * 3. initialize sendlist, check whether the to-be send packet no greater than 1
+                        * 4. aggregates the packets, and fill firmware info and tx desc into it, etc.
+                        * 5. check whether the packet could be sent, otherwise just insert into wait head
+                        * */
+                       skb = skb_dequeue(&priv->ieee80211->skb_drv_aggQ[queue_index]);
+                       if (!check_nic_enough_desc(dev, queue_index)) {
+                               skb_queue_head(&(priv->ieee80211->skb_drv_aggQ[queue_index]), skb);
+                               return;
+                       }
 
-                                       /*TODO*/
-                                       {
-                                               struct ieee80211_drv_agg_txb SendList;
+                       /*TODO*/
+                       {
+                               struct ieee80211_drv_agg_txb SendList;
 
-                                               memset(&SendList, 0, sizeof(struct ieee80211_drv_agg_txb));
-                                               if (DrvAggr_GetAggregatibleList(dev, skb, &SendList) > 1) {
-                                                       skb = DrvAggr_Aggregation(dev, &SendList);
+                               memset(&SendList, 0, sizeof(struct ieee80211_drv_agg_txb));
+                               if (DrvAggr_GetAggregatibleList(dev, skb, &SendList) > 1) {
+                                       skb = DrvAggr_Aggregation(dev, &SendList);
 
-                                               }
-                                       }
-                                       priv->ieee80211->softmac_hard_start_xmit(skb, dev);
+                               }
                        }
-#endif
+                       priv->ieee80211->softmac_hard_start_xmit(skb, dev);
                }
+#endif
+       }
 
 }
 
@@ -1360,14 +1363,14 @@ void rtl8192_beacon_stop(struct net_device *dev)
        u8 msr, msrm, msr2;
        struct r8192_priv *priv = ieee80211_priv(dev);
 
-       msr  = read_nic_byte(dev, MSR);
+       read_nic_byte(dev, MSR, &msr);
        msrm = msr & MSR_LINK_MASK;
        msr2 = msr & ~MSR_LINK_MASK;
 
        if (NIC_8192U == priv->card_8192)
                usb_kill_urb(priv->rx_urb[MAX_RX_URB]);
        if ((msrm == (MSR_LINK_ADHOC<<MSR_LINK_SHIFT) ||
-               (msrm == (MSR_LINK_MASTER<<MSR_LINK_SHIFT)))) {
+           (msrm == (MSR_LINK_MASTER<<MSR_LINK_SHIFT)))) {
                write_nic_byte(dev, MSR, msr2 | MSR_LINK_NONE);
                write_nic_byte(dev, MSR, msr);
        }
@@ -1375,45 +1378,45 @@ void rtl8192_beacon_stop(struct net_device *dev)
 
 void rtl8192_config_rate(struct net_device *dev, u16 *rate_config)
 {
-        struct r8192_priv *priv = ieee80211_priv(dev);
-        struct ieee80211_network *net;
-        u8 i = 0, basic_rate = 0;
-        net = & priv->ieee80211->current_network;
-
-        for (i = 0; i < net->rates_len; i++) {
-                basic_rate = net->rates[i]&0x7f;
-                switch (basic_rate) {
-                        case MGN_1M:   *rate_config |= RRSR_1M;        break;
-                        case MGN_2M:   *rate_config |= RRSR_2M;        break;
-                        case MGN_5_5M: *rate_config |= RRSR_5_5M;      break;
-                        case MGN_11M:  *rate_config |= RRSR_11M;       break;
-                        case MGN_6M:   *rate_config |= RRSR_6M;        break;
-                        case MGN_9M:   *rate_config |= RRSR_9M;        break;
-                        case MGN_12M:  *rate_config |= RRSR_12M;       break;
-                        case MGN_18M:  *rate_config |= RRSR_18M;       break;
-                        case MGN_24M:  *rate_config |= RRSR_24M;       break;
-                        case MGN_36M:  *rate_config |= RRSR_36M;       break;
-                        case MGN_48M:  *rate_config |= RRSR_48M;       break;
-                        case MGN_54M:  *rate_config |= RRSR_54M;       break;
-                }
-        }
-        for (i = 0; i < net->rates_ex_len; i++) {
-                basic_rate = net->rates_ex[i]&0x7f;
-                switch (basic_rate) {
-                        case MGN_1M:   *rate_config |= RRSR_1M;        break;
-                        case MGN_2M:   *rate_config |= RRSR_2M;        break;
-                        case MGN_5_5M: *rate_config |= RRSR_5_5M;      break;
-                        case MGN_11M:  *rate_config |= RRSR_11M;       break;
-                        case MGN_6M:   *rate_config |= RRSR_6M;        break;
-                        case MGN_9M:   *rate_config |= RRSR_9M;        break;
-                        case MGN_12M:  *rate_config |= RRSR_12M;       break;
-                        case MGN_18M:  *rate_config |= RRSR_18M;       break;
-                        case MGN_24M:  *rate_config |= RRSR_24M;       break;
-                        case MGN_36M:  *rate_config |= RRSR_36M;       break;
-                        case MGN_48M:  *rate_config |= RRSR_48M;       break;
-                        case MGN_54M:  *rate_config |= RRSR_54M;       break;
-                }
-        }
+       struct r8192_priv *priv = ieee80211_priv(dev);
+       struct ieee80211_network *net;
+       u8 i = 0, basic_rate = 0;
+       net = &priv->ieee80211->current_network;
+
+       for (i = 0; i < net->rates_len; i++) {
+               basic_rate = net->rates[i]&0x7f;
+               switch (basic_rate) {
+               case MGN_1M:    *rate_config |= RRSR_1M;        break;
+               case MGN_2M:    *rate_config |= RRSR_2M;        break;
+               case MGN_5_5M:  *rate_config |= RRSR_5_5M;      break;
+               case MGN_11M:   *rate_config |= RRSR_11M;       break;
+               case MGN_6M:    *rate_config |= RRSR_6M;        break;
+               case MGN_9M:    *rate_config |= RRSR_9M;        break;
+               case MGN_12M:   *rate_config |= RRSR_12M;       break;
+               case MGN_18M:   *rate_config |= RRSR_18M;       break;
+               case MGN_24M:   *rate_config |= RRSR_24M;       break;
+               case MGN_36M:   *rate_config |= RRSR_36M;       break;
+               case MGN_48M:   *rate_config |= RRSR_48M;       break;
+               case MGN_54M:   *rate_config |= RRSR_54M;       break;
+               }
+       }
+       for (i = 0; i < net->rates_ex_len; i++) {
+               basic_rate = net->rates_ex[i]&0x7f;
+               switch (basic_rate) {
+               case MGN_1M:    *rate_config |= RRSR_1M;        break;
+               case MGN_2M:    *rate_config |= RRSR_2M;        break;
+               case MGN_5_5M:  *rate_config |= RRSR_5_5M;      break;
+               case MGN_11M:   *rate_config |= RRSR_11M;       break;
+               case MGN_6M:    *rate_config |= RRSR_6M;        break;
+               case MGN_9M:    *rate_config |= RRSR_9M;        break;
+               case MGN_12M:   *rate_config |= RRSR_12M;       break;
+               case MGN_18M:   *rate_config |= RRSR_18M;       break;
+               case MGN_24M:   *rate_config |= RRSR_24M;       break;
+               case MGN_36M:   *rate_config |= RRSR_36M;       break;
+               case MGN_48M:   *rate_config |= RRSR_48M;       break;
+               case MGN_54M:   *rate_config |= RRSR_54M;       break;
+               }
+       }
 }
 
 
@@ -1433,7 +1436,7 @@ void rtl8192_update_cap(struct net_device *dev, u16 cap)
 
        if (net->mode & (IEEE_G|IEEE_N_24G)) {
                u8 slot_time = 0;
-               if ((cap & WLAN_CAPABILITY_SHORT_SLOT)&&(!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) //short slot time
+               if ((cap & WLAN_CAPABILITY_SHORT_SLOT) && (!priv->ieee80211->pHTInfo->bCurrentRT2RTLongSlotTime)) //short slot time
                        slot_time = SHORT_SLOT_TIME;
                else //long slot time
                        slot_time = NON_SHORT_SLOT_TIME;
@@ -1449,7 +1452,7 @@ void rtl8192_net_update(struct net_device *dev)
        struct ieee80211_network *net;
        u16 BcnTimeCfg = 0, BcnCW = 6, BcnIFS = 0xf;
        u16 rate_config = 0;
-       net = & priv->ieee80211->current_network;
+       net = &priv->ieee80211->current_network;
 
        rtl8192_config_rate(dev, &rate_config);
        priv->basic_rate = rate_config &= 0x15f;
@@ -1459,16 +1462,16 @@ void rtl8192_net_update(struct net_device *dev)
 
        rtl8192_update_msr(dev);
        if (priv->ieee80211->iw_mode == IW_MODE_ADHOC) {
-       write_nic_word(dev, ATIMWND, 2);
-       write_nic_word(dev, BCN_DMATIME, 1023);
-       write_nic_word(dev, BCN_INTERVAL, net->beacon_interval);
-       write_nic_word(dev, BCN_DRV_EARLY_INT, 1);
-       write_nic_byte(dev, BCN_ERR_THRESH, 100);
+               write_nic_word(dev, ATIMWND, 2);
+               write_nic_word(dev, BCN_DMATIME, 1023);
+               write_nic_word(dev, BCN_INTERVAL, net->beacon_interval);
+               write_nic_word(dev, BCN_DRV_EARLY_INT, 1);
+               write_nic_byte(dev, BCN_ERR_THRESH, 100);
                BcnTimeCfg |= (BcnCW<<BCN_TCFG_CW_SHIFT);
-       // TODO: BcnIFS may required to be changed on ASIC
+               // TODO: BcnIFS may required to be changed on ASIC
                BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS;
 
-       write_nic_word(dev, BCN_TCFG, BcnTimeCfg);
+               write_nic_word(dev, BCN_TCFG, BcnTimeCfg);
        }
 
 
@@ -1503,11 +1506,11 @@ u16 ComputeTxTime(u16 FrameLength, u16 DataRate, u8 bManagementFrame,
                else // Short preamble
                        FrameTime = (u16)(72+24+(FrameLength*8/(DataRate/10)));
                if ((FrameLength*8 % (DataRate/10)) != 0) //Get the Ceilling
-                               FrameTime ++;
+                       FrameTime++;
        } else {        //802.11g DSSS-OFDM PLCP length field calculation.
                N_DBPS = N_DBPSOfRate(DataRate);
                Ceiling = (16 + 8*FrameLength + 6) / N_DBPS
-                               + (((16 + 8*FrameLength + 6) % N_DBPS) ? 1 : 0);
+                       + (((16 + 8*FrameLength + 6) % N_DBPS) ? 1 : 0);
                FrameTime = (u16)(16 + 4 + 4*Ceiling + 6);
        }
        return FrameTime;
@@ -1515,46 +1518,46 @@ u16 ComputeTxTime(u16 FrameLength, u16 DataRate, u8 bManagementFrame,
 
 u16 N_DBPSOfRate(u16 DataRate)
 {
-        u16 N_DBPS = 24;
+       u16 N_DBPS = 24;
 
-        switch (DataRate) {
-        case 60:
-         N_DBPS = 24;
-         break;
+       switch (DataRate) {
+       case 60:
+               N_DBPS = 24;
+               break;
 
-        case 90:
-         N_DBPS = 36;
-         break;
+       case 90:
+               N_DBPS = 36;
+               break;
 
-        case 120:
-         N_DBPS = 48;
-         break;
+       case 120:
+               N_DBPS = 48;
+               break;
 
-        case 180:
-         N_DBPS = 72;
-         break;
+       case 180:
+               N_DBPS = 72;
+               break;
 
-        case 240:
-         N_DBPS = 96;
-         break;
+       case 240:
+               N_DBPS = 96;
+               break;
 
-        case 360:
-         N_DBPS = 144;
-         break;
+       case 360:
+               N_DBPS = 144;
+               break;
 
-        case 480:
-         N_DBPS = 192;
-         break;
+       case 480:
+               N_DBPS = 192;
+               break;
 
-        case 540:
-         N_DBPS = 216;
-         break;
+       case 540:
+               N_DBPS = 216;
+               break;
 
-        default:
-         break;
-        }
+       default:
+               break;
+       }
 
-        return N_DBPS;
+       return N_DBPS;
 }
 
 void rtl819xU_cmd_isr(struct urb *tx_cmd_urb, struct pt_regs *regs)
@@ -1613,16 +1616,15 @@ short rtl819xU_tx_cmd(struct net_device *dev, struct sk_buff *skb)
                printk("%8x ", tx[i]);
        printk("\n");
 #endif
-       usb_fill_bulk_urb(tx_urb, priv->udev, usb_sndbulkpipe(priv->udev, idx_pipe), \
-                       skb->data, skb->len, rtl8192_tx_isr, skb);
+       usb_fill_bulk_urb(tx_urb, priv->udev, usb_sndbulkpipe(priv->udev, idx_pipe),
+                         skb->data, skb->len, rtl8192_tx_isr, skb);
 
        status = usb_submit_urb(tx_urb, GFP_ATOMIC);
 
        if (!status) {
                return 0;
        } else {
-               DMESGE("Error TX CMD URB, error %d",
-                               status);
+               DMESGE("Error TX CMD URB, error %d", status);
                return -1;
        }
 }
@@ -1725,7 +1727,7 @@ u8 QueryIsShort(u8 TxHT, u8 TxRate, cb_desc *tcb_desc)
 {
        u8   tmp_Short;
 
-       tmp_Short = (TxHT == 1)?((tcb_desc->bUseShortGI)?1:0):((tcb_desc->bUseShortPreamble)?1:0);
+       tmp_Short = (TxHT == 1) ? ((tcb_desc->bUseShortGI) ? 1 : 0) : ((tcb_desc->bUseShortPreamble) ? 1 : 0);
 
        if (TxHT == 1 && TxRate != DESC90_RATEMCS15)
                tmp_Short = 0;
@@ -1774,7 +1776,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb)
        /* Fill Tx firmware info */
        memset(tx_fwinfo, 0, sizeof(tx_fwinfo_819x_usb));
        /* DWORD 0 */
-       tx_fwinfo->TxHT = (tcb_desc->data_rate&0x80)?1:0;
+       tx_fwinfo->TxHT = (tcb_desc->data_rate&0x80) ? 1 : 0;
        tx_fwinfo->TxRate = MRateToHwRate8190Pci(tcb_desc->data_rate);
        tx_fwinfo->EnableCPUDur = tcb_desc->bTxEnableFwCalcDur;
        tx_fwinfo->Short = QueryIsShort(tx_fwinfo->TxHT, tx_fwinfo->TxRate, tcb_desc);
@@ -1791,15 +1793,15 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb)
        }
 
        /* Protection mode related */
-       tx_fwinfo->RtsEnable = (tcb_desc->bRTSEnable)?1:0;
-       tx_fwinfo->CtsEnable = (tcb_desc->bCTSEnable)?1:0;
-       tx_fwinfo->RtsSTBC = (tcb_desc->bRTSSTBC)?1:0;
-       tx_fwinfo->RtsHT = (tcb_desc->rts_rate&0x80)?1:0;
+       tx_fwinfo->RtsEnable = (tcb_desc->bRTSEnable) ? 1 : 0;
+       tx_fwinfo->CtsEnable = (tcb_desc->bCTSEnable) ? 1 : 0;
+       tx_fwinfo->RtsSTBC = (tcb_desc->bRTSSTBC) ? 1 : 0;
+       tx_fwinfo->RtsHT = (tcb_desc->rts_rate&0x80) ? 1 : 0;
        tx_fwinfo->RtsRate =  MRateToHwRate8190Pci((u8)tcb_desc->rts_rate);
-       tx_fwinfo->RtsSubcarrier = (tx_fwinfo->RtsHT == 0)?(tcb_desc->RTSSC):0;
-       tx_fwinfo->RtsBandwidth = (tx_fwinfo->RtsHT == 1)?((tcb_desc->bRTSBW)?1:0):0;
-       tx_fwinfo->RtsShort = (tx_fwinfo->RtsHT == 0)?(tcb_desc->bRTSUseShortPreamble?1:0):\
-                               (tcb_desc->bRTSUseShortGI?1:0);
+       tx_fwinfo->RtsSubcarrier = (tx_fwinfo->RtsHT == 0) ? (tcb_desc->RTSSC) : 0;
+       tx_fwinfo->RtsBandwidth = (tx_fwinfo->RtsHT == 1) ? ((tcb_desc->bRTSBW) ? 1 : 0) : 0;
+       tx_fwinfo->RtsShort = (tx_fwinfo->RtsHT == 0) ? (tcb_desc->bRTSUseShortPreamble ? 1 : 0) :
+                             (tcb_desc->bRTSUseShortGI ? 1 : 0);
 
        /* Set Bandwidth and sub-channel settings. */
        if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40) {
@@ -1838,29 +1840,29 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb)
        /*DWORD 1*/
        tx_desc->SecCAMID = 0;
        tx_desc->RATid = tcb_desc->RATRIndex;
-               tx_desc->NoEnc = 1;
+       tx_desc->NoEnc = 1;
        tx_desc->SecType = 0x0;
-               if (tcb_desc->bHwSec) {
-                               switch (priv->ieee80211->pairwise_key_type) {
-                                       case KEY_TYPE_WEP40:
-                                       case KEY_TYPE_WEP104:
-                                                tx_desc->SecType = 0x1;
-                                                tx_desc->NoEnc = 0;
-                                                break;
-                                       case KEY_TYPE_TKIP:
-                                                tx_desc->SecType = 0x2;
-                                                tx_desc->NoEnc = 0;
-                                                break;
-                                       case KEY_TYPE_CCMP:
-                                                tx_desc->SecType = 0x3;
-                                                tx_desc->NoEnc = 0;
-                                                break;
-                                       case KEY_TYPE_NA:
-                                                tx_desc->SecType = 0x0;
-                                                tx_desc->NoEnc = 1;
-                                                break;
-                               }
-                       }
+       if (tcb_desc->bHwSec) {
+               switch (priv->ieee80211->pairwise_key_type) {
+               case KEY_TYPE_WEP40:
+               case KEY_TYPE_WEP104:
+                       tx_desc->SecType = 0x1;
+                       tx_desc->NoEnc = 0;
+                       break;
+               case KEY_TYPE_TKIP:
+                       tx_desc->SecType = 0x2;
+                       tx_desc->NoEnc = 0;
+                       break;
+               case KEY_TYPE_CCMP:
+                       tx_desc->SecType = 0x3;
+                       tx_desc->NoEnc = 0;
+                       break;
+               case KEY_TYPE_NA:
+                       tx_desc->SecType = 0x0;
+                       tx_desc->NoEnc = 1;
+                       break;
+               }
+       }
 
        tx_desc->QueueSelect = MapHwQueueToFirmwareQueue(tcb_desc->queue_index);
        tx_desc->TxFWInfoSize =  sizeof(tx_fwinfo_819x_usb);
@@ -1892,12 +1894,12 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb)
 
        /* To submit bulk urb */
        usb_fill_bulk_urb(tx_urb, udev,
-                       usb_sndbulkpipe(udev, idx_pipe), skb->data,
-                       skb->len, rtl8192_tx_isr, skb);
+                         usb_sndbulkpipe(udev, idx_pipe), skb->data,
+                         skb->len, rtl8192_tx_isr, skb);
 
        status = usb_submit_urb(tx_urb, GFP_ATOMIC);
        if (!status) {
-//we need to send 0 byte packet whenever 512N bytes/64N(HIGN SPEED/NORMAL SPEED) bytes packet has been transmitted. Otherwise, it will be halt to wait for another packet. WB. 2008.08.27
+               //we need to send 0 byte packet whenever 512N bytes/64N(HIGN SPEED/NORMAL SPEED) bytes packet has been transmitted. Otherwise, it will be halt to wait for another packet. WB. 2008.08.27
                bool bSend0Byte = false;
                u8 zero = 0;
                if (udev->speed == USB_SPEED_HIGH) {
@@ -1914,12 +1916,12 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb)
                                return -ENOMEM;
                        }
                        usb_fill_bulk_urb(tx_urb_zero, udev,
-                                       usb_sndbulkpipe(udev, idx_pipe), &zero,
-                                       0, tx_zero_isr, dev);
+                                         usb_sndbulkpipe(udev, idx_pipe), &zero,
+                                         0, tx_zero_isr, dev);
                        status = usb_submit_urb(tx_urb_zero, GFP_ATOMIC);
                        if (status) {
-                       RT_TRACE(COMP_ERR, "Error TX URB for zero byte %d, error %d", atomic_read(&priv->tx_pending[tcb_desc->queue_index]), status);
-                       return -1;
+                               RT_TRACE(COMP_ERR, "Error TX URB for zero byte %d, error %d", atomic_read(&priv->tx_pending[tcb_desc->queue_index]), status);
+                               return -1;
                        }
                }
                dev->trans_start = jiffies;
@@ -1927,7 +1929,7 @@ short rtl8192_tx(struct net_device *dev, struct sk_buff *skb)
                return 0;
        } else {
                RT_TRACE(COMP_ERR, "Error TX URB %d, error %d", atomic_read(&priv->tx_pending[tcb_desc->queue_index]),
-                               status);
+                        status);
                return -1;
        }
 }
@@ -1937,7 +1939,7 @@ short rtl8192_usb_initendpoints(struct net_device *dev)
        struct r8192_priv *priv = ieee80211_priv(dev);
 
        priv->rx_urb = kmalloc(sizeof(struct urb *) * (MAX_RX_URB+1),
-                               GFP_KERNEL);
+                              GFP_KERNEL);
        if (priv->rx_urb == NULL)
                return -ENOMEM;
 
@@ -1954,21 +1956,21 @@ short rtl8192_usb_initendpoints(struct net_device *dev)
 
 #ifdef THOMAS_BEACON
        {
-       long align = 0;
-       void *oldaddr, *newaddr;
-
-       priv->rx_urb[16] = usb_alloc_urb(0, GFP_KERNEL);
-       priv->oldaddr = kmalloc(16, GFP_KERNEL);
-       oldaddr = priv->oldaddr;
-       align = ((long)oldaddr) & 3;
-       if (align) {
-               newaddr = oldaddr + 4 - align;
-               priv->rx_urb[16]->transfer_buffer_length = 16 - 4 + align;
-       } else {
-               newaddr = oldaddr;
-               priv->rx_urb[16]->transfer_buffer_length = 16;
-       }
-       priv->rx_urb[16]->transfer_buffer = newaddr;
+               long align = 0;
+               void *oldaddr, *newaddr;
+
+               priv->rx_urb[16] = usb_alloc_urb(0, GFP_KERNEL);
+               priv->oldaddr = kmalloc(16, GFP_KERNEL);
+               oldaddr = priv->oldaddr;
+               align = ((long)oldaddr) & 3;
+               if (align) {
+                       newaddr = oldaddr + 4 - align;
+                       priv->rx_urb[16]->transfer_buffer_length = 16 - 4 + align;
+               } else {
+                       newaddr = oldaddr;
+                       priv->rx_urb[16]->transfer_buffer_length = 16;
+               }
+               priv->rx_urb[16]->transfer_buffer = newaddr;
        }
 #endif
 
@@ -2053,12 +2055,12 @@ void rtl8192_link_change(struct net_device *dev)
                rtl8192_update_ratr_table(dev);
                //add this as in pure N mode, wep encryption will use software way, but there is no chance to set this as wep will not set group key in wext. WB.2008.07.08
                if ((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type))
-               EnableHWSecurityConfig8192(dev);
+                       EnableHWSecurityConfig8192(dev);
        }
        /*update timing params*/
-        if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC) {
+       if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC) {
                u32 reg = 0;
-               reg = read_nic_dword(dev, RCR);
+               read_nic_dword(dev, RCR, &reg);
                if (priv->ieee80211->state == IEEE80211_LINKED)
                        priv->ReceiveConfig = reg |= RCR_CBSSID;
                else
@@ -2105,7 +2107,7 @@ void rtl8192_qos_activate(struct work_struct *work)
        if (priv == NULL)
                return;
 
-       mutex_lock(&priv->mutex);
+       mutex_lock(&priv->mutex);
        if (priv->ieee80211->state != IEEE80211_LINKED)
                goto success;
        RT_TRACE(COMP_QOS, "qos active process with associate response received\n");
@@ -2114,22 +2116,22 @@ void rtl8192_qos_activate(struct work_struct *work)
        /* update the ac parameter to related registers */
        for (i = 0; i <  QOS_QUEUE_NUM; i++) {
                //Mode G/A: slotTimeTimer = 9; Mode B: 20
-               u1bAIFS = qos_parameters->aifs[i] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime;
+               u1bAIFS = qos_parameters->aifs[i] * ((mode&(IEEE_G|IEEE_N_24G)) ? 9 : 20) + aSifsTime;
                u4bAcParam = ((((u32)(qos_parameters->tx_op_limit[i]))<< AC_PARAM_TXOP_LIMIT_OFFSET)|
-                               (((u32)(qos_parameters->cw_max[i]))<< AC_PARAM_ECW_MAX_OFFSET)|
-                               (((u32)(qos_parameters->cw_min[i]))<< AC_PARAM_ECW_MIN_OFFSET)|
-                               ((u32)u1bAIFS << AC_PARAM_AIFS_OFFSET));
+                             (((u32)(qos_parameters->cw_max[i]))<< AC_PARAM_ECW_MAX_OFFSET)|
+                             (((u32)(qos_parameters->cw_min[i]))<< AC_PARAM_ECW_MIN_OFFSET)|
+                             ((u32)u1bAIFS << AC_PARAM_AIFS_OFFSET));
 
                write_nic_dword(dev, WDCAPARA_ADD[i], u4bAcParam);
        }
 
 success:
-       mutex_unlock(&priv->mutex);
+       mutex_unlock(&priv->mutex);
 }
 
 static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv,
-               int active_network,
-               struct ieee80211_network *network)
+                                            int active_network,
+                                            struct ieee80211_network *network)
 {
        int ret = 0;
        u32 size = sizeof(struct ieee80211_qos_parameters);
@@ -2142,21 +2144,21 @@ static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv,
 
        if (network->flags & NETWORK_HAS_QOS_MASK) {
                if (active_network &&
-                               (network->flags & NETWORK_HAS_QOS_PARAMETERS))
+                   (network->flags & NETWORK_HAS_QOS_PARAMETERS))
                        network->qos_data.active = network->qos_data.supported;
 
                if ((network->qos_data.active == 1) && (active_network == 1) &&
-                               (network->flags & NETWORK_HAS_QOS_PARAMETERS) &&
-                               (network->qos_data.old_param_count !=
-                                network->qos_data.param_count)) {
+                   (network->flags & NETWORK_HAS_QOS_PARAMETERS) &&
+                   (network->qos_data.old_param_count !=
+                    network->qos_data.param_count)) {
                        network->qos_data.old_param_count =
                                network->qos_data.param_count;
                        queue_work(priv->priv_wq, &priv->qos_activate);
                        RT_TRACE(COMP_QOS, "QoS parameters change call "
-                                       "qos_activate\n");
+                                "qos_activate\n");
                }
        } else {
-               memcpy(&priv->ieee80211->current_network.qos_data.parameters,\
+               memcpy(&priv->ieee80211->current_network.qos_data.parameters,
                       &def_qos_parameters, size);
 
                if ((network->qos_data.active == 1) && (active_network == 1)) {
@@ -2172,8 +2174,8 @@ static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv,
 
 /* handle and manage frame from beacon and probe response */
 static int rtl8192_handle_beacon(struct net_device *dev,
-                             struct ieee80211_beacon *beacon,
-                             struct ieee80211_network *network)
+                                struct ieee80211_beacon *beacon,
+                                struct ieee80211_network *network)
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
 
@@ -2189,7 +2191,7 @@ static int rtl8192_handle_beacon(struct net_device *dev,
 * setting
 */
 static int rtl8192_qos_association_resp(struct r8192_priv *priv,
-                                   struct ieee80211_network *network)
+                                       struct ieee80211_network *network)
 {
        int ret = 0;
        unsigned long flags;
@@ -2207,18 +2209,18 @@ static int rtl8192_qos_association_resp(struct r8192_priv *priv,
 
        spin_lock_irqsave(&priv->ieee80211->lock, flags);
        if (network->flags & NETWORK_HAS_QOS_PARAMETERS) {
-               memcpy(&priv->ieee80211->current_network.qos_data.parameters,\
-                        &network->qos_data.parameters,\
-                       sizeof(struct ieee80211_qos_parameters));
+               memcpy(&priv->ieee80211->current_network.qos_data.parameters,
+                      &network->qos_data.parameters,
+                      sizeof(struct ieee80211_qos_parameters));
                priv->ieee80211->current_network.qos_data.active = 1;
-                       set_qos_param = 1;
-                       /* update qos parameter for current network */
-                       priv->ieee80211->current_network.qos_data.old_param_count = \
-                                priv->ieee80211->current_network.qos_data.param_count;
-                       priv->ieee80211->current_network.qos_data.param_count = \
-                                network->qos_data.param_count;
+               set_qos_param = 1;
+               /* update qos parameter for current network */
+               priv->ieee80211->current_network.qos_data.old_param_count =
+                       priv->ieee80211->current_network.qos_data.param_count;
+               priv->ieee80211->current_network.qos_data.param_count =
+                       network->qos_data.param_count;
        } else {
-               memcpy(&priv->ieee80211->current_network.qos_data.parameters,\
+               memcpy(&priv->ieee80211->current_network.qos_data.parameters,
                       &def_qos_parameters, size);
                priv->ieee80211->current_network.qos_data.active = 0;
                priv->ieee80211->current_network.qos_data.supported = 0;
@@ -2237,8 +2239,8 @@ static int rtl8192_qos_association_resp(struct r8192_priv *priv,
 
 
 static int rtl8192_handle_assoc_response(struct net_device *dev,
-                                    struct ieee80211_assoc_response_frame *resp,
-                                    struct ieee80211_network *network)
+                                        struct ieee80211_assoc_response_frame *resp,
+                                        struct ieee80211_network *network)
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
        rtl8192_qos_association_resp(priv, network);
@@ -2256,28 +2258,28 @@ void rtl8192_update_ratr_table(struct net_device *dev)
        rtl8192_config_rate(dev, (u16 *)(&ratr_value));
        ratr_value |= (*(u16 *)(pMcsRate)) << 12;
        switch (ieee->mode) {
-               case IEEE_A:
-                       ratr_value &= 0x00000FF0;
-                       break;
-               case IEEE_B:
-                       ratr_value &= 0x0000000F;
-                       break;
-               case IEEE_G:
-                       ratr_value &= 0x00000FF7;
-                       break;
-               case IEEE_N_24G:
-               case IEEE_N_5G:
-                       if (ieee->pHTInfo->PeerMimoPs == 0) {//MIMO_PS_STATIC
-                               ratr_value &= 0x0007F007;
-                       } else {
-                               if (priv->rf_type == RF_1T2R)
-                                       ratr_value &= 0x000FF007;
-                               else
-                                       ratr_value &= 0x0F81F007;
-                       }
-                       break;
-               default:
-                       break;
+       case IEEE_A:
+               ratr_value &= 0x00000FF0;
+               break;
+       case IEEE_B:
+               ratr_value &= 0x0000000F;
+               break;
+       case IEEE_G:
+               ratr_value &= 0x00000FF7;
+               break;
+       case IEEE_N_24G:
+       case IEEE_N_5G:
+               if (ieee->pHTInfo->PeerMimoPs == 0) {//MIMO_PS_STATIC
+                       ratr_value &= 0x0007F007;
+               } else {
+                       if (priv->rf_type == RF_1T2R)
+                               ratr_value &= 0x000FF007;
+                       else
+                               ratr_value &= 0x0F81F007;
+               }
+               break;
+       default:
+               break;
        }
        ratr_value &= 0x0FFFFFFF;
        if (ieee->pHTInfo->bCurTxBW40MHz && ieee->pHTInfo->bCurShortGI40MHz)
@@ -2350,17 +2352,17 @@ u8 rtl8192_getSupportedWireleeMode(struct net_device *dev)
        struct r8192_priv *priv = ieee80211_priv(dev);
        u8 ret = 0;
        switch (priv->rf_chip) {
-               case RF_8225:
-               case RF_8256:
-               case RF_PSEUDO_11N:
-                       ret = (WIRELESS_MODE_N_24G|WIRELESS_MODE_G|WIRELESS_MODE_B);
-                       break;
-               case RF_8258:
-                       ret = (WIRELESS_MODE_A|WIRELESS_MODE_N_5G);
-                       break;
-               default:
-                       ret = WIRELESS_MODE_B;
-                       break;
+       case RF_8225:
+       case RF_8256:
+       case RF_PSEUDO_11N:
+               ret = (WIRELESS_MODE_N_24G|WIRELESS_MODE_G|WIRELESS_MODE_B);
+               break;
+       case RF_8258:
+               ret = (WIRELESS_MODE_A|WIRELESS_MODE_N_5G);
+               break;
+       default:
+               ret = WIRELESS_MODE_B;
+               break;
        }
        return ret;
 }
@@ -2413,7 +2415,7 @@ static void rtl8192_init_priv_variable(struct net_device *dev)
        priv->ieee80211->rts = DEFAULT_RTS_THRESHOLD;
        priv->ieee80211->rate = 110; //11 mbps
        priv->ieee80211->short_slot = 1;
-       priv->promisc = (dev->flags & IFF_PROMISC) ? 1:0;
+       priv->promisc = (dev->flags & IFF_PROMISC) ? 1 : 0;
        priv->CckPwEnl = 6;
        //for silent reset
        priv->IrpPendingCount = 1;
@@ -2465,15 +2467,15 @@ static void rtl8192_init_priv_variable(struct net_device *dev)
                pHalData->LongRetryLimit = 7;
        }
 #endif
-               priv->ShortRetryLimit = 0x30;
-               priv->LongRetryLimit = 0x30;
+       priv->ShortRetryLimit = 0x30;
+       priv->LongRetryLimit = 0x30;
        priv->EarlyRxThreshold = 7;
        priv->enable_gpio0 = 0;
        priv->TransmitConfig =
                (TCR_MXDMA_2048<<TCR_MXDMA_OFFSET)|  // Max DMA Burst Size per Tx DMA Burst, 7: reserved.
                (priv->ShortRetryLimit<<TCR_SRL_OFFSET)|        // Short retry limit
                (priv->LongRetryLimit<<TCR_LRL_OFFSET) |        // Long retry limit
-               (false ? TCR_SAT: 0);   // FALSE: HW provides PLCP length and LENGEXT, TRUE: SW provides them
+               (false ? TCR_SAT : 0);  // FALSE: HW provides PLCP length and LENGEXT, TRUE: SW provides them
 #ifdef TO_DO_LIST
        if (Adapter->bInHctTest)
                pHalData->ReceiveConfig =       pHalData->CSMethod |
@@ -2484,7 +2486,7 @@ static void rtl8192_init_priv_variable(struct net_device *dev)
                                                RCR_AICV | RCR_ACRC32 |                 //accept ICV/CRC error packet
                                                ((u32)7<<RCR_MXDMA_OFFSET) | // Max DMA Burst Size per Rx DMA Burst, 7: unlimited.
                                                (pHalData->EarlyRxThreshold<<RCR_FIFO_OFFSET) | // Rx FIFO Threshold, 7: No Rx threshold.
-                                               (pHalData->EarlyRxThreshold == 7 ? RCR_OnlyErlPkt:0);
+                                               (pHalData->EarlyRxThreshold == 7 ? RCR_OnlyErlPkt : 0);
        else
 
 #endif
@@ -2494,7 +2496,7 @@ static void rtl8192_init_priv_variable(struct net_device *dev)
                RCR_AB | RCR_AM | RCR_APM |     //accept BC/MC/UC
                ((u32)7<<RCR_MXDMA_OFFSET)| // Max DMA Burst Size per Rx DMA Burst, 7: unlimited.
                (priv->EarlyRxThreshold<<RX_FIFO_THRESHOLD_SHIFT) | // Rx FIFO Threshold, 7: No Rx threshold.
-               (priv->EarlyRxThreshold == 7 ? RCR_ONLYERLPKT:0);
+               (priv->EarlyRxThreshold == 7 ? RCR_ONLYERLPKT : 0);
 
        priv->AcmControl = 0;
        priv->pFirmware = kzalloc(sizeof(rt_firmware), GFP_KERNEL);
@@ -2505,11 +2507,11 @@ static void rtl8192_init_priv_variable(struct net_device *dev)
 
        /* Tx related queue */
        for (i = 0; i < MAX_QUEUE_SIZE; i++)
-               skb_queue_head_init(&priv->ieee80211->skb_waitQ [i]);
+               skb_queue_head_init(&priv->ieee80211->skb_waitQ[i]);
        for (i = 0; i < MAX_QUEUE_SIZE; i++)
-               skb_queue_head_init(&priv->ieee80211->skb_aggQ [i]);
+               skb_queue_head_init(&priv->ieee80211->skb_aggQ[i]);
        for (i = 0; i < MAX_QUEUE_SIZE; i++)
-               skb_queue_head_init(&priv->ieee80211->skb_drv_aggQ [i]);
+               skb_queue_head_init(&priv->ieee80211->skb_drv_aggQ[i]);
        priv->rf_set_chan = rtl8192_phy_SwChnl;
 }
 
@@ -2544,8 +2546,8 @@ static void rtl8192_init_priv_task(struct net_device *dev)
        INIT_WORK(&priv->qos_activate, rtl8192_qos_activate);
 
        tasklet_init(&priv->irq_rx_tasklet,
-            (void(*)(unsigned long))rtl8192_irq_rx_tasklet,
-            (unsigned long)priv);
+                    (void(*)(unsigned long))rtl8192_irq_rx_tasklet,
+                    (unsigned long)priv);
 }
 
 static void rtl8192_get_eeprom_size(struct net_device *dev)
@@ -2553,7 +2555,7 @@ static void rtl8192_get_eeprom_size(struct net_device *dev)
        u16 curCR = 0;
        struct r8192_priv *priv = ieee80211_priv(dev);
        RT_TRACE(COMP_EPROM, "===========>%s()\n", __func__);
-       curCR = read_nic_word_E(dev, EPROM_CMD);
+       read_nic_word_E(dev, EPROM_CMD, &curCR);
        RT_TRACE(COMP_EPROM, "read from Reg EPROM_CMD(%x):%x\n", EPROM_CMD, curCR);
        //whether need I consider BIT5?
        priv->epromtype = (curCR & Cmd9346CR_9356SEL) ? EPROM_93c56 : EPROM_93c46;
@@ -2699,34 +2701,34 @@ static void rtl8192_read_eeprom_info(struct net_device *dev)
 
                //update HAL variables
                //
-                       for (i = 0; i < 14; i++) {
+               for (i = 0; i < 14; i++) {
+                       if (i <= 3)
+                               priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[0];
+                       else if (i >= 4 && i <= 9)
+                               priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[1];
+                       else
+                               priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[2];
+               }
+
+               for (i = 0; i < 14; i++) {
+                       if (priv->EEPROM_Def_Ver == 0) {
                                if (i <= 3)
-                                       priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[0];
+                                       priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelOFDM24G[0] + (priv->EEPROMTxPowerLevelCCK - priv->EEPROMTxPowerLevelOFDM24G[1]);
                                else if (i >= 4 && i <= 9)
-                                       priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[1];
+                                       priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK;
                                else
-                                       priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[2];
-                       }
-
-                       for (i = 0; i < 14; i++) {
-                               if (priv->EEPROM_Def_Ver == 0) {
-                                       if (i <= 3)
-                                               priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelOFDM24G[0] + (priv->EEPROMTxPowerLevelCCK - priv->EEPROMTxPowerLevelOFDM24G[1]);
-                                       else if (i >= 4 && i <= 9)
-                                               priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK;
-                                       else
-                                               priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelOFDM24G[2] + (priv->EEPROMTxPowerLevelCCK - priv->EEPROMTxPowerLevelOFDM24G[1]);
-                               } else if (priv->EEPROM_Def_Ver == 1) {
-                                       if (i <= 3)
-                                               priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK_V1[0];
-                                       else if (i >= 4 && i <= 9)
-                                               priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK_V1[1];
-                                       else
-                                               priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK_V1[2];
-                               }
+                                       priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelOFDM24G[2] + (priv->EEPROMTxPowerLevelCCK - priv->EEPROMTxPowerLevelOFDM24G[1]);
+                       } else if (priv->EEPROM_Def_Ver == 1) {
+                               if (i <= 3)
+                                       priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK_V1[0];
+                               else if (i >= 4 && i <= 9)
+                                       priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK_V1[1];
+                               else
+                                       priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK_V1[2];
                        }
+               }
                priv->TxPowerDiff = priv->EEPROMPwDiff;
-// Antenna B gain offset to antenna A, bit0~3
+               // Antenna B gain offset to antenna A, bit0~3
                priv->AntennaTxPwDiff[0] = (priv->EEPROMTxPowerDiff & 0xf);
                // Antenna C gain offset to antenna A, bit4~7
                priv->AntennaTxPwDiff[1] = ((priv->EEPROMTxPowerDiff & 0xf0)>>4);
@@ -2737,34 +2739,34 @@ static void rtl8192_read_eeprom_info(struct net_device *dev)
                priv->ThermalMeter[0] = priv->EEPROMThermalMeter;
        }//end if VersionID == VERSION_819xU_A
 
-//added by vivi, for dlink led, 20080416
+       //added by vivi, for dlink led, 20080416
        switch (priv->eeprom_CustomerID) {
-               case EEPROM_CID_RUNTOP:
-                       priv->CustomerID = RT_CID_819x_RUNTOP;
-                       break;
+       case EEPROM_CID_RUNTOP:
+               priv->CustomerID = RT_CID_819x_RUNTOP;
+               break;
 
-               case EEPROM_CID_DLINK:
-                       priv->CustomerID = RT_CID_DLINK;
-                       break;
+       case EEPROM_CID_DLINK:
+               priv->CustomerID = RT_CID_DLINK;
+               break;
 
-               default:
-                       priv->CustomerID = RT_CID_DEFAULT;
-                       break;
+       default:
+               priv->CustomerID = RT_CID_DEFAULT;
+               break;
 
        }
 
        switch (priv->CustomerID) {
-               case RT_CID_819x_RUNTOP:
-                       priv->LedStrategy = SW_LED_MODE2;
-                       break;
+       case RT_CID_819x_RUNTOP:
+               priv->LedStrategy = SW_LED_MODE2;
+               break;
 
-               case RT_CID_DLINK:
-                       priv->LedStrategy = SW_LED_MODE4;
-                       break;
+       case RT_CID_DLINK:
+               priv->LedStrategy = SW_LED_MODE4;
+               break;
 
-               default:
-                       priv->LedStrategy = SW_LED_MODE0;
-                       break;
+       default:
+               priv->LedStrategy = SW_LED_MODE0;
+               break;
 
        }
 
@@ -2852,7 +2854,7 @@ void rtl8192_hwconfig(struct net_device *dev)
        struct r8192_priv *priv = ieee80211_priv(dev);
        u32 ratr_value = 0;
 
-// Set RRSR, RATR, and BW_OPMODE registers
+       // Set RRSR, RATR, and BW_OPMODE registers
        //
        switch (priv->ieee80211->mode) {
        case WIRELESS_MODE_B:
@@ -2873,24 +2875,24 @@ void rtl8192_hwconfig(struct net_device *dev)
        case WIRELESS_MODE_AUTO:
 #ifdef TO_DO_LIST
                if (Adapter->bInHctTest) {
-                   regBwOpMode = BW_OPMODE_20MHZ;
-                   regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
-                   regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+                       regBwOpMode = BW_OPMODE_20MHZ;
+                       regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+                       regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
                }
                else
 #endif
                {
-                   regBwOpMode = BW_OPMODE_20MHZ;
-                   regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
-                   regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+                       regBwOpMode = BW_OPMODE_20MHZ;
+                       regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
+                       regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
                }
                break;
        case WIRELESS_MODE_N_24G:
                // It support CCK rate by default.
                // CCK rate will be filtered out only when associated AP does not support it.
                regBwOpMode = BW_OPMODE_20MHZ;
-                       regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
-                       regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+               regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
+               regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
                break;
        case WIRELESS_MODE_N_5G:
                regBwOpMode = BW_OPMODE_5G;
@@ -2900,12 +2902,12 @@ void rtl8192_hwconfig(struct net_device *dev)
        }
 
        write_nic_byte(dev, BW_OPMODE, regBwOpMode);
-               ratr_value = regRATR;
-               if (priv->rf_type == RF_1T2R)
-                       ratr_value &= ~(RATE_ALL_OFDM_2SS);
-               write_nic_dword(dev, RATR0, ratr_value);
-               write_nic_byte(dev, UFWP, 1);
-       regTmp = read_nic_byte(dev, 0x313);
+       ratr_value = regRATR;
+       if (priv->rf_type == RF_1T2R)
+               ratr_value &= ~(RATE_ALL_OFDM_2SS);
+       write_nic_dword(dev, RATR0, ratr_value);
+       write_nic_byte(dev, UFWP, 1);
+       read_nic_byte(dev, 0x313, &regTmp);
        regRRSR = ((regTmp) << 24) | (regRRSR & 0x00ffffff);
        write_nic_dword(dev, RRSR, regRRSR);
 
@@ -2913,8 +2915,8 @@ void rtl8192_hwconfig(struct net_device *dev)
        // Set Retry Limit here
        //
        write_nic_word(dev, RETRY_LIMIT,
-                       priv->ShortRetryLimit << RETRY_LIMIT_SHORT_SHIFT | \
-                       priv->LongRetryLimit << RETRY_LIMIT_LONG_SHIFT);
+                      priv->ShortRetryLimit << RETRY_LIMIT_SHORT_SHIFT |
+                      priv->LongRetryLimit << RETRY_LIMIT_LONG_SHIFT);
        // Set Contention Window here
 
        // Set Tx AGC
@@ -2934,6 +2936,7 @@ bool rtl8192_adapter_start(struct net_device *dev)
        u32 dwRegRead = 0;
        bool init_status = true;
        u8 SECR_value = 0x0;
+       u8 tmp;
        RT_TRACE(COMP_INIT, "====>%s()\n", __func__);
        priv->Rf_Mode = RF_OP_By_SW_3wire;
        //for ASIC power on sequence
@@ -2947,7 +2950,7 @@ bool rtl8192_adapter_start(struct net_device *dev)
        priv->pFirmware->firmware_status = FW_STATUS_0_INIT;
        //config CPUReset Register
        //Firmware Reset or not?
-       dwRegRead = read_nic_dword(dev, CPU_GEN);
+       read_nic_dword(dev, CPU_GEN, &dwRegRead);
        if (priv->pFirmware->firmware_status == FW_STATUS_0_INIT)
                dwRegRead |= CPU_GEN_SYSTEM_RESET; //do nothing here?
        else if (priv->pFirmware->firmware_status == FW_STATUS_5_READY)
@@ -2962,7 +2965,7 @@ bool rtl8192_adapter_start(struct net_device *dev)
        //Loopback mode or not
        priv->LoopbackMode = RTL819xU_NO_LOOPBACK;
 
-       dwRegRead = read_nic_dword(dev, CPU_GEN);
+       read_nic_dword(dev, CPU_GEN, &dwRegRead);
        if (priv->LoopbackMode == RTL819xU_NO_LOOPBACK)
                dwRegRead = ((dwRegRead & CPU_GEN_NO_LOOPBACK_MSK) | CPU_GEN_NO_LOOPBACK_SET);
        else if (priv->LoopbackMode == RTL819xU_MAC_LOOPBACK)
@@ -2976,7 +2979,8 @@ bool rtl8192_adapter_start(struct net_device *dev)
        udelay(500);
 
        //xiong add for new bitfile:usb suspend reset pin set to 1. //do we need?
-       write_nic_byte_E(dev, 0x5f, (read_nic_byte_E(dev, 0x5f)|0x20));
+       read_nic_byte_E(dev, 0x5f, &tmp);
+       write_nic_byte_E(dev, 0x5f, tmp|0x20);
 
        //Set Hardware
        rtl8192_hwconfig(dev);
@@ -2992,15 +2996,14 @@ bool rtl8192_adapter_start(struct net_device *dev)
        write_nic_dword(dev, RCR, priv->ReceiveConfig);
 
        //Initialize Number of Reserved Pages in Firmware Queue
-       write_nic_dword(dev, RQPN1,  NUM_OF_PAGE_IN_FW_QUEUE_BK << RSVD_FW_QUEUE_PAGE_BK_SHIFT |\
-                                               NUM_OF_PAGE_IN_FW_QUEUE_BE << RSVD_FW_QUEUE_PAGE_BE_SHIFT | \
-                                               NUM_OF_PAGE_IN_FW_QUEUE_VI << RSVD_FW_QUEUE_PAGE_VI_SHIFT | \
-                                               NUM_OF_PAGE_IN_FW_QUEUE_VO <<RSVD_FW_QUEUE_PAGE_VO_SHIFT);
-       write_nic_dword(dev, RQPN2, NUM_OF_PAGE_IN_FW_QUEUE_MGNT << RSVD_FW_QUEUE_PAGE_MGNT_SHIFT |\
-                                               NUM_OF_PAGE_IN_FW_QUEUE_CMD << RSVD_FW_QUEUE_PAGE_CMD_SHIFT);
-       write_nic_dword(dev, RQPN3, APPLIED_RESERVED_QUEUE_IN_FW| \
-                                               NUM_OF_PAGE_IN_FW_QUEUE_BCN<<RSVD_FW_QUEUE_PAGE_BCN_SHIFT
-                                               );
+       write_nic_dword(dev, RQPN1,  NUM_OF_PAGE_IN_FW_QUEUE_BK << RSVD_FW_QUEUE_PAGE_BK_SHIFT |
+                       NUM_OF_PAGE_IN_FW_QUEUE_BE << RSVD_FW_QUEUE_PAGE_BE_SHIFT |
+                       NUM_OF_PAGE_IN_FW_QUEUE_VI << RSVD_FW_QUEUE_PAGE_VI_SHIFT |
+                       NUM_OF_PAGE_IN_FW_QUEUE_VO <<RSVD_FW_QUEUE_PAGE_VO_SHIFT);
+       write_nic_dword(dev, RQPN2, NUM_OF_PAGE_IN_FW_QUEUE_MGNT << RSVD_FW_QUEUE_PAGE_MGNT_SHIFT |
+                       NUM_OF_PAGE_IN_FW_QUEUE_CMD << RSVD_FW_QUEUE_PAGE_CMD_SHIFT);
+       write_nic_dword(dev, RQPN3, APPLIED_RESERVED_QUEUE_IN_FW|
+                       NUM_OF_PAGE_IN_FW_QUEUE_BCN<<RSVD_FW_QUEUE_PAGE_BCN_SHIFT);
        write_nic_dword(dev, RATR0+4*7, (RATE_ALL_OFDM_AG | RATE_ALL_CCK));
 
        //Set AckTimeout
@@ -3008,9 +3011,9 @@ bool rtl8192_adapter_start(struct net_device *dev)
        write_nic_byte(dev, ACK_TIMEOUT, 0x30);
 
        if (priv->ResetProgress == RESET_TYPE_NORESET)
-       rtl8192_SetWirelessMode(dev, priv->ieee80211->mode);
+               rtl8192_SetWirelessMode(dev, priv->ieee80211->mode);
        if (priv->ResetProgress == RESET_TYPE_NORESET) {
-       CamResetAllEntry(dev);
+               CamResetAllEntry(dev);
                SECR_value |= SCR_TxEncEnable;
                SECR_value |= SCR_RxDecEnable;
                SECR_value |= SCR_NoSKMC;
@@ -3025,7 +3028,7 @@ bool rtl8192_adapter_start(struct net_device *dev)
        {
                int i;
                for (i = 0; i < QOS_QUEUE_NUM; i++)
-               write_nic_dword(dev, WDCAPARA_ADD[i], DEFAULT_EDCA);
+                       write_nic_dword(dev, WDCAPARA_ADD[i], DEFAULT_EDCA);
        }
 #ifdef USB_RX_AGGREGATION_SUPPORT
        //3 For usb rx firmware aggregation control
@@ -3033,7 +3036,7 @@ bool rtl8192_adapter_start(struct net_device *dev)
                u32 ulValue;
                PRT_HIGH_THROUGHPUT     pHTInfo = priv->ieee80211->pHTInfo;
                ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) |
-                                       (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout);
+                         (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout);
                /*
                 * If usb rx firmware aggregation is enabled,
                 * when anyone of three threshold conditions above is reached,
@@ -3060,7 +3063,7 @@ bool rtl8192_adapter_start(struct net_device *dev)
        RT_TRACE(COMP_INIT, "%s():after firmware download\n", __func__);
        //
 #ifdef TO_DO_LIST
-if (Adapter->ResetProgress == RESET_TYPE_NORESET) {
+       if (Adapter->ResetProgress == RESET_TYPE_NORESET) {
                if (pMgntInfo->RegRfOff == TRUE) { // User disable RF via registry.
                        RT_TRACE((COMP_INIT|COMP_RF), DBG_LOUD, ("InitializeAdapter819xUsb(): Turn off RF for RegRfOff ----------\n"));
                        MgntActSet_RF_State(Adapter, eRfOff, RF_CHANGE_BY_SW);
@@ -3086,8 +3089,8 @@ if (Adapter->ResetProgress == RESET_TYPE_NORESET) {
 #endif
        //config RF.
        if (priv->ResetProgress == RESET_TYPE_NORESET) {
-       rtl8192_phy_RFConfig(dev);
-       RT_TRACE(COMP_INIT, "%s():after phy RF config\n", __func__);
+               rtl8192_phy_RFConfig(dev);
+               RT_TRACE(COMP_INIT, "%s():after phy RF config\n", __func__);
        }
 
 
@@ -3105,7 +3108,8 @@ if (Adapter->ResetProgress == RESET_TYPE_NORESET) {
 
        if (priv->ResetProgress == RESET_TYPE_NORESET) {
                //if D or C cut
-               u8 tmpvalue = read_nic_byte(dev, 0x301);
+               u8 tmpvalue;
+               read_nic_byte(dev, 0x301, &tmpvalue);
                if (tmpvalue == 0x03) {
                        priv->bDcut = TRUE;
                        RT_TRACE(COMP_POWER_TRACKING, "D-cut\n");
@@ -3166,8 +3170,9 @@ static struct net_device_stats *rtl8192_stats(struct net_device *dev)
 bool HalTxCheckStuck819xUsb(struct net_device *dev)
 {
        struct r8192_priv *priv = ieee80211_priv(dev);
-       u16             RegTxCounter = read_nic_word(dev, 0x128);
+       u16             RegTxCounter;
        bool            bStuck = FALSE;
+       read_nic_word(dev, 0x128, &RegTxCounter);
        RT_TRACE(COMP_RESET, "%s():RegTxCounter is %d,TxCounter is %d\n", __func__, RegTxCounter, priv->TxCounter);
        if (priv->TxCounter == RegTxCounter)
                bStuck = TRUE;
@@ -3191,18 +3196,18 @@ RESET_TYPE TxCheckStuck(struct net_device *dev)
        // Decide such threshold according to current power save mode
        //
 
-            for (QueueID = 0; QueueID <= BEACON_QUEUE; QueueID ++) {
-                       if (QueueID == TXCMD_QUEUE)
-                        continue;
+       for (QueueID = 0; QueueID <= BEACON_QUEUE; QueueID++) {
+               if (QueueID == TXCMD_QUEUE)
+                       continue;
 #ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
-                       if ((skb_queue_len(&priv->ieee80211->skb_waitQ[QueueID]) == 0) && (skb_queue_len(&priv->ieee80211->skb_aggQ[QueueID]) == 0) && (skb_queue_len(&priv->ieee80211->skb_drv_aggQ[QueueID]) == 0))
+               if ((skb_queue_len(&priv->ieee80211->skb_waitQ[QueueID]) == 0) && (skb_queue_len(&priv->ieee80211->skb_aggQ[QueueID]) == 0) && (skb_queue_len(&priv->ieee80211->skb_drv_aggQ[QueueID]) == 0))
 #else
-                       if ((skb_queue_len(&priv->ieee80211->skb_waitQ[QueueID]) == 0)  && (skb_queue_len(&priv->ieee80211->skb_aggQ[QueueID]) == 0))
+               if ((skb_queue_len(&priv->ieee80211->skb_waitQ[QueueID]) == 0)  && (skb_queue_len(&priv->ieee80211->skb_aggQ[QueueID]) == 0))
 #endif
                                continue;
 
-                    bCheckFwTxCnt = true;
-            }
+               bCheckFwTxCnt = true;
+       }
        if (bCheckFwTxCnt) {
                if (HalTxCheckStuck819xUsb(dev)) {
                        RT_TRACE(COMP_RESET, "TxCheckStuck(): Fw indicates no Tx condition! \n");
@@ -3214,10 +3219,11 @@ RESET_TYPE TxCheckStuck(struct net_device *dev)
 
 bool HalRxCheckStuck819xUsb(struct net_device *dev)
 {
-       u16     RegRxCounter = read_nic_word(dev, 0x130);
+       u16     RegRxCounter;
        struct r8192_priv *priv = ieee80211_priv(dev);
        bool bStuck = FALSE;
        static u8       rx_chk_cnt;
+       read_nic_word(dev, 0x130, &RegRxCounter);
        RT_TRACE(COMP_RESET, "%s(): RegRxCounter is %d,RxCounter is %d\n", __func__, RegRxCounter, priv->RxCounter);
        // If rssi is small, we should check rx for long time because of bad rx.
        // or maybe it will continuous silent reset every 2 seconds.
@@ -3225,15 +3231,15 @@ bool HalRxCheckStuck819xUsb(struct net_device *dev)
        if (priv->undecorated_smoothed_pwdb >= (RateAdaptiveTH_High+5)) {
                rx_chk_cnt = 0; //high rssi, check rx stuck right now.
        } else if (priv->undecorated_smoothed_pwdb < (RateAdaptiveTH_High+5) &&
-               ((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20&&priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_40M) ||
-               (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20&&priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_20M))) {
+                  ((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_40M) ||
+                   (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb >= RateAdaptiveTH_Low_20M))) {
                if (rx_chk_cnt < 2)
                        return bStuck;
                else
                        rx_chk_cnt = 0;
-       } else if (((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20&&priv->undecorated_smoothed_pwdb < RateAdaptiveTH_Low_40M) ||
-               (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20&&priv->undecorated_smoothed_pwdb < RateAdaptiveTH_Low_20M)) &&
-               priv->undecorated_smoothed_pwdb >= VeryLowRSSI) {
+       } else if (((priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb < RateAdaptiveTH_Low_40M) ||
+                   (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 && priv->undecorated_smoothed_pwdb < RateAdaptiveTH_Low_20M)) &&
+                    priv->undecorated_smoothed_pwdb >= VeryLowRSSI) {
                if (rx_chk_cnt < 4)
                        return bStuck;
                else
@@ -3258,7 +3264,7 @@ RESET_TYPE RxCheckStuck(struct net_device *dev)
        struct r8192_priv *priv = ieee80211_priv(dev);
        bool        bRxCheck = FALSE;
 
-        if (priv->IrpPendingCount > 1)
+       if (priv->IrpPendingCount > 1)
                bRxCheck = TRUE;
 
        if (bRxCheck) {
@@ -3294,7 +3300,7 @@ RESET_TYPE rtl819x_ifcheck_resetornot(struct net_device *dev)
 
        TxResetType = TxCheckStuck(dev);
        if (rfState != eRfOff ||
-               (priv->ieee80211->iw_mode != IW_MODE_ADHOC)) {
+           (priv->ieee80211->iw_mode != IW_MODE_ADHOC)) {
                // If driver is in the status of firmware download failure , driver skips RF initialization and RF is
                // in turned off state. Driver should check whether Rx stuck and do silent reset. And
                // if driver is in firmware download failure status, driver should initialize RF in the following
@@ -3339,56 +3345,32 @@ void CamRestoreAllEntry(struct net_device *dev)
        RT_TRACE(COMP_SEC, "CamRestoreAllEntry: \n");
 
 
-       if ((priv->ieee80211->pairwise_key_type == KEY_TYPE_WEP40)||
+       if ((priv->ieee80211->pairwise_key_type == KEY_TYPE_WEP40) ||
            (priv->ieee80211->pairwise_key_type == KEY_TYPE_WEP104)) {
 
                for (EntryId = 0; EntryId < 4; EntryId++) {
-                               MacAddr = CAM_CONST_ADDR[EntryId];
-                               setKey(dev,
-                                               EntryId,
-                                               EntryId,
-                                               priv->ieee80211->pairwise_key_type,
-                                               MacAddr,
-                                               0,
-                                               NULL);
+                       MacAddr = CAM_CONST_ADDR[EntryId];
+                       setKey(dev, EntryId, EntryId,
+                              priv->ieee80211->pairwise_key_type,
+                              MacAddr, 0, NULL);
                }
 
        } else if (priv->ieee80211->pairwise_key_type == KEY_TYPE_TKIP) {
 
-                       if (priv->ieee80211->iw_mode == IW_MODE_ADHOC)
-                               setKey(dev,
-                                               4,
-                                               0,
-                                               priv->ieee80211->pairwise_key_type,
-                                               (u8 *)dev->dev_addr,
-                                               0,
-                                               NULL);
-                       else
-                               setKey(dev,
-                                               4,
-                                               0,
-                                               priv->ieee80211->pairwise_key_type,
-                                               MacAddr,
-                                               0,
-                                               NULL);
+               if (priv->ieee80211->iw_mode == IW_MODE_ADHOC)
+                       setKey(dev, 4, 0, priv->ieee80211->pairwise_key_type,
+                              (u8 *)dev->dev_addr, 0, NULL);
+               else
+                       setKey(dev, 4, 0, priv->ieee80211->pairwise_key_type,
+                              MacAddr, 0, NULL);
        } else if (priv->ieee80211->pairwise_key_type == KEY_TYPE_CCMP) {
 
-                       if (priv->ieee80211->iw_mode == IW_MODE_ADHOC)
-                               setKey(dev,
-                                               4,
-                                               0,
-                                               priv->ieee80211->pairwise_key_type,
-                                               (u8 *)dev->dev_addr,
-                                               0,
-                                               NULL);
-                       else
-                               setKey(dev,
-                                               4,
-                                               0,
-                                               priv->ieee80211->pairwise_key_type,
-                                               MacAddr,
-                                               0,
-                                               NULL);
+               if (priv->ieee80211->iw_mode == IW_MODE_ADHOC)
+                       setKey(dev, 4, 0, priv->ieee80211->pairwise_key_type,
+                              (u8 *)dev->dev_addr, 0, NULL);
+               else
+                       setKey(dev, 4, 0, priv->ieee80211->pairwise_key_type,
+                              MacAddr, 0, NULL);
        }
 
 
@@ -3396,42 +3378,24 @@ void CamRestoreAllEntry(struct net_device *dev)
        if (priv->ieee80211->group_key_type == KEY_TYPE_TKIP) {
                MacAddr = CAM_CONST_BROAD;
                for (EntryId = 1; EntryId < 4; EntryId++) {
-                               setKey(dev,
-                                               EntryId,
-                                               EntryId,
-                                               priv->ieee80211->group_key_type,
-                                               MacAddr,
-                                               0,
-                                               NULL);
+                       setKey(dev, EntryId, EntryId,
+                              priv->ieee80211->group_key_type,
+                              MacAddr, 0, NULL);
                }
                if (priv->ieee80211->iw_mode == IW_MODE_ADHOC)
-                               setKey(dev,
-                                               0,
-                                               0,
-                                               priv->ieee80211->group_key_type,
-                                               CAM_CONST_ADDR[0],
-                                               0,
-                                               NULL);
+                       setKey(dev, 0, 0, priv->ieee80211->group_key_type,
+                              CAM_CONST_ADDR[0], 0, NULL);
        } else if (priv->ieee80211->group_key_type == KEY_TYPE_CCMP) {
                MacAddr = CAM_CONST_BROAD;
                for (EntryId = 1; EntryId < 4; EntryId++) {
-                               setKey(dev,
-                                               EntryId ,
-                                               EntryId,
-                                               priv->ieee80211->group_key_type,
-                                               MacAddr,
-                                               0,
-                                               NULL);
+                       setKey(dev, EntryId, EntryId,
+                              priv->ieee80211->group_key_type,
+                              MacAddr, 0, NULL);
                }
 
                if (priv->ieee80211->iw_mode == IW_MODE_ADHOC)
-                               setKey(dev,
-                                               0,
-                                               0,
-                                               priv->ieee80211->group_key_type,
-                                               CAM_CONST_ADDR[0],
-                                               0,
-                                               NULL);
+                       setKey(dev, 0, 0, priv->ieee80211->group_key_type,
+                              CAM_CONST_ADDR[0], 0, NULL);
        }
 }
 //////////////////////////////////////////////////////////////
@@ -3535,18 +3499,18 @@ RESET_START:
 void CAM_read_entry(struct net_device *dev, u32 iIndex)
 {
        u32 target_command = 0;
-        u32 target_content = 0;
-        u8 entry_i = 0;
-        u32 ulStatus;
+       u32 target_content = 0;
+       u8 entry_i = 0;
+       u32 ulStatus;
        s32 i = 100;
        for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) {
-       // polling bit, and No Write enable, and address
+               // polling bit, and No Write enable, and address
                target_command = entry_i+CAM_CONTENT_COUNT*iIndex;
                target_command = target_command | BIT31;
 
-       //Check polling bit is clear
+               //Check polling bit is clear
                while ((i--) >= 0) {
-                       ulStatus = read_nic_dword(dev, RWCAM);
+                       read_nic_dword(dev, RWCAM, &ulStatus);
                        if (ulStatus & BIT31)
                                continue;
                        else
@@ -3554,7 +3518,7 @@ void CAM_read_entry(struct net_device *dev, u32 iIndex)
                }
                write_nic_dword(dev, RWCAM, target_command);
                RT_TRACE(COMP_SEC, "CAM_read_entry(): WRITE A0: %x \n", target_command);
-               target_content = read_nic_dword(dev, RCAMO);
+               read_nic_dword(dev, RCAMO, &target_content);
                RT_TRACE(COMP_SEC, "CAM_read_entry(): WRITE A8: %x \n", target_content);
        }
        printk("\n");
@@ -3582,8 +3546,8 @@ void rtl819x_update_rxcounts(struct r8192_priv *priv, u32 *TotalRxBcnNum,
 extern void rtl819x_watchdog_wqcallback(struct work_struct *work)
 {
        struct delayed_work *dwork = container_of(work, struct delayed_work, work);
-       struct r8192_priv *priv = container_of(dwork, struct r8192_priv, watch_dog_wq);
-       struct net_device *dev = priv->ieee80211->dev;
+       struct r8192_priv *priv = container_of(dwork, struct r8192_priv, watch_dog_wq);
+       struct net_device *dev = priv->ieee80211->dev;
        struct ieee80211_device *ieee = priv->ieee80211;
        RESET_TYPE      ResetType = RESET_TYPE_NORESET;
        static u8       check_reset_cnt;
@@ -3596,43 +3560,43 @@ extern void rtl819x_watchdog_wqcallback(struct work_struct *work)
        hal_dm_watchdog(dev);
 
        //to get busy traffic condition
-               if (ieee->state == IEEE80211_LINKED) {
-                       if (ieee->LinkDetectInfo.NumRxOkInPeriod > 666 ||
-                           ieee->LinkDetectInfo.NumTxOkInPeriod > 666 ) {
-                               bBusyTraffic = true;
-                       }
-                       ieee->LinkDetectInfo.NumRxOkInPeriod = 0;
-                       ieee->LinkDetectInfo.NumTxOkInPeriod = 0;
-                       ieee->LinkDetectInfo.bBusyTraffic = bBusyTraffic;
+       if (ieee->state == IEEE80211_LINKED) {
+               if (ieee->LinkDetectInfo.NumRxOkInPeriod > 666 ||
+                   ieee->LinkDetectInfo.NumTxOkInPeriod > 666 ) {
+                       bBusyTraffic = true;
                }
+               ieee->LinkDetectInfo.NumRxOkInPeriod = 0;
+               ieee->LinkDetectInfo.NumTxOkInPeriod = 0;
+               ieee->LinkDetectInfo.bBusyTraffic = bBusyTraffic;
+       }
        //added by amy for AP roaming
-               if (priv->ieee80211->state == IEEE80211_LINKED && priv->ieee80211->iw_mode == IW_MODE_INFRA) {
-
-                       rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum);
-                       if ((TotalRxBcnNum+TotalRxDataNum) == 0) {
-                               #ifdef TODO
-                               if (rfState == eRfOff)
-                                       RT_TRACE(COMP_ERR, "========>%s()\n", __func__);
-                               #endif
-                               netdev_dbg(dev, "===>%s(): AP is power off, connect another one\n", __func__);
-                               priv->ieee80211->state = IEEE80211_ASSOCIATING;
-                               notify_wx_assoc_event(priv->ieee80211);
-                               RemovePeerTS(priv->ieee80211, priv->ieee80211->current_network.bssid);
-                               priv->ieee80211->link_change(dev);
-                               queue_work(priv->ieee80211->wq, &priv->ieee80211->associate_procedure_wq);
+       if (priv->ieee80211->state == IEEE80211_LINKED && priv->ieee80211->iw_mode == IW_MODE_INFRA) {
+
+               rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum);
+               if ((TotalRxBcnNum+TotalRxDataNum) == 0) {
+#ifdef TODO
+                       if (rfState == eRfOff)
+                               RT_TRACE(COMP_ERR, "========>%s()\n", __func__);
+#endif
+                       netdev_dbg(dev, "===>%s(): AP is power off, connect another one\n", __func__);
+                       priv->ieee80211->state = IEEE80211_ASSOCIATING;
+                       notify_wx_assoc_event(priv->ieee80211);
+                       RemovePeerTS(priv->ieee80211, priv->ieee80211->current_network.bssid);
+                       priv->ieee80211->link_change(dev);
+                       queue_work(priv->ieee80211->wq, &priv->ieee80211->associate_procedure_wq);
 
-                       }
                }
-               priv->ieee80211->LinkDetectInfo.NumRecvBcnInPeriod = 0;
-               priv->ieee80211->LinkDetectInfo.NumRecvDataInPeriod = 0;
+       }
+       priv->ieee80211->LinkDetectInfo.NumRecvBcnInPeriod = 0;
+       priv->ieee80211->LinkDetectInfo.NumRecvDataInPeriod = 0;
        //check if reset the driver
        if (check_reset_cnt++ >= 3) {
                ResetType = rtl819x_ifcheck_resetornot(dev);
                check_reset_cnt = 3;
        }
        if ((priv->force_reset) || (priv->ResetProgress == RESET_TYPE_NORESET &&
-               (priv->bForcedSilentReset ||
-                (!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_SILENT)))) { // This is control by OID set in Pomelo
+           (priv->bForcedSilentReset ||
+           (!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_SILENT)))) { // This is control by OID set in Pomelo
                RT_TRACE(COMP_RESET, "%s():priv->force_reset is %d,priv->ResetProgress is %d, priv->bForcedSilentReset is %d,priv->bDisableNormalResetCheck is %d,ResetType is %d\n", __func__, priv->force_reset, priv->ResetProgress, priv->bForcedSilentReset, priv->bDisableNormalResetCheck, ResetType);
                rtl819x_ifsilentreset(dev);
        }
@@ -3665,7 +3629,7 @@ int _rtl8192_up(struct net_device *dev)
        RT_TRACE(COMP_INIT, "start adapter finished\n");
        rtl8192_rx_enable(dev);
        if (priv->ieee80211->state != IEEE80211_LINKED)
-       ieee80211_softmac_start_protocol(priv->ieee80211);
+               ieee80211_softmac_start_protocol(priv->ieee80211);
        ieee80211_reset_queue(priv->ieee80211);
        watch_dog_timer_callback((unsigned long) dev);
        if (!netif_queue_stopped(dev))
@@ -3724,20 +3688,20 @@ int rtl8192_down(struct net_device *dev)
        priv->up = 0;
        priv->ieee80211->ieee_up = 0;
        RT_TRACE(COMP_DOWN, "==========>%s()\n", __func__);
-/* FIXME */
+       /* FIXME */
        if (!netif_queue_stopped(dev))
                netif_stop_queue(dev);
 
        rtl8192_rtx_disable(dev);
 
- /* Tx related queue release */
      /* Tx related queue release */
        for (i = 0; i < MAX_QUEUE_SIZE; i++)
-               skb_queue_purge(&priv->ieee80211->skb_waitQ [i]);
+               skb_queue_purge(&priv->ieee80211->skb_waitQ[i]);
        for (i = 0; i < MAX_QUEUE_SIZE; i++)
-               skb_queue_purge(&priv->ieee80211->skb_aggQ [i]);
+               skb_queue_purge(&priv->ieee80211->skb_aggQ[i]);
 
        for (i = 0; i < MAX_QUEUE_SIZE; i++)
-               skb_queue_purge(&priv->ieee80211->skb_drv_aggQ [i]);
+               skb_queue_purge(&priv->ieee80211->skb_drv_aggQ[i]);
 
        //as cancel_delayed_work will del work->timer, so if work is not defined as struct delayed_work, it will corrupt
        rtl8192_cancel_deferred_work(priv);
@@ -3749,7 +3713,7 @@ int rtl8192_down(struct net_device *dev)
        memset(&priv->ieee80211->current_network, 0, offsetof(struct ieee80211_network, list));
        RT_TRACE(COMP_DOWN, "<==========%s()\n", __func__);
 
-               return 0;
+       return 0;
 }
 
 
@@ -3789,11 +3753,11 @@ static void r8192_set_multicast(struct net_device *dev)
 
        /* FIXME FIXME */
 
-       promisc = (dev->flags & IFF_PROMISC) ? 1:0;
+       promisc = (dev->flags & IFF_PROMISC) ? 1 : 0;
 
        if (promisc != priv->promisc)
 
-       priv->promisc = promisc;
+               priv->promisc = promisc;
 }
 
 
@@ -3827,25 +3791,25 @@ int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
        down(&priv->wx_sem);
 
 
-     if (p->length < sizeof(struct ieee_param) || !p->pointer) {
-            ret = -EINVAL;
-            goto out;
-     }
+       if (p->length < sizeof(struct ieee_param) || !p->pointer) {
+               ret = -EINVAL;
+               goto out;
+       }
 
-     ipw = kmalloc(p->length, GFP_KERNEL);
-     if (ipw == NULL) {
-            ret = -ENOMEM;
-            goto out;
-     }
-     if (copy_from_user(ipw, p->pointer, p->length)) {
+       ipw = kmalloc(p->length, GFP_KERNEL);
+       if (ipw == NULL) {
+               ret = -ENOMEM;
+               goto out;
+       }
+       if (copy_from_user(ipw, p->pointer, p->length)) {
                kfree(ipw);
-           ret = -EFAULT;
-           goto out;
-     }
+               ret = -EFAULT;
+               goto out;
+       }
 
        switch (cmd) {
        case RTL_IOCTL_WPA_SUPPLICANT:
-       //parse here for HW security
+               //parse here for HW security
                if (ipw->cmd == IEEE_CMD_SET_ENCRYPTION) {
                        if (ipw->u.crypt.set_tx) {
                                if (strcmp(ipw->u.crypt.alg, "CCMP") == 0) {
@@ -3864,11 +3828,11 @@ int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
                                if (ieee->pairwise_key_type) {
                                        memcpy((u8 *)key, ipw->u.crypt.key, 16);
                                        EnableHWSecurityConfig8192(dev);
-                               //we fill both index entry and 4th entry for pairwise key as in IPW interface, adhoc will only get here, so we need index entry for its default key serching!
-                               //added by WB.
+                                       //we fill both index entry and 4th entry for pairwise key as in IPW interface, adhoc will only get here, so we need index entry for its default key serching!
+                                       //added by WB.
                                        setKey(dev, 4, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8 *)ieee->ap_mac_addr, 0, key);
                                        if (ieee->auth_mode != 2)
-                                       setKey(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8 *)ieee->ap_mac_addr, 0, key);
+                                               setKey(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8 *)ieee->ap_mac_addr, 0, key);
                                }
                        } else {
                                memcpy((u8 *)key, ipw->u.crypt.key, 16);
@@ -3886,13 +3850,12 @@ int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
                                }
 
                                if (ieee->group_key_type) {
-                                               setKey(dev,
-                                                      ipw->u.crypt.idx,
-                                                      ipw->u.crypt.idx,                //KeyIndex
-                                                      ieee->group_key_type,    //KeyType
-                                                      broadcast_addr,  //MacAddr
-                                                      0,               //DefaultKey
-                                                      key);            //KeyContent
+                                       setKey(dev, ipw->u.crypt.idx,
+                                              ipw->u.crypt.idx,                //KeyIndex
+                                              ieee->group_key_type,    //KeyType
+                                              broadcast_addr,  //MacAddr
+                                              0,               //DefaultKey
+                                              key);            //KeyContent
                                }
                        }
                }
@@ -4090,8 +4053,8 @@ void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct ieee802
        // hardware does not provide rssi information for each rf path in CCK
        if (!pprevious_stats->bIsCCK && (pprevious_stats->bPacketToSelf || pprevious_stats->bToSelfBA)) {
                for (rfpath = RF90_PATH_A; rfpath < priv->NumTotalRFPath; rfpath++) {
-                    if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, rfpath))
-                                continue;
+                       if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, rfpath))
+                               continue;
 
                        //Fixed by Jacken 2008-03-20
                        if (priv->stats.rx_rssi_percentage[rfpath] == 0)
@@ -4099,12 +4062,12 @@ void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct ieee802
                        if (pprevious_stats->RxMIMOSignalStrength[rfpath]  > priv->stats.rx_rssi_percentage[rfpath]) {
                                priv->stats.rx_rssi_percentage[rfpath] =
                                        ((priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) +
-                                       (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor);
+                                        (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor);
                                priv->stats.rx_rssi_percentage[rfpath] = priv->stats.rx_rssi_percentage[rfpath]  + 1;
                        } else {
                                priv->stats.rx_rssi_percentage[rfpath] =
                                        ((priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) +
-                                       (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor);
+                                        (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor);
                        }
                        RT_TRACE(COMP_DBG, "priv->stats.rx_rssi_percentage[rfPath]  = %d \n", priv->stats.rx_rssi_percentage[rfpath]);
                }
@@ -4115,11 +4078,11 @@ void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct ieee802
        // Check PWDB.
        //
        RT_TRACE(COMP_RXDESC, "Smooth %s PWDB = %d\n",
-                               pprevious_stats->bIsCCK? "CCK": "OFDM",
-                               pprevious_stats->RxPWDBAll);
+                pprevious_stats->bIsCCK ? "CCK" : "OFDM",
+                pprevious_stats->RxPWDBAll);
 
        if (pprevious_stats->bPacketBeacon) {
-/* record the beacon pwdb to the sliding window. */
+               /* record the beacon pwdb to the sliding window. */
                if (slide_beacon_adc_pwdb_statistics++ >= PHY_Beacon_RSSI_SLID_WIN_MAX) {
                        slide_beacon_adc_pwdb_statistics = PHY_Beacon_RSSI_SLID_WIN_MAX;
                        last_beacon_adc_pwdb = priv->stats.Slide_Beacon_pwdb[slide_beacon_adc_pwdb_index];
@@ -4136,8 +4099,8 @@ void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct ieee802
        }
 
        RT_TRACE(COMP_RXDESC, "Smooth %s PWDB = %d\n",
-                               pprevious_stats->bIsCCK? "CCK": "OFDM",
-                               pprevious_stats->RxPWDBAll);
+                pprevious_stats->bIsCCK ? "CCK" : "OFDM",
+                pprevious_stats->RxPWDBAll);
 
 
        if (pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA) {
@@ -4145,13 +4108,13 @@ void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct ieee802
                        priv->undecorated_smoothed_pwdb = pprevious_stats->RxPWDBAll;
                if (pprevious_stats->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb) {
                        priv->undecorated_smoothed_pwdb =
-                                       (((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) +
-                                       (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor);
+                               (((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) +
+                                (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor);
                        priv->undecorated_smoothed_pwdb = priv->undecorated_smoothed_pwdb + 1;
                } else {
                        priv->undecorated_smoothed_pwdb =
-                                       (((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) +
-                                       (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor);
+                               (((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) +
+                                (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor);
                }
 
        }
@@ -4189,7 +4152,7 @@ void rtl8192_process_phyinfo(struct r8192_priv *priv, u8 *buffer, struct ieee802
                                                priv->stats.rx_evm_percentage[nspatial_stream] = pprevious_stats->RxMIMOSignalQuality[nspatial_stream];
                                        priv->stats.rx_evm_percentage[nspatial_stream] =
                                                ((priv->stats.rx_evm_percentage[nspatial_stream]* (Rx_Smooth_Factor-1)) +
-                                               (pprevious_stats->RxMIMOSignalQuality[nspatial_stream]* 1)) / (Rx_Smooth_Factor);
+                                                (pprevious_stats->RxMIMOSignalQuality[nspatial_stream]* 1)) / (Rx_Smooth_Factor);
                                }
                        }
                }
@@ -4221,25 +4184,25 @@ static u8 rtl819x_query_rxpwrpercentage(char antpower)
        else if (antpower >= 0)
                return  100;
        else
-               return  (100+antpower);
+               return  100 + antpower;
 
 }      /* QueryRxPwrPercentage */
 
 static u8 rtl819x_evm_dbtopercentage(char value)
 {
-    char ret_val;
+       char ret_val;
 
-    ret_val = value;
+       ret_val = value;
 
-    if (ret_val >= 0)
-       ret_val = 0;
-    if (ret_val <= -33)
-       ret_val = -33;
-    ret_val = 0 - ret_val;
-    ret_val *= 3;
+       if (ret_val >= 0)
+               ret_val = 0;
+       if (ret_val <= -33)
+               ret_val = -33;
+       ret_val = 0 - ret_val;
+       ret_val *= 3;
        if (ret_val == 99)
                ret_val = 100;
-    return(ret_val);
+       return ret_val;
 }
 //
 //     Description:
@@ -4275,6 +4238,22 @@ long rtl819x_signal_scale_mapping(long currsig)
        return retsig;
 }
 
+static inline bool rx_hal_is_cck_rate(struct rx_drvinfo_819x_usb *pdrvinfo)
+{
+       if (pdrvinfo->RxHT)
+               return false;
+
+       switch (pdrvinfo->RxRate) {
+       case DESC90_RATE1M:
+       case DESC90_RATE2M:
+       case DESC90_RATE5_5M:
+       case DESC90_RATE11M:
+               return true;
+       default:
+               return false;
+       }
+}
+
 static void rtl8192_query_rxphystatus(struct r8192_priv *priv,
                                      struct ieee80211_rx_stats *pstats,
                                      rx_drvinfo_819x_usb  *pdrvinfo,
@@ -4343,35 +4322,35 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv,
                                //Fixed by Jacken from Bryant 2008-03-20
                                //Original value is -38 , -26 , -14 , -2
                                //Fixed value is -35 , -23 , -11 , 6
-                               case 0x3:
-                                       rx_pwr_all = -35 - (pcck_buf->cck_agc_rpt & 0x3e);
-                                       break;
-                               case 0x2:
-                                       rx_pwr_all = -23 - (pcck_buf->cck_agc_rpt & 0x3e);
-                                       break;
-                               case 0x1:
-                                       rx_pwr_all = -11 - (pcck_buf->cck_agc_rpt & 0x3e);
-                                       break;
-                               case 0x0:
-                                       rx_pwr_all = 6 - (pcck_buf->cck_agc_rpt & 0x3e);
-                                       break;
+                       case 0x3:
+                               rx_pwr_all = -35 - (pcck_buf->cck_agc_rpt & 0x3e);
+                               break;
+                       case 0x2:
+                               rx_pwr_all = -23 - (pcck_buf->cck_agc_rpt & 0x3e);
+                               break;
+                       case 0x1:
+                               rx_pwr_all = -11 - (pcck_buf->cck_agc_rpt & 0x3e);
+                               break;
+                       case 0x0:
+                               rx_pwr_all = 6 - (pcck_buf->cck_agc_rpt & 0x3e);
+                               break;
                        }
                } else {
                        report = pcck_buf->cck_agc_rpt & 0x60;
                        report = report>>5;
                        switch (report) {
-                               case 0x3:
-                                       rx_pwr_all = -35 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
-                                       break;
-                               case 0x2:
-                                       rx_pwr_all = -23 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
-                                       break;
-                               case 0x1:
-                                       rx_pwr_all = -11 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
-                                       break;
-                               case 0x0:
-                                       rx_pwr_all = 6 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
-                                       break;
+                       case 0x3:
+                               rx_pwr_all = -35 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
+                               break;
+                       case 0x2:
+                               rx_pwr_all = -23 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
+                               break;
+                       case 0x1:
+                               rx_pwr_all = -11 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
+                               break;
+                       case 0x0:
+                               rx_pwr_all = 6 - ((pcck_buf->cck_agc_rpt & 0x1f)<<1);
+                               break;
                        }
                }
 
@@ -4383,21 +4362,21 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv,
                // (3) Get Signal Quality (EVM)
                //
 
-                       if (pstats->RxPWDBAll > 40) {
-                               sq = 100;
-                       } else {
-                               sq = pcck_buf->sq_rpt;
+               if (pstats->RxPWDBAll > 40) {
+                       sq = 100;
+               } else {
+                       sq = pcck_buf->sq_rpt;
 
-                               if (pcck_buf->sq_rpt > 64)
-                                       sq = 0;
-                               else if (pcck_buf->sq_rpt < 20)
-                                       sq = 100;
-                               else
-                                       sq = ((64-sq) * 100) / 44;
-                       }
-                       pstats->SignalQuality = precord_stats->SignalQuality = sq;
-                       pstats->RxMIMOSignalQuality[0] = precord_stats->RxMIMOSignalQuality[0] = sq;
-                       pstats->RxMIMOSignalQuality[1] = precord_stats->RxMIMOSignalQuality[1] = -1;
+                       if (pcck_buf->sq_rpt > 64)
+                               sq = 0;
+                       else if (pcck_buf->sq_rpt < 20)
+                               sq = 100;
+                       else
+                               sq = ((64-sq) * 100) / 44;
+               }
+               pstats->SignalQuality = precord_stats->SignalQuality = sq;
+               pstats->RxMIMOSignalQuality[0] = precord_stats->RxMIMOSignalQuality[0] = sq;
+               pstats->RxMIMOSignalQuality[1] = precord_stats->RxMIMOSignalQuality[1] = -1;
 
        } else {
                priv->stats.numqry_phystatusHT++;
@@ -4411,7 +4390,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv,
                        else
                                continue;
 
-               if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, i))
+                       if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, i))
                                continue;
 
                        //Fixed by Jacken from Bryant 2008-03-20
@@ -4429,8 +4408,8 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv,
                        total_rssi += RSSI;
 
                        /* Record Signal Strength for next packet */
-                               pstats->RxMIMOSignalStrength[i] = (u8) RSSI;
-                               precord_stats->RxMIMOSignalStrength[i] = (u8) RSSI;
+                       pstats->RxMIMOSignalStrength[i] = (u8) RSSI;
+                       precord_stats->RxMIMOSignalStrength[i] = (u8) RSSI;
                }
 
 
@@ -4449,7 +4428,7 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv,
                // (3)EVM of HT rate
                //
                if (pdrvinfo->RxHT && pdrvinfo->RxRate >= DESC90_RATEMCS8 &&
-                       pdrvinfo->RxRate <= DESC90_RATEMCS15)
+                   pdrvinfo->RxRate <= DESC90_RATEMCS15)
                        max_spatial_stream = 2; //both spatial stream make sense
                else
                        max_spatial_stream = 1; //only spatial stream 1 makes sense
@@ -4464,9 +4443,9 @@ static void rtl8192_query_rxphystatus(struct r8192_priv *priv,
                        rx_evmX /= 2;   //dbm
 
                        evm = rtl819x_evm_dbtopercentage(rx_evmX);
-                               if (i == 0) // Fill value in RFD, Get the first spatial stream only
-                                       pstats->SignalQuality = precord_stats->SignalQuality = (u8)(evm & 0xff);
-                               pstats->RxMIMOSignalQuality[i] = precord_stats->RxMIMOSignalQuality[i] = (u8)(evm & 0xff);
+                       if (i == 0) // Fill value in RFD, Get the first spatial stream only
+                               pstats->SignalQuality = precord_stats->SignalQuality = (u8)(evm & 0xff);
+                       pstats->RxMIMOSignalQuality[i] = precord_stats->RxMIMOSignalQuality[i] = (u8)(evm & 0xff);
                }
 
 
@@ -4511,7 +4490,7 @@ void TranslateRxSignalStuff819xUsb(struct sk_buff *skb,
        bool bPacketBeacon = FALSE, bToSelfBA = FALSE;
        static struct ieee80211_rx_stats  previous_stats;
        struct ieee80211_hdr_3addr *hdr;//by amy
-       u16 fc, type;
+       u16 fc, type;
 
        // Get Signal Quality for only RX data queue (but not command queue)
 
@@ -4528,16 +4507,16 @@ void TranslateRxSignalStuff819xUsb(struct sk_buff *skb,
 
        /* Check if the received packet is acceptable. */
        bpacket_match_bssid = ((IEEE80211_FTYPE_CTL != type) &&
-                                                       (eqMacAddr(priv->ieee80211->current_network.bssid,  (fc & IEEE80211_FCTL_TODS)? hdr->addr1 : (fc & IEEE80211_FCTL_FROMDS)? hdr->addr2 : hdr->addr3))
-                                                                && (!pstats->bHwError) && (!pstats->bCRC)&& (!pstats->bICV));
+                              (eqMacAddr(priv->ieee80211->current_network.bssid,  (fc & IEEE80211_FCTL_TODS) ? hdr->addr1 : (fc & IEEE80211_FCTL_FROMDS) ? hdr->addr2 : hdr->addr3))
+                              && (!pstats->bHwError) && (!pstats->bCRC) && (!pstats->bICV));
        bpacket_toself =  bpacket_match_bssid & (eqMacAddr(praddr, priv->ieee80211->dev->dev_addr));
 
-               if (WLAN_FC_GET_FRAMETYPE(fc) == IEEE80211_STYPE_BEACON)
-                       bPacketBeacon = true;
-               if (WLAN_FC_GET_FRAMETYPE(fc) == IEEE80211_STYPE_BLOCKACK) {
-                       if ((eqMacAddr(praddr, dev->dev_addr)))
-                               bToSelfBA = true;
-               }
+       if (WLAN_FC_GET_FRAMETYPE(fc) == IEEE80211_STYPE_BEACON)
+               bPacketBeacon = true;
+       if (WLAN_FC_GET_FRAMETYPE(fc) == IEEE80211_STYPE_BLOCKACK) {
+               if ((eqMacAddr(praddr, dev->dev_addr)))
+                       bToSelfBA = true;
+       }
 
 
 
@@ -4580,58 +4559,58 @@ void UpdateReceivedRateHistogramStatistics8190(struct net_device *dev,
 
 
        if (stats->bCRC)
-       rcvType = 2;
+               rcvType = 2;
        else if (stats->bICV)
-       rcvType = 3;
+               rcvType = 3;
 
        if (stats->bShortPreamble)
-       preamble_guardinterval = 1;// short
+               preamble_guardinterval = 1;// short
        else
-       preamble_guardinterval = 0;// long
+               preamble_guardinterval = 0;// long
 
        switch (stats->rate) {
                //
                // CCK rate
                //
-               case MGN_1M:    rateIndex = 0;  break;
-               case MGN_2M:    rateIndex = 1;  break;
-               case MGN_5_5M:  rateIndex = 2;  break;
-               case MGN_11M:   rateIndex = 3;  break;
+       case MGN_1M:    rateIndex = 0;  break;
+       case MGN_2M:    rateIndex = 1;  break;
+       case MGN_5_5M:  rateIndex = 2;  break;
+       case MGN_11M:   rateIndex = 3;  break;
                //
                // Legacy OFDM rate
                //
-               case MGN_6M:    rateIndex = 4;  break;
-               case MGN_9M:    rateIndex = 5;  break;
-               case MGN_12M:   rateIndex = 6;  break;
-               case MGN_18M:   rateIndex = 7;  break;
-               case MGN_24M:   rateIndex = 8;  break;
-               case MGN_36M:   rateIndex = 9;  break;
-               case MGN_48M:   rateIndex = 10; break;
-               case MGN_54M:   rateIndex = 11; break;
+       case MGN_6M:    rateIndex = 4;  break;
+       case MGN_9M:    rateIndex = 5;  break;
+       case MGN_12M:   rateIndex = 6;  break;
+       case MGN_18M:   rateIndex = 7;  break;
+       case MGN_24M:   rateIndex = 8;  break;
+       case MGN_36M:   rateIndex = 9;  break;
+       case MGN_48M:   rateIndex = 10; break;
+       case MGN_54M:   rateIndex = 11; break;
                //
                // 11n High throughput rate
                //
-               case MGN_MCS0:  rateIndex = 12; break;
-               case MGN_MCS1:  rateIndex = 13; break;
-               case MGN_MCS2:  rateIndex = 14; break;
-               case MGN_MCS3:  rateIndex = 15; break;
-               case MGN_MCS4:  rateIndex = 16; break;
-               case MGN_MCS5:  rateIndex = 17; break;
-               case MGN_MCS6:  rateIndex = 18; break;
-               case MGN_MCS7:  rateIndex = 19; break;
-               case MGN_MCS8:  rateIndex = 20; break;
-               case MGN_MCS9:  rateIndex = 21; break;
-               case MGN_MCS10: rateIndex = 22; break;
-               case MGN_MCS11: rateIndex = 23; break;
-               case MGN_MCS12: rateIndex = 24; break;
-               case MGN_MCS13: rateIndex = 25; break;
-               case MGN_MCS14: rateIndex = 26; break;
-               case MGN_MCS15: rateIndex = 27; break;
-               default:        rateIndex = 28; break;
-       }
-    priv->stats.received_preamble_GI[preamble_guardinterval][rateIndex]++;
-    priv->stats.received_rate_histogram[0][rateIndex]++; //total
-    priv->stats.received_rate_histogram[rcvType][rateIndex]++;
+       case MGN_MCS0:  rateIndex = 12; break;
+       case MGN_MCS1:  rateIndex = 13; break;
+       case MGN_MCS2:  rateIndex = 14; break;
+       case MGN_MCS3:  rateIndex = 15; break;
+       case MGN_MCS4:  rateIndex = 16; break;
+       case MGN_MCS5:  rateIndex = 17; break;
+       case MGN_MCS6:  rateIndex = 18; break;
+       case MGN_MCS7:  rateIndex = 19; break;
+       case MGN_MCS8:  rateIndex = 20; break;
+       case MGN_MCS9:  rateIndex = 21; break;
+       case MGN_MCS10: rateIndex = 22; break;
+       case MGN_MCS11: rateIndex = 23; break;
+       case MGN_MCS12: rateIndex = 24; break;
+       case MGN_MCS13: rateIndex = 25; break;
+       case MGN_MCS14: rateIndex = 26; break;
+       case MGN_MCS15: rateIndex = 27; break;
+       default:        rateIndex = 28; break;
+       }
+       priv->stats.received_preamble_GI[preamble_guardinterval][rateIndex]++;
+       priv->stats.received_rate_histogram[0][rateIndex]++; //total
+       priv->stats.received_rate_histogram[rcvType][rateIndex]++;
 }
 
 
@@ -4683,8 +4662,8 @@ void query_rxdesc_status(struct sk_buff *skb, struct ieee80211_rx_stats *stats,
        // TODO: Need to verify it on FGPA platform
        //Driver info are written to the RxBuffer following rx desc
        if (stats->RxDrvInfoSize != 0) {
-               driver_info = (rx_drvinfo_819x_usb *)(skb->data + sizeof(rx_desc_819x_usb) + \
-                               stats->RxBufShift);
+               driver_info = (rx_drvinfo_819x_usb *)(skb->data + sizeof(rx_desc_819x_usb) +
+                                                     stats->RxBufShift);
                /* unit: 0.5M */
                /* TODO */
                if (!stats->bHwError) {
@@ -4720,7 +4699,7 @@ void query_rxdesc_status(struct sk_buff *skb, struct ieee80211_rx_stats *stats,
                //
                if (driver_info->FirstAGGR == 1 || driver_info->PartAggr == 1)
                        RT_TRACE(COMP_RXDESC, "driver_info->FirstAGGR = %d, driver_info->PartAggr = %d\n",
-                                       driver_info->FirstAGGR, driver_info->PartAggr);
+                                driver_info->FirstAGGR, driver_info->PartAggr);
 
        }
 
@@ -4756,7 +4735,7 @@ u32 GetRxPacketShiftBytes819xUsb(struct ieee80211_rx_stats  *Status, bool bIsRxA
        else
 #endif
                return (sizeof(rx_desc_819x_usb) + Status->RxDrvInfoSize
-                               + Status->RxBufShift);
+                       + Status->RxBufShift);
 }
 
 void rtl8192_rx_nomal(struct sk_buff *skb)
@@ -4925,15 +4904,15 @@ void rtl819xusb_process_received_packet(struct net_device *dev,
        if (!Adapter->bInHctTest)
                CountRxErrStatistics(Adapter, pRfd);
 #endif
-       #ifdef ENABLE_PS  //by amy for adding ps function in future
-               RT_RF_POWER_STATE rtState;
-               // When RF is off, we should not count the packet for hw/sw synchronize
-               // reason, ie. there may be a duration while sw switch is changed and hw
-               // switch is being changed. 2006.12.04, by shien chang.
-               Adapter->HalFunc.GetHwRegHandler(Adapter, HW_VAR_RF_STATE, (u8 *)(&rtState));
-               if (rtState == eRfOff)
-                       return;
-       #endif
+#ifdef ENABLE_PS  //by amy for adding ps function in future
+       RT_RF_POWER_STATE rtState;
+       // When RF is off, we should not count the packet for hw/sw synchronize
+       // reason, ie. there may be a duration while sw switch is changed and hw
+       // switch is being changed. 2006.12.04, by shien chang.
+       Adapter->HalFunc.GetHwRegHandler(Adapter, HW_VAR_RF_STATE, (u8 *)(&rtState));
+       if (rtState == eRfOff)
+               return;
+#endif
        priv->stats.rxframgment++;
 
 #ifdef TODO
@@ -5011,17 +4990,17 @@ void rtl8192_irq_rx_tasklet(struct r8192_priv *priv)
                        rtl8192_rx_nomal(skb);
                        break;
 
-                       /* Command packet pipe */
+               /* Command packet pipe */
                case 9:
-                       RT_TRACE(COMP_RECV, "command in-pipe index(%d)\n",\
-                                       info->out_pipe);
+                       RT_TRACE(COMP_RECV, "command in-pipe index(%d)\n",
+                                info->out_pipe);
 
                        rtl8192_rx_cmd(skb);
                        break;
 
                default: /* should never get here! */
-                       RT_TRACE(COMP_ERR, "Unknown in-pipe index(%d)\n",\
-                                       info->out_pipe);
+                       RT_TRACE(COMP_ERR, "Unknown in-pipe index(%d)\n",
+                                info->out_pipe);
                        dev_kfree_skb(skb);
                        break;
 
@@ -5048,7 +5027,7 @@ static const struct net_device_ops rtl8192_netdev_ops = {
 *****************************************************************************/
 
 static int rtl8192_usb_probe(struct usb_interface *intf,
-                        const struct usb_device_id *id)
+                            const struct usb_device_id *id)
 {
        struct net_device *dev = NULL;
        struct r8192_priv *priv = NULL;
@@ -5141,7 +5120,7 @@ static void rtl8192_usb_disconnect(struct usb_interface *intf)
                RT_TRACE(COMP_DOWN, "=============>wlan driver to be removed\n");
                rtl8192_proc_remove_one(dev);
 
-                       rtl8192_down(dev);
+               rtl8192_down(dev);
                kfree(priv->pFirmware);
                priv->pFirmware = NULL;
                rtl8192_usb_deleteendpoints(dev);
@@ -5235,7 +5214,7 @@ void EnableHWSecurityConfig8192(struct net_device *dev)
 {
        u8 SECR_value = 0x0;
        struct r8192_priv *priv = (struct r8192_priv *)ieee80211_priv(dev);
-        struct ieee80211_device *ieee = priv->ieee80211;
+       struct ieee80211_device *ieee = priv->ieee80211;
        SECR_value = SCR_TxEncEnable | SCR_RxDecEnable;
        if (((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) && (priv->ieee80211->auth_mode != 2)) {
                SECR_value |= SCR_RxUseDK;
@@ -5245,7 +5224,7 @@ void EnableHWSecurityConfig8192(struct net_device *dev)
                SECR_value |= SCR_TxUseDK;
        }
        //add HWSec active enable here.
-//default using hwsec. when peer AP is in N mode only and pairwise_key_type is none_aes(which HT_IOT_ACT_PURE_N_MODE indicates it), use software security. when peer AP is in b,g,n mode mixed and pairwise_key_type is none_aes, use g mode hw security. WB on 2008.7.4
+       //default using hwsec. when peer AP is in N mode only and pairwise_key_type is none_aes(which HT_IOT_ACT_PURE_N_MODE indicates it), use software security. when peer AP is in b,g,n mode mixed and pairwise_key_type is none_aes, use g mode hw security. WB on 2008.7.4
 
        ieee->hwsec_active = 1;
 
@@ -5253,9 +5232,9 @@ void EnableHWSecurityConfig8192(struct net_device *dev)
                ieee->hwsec_active = 0;
                SECR_value &= ~SCR_RxDecEnable;
        }
-       RT_TRACE(COMP_SEC, "%s:, hwsec:%d, pairwise_key:%d, SECR_value:%x\n", __func__, \
-                       ieee->hwsec_active, ieee->pairwise_key_type, SECR_value);
-               write_nic_byte(dev, SECR,  SECR_value);
+       RT_TRACE(COMP_SEC, "%s:, hwsec:%d, pairwise_key:%d, SECR_value:%x\n", __func__,
+                ieee->hwsec_active, ieee->pairwise_key_type, SECR_value);
+       write_nic_byte(dev, SECR,  SECR_value);
 }
 
 
@@ -5298,8 +5277,8 @@ void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType,
                } else {
                        //Key Material
                        if (KeyContent != NULL) {
-                       write_nic_dword(dev, WCAMI, (u32)(*(KeyContent+i-2)));
-                       write_nic_dword(dev, RWCAM, TargetCommand);
+                               write_nic_dword(dev, WCAMI, (u32)(*(KeyContent+i-2)));
+                               write_nic_dword(dev, RWCAM, TargetCommand);
                        }
                }
        }