Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
authorJohn W. Linville <linville@tuxdriver.com>
Mon, 6 Feb 2012 19:26:39 +0000 (14:26 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 6 Feb 2012 19:26:39 +0000 (14:26 -0500)
Conflicts:
drivers/net/wireless/rtlwifi/rtl8192se/sw.c

268 files changed:
MAINTAINERS
drivers/bcma/sprom.c
drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/ath5k/mac80211-ops.c
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/hif_usb.h
drivers/net/wireless/ath/ath9k/htc_drv_init.c
drivers/net/wireless/ath/ath9k/htc_drv_main.c
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/rc.c
drivers/net/wireless/ath/carl9170/carl9170.h
drivers/net/wireless/ath/carl9170/fw.c
drivers/net/wireless/ath/carl9170/mac.c
drivers/net/wireless/ath/carl9170/main.c
drivers/net/wireless/ath/carl9170/phy.c
drivers/net/wireless/ath/carl9170/tx.c
drivers/net/wireless/b43/b43.h
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/phy_n.c
drivers/net/wireless/b43/phy_n.h
drivers/net/wireless/b43/tables_nphy.c
drivers/net/wireless/b43/tables_nphy.h
drivers/net/wireless/brcm80211/Makefile
drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
drivers/net/wireless/brcm80211/brcmfmac/dhd.h
drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c
drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h
drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h
drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
drivers/net/wireless/brcm80211/brcmsmac/dma.c
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h
drivers/net/wireless/brcm80211/brcmsmac/main.c
drivers/net/wireless/brcm80211/brcmsmac/main.h
drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c
drivers/net/wireless/brcm80211/brcmutil/utils.c
drivers/net/wireless/brcm80211/include/brcmu_utils.h
drivers/net/wireless/iwlwifi/iwl-1000.c
drivers/net/wireless/iwlwifi/iwl-2000.c
drivers/net/wireless/iwlwifi/iwl-5000.c
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-agn-calib.c
drivers/net/wireless/iwlwifi/iwl-agn-calib.h
drivers/net/wireless/iwlwifi/iwl-agn-hw.h
drivers/net/wireless/iwlwifi/iwl-agn-lib.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.h
drivers/net/wireless/iwlwifi/iwl-agn-rx.c
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
drivers/net/wireless/iwlwifi/iwl-agn-sta.c
drivers/net/wireless/iwlwifi/iwl-agn-tt.c
drivers/net/wireless/iwlwifi/iwl-agn-tt.h
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-agn.h
drivers/net/wireless/iwlwifi/iwl-bus.h
drivers/net/wireless/iwlwifi/iwl-cfg.h
drivers/net/wireless/iwlwifi/iwl-commands.h
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-csr.h
drivers/net/wireless/iwlwifi/iwl-debug.h
drivers/net/wireless/iwlwifi/iwl-debugfs.c
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-devtrace.c
drivers/net/wireless/iwlwifi/iwl-devtrace.h
drivers/net/wireless/iwlwifi/iwl-eeprom.c
drivers/net/wireless/iwlwifi/iwl-eeprom.h
drivers/net/wireless/iwlwifi/iwl-fh.h
drivers/net/wireless/iwlwifi/iwl-io.c
drivers/net/wireless/iwlwifi/iwl-io.h
drivers/net/wireless/iwlwifi/iwl-led.c
drivers/net/wireless/iwlwifi/iwl-led.h
drivers/net/wireless/iwlwifi/iwl-mac80211.c
drivers/net/wireless/iwlwifi/iwl-pci.c
drivers/net/wireless/iwlwifi/iwl-power.c
drivers/net/wireless/iwlwifi/iwl-power.h
drivers/net/wireless/iwlwifi/iwl-prph.h
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-shared.h
drivers/net/wireless/iwlwifi/iwl-testmode.c
drivers/net/wireless/iwlwifi/iwl-testmode.h
drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c
drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
drivers/net/wireless/iwlwifi/iwl-trans.c
drivers/net/wireless/iwlwifi/iwl-trans.h
drivers/net/wireless/iwlwifi/iwl-ucode.c
drivers/net/wireless/iwlwifi/iwl-wifi.h
drivers/net/wireless/mwifiex/11n_aggr.c
drivers/net/wireless/mwifiex/cfg80211.c
drivers/net/wireless/mwifiex/cmdevt.c
drivers/net/wireless/mwifiex/decl.h
drivers/net/wireless/mwifiex/init.c
drivers/net/wireless/mwifiex/main.c
drivers/net/wireless/mwifiex/main.h
drivers/net/wireless/mwifiex/scan.c
drivers/net/wireless/mwifiex/sta_rx.c
drivers/net/wireless/mwifiex/sta_tx.c
drivers/net/wireless/mwifiex/txrx.c
drivers/net/wireless/mwifiex/util.c
drivers/net/wireless/mwifiex/wmm.c
drivers/net/wireless/mwifiex/wmm.h
drivers/net/wireless/mwl8k.c
drivers/net/wireless/orinoco/orinoco_usb.c
drivers/net/wireless/p54/main.c
drivers/net/wireless/rt2x00/rt2800lib.c
drivers/net/wireless/rt2x00/rt2800pci.c
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rtlwifi/Kconfig
drivers/net/wireless/rtlwifi/base.c
drivers/net/wireless/rtlwifi/base.h
drivers/net/wireless/rtlwifi/cam.c
drivers/net/wireless/rtlwifi/cam.h
drivers/net/wireless/rtlwifi/core.c
drivers/net/wireless/rtlwifi/core.h
drivers/net/wireless/rtlwifi/debug.c
drivers/net/wireless/rtlwifi/debug.h
drivers/net/wireless/rtlwifi/efuse.c
drivers/net/wireless/rtlwifi/efuse.h
drivers/net/wireless/rtlwifi/pci.c
drivers/net/wireless/rtlwifi/pci.h
drivers/net/wireless/rtlwifi/ps.c
drivers/net/wireless/rtlwifi/ps.h
drivers/net/wireless/rtlwifi/rc.c
drivers/net/wireless/rtlwifi/rc.h
drivers/net/wireless/rtlwifi/regd.c
drivers/net/wireless/rtlwifi/regd.h
drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.h
drivers/net/wireless/rtlwifi/rtl8192c/main.c
drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
drivers/net/wireless/rtlwifi/rtl8192c/phy_common.h
drivers/net/wireless/rtlwifi/rtl8192ce/def.h
drivers/net/wireless/rtlwifi/rtl8192ce/dm.c
drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
drivers/net/wireless/rtlwifi/rtl8192ce/hw.h
drivers/net/wireless/rtlwifi/rtl8192ce/led.c
drivers/net/wireless/rtlwifi/rtl8192ce/led.h
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c
drivers/net/wireless/rtlwifi/rtl8192ce/phy.h
drivers/net/wireless/rtlwifi/rtl8192ce/reg.h
drivers/net/wireless/rtlwifi/rtl8192ce/rf.c
drivers/net/wireless/rtlwifi/rtl8192ce/rf.h
drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
drivers/net/wireless/rtlwifi/rtl8192ce/sw.h
drivers/net/wireless/rtlwifi/rtl8192ce/table.c
drivers/net/wireless/rtlwifi/rtl8192ce/table.h
drivers/net/wireless/rtlwifi/rtl8192ce/trx.c
drivers/net/wireless/rtlwifi/rtl8192ce/trx.h
drivers/net/wireless/rtlwifi/rtl8192cu/def.h
drivers/net/wireless/rtlwifi/rtl8192cu/dm.c
drivers/net/wireless/rtlwifi/rtl8192cu/dm.h
drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
drivers/net/wireless/rtlwifi/rtl8192cu/hw.h
drivers/net/wireless/rtlwifi/rtl8192cu/led.c
drivers/net/wireless/rtlwifi/rtl8192cu/led.h
drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
drivers/net/wireless/rtlwifi/rtl8192cu/mac.h
drivers/net/wireless/rtlwifi/rtl8192cu/phy.c
drivers/net/wireless/rtlwifi/rtl8192cu/phy.h
drivers/net/wireless/rtlwifi/rtl8192cu/reg.h
drivers/net/wireless/rtlwifi/rtl8192cu/rf.c
drivers/net/wireless/rtlwifi/rtl8192cu/rf.h
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
drivers/net/wireless/rtlwifi/rtl8192cu/sw.h
drivers/net/wireless/rtlwifi/rtl8192cu/table.c
drivers/net/wireless/rtlwifi/rtl8192cu/table.h
drivers/net/wireless/rtlwifi/rtl8192cu/trx.c
drivers/net/wireless/rtlwifi/rtl8192cu/trx.h
drivers/net/wireless/rtlwifi/rtl8192de/def.h
drivers/net/wireless/rtlwifi/rtl8192de/dm.c
drivers/net/wireless/rtlwifi/rtl8192de/dm.h
drivers/net/wireless/rtlwifi/rtl8192de/fw.c
drivers/net/wireless/rtlwifi/rtl8192de/fw.h
drivers/net/wireless/rtlwifi/rtl8192de/hw.c
drivers/net/wireless/rtlwifi/rtl8192de/hw.h
drivers/net/wireless/rtlwifi/rtl8192de/led.c
drivers/net/wireless/rtlwifi/rtl8192de/led.h
drivers/net/wireless/rtlwifi/rtl8192de/phy.c
drivers/net/wireless/rtlwifi/rtl8192de/phy.h
drivers/net/wireless/rtlwifi/rtl8192de/reg.h
drivers/net/wireless/rtlwifi/rtl8192de/rf.c
drivers/net/wireless/rtlwifi/rtl8192de/rf.h
drivers/net/wireless/rtlwifi/rtl8192de/sw.c
drivers/net/wireless/rtlwifi/rtl8192de/sw.h
drivers/net/wireless/rtlwifi/rtl8192de/table.c
drivers/net/wireless/rtlwifi/rtl8192de/table.h
drivers/net/wireless/rtlwifi/rtl8192de/trx.c
drivers/net/wireless/rtlwifi/rtl8192de/trx.h
drivers/net/wireless/rtlwifi/rtl8192se/def.h
drivers/net/wireless/rtlwifi/rtl8192se/dm.c
drivers/net/wireless/rtlwifi/rtl8192se/dm.h
drivers/net/wireless/rtlwifi/rtl8192se/fw.c
drivers/net/wireless/rtlwifi/rtl8192se/fw.h
drivers/net/wireless/rtlwifi/rtl8192se/hw.c
drivers/net/wireless/rtlwifi/rtl8192se/hw.h
drivers/net/wireless/rtlwifi/rtl8192se/led.c
drivers/net/wireless/rtlwifi/rtl8192se/led.h
drivers/net/wireless/rtlwifi/rtl8192se/phy.c
drivers/net/wireless/rtlwifi/rtl8192se/phy.h
drivers/net/wireless/rtlwifi/rtl8192se/reg.h
drivers/net/wireless/rtlwifi/rtl8192se/rf.c
drivers/net/wireless/rtlwifi/rtl8192se/rf.h
drivers/net/wireless/rtlwifi/rtl8192se/sw.c
drivers/net/wireless/rtlwifi/rtl8192se/sw.h
drivers/net/wireless/rtlwifi/rtl8192se/table.c
drivers/net/wireless/rtlwifi/rtl8192se/table.h
drivers/net/wireless/rtlwifi/rtl8192se/trx.c
drivers/net/wireless/rtlwifi/rtl8192se/trx.h
drivers/net/wireless/rtlwifi/usb.c
drivers/net/wireless/rtlwifi/usb.h
drivers/net/wireless/rtlwifi/wifi.h
drivers/net/wireless/wl1251/main.c
drivers/net/wireless/wl12xx/main.c
drivers/nfc/nfcwilink.c
drivers/ssb/pci.c
include/linux/nfc.h
include/linux/nl80211.h
include/linux/ssb/ssb.h
include/linux/ssb/ssb_regs.h
include/net/cfg80211.h
include/net/mac80211.h
include/net/nfc/nci.h
include/net/nfc/nci_core.h
include/net/nfc/nfc.h
net/mac80211/cfg.c
net/mac80211/chan.c
net/mac80211/debugfs.c
net/mac80211/debugfs_netdev.c
net/mac80211/debugfs_sta.c
net/mac80211/ibss.c
net/mac80211/ieee80211_i.h
net/mac80211/iface.c
net/mac80211/main.c
net/mac80211/mesh_hwmp.c
net/mac80211/mesh_plink.c
net/mac80211/mlme.c
net/mac80211/rate.c
net/mac80211/rate.h
net/mac80211/rx.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h
net/mac80211/status.c
net/mac80211/tx.c
net/mac80211/util.c
net/mac80211/work.c
net/nfc/core.c
net/nfc/nci/core.c
net/nfc/nci/data.c
net/nfc/nci/ntf.c
net/nfc/nci/rsp.c
net/nfc/netlink.c
net/nfc/rawsock.c
net/wireless/mesh.c
net/wireless/nl80211.c
net/wireless/reg.c

index b4568a211d26684d3e9611c3e44c60f0c77501af..f71da55f9ac6e66a163e0d1ec73777d5127c81da 100644 (file)
@@ -1412,7 +1412,7 @@ F:        net/ax25/
 B43 WIRELESS DRIVER
 M:     Stefano Brivio <stefano.brivio@polimi.it>
 L:     linux-wireless@vger.kernel.org
-L:     b43-dev@lists.infradead.org (moderated for non-subscribers)
+L:     b43-dev@lists.infradead.org
 W:     http://linuxwireless.org/en/users/Drivers/b43
 S:     Maintained
 F:     drivers/net/wireless/b43/
@@ -1421,6 +1421,7 @@ B43LEGACY WIRELESS DRIVER
 M:     Larry Finger <Larry.Finger@lwfinger.net>
 M:     Stefano Brivio <stefano.brivio@polimi.it>
 L:     linux-wireless@vger.kernel.org
+L:     b43-dev@lists.infradead.org
 W:     http://linuxwireless.org/en/users/Drivers/b43
 S:     Maintained
 F:     drivers/net/wireless/b43legacy/
index 6f230fb087c5ebd064a52aafa8924368b2039c0e..e35134f724f64b783119cf0e017e822e3a9865d0 100644 (file)
@@ -14,8 +14,6 @@
 #include <linux/dma-mapping.h>
 #include <linux/slab.h>
 
-#define SPOFF(offset)  ((offset) / sizeof(u16))
-
 /**************************************************
  * R/W ops.
  **************************************************/
@@ -124,10 +122,21 @@ static int bcma_sprom_valid(const u16 *sprom)
  * SPROM extraction.
  **************************************************/
 
+#define SPOFF(offset)  ((offset) / sizeof(u16))
+
+#define SPEX(_field, _offset, _mask, _shift)   \
+       bus->sprom._field = ((sprom[SPOFF(_offset)] & (_mask)) >> (_shift))
+
 static void bcma_sprom_extract_r8(struct bcma_bus *bus, const u16 *sprom)
 {
-       u16 v;
+       u16 v, o;
        int i;
+       u16 pwr_info_offset[] = {
+               SSB_SROM8_PWR_INFO_CORE0, SSB_SROM8_PWR_INFO_CORE1,
+               SSB_SROM8_PWR_INFO_CORE2, SSB_SROM8_PWR_INFO_CORE3
+       };
+       BUILD_BUG_ON(ARRAY_SIZE(pwr_info_offset) !=
+                       ARRAY_SIZE(bus->sprom.core_pwr_info));
 
        bus->sprom.revision = sprom[SSB_SPROMSIZE_WORDS_R4 - 1] &
                SSB_SPROM_REVISION_REV;
@@ -137,72 +146,104 @@ static void bcma_sprom_extract_r8(struct bcma_bus *bus, const u16 *sprom)
                *(((__be16 *)bus->sprom.il0mac) + i) = cpu_to_be16(v);
        }
 
-       bus->sprom.board_rev = sprom[SPOFF(SSB_SPROM8_BOARDREV)];
-
-       bus->sprom.txpid2g[0] = (sprom[SPOFF(SSB_SPROM4_TXPID2G01)] &
-            SSB_SPROM4_TXPID2G0) >> SSB_SPROM4_TXPID2G0_SHIFT;
-       bus->sprom.txpid2g[1] = (sprom[SPOFF(SSB_SPROM4_TXPID2G01)] &
-            SSB_SPROM4_TXPID2G1) >> SSB_SPROM4_TXPID2G1_SHIFT;
-       bus->sprom.txpid2g[2] = (sprom[SPOFF(SSB_SPROM4_TXPID2G23)] &
-            SSB_SPROM4_TXPID2G2) >> SSB_SPROM4_TXPID2G2_SHIFT;
-       bus->sprom.txpid2g[3] = (sprom[SPOFF(SSB_SPROM4_TXPID2G23)] &
-            SSB_SPROM4_TXPID2G3) >> SSB_SPROM4_TXPID2G3_SHIFT;
-
-       bus->sprom.txpid5gl[0] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL01)] &
-            SSB_SPROM4_TXPID5GL0) >> SSB_SPROM4_TXPID5GL0_SHIFT;
-       bus->sprom.txpid5gl[1] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL01)] &
-            SSB_SPROM4_TXPID5GL1) >> SSB_SPROM4_TXPID5GL1_SHIFT;
-       bus->sprom.txpid5gl[2] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL23)] &
-            SSB_SPROM4_TXPID5GL2) >> SSB_SPROM4_TXPID5GL2_SHIFT;
-       bus->sprom.txpid5gl[3] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL23)] &
-            SSB_SPROM4_TXPID5GL3) >> SSB_SPROM4_TXPID5GL3_SHIFT;
-
-       bus->sprom.txpid5g[0] = (sprom[SPOFF(SSB_SPROM4_TXPID5G01)] &
-            SSB_SPROM4_TXPID5G0) >> SSB_SPROM4_TXPID5G0_SHIFT;
-       bus->sprom.txpid5g[1] = (sprom[SPOFF(SSB_SPROM4_TXPID5G01)] &
-            SSB_SPROM4_TXPID5G1) >> SSB_SPROM4_TXPID5G1_SHIFT;
-       bus->sprom.txpid5g[2] = (sprom[SPOFF(SSB_SPROM4_TXPID5G23)] &
-            SSB_SPROM4_TXPID5G2) >> SSB_SPROM4_TXPID5G2_SHIFT;
-       bus->sprom.txpid5g[3] = (sprom[SPOFF(SSB_SPROM4_TXPID5G23)] &
-            SSB_SPROM4_TXPID5G3) >> SSB_SPROM4_TXPID5G3_SHIFT;
-
-       bus->sprom.txpid5gh[0] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH01)] &
-            SSB_SPROM4_TXPID5GH0) >> SSB_SPROM4_TXPID5GH0_SHIFT;
-       bus->sprom.txpid5gh[1] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH01)] &
-            SSB_SPROM4_TXPID5GH1) >> SSB_SPROM4_TXPID5GH1_SHIFT;
-       bus->sprom.txpid5gh[2] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH23)] &
-            SSB_SPROM4_TXPID5GH2) >> SSB_SPROM4_TXPID5GH2_SHIFT;
-       bus->sprom.txpid5gh[3] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH23)] &
-            SSB_SPROM4_TXPID5GH3) >> SSB_SPROM4_TXPID5GH3_SHIFT;
-
-       bus->sprom.boardflags_lo = sprom[SPOFF(SSB_SPROM8_BFLLO)];
-       bus->sprom.boardflags_hi = sprom[SPOFF(SSB_SPROM8_BFLHI)];
-       bus->sprom.boardflags2_lo = sprom[SPOFF(SSB_SPROM8_BFL2LO)];
-       bus->sprom.boardflags2_hi = sprom[SPOFF(SSB_SPROM8_BFL2HI)];
-
-       bus->sprom.country_code = sprom[SPOFF(SSB_SPROM8_CCODE)];
-
-       bus->sprom.fem.ghz2.tssipos = (sprom[SPOFF(SSB_SPROM8_FEM2G)] &
-               SSB_SROM8_FEM_TSSIPOS) >> SSB_SROM8_FEM_TSSIPOS_SHIFT;
-       bus->sprom.fem.ghz2.extpa_gain = (sprom[SPOFF(SSB_SPROM8_FEM2G)] &
-               SSB_SROM8_FEM_EXTPA_GAIN) >> SSB_SROM8_FEM_EXTPA_GAIN_SHIFT;
-       bus->sprom.fem.ghz2.pdet_range = (sprom[SPOFF(SSB_SPROM8_FEM2G)] &
-               SSB_SROM8_FEM_PDET_RANGE) >> SSB_SROM8_FEM_PDET_RANGE_SHIFT;
-       bus->sprom.fem.ghz2.tr_iso = (sprom[SPOFF(SSB_SPROM8_FEM2G)] &
-               SSB_SROM8_FEM_TR_ISO) >> SSB_SROM8_FEM_TR_ISO_SHIFT;
-       bus->sprom.fem.ghz2.antswlut = (sprom[SPOFF(SSB_SPROM8_FEM2G)] &
-               SSB_SROM8_FEM_ANTSWLUT) >> SSB_SROM8_FEM_ANTSWLUT_SHIFT;
-
-       bus->sprom.fem.ghz5.tssipos = (sprom[SPOFF(SSB_SPROM8_FEM5G)] &
-               SSB_SROM8_FEM_TSSIPOS) >> SSB_SROM8_FEM_TSSIPOS_SHIFT;
-       bus->sprom.fem.ghz5.extpa_gain = (sprom[SPOFF(SSB_SPROM8_FEM5G)] &
-               SSB_SROM8_FEM_EXTPA_GAIN) >> SSB_SROM8_FEM_EXTPA_GAIN_SHIFT;
-       bus->sprom.fem.ghz5.pdet_range = (sprom[SPOFF(SSB_SPROM8_FEM5G)] &
-               SSB_SROM8_FEM_PDET_RANGE) >> SSB_SROM8_FEM_PDET_RANGE_SHIFT;
-       bus->sprom.fem.ghz5.tr_iso = (sprom[SPOFF(SSB_SPROM8_FEM5G)] &
-               SSB_SROM8_FEM_TR_ISO) >> SSB_SROM8_FEM_TR_ISO_SHIFT;
-       bus->sprom.fem.ghz5.antswlut = (sprom[SPOFF(SSB_SPROM8_FEM5G)] &
-               SSB_SROM8_FEM_ANTSWLUT) >> SSB_SROM8_FEM_ANTSWLUT_SHIFT;
+       SPEX(board_rev, SSB_SPROM8_BOARDREV, ~0, 0);
+
+       SPEX(txpid2g[0], SSB_SPROM4_TXPID2G01, SSB_SPROM4_TXPID2G0,
+            SSB_SPROM4_TXPID2G0_SHIFT);
+       SPEX(txpid2g[1], SSB_SPROM4_TXPID2G01, SSB_SPROM4_TXPID2G1,
+            SSB_SPROM4_TXPID2G1_SHIFT);
+       SPEX(txpid2g[2], SSB_SPROM4_TXPID2G23, SSB_SPROM4_TXPID2G2,
+            SSB_SPROM4_TXPID2G2_SHIFT);
+       SPEX(txpid2g[3], SSB_SPROM4_TXPID2G23, SSB_SPROM4_TXPID2G3,
+            SSB_SPROM4_TXPID2G3_SHIFT);
+
+       SPEX(txpid5gl[0], SSB_SPROM4_TXPID5GL01, SSB_SPROM4_TXPID5GL0,
+            SSB_SPROM4_TXPID5GL0_SHIFT);
+       SPEX(txpid5gl[1], SSB_SPROM4_TXPID5GL01, SSB_SPROM4_TXPID5GL1,
+            SSB_SPROM4_TXPID5GL1_SHIFT);
+       SPEX(txpid5gl[2], SSB_SPROM4_TXPID5GL23, SSB_SPROM4_TXPID5GL2,
+            SSB_SPROM4_TXPID5GL2_SHIFT);
+       SPEX(txpid5gl[3], SSB_SPROM4_TXPID5GL23, SSB_SPROM4_TXPID5GL3,
+            SSB_SPROM4_TXPID5GL3_SHIFT);
+
+       SPEX(txpid5g[0], SSB_SPROM4_TXPID5G01, SSB_SPROM4_TXPID5G0,
+            SSB_SPROM4_TXPID5G0_SHIFT);
+       SPEX(txpid5g[1], SSB_SPROM4_TXPID5G01, SSB_SPROM4_TXPID5G1,
+            SSB_SPROM4_TXPID5G1_SHIFT);
+       SPEX(txpid5g[2], SSB_SPROM4_TXPID5G23, SSB_SPROM4_TXPID5G2,
+            SSB_SPROM4_TXPID5G2_SHIFT);
+       SPEX(txpid5g[3], SSB_SPROM4_TXPID5G23, SSB_SPROM4_TXPID5G3,
+            SSB_SPROM4_TXPID5G3_SHIFT);
+
+       SPEX(txpid5gh[0], SSB_SPROM4_TXPID5GH01, SSB_SPROM4_TXPID5GH0,
+            SSB_SPROM4_TXPID5GH0_SHIFT);
+       SPEX(txpid5gh[1], SSB_SPROM4_TXPID5GH01, SSB_SPROM4_TXPID5GH1,
+            SSB_SPROM4_TXPID5GH1_SHIFT);
+       SPEX(txpid5gh[2], SSB_SPROM4_TXPID5GH23, SSB_SPROM4_TXPID5GH2,
+            SSB_SPROM4_TXPID5GH2_SHIFT);
+       SPEX(txpid5gh[3], SSB_SPROM4_TXPID5GH23, SSB_SPROM4_TXPID5GH3,
+            SSB_SPROM4_TXPID5GH3_SHIFT);
+
+       SPEX(boardflags_lo, SSB_SPROM8_BFLLO, ~0, 0);
+       SPEX(boardflags_hi, SSB_SPROM8_BFLHI, ~0, 0);
+       SPEX(boardflags2_lo, SSB_SPROM8_BFL2LO, ~0, 0);
+       SPEX(boardflags2_hi, SSB_SPROM8_BFL2HI, ~0, 0);
+
+       SPEX(country_code, SSB_SPROM8_CCODE, ~0, 0);
+
+       /* Extract cores power info info */
+       for (i = 0; i < ARRAY_SIZE(pwr_info_offset); i++) {
+               o = pwr_info_offset[i];
+               SPEX(core_pwr_info[i].itssi_2g, o + SSB_SROM8_2G_MAXP_ITSSI,
+                       SSB_SPROM8_2G_ITSSI, SSB_SPROM8_2G_ITSSI_SHIFT);
+               SPEX(core_pwr_info[i].maxpwr_2g, o + SSB_SROM8_2G_MAXP_ITSSI,
+                       SSB_SPROM8_2G_MAXP, 0);
+
+               SPEX(core_pwr_info[i].pa_2g[0], o + SSB_SROM8_2G_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_2g[1], o + SSB_SROM8_2G_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_2g[2], o + SSB_SROM8_2G_PA_2, ~0, 0);
+
+               SPEX(core_pwr_info[i].itssi_5g, o + SSB_SROM8_5G_MAXP_ITSSI,
+                       SSB_SPROM8_5G_ITSSI, SSB_SPROM8_5G_ITSSI_SHIFT);
+               SPEX(core_pwr_info[i].maxpwr_5g, o + SSB_SROM8_5G_MAXP_ITSSI,
+                       SSB_SPROM8_5G_MAXP, 0);
+               SPEX(core_pwr_info[i].maxpwr_5gh, o + SSB_SPROM8_5GHL_MAXP,
+                       SSB_SPROM8_5GH_MAXP, 0);
+               SPEX(core_pwr_info[i].maxpwr_5gl, o + SSB_SPROM8_5GHL_MAXP,
+                       SSB_SPROM8_5GL_MAXP, SSB_SPROM8_5GL_MAXP_SHIFT);
+
+               SPEX(core_pwr_info[i].pa_5gl[0], o + SSB_SROM8_5GL_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gl[1], o + SSB_SROM8_5GL_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gl[2], o + SSB_SROM8_5GL_PA_2, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5g[0], o + SSB_SROM8_5G_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5g[1], o + SSB_SROM8_5G_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5g[2], o + SSB_SROM8_5G_PA_2, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gh[0], o + SSB_SROM8_5GH_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gh[1], o + SSB_SROM8_5GH_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gh[2], o + SSB_SROM8_5GH_PA_2, ~0, 0);
+       }
+
+       SPEX(fem.ghz2.tssipos, SSB_SPROM8_FEM2G, SSB_SROM8_FEM_TSSIPOS,
+            SSB_SROM8_FEM_TSSIPOS_SHIFT);
+       SPEX(fem.ghz2.extpa_gain, SSB_SPROM8_FEM2G, SSB_SROM8_FEM_EXTPA_GAIN,
+            SSB_SROM8_FEM_EXTPA_GAIN_SHIFT);
+       SPEX(fem.ghz2.pdet_range, SSB_SPROM8_FEM2G, SSB_SROM8_FEM_PDET_RANGE,
+            SSB_SROM8_FEM_PDET_RANGE_SHIFT);
+       SPEX(fem.ghz2.tr_iso, SSB_SPROM8_FEM2G, SSB_SROM8_FEM_TR_ISO,
+            SSB_SROM8_FEM_TR_ISO_SHIFT);
+       SPEX(fem.ghz2.antswlut, SSB_SPROM8_FEM2G, SSB_SROM8_FEM_ANTSWLUT,
+            SSB_SROM8_FEM_ANTSWLUT_SHIFT);
+
+       SPEX(fem.ghz5.tssipos, SSB_SPROM8_FEM5G, SSB_SROM8_FEM_TSSIPOS,
+            SSB_SROM8_FEM_TSSIPOS_SHIFT);
+       SPEX(fem.ghz5.extpa_gain, SSB_SPROM8_FEM5G, SSB_SROM8_FEM_EXTPA_GAIN,
+            SSB_SROM8_FEM_EXTPA_GAIN_SHIFT);
+       SPEX(fem.ghz5.pdet_range, SSB_SPROM8_FEM5G, SSB_SROM8_FEM_PDET_RANGE,
+            SSB_SROM8_FEM_PDET_RANGE_SHIFT);
+       SPEX(fem.ghz5.tr_iso, SSB_SPROM8_FEM5G, SSB_SROM8_FEM_TR_ISO,
+            SSB_SROM8_FEM_TR_ISO_SHIFT);
+       SPEX(fem.ghz5.antswlut, SSB_SPROM8_FEM5G, SSB_SROM8_FEM_ANTSWLUT,
+            SSB_SROM8_FEM_ANTSWLUT_SHIFT);
 }
 
 int bcma_sprom_get(struct bcma_bus *bus)
@@ -230,6 +271,7 @@ int bcma_sprom_get(struct bcma_bus *bus)
         * TODO: understand this condition and use it */
        offset = (bus->chipinfo.id == 0x4331) ? BCMA_CC_SPROM :
                BCMA_CC_SPROM_PCIE6;
+       pr_debug("SPROM offset 0x%x\n", offset);
        bcma_sprom_read(bus, offset, sprom);
 
        if (bus->chipinfo.id == 0x4331)
index d366dadcf86e6a47c6a48261bd2a480a803d5cac..a339693fbe265cfc475f097d70fb0c11dc29e0b0 100644 (file)
@@ -80,7 +80,7 @@ static bool modparam_fastchanswitch;
 module_param_named(fastchanswitch, modparam_fastchanswitch, bool, S_IRUGO);
 MODULE_PARM_DESC(fastchanswitch, "Enable fast channel switching for AR2413/AR5413 radios.");
 
-static int ath5k_modparam_no_hw_rfkill_switch;
+static bool ath5k_modparam_no_hw_rfkill_switch;
 module_param_named(no_hw_rfkill_switch, ath5k_modparam_no_hw_rfkill_switch,
                                                                bool, S_IRUGO);
 MODULE_PARM_DESC(no_hw_rfkill_switch, "Ignore the GPIO RFKill switch state");
@@ -2442,6 +2442,9 @@ ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)
                BIT(NL80211_IFTYPE_ADHOC) |
                BIT(NL80211_IFTYPE_MESH_POINT);
 
+       /* SW support for IBSS_RSN is provided by mac80211 */
+       hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
+
        /* both antennas can be configured as RX or TX */
        hw->wiphy->available_antennas_tx = 0x3;
        hw->wiphy->available_antennas_rx = 0x3;
index 6ed4c0717e3e31bbe85ad871ada0c0b0fb11f62e..af4c7ecb4b303a6595413339de28473677ac135a 100644 (file)
@@ -483,6 +483,14 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
        if (ath5k_modparam_nohwcrypt)
                return -EOPNOTSUPP;
 
+       if (vif->type == NL80211_IFTYPE_ADHOC &&
+           (key->cipher == WLAN_CIPHER_SUITE_TKIP ||
+            key->cipher == WLAN_CIPHER_SUITE_CCMP) &&
+           !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) {
+               /* don't program group keys when using IBSS_RSN */
+               return -EOPNOTSUPP;
+       }
+
        switch (key->cipher) {
        case WLAN_CIPHER_SUITE_WEP40:
        case WLAN_CIPHER_SUITE_WEP104:
index 77c8ded8de57bd7738bf62925383414cb01da951..f317515d8bf374e4b56348af1cf16b98cd3accae 100644 (file)
@@ -968,8 +968,7 @@ static void ath9k_hif_usb_dealloc_urbs(struct hif_device_usb *hif_dev)
        ath9k_hif_usb_dealloc_rx_urbs(hif_dev);
 }
 
-static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev,
-                                    u32 drv_info)
+static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
 {
        int transfer, err;
        const void *data = hif_dev->firmware->data;
@@ -1000,7 +999,7 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev,
        }
        kfree(buf);
 
-       if (IS_AR7010_DEVICE(drv_info))
+       if (IS_AR7010_DEVICE(hif_dev->usb_device_id->driver_info))
                firm_offset = AR7010_FIRMWARE_TEXT;
        else
                firm_offset = AR9271_FIRMWARE_TEXT;
@@ -1021,28 +1020,18 @@ static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev,
        return 0;
 }
 
-static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev, u32 drv_info)
+static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev)
 {
-       int ret, idx;
        struct usb_host_interface *alt = &hif_dev->interface->altsetting[0];
        struct usb_endpoint_descriptor *endp;
+       int ret, idx;
 
-       /* Request firmware */
-       ret = request_firmware(&hif_dev->firmware, hif_dev->fw_name,
-                              &hif_dev->udev->dev);
-       if (ret) {
-               dev_err(&hif_dev->udev->dev,
-                       "ath9k_htc: Firmware - %s not found\n", hif_dev->fw_name);
-               goto err_fw_req;
-       }
-
-       /* Download firmware */
-       ret = ath9k_hif_usb_download_fw(hif_dev, drv_info);
+       ret = ath9k_hif_usb_download_fw(hif_dev);
        if (ret) {
                dev_err(&hif_dev->udev->dev,
                        "ath9k_htc: Firmware - %s download failed\n",
                        hif_dev->fw_name);
-               goto err_fw_download;
+               return ret;
        }
 
        /* On downloading the firmware to the target, the USB descriptor of EP4
@@ -1064,23 +1053,84 @@ static int ath9k_hif_usb_dev_init(struct hif_device_usb *hif_dev, u32 drv_info)
        if (ret) {
                dev_err(&hif_dev->udev->dev,
                        "ath9k_htc: Unable to allocate URBs\n");
-               goto err_fw_download;
+               return ret;
        }
 
        return 0;
-
-err_fw_download:
-       release_firmware(hif_dev->firmware);
-err_fw_req:
-       hif_dev->firmware = NULL;
-       return ret;
 }
 
 static void ath9k_hif_usb_dev_deinit(struct hif_device_usb *hif_dev)
 {
        ath9k_hif_usb_dealloc_urbs(hif_dev);
-       if (hif_dev->firmware)
-               release_firmware(hif_dev->firmware);
+}
+
+/*
+ * If initialization fails or the FW cannot be retrieved,
+ * detach the device.
+ */
+static void ath9k_hif_usb_firmware_fail(struct hif_device_usb *hif_dev)
+{
+       struct device *parent = hif_dev->udev->dev.parent;
+
+       complete(&hif_dev->fw_done);
+
+       if (parent)
+               device_lock(parent);
+
+       device_release_driver(&hif_dev->udev->dev);
+
+       if (parent)
+               device_unlock(parent);
+}
+
+static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context)
+{
+       struct hif_device_usb *hif_dev = context;
+       int ret;
+
+       if (!fw) {
+               dev_err(&hif_dev->udev->dev,
+                       "ath9k_htc: Failed to get firmware %s\n",
+                       hif_dev->fw_name);
+               goto err_fw;
+       }
+
+       hif_dev->htc_handle = ath9k_htc_hw_alloc(hif_dev, &hif_usb,
+                                                &hif_dev->udev->dev);
+       if (hif_dev->htc_handle == NULL) {
+               goto err_fw;
+       }
+
+       hif_dev->firmware = fw;
+
+       /* Proceed with initialization */
+
+       ret = ath9k_hif_usb_dev_init(hif_dev);
+       if (ret)
+               goto err_dev_init;
+
+       ret = ath9k_htc_hw_init(hif_dev->htc_handle,
+                               &hif_dev->interface->dev,
+                               hif_dev->usb_device_id->idProduct,
+                               hif_dev->udev->product,
+                               hif_dev->usb_device_id->driver_info);
+       if (ret) {
+               ret = -EINVAL;
+               goto err_htc_hw_init;
+       }
+
+       complete(&hif_dev->fw_done);
+
+       return;
+
+err_htc_hw_init:
+       ath9k_hif_usb_dev_deinit(hif_dev);
+err_dev_init:
+       ath9k_htc_hw_free(hif_dev->htc_handle);
+       release_firmware(fw);
+       hif_dev->firmware = NULL;
+err_fw:
+       ath9k_hif_usb_firmware_fail(hif_dev);
 }
 
 /*
@@ -1155,20 +1205,16 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
        }
 
        usb_get_dev(udev);
+
        hif_dev->udev = udev;
        hif_dev->interface = interface;
-       hif_dev->device_id = id->idProduct;
+       hif_dev->usb_device_id = id;
 #ifdef CONFIG_PM
        udev->reset_resume = 1;
 #endif
        usb_set_intfdata(interface, hif_dev);
 
-       hif_dev->htc_handle = ath9k_htc_hw_alloc(hif_dev, &hif_usb,
-                                                &hif_dev->udev->dev);
-       if (hif_dev->htc_handle == NULL) {
-               ret = -ENOMEM;
-               goto err_htc_hw_alloc;
-       }
+       init_completion(&hif_dev->fw_done);
 
        /* Find out which firmware to load */
 
@@ -1177,29 +1223,22 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
        else
                hif_dev->fw_name = FIRMWARE_AR9271;
 
-       ret = ath9k_hif_usb_dev_init(hif_dev, id->driver_info);
-       if (ret) {
-               ret = -EINVAL;
-               goto err_hif_init_usb;
-       }
-
-       ret = ath9k_htc_hw_init(hif_dev->htc_handle,
-                               &interface->dev, hif_dev->device_id,
-                               hif_dev->udev->product, id->driver_info);
+       ret = request_firmware_nowait(THIS_MODULE, true, hif_dev->fw_name,
+                                     &hif_dev->udev->dev, GFP_KERNEL,
+                                     hif_dev, ath9k_hif_usb_firmware_cb);
        if (ret) {
-               ret = -EINVAL;
-               goto err_htc_hw_init;
+               dev_err(&hif_dev->udev->dev,
+                       "ath9k_htc: Async request for firmware %s failed\n",
+                       hif_dev->fw_name);
+               goto err_fw_req;
        }
 
-       dev_info(&hif_dev->udev->dev, "ath9k_htc: USB layer initialized\n");
+       dev_info(&hif_dev->udev->dev, "ath9k_htc: Firmware %s requested\n",
+                hif_dev->fw_name);
 
        return 0;
 
-err_htc_hw_init:
-       ath9k_hif_usb_dev_deinit(hif_dev);
-err_hif_init_usb:
-       ath9k_htc_hw_free(hif_dev->htc_handle);
-err_htc_hw_alloc:
+err_fw_req:
        usb_set_intfdata(interface, NULL);
        kfree(hif_dev);
        usb_put_dev(udev);
@@ -1234,9 +1273,15 @@ static void ath9k_hif_usb_disconnect(struct usb_interface *interface)
        if (!hif_dev)
                return;
 
-       ath9k_htc_hw_deinit(hif_dev->htc_handle, unplugged);
-       ath9k_htc_hw_free(hif_dev->htc_handle);
-       ath9k_hif_usb_dev_deinit(hif_dev);
+       wait_for_completion(&hif_dev->fw_done);
+
+       if (hif_dev->firmware) {
+               ath9k_htc_hw_deinit(hif_dev->htc_handle, unplugged);
+               ath9k_htc_hw_free(hif_dev->htc_handle);
+               ath9k_hif_usb_dev_deinit(hif_dev);
+               release_firmware(hif_dev->firmware);
+       }
+
        usb_set_intfdata(interface, NULL);
 
        if (!unplugged && (hif_dev->flags & HIF_USB_START))
@@ -1276,8 +1321,7 @@ static int ath9k_hif_usb_resume(struct usb_interface *interface)
                return ret;
 
        if (hif_dev->firmware) {
-               ret = ath9k_hif_usb_download_fw(hif_dev,
-                               htc_handle->drv_priv->ah->hw_version.usbdev);
+               ret = ath9k_hif_usb_download_fw(hif_dev);
                if (ret)
                        goto fail_resume;
        } else {
index 794f63094e5d66db28189cc248e106474358497e..487ff658b4c1890f597045c739d919ff6dd16689 100644 (file)
@@ -87,10 +87,11 @@ struct cmd_buf {
 #define HIF_USB_START BIT(0)
 
 struct hif_device_usb {
-       u16 device_id;
        struct usb_device *udev;
        struct usb_interface *interface;
+       const struct usb_device_id *usb_device_id;
        const struct firmware *firmware;
+       struct completion fw_done;
        struct htc_target *htc_handle;
        struct hif_usb_tx tx;
        struct usb_anchor regout_submitted;
index 9be10a2da1c29cc48f6a96656a596c8cf6e6c5c4..fc7519c933904ac5c800b755fcd867d3b34133de 100644 (file)
@@ -741,6 +741,8 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
 
        hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
 
+       hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
+
        hw->queues = 4;
        hw->channel_change_time = 5000;
        hw->max_listen_interval = 10;
index ef4c6066129022d90bda90416a65bdab93d59c27..06101b6bdeac97777813820e87e53c4e350737ce 100644 (file)
@@ -1409,6 +1409,21 @@ static int ath9k_htc_set_key(struct ieee80211_hw *hw,
        if (htc_modparam_nohwcrypt)
                return -ENOSPC;
 
+       if ((vif->type == NL80211_IFTYPE_ADHOC ||
+            vif->type == NL80211_IFTYPE_MESH_POINT) &&
+           (key->cipher == WLAN_CIPHER_SUITE_TKIP ||
+            key->cipher == WLAN_CIPHER_SUITE_CCMP) &&
+           !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) {
+               /*
+                * For now, disable hw crypto for the RSN IBSS group keys. This
+                * could be optimized in the future to use a modified key cache
+                * design to support per-STA RX GTK, but until that gets
+                * implemented, use of software crypto for group addressed
+                * frames is a acceptable to allow RSN IBSS to be used.
+                */
+               return -EOPNOTSUPP;
+       }
+
        mutex_lock(&priv->mutex);
        ath_dbg(common, CONFIG, "Set HW Key\n");
        ath9k_htc_ps_wakeup(priv);
index 4a00806e2852af4e88638076f8b60c85fb82426b..ec82e926badc50ea65cd265d80f7b8317f53339b 100644 (file)
@@ -340,9 +340,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan,
                fastcc = false;
 
        ath_dbg(common, CONFIG, "Reset to %u MHz, HT40: %d fastcc: %d\n",
-               hchan->channel, !!(hchan->channelFlags & (CHANNEL_HT40MINUS |
-                                                         CHANNEL_HT40PLUS)),
-               fastcc);
+               hchan->channel, IS_CHAN_HT40(hchan), fastcc);
 
        r = ath9k_hw_reset(ah, hchan, caldata, fastcc);
        if (r) {
index b3c3798fe5130eaf4e4ea7e528a3e8c646f8711b..635b592ad96181478af45cb2697ea05dbd823077 100644 (file)
@@ -694,7 +694,7 @@ static u8 ath_rc_get_highest_rix(struct ath_softc *sc,
                return rate;
 
        /* This should not happen */
-       WARN_ON(1);
+       WARN_ON_ONCE(1);
 
        rate = ath_rc_priv->valid_rate_index[0];
 
index 6cfbb419e2f6d1efe8ddf7e2d551928efcd95f9d..0cea20e3e250049d58b96466bcfed59927ae158b 100644 (file)
@@ -559,6 +559,7 @@ int carl9170_set_hwretry_limit(struct ar9170 *ar, const u32 max_retry);
 int carl9170_upload_key(struct ar9170 *ar, const u8 id, const u8 *mac,
        const u8 ktype, const u8 keyidx, const u8 *keydata, const int keylen);
 int carl9170_disable_key(struct ar9170 *ar, const u8 id);
+int carl9170_set_mac_tpc(struct ar9170 *ar, struct ieee80211_channel *channel);
 
 /* RX */
 void carl9170_rx(struct ar9170 *ar, void *buf, unsigned int len);
@@ -593,7 +594,6 @@ int carl9170_get_noisefloor(struct ar9170 *ar);
 
 /* FW */
 int carl9170_parse_firmware(struct ar9170 *ar);
-int carl9170_fw_fix_eeprom(struct ar9170 *ar);
 
 extern struct ieee80211_rate __carl9170_ratetable[];
 extern int modparam_noht;
index 3de61adacd34af2f28c24ef2149e8d7c0b51d234..cffde8d9a521d26ed6ea5886daad4693c15fc108 100644 (file)
@@ -389,39 +389,6 @@ carl9170_find_fw_desc(struct ar9170 *ar, const __u8 *fw_data, const size_t len)
        return (void *)&fw_data[scan - found];
 }
 
-int carl9170_fw_fix_eeprom(struct ar9170 *ar)
-{
-       const struct carl9170fw_fix_desc *fix_desc = NULL;
-       unsigned int i, n, off;
-       u32 *data = (void *)&ar->eeprom;
-
-       fix_desc = carl9170_fw_find_desc(ar, FIX_MAGIC,
-               sizeof(*fix_desc), CARL9170FW_FIX_DESC_CUR_VER);
-
-       if (!fix_desc)
-               return 0;
-
-       n = (le16_to_cpu(fix_desc->head.length) - sizeof(*fix_desc)) /
-           sizeof(struct carl9170fw_fix_entry);
-
-       for (i = 0; i < n; i++) {
-               off = le32_to_cpu(fix_desc->data[i].address) -
-                     AR9170_EEPROM_START;
-
-               if (off >= sizeof(struct ar9170_eeprom) || (off & 3)) {
-                       dev_err(&ar->udev->dev, "Skip invalid entry %d\n", i);
-                       continue;
-               }
-
-               data[off / sizeof(*data)] &=
-                       le32_to_cpu(fix_desc->data[i].mask);
-               data[off / sizeof(*data)] |=
-                       le32_to_cpu(fix_desc->data[i].value);
-       }
-
-       return 0;
-}
-
 int carl9170_parse_firmware(struct ar9170 *ar)
 {
        const struct carl9170fw_desc_head *fw_desc = NULL;
index dfda919709954d27cb0a288c556c9933e55c731c..53415bfd8bef7e673749904369775520ff74beae 100644 (file)
@@ -485,3 +485,38 @@ int carl9170_disable_key(struct ar9170 *ar, const u8 id)
        return carl9170_exec_cmd(ar, CARL9170_CMD_DKEY,
                sizeof(key), (u8 *)&key, 0, NULL);
 }
+
+int carl9170_set_mac_tpc(struct ar9170 *ar, struct ieee80211_channel *channel)
+{
+       unsigned int power, chains;
+
+       if (ar->eeprom.tx_mask != 1)
+               chains = AR9170_TX_PHY_TXCHAIN_2;
+       else
+               chains = AR9170_TX_PHY_TXCHAIN_1;
+
+       switch (channel->band) {
+       case IEEE80211_BAND_2GHZ:
+               power = ar->power_2G_ofdm[0] & 0x3f;
+               break;
+       case IEEE80211_BAND_5GHZ:
+               power = ar->power_5G_leg[0] & 0x3f;
+               break;
+       default:
+               BUG_ON(1);
+       }
+
+       power = min_t(unsigned int, power, ar->hw->conf.power_level * 2);
+
+       carl9170_regwrite_begin(ar);
+       carl9170_regwrite(AR9170_MAC_REG_ACK_TPC,
+                         0x3c1e | power << 20 | chains << 26);
+       carl9170_regwrite(AR9170_MAC_REG_RTS_CTS_TPC,
+                         power << 5 | chains << 11 |
+                         power << 21 | chains << 27);
+       carl9170_regwrite(AR9170_MAC_REG_CFEND_QOSNULL_TPC,
+                         power << 5 | chains << 11 |
+                         power << 21 | chains << 27);
+       carl9170_regwrite_finish();
+       return carl9170_regwrite_result();
+}
index db774212161bc820225fb9f14564302be55cc3be..8d2523b3f722ea39785876333a687cfd9597bfd9 100644 (file)
@@ -853,11 +853,6 @@ static int carl9170_op_config(struct ieee80211_hw *hw, u32 changed)
                        goto out;
        }
 
-       if (changed & IEEE80211_CONF_CHANGE_POWER) {
-               /* TODO */
-               err = 0;
-       }
-
        if (changed & IEEE80211_CONF_CHANGE_SMPS) {
                /* TODO */
                err = 0;
@@ -891,6 +886,12 @@ static int carl9170_op_config(struct ieee80211_hw *hw, u32 changed)
                        goto out;
        }
 
+       if (changed & IEEE80211_CONF_CHANGE_POWER) {
+               err = carl9170_set_mac_tpc(ar, ar->hw->conf.channel);
+               if (err)
+                       goto out;
+       }
+
 out:
        mutex_unlock(&ar->mutex);
        return err;
@@ -1796,6 +1797,9 @@ void *carl9170_alloc(size_t priv_size)
                ar->noise[i] = -95; /* ATH_DEFAULT_NOISE_FLOOR */
 
        hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
+
+       /* As IBSS Encryption is software-based, IBSS RSN is supported. */
+       hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
        return ar;
 
 err_nomem:
@@ -1931,10 +1935,6 @@ int carl9170_register(struct ar9170 *ar)
        if (err)
                return err;
 
-       err = carl9170_fw_fix_eeprom(ar);
-       if (err)
-               return err;
-
        err = carl9170_parse_eeprom(ar);
        if (err)
                return err;
index 472efc7e34022ffbc9162afb9752069803833edd..b72c09cf43a4c614a56d5b63ca1f34f11b28d4f0 100644 (file)
@@ -1426,15 +1426,15 @@ static void carl9170_calc_ctl(struct ar9170 *ar, u32 freq, enum carl9170_bw bw)
 #undef EDGES
 }
 
-static int carl9170_set_power_cal(struct ar9170 *ar, u32 freq,
-                                 enum carl9170_bw bw)
+static void carl9170_set_power_cal(struct ar9170 *ar, u32 freq,
+                                  enum carl9170_bw bw)
 {
        struct ar9170_calibration_target_power_legacy *ctpl;
        struct ar9170_calibration_target_power_ht *ctph;
        u8 *ctpres;
        int ntargets;
        int idx, i, n;
-       u8 ackpower, ackchains, f;
+       u8 f;
        u8 pwr_freqs[AR5416_MAX_NUM_TGT_PWRS];
 
        if (freq < 3000)
@@ -1523,32 +1523,6 @@ static int carl9170_set_power_cal(struct ar9170 *ar, u32 freq,
 
        /* calc. conformance test limits and apply to ar->power*[] */
        carl9170_calc_ctl(ar, freq, bw);
-
-       /* set ACK/CTS TX power */
-       carl9170_regwrite_begin(ar);
-
-       if (ar->eeprom.tx_mask != 1)
-               ackchains = AR9170_TX_PHY_TXCHAIN_2;
-       else
-               ackchains = AR9170_TX_PHY_TXCHAIN_1;
-
-       if (freq < 3000)
-               ackpower = ar->power_2G_ofdm[0] & 0x3f;
-       else
-               ackpower = ar->power_5G_leg[0] & 0x3f;
-
-       carl9170_regwrite(AR9170_MAC_REG_ACK_TPC,
-                         0x3c1e | ackpower << 20 | ackchains << 26);
-       carl9170_regwrite(AR9170_MAC_REG_RTS_CTS_TPC,
-                         ackpower << 5 | ackchains << 11 |
-                         ackpower << 21 | ackchains << 27);
-
-       carl9170_regwrite(AR9170_MAC_REG_CFEND_QOSNULL_TPC,
-                         ackpower << 5 | ackchains << 11 |
-                         ackpower << 21 | ackchains << 27);
-
-       carl9170_regwrite_finish();
-       return carl9170_regwrite_result();
 }
 
 int carl9170_get_noisefloor(struct ar9170 *ar)
@@ -1712,7 +1686,9 @@ int carl9170_set_channel(struct ar9170 *ar, struct ieee80211_channel *channel,
        if (err)
                return err;
 
-       err = carl9170_set_power_cal(ar, channel->center_freq, bw);
+       carl9170_set_power_cal(ar, channel->center_freq, bw);
+
+       err = carl9170_set_mac_tpc(ar, channel);
        if (err)
                return err;
 
index d19a9ee9d057a904577d9497435911bc2867e978..771e1a9294c54e1d70e1183e2cdbe00fa2595dc7 100644 (file)
@@ -719,6 +719,8 @@ static void carl9170_tx_rate_tpc_chains(struct ar9170 *ar,
                else
                        *chains = AR9170_TX_PHY_TXCHAIN_2;
        }
+
+       *tpc = min_t(unsigned int, *tpc, ar->hw->conf.power_level * 2);
 }
 
 static __le32 carl9170_tx_physet(struct ar9170 *ar,
index 16e8f8058155464d1537f4bfc3b6bdc3af344f75..835462dc1206fe4757b0549d86a83f9e5c7d458d 100644 (file)
@@ -999,6 +999,12 @@ static inline void b43_write16(struct b43_wldev *dev, u16 offset, u16 value)
        dev->dev->write16(dev->dev, offset, value);
 }
 
+static inline void b43_maskset16(struct b43_wldev *dev, u16 offset, u16 mask,
+                                u16 set)
+{
+       b43_write16(dev, offset, (b43_read16(dev, offset) & mask) | set);
+}
+
 static inline u32 b43_read32(struct b43_wldev *dev, u16 offset)
 {
        return dev->dev->read32(dev->dev, offset);
@@ -1009,6 +1015,12 @@ static inline void b43_write32(struct b43_wldev *dev, u16 offset, u32 value)
        dev->dev->write32(dev->dev, offset, value);
 }
 
+static inline void b43_maskset32(struct b43_wldev *dev, u16 offset, u32 mask,
+                                u32 set)
+{
+       b43_write32(dev, offset, (b43_read32(dev, offset) & mask) | set);
+}
+
 static inline void b43_block_read(struct b43_wldev *dev, void *buffer,
                                 size_t count, u16 offset, u8 reg_width)
 {
index 23ffb1b9a86f441f771c8f2ac200d823d76cf440..5189cf38123a8a30af8ec50d9157e5f51869f44d 100644 (file)
@@ -580,22 +580,14 @@ void b43_tsf_read(struct b43_wldev *dev, u64 *tsf)
 
 static void b43_time_lock(struct b43_wldev *dev)
 {
-       u32 macctl;
-
-       macctl = b43_read32(dev, B43_MMIO_MACCTL);
-       macctl |= B43_MACCTL_TBTTHOLD;
-       b43_write32(dev, B43_MMIO_MACCTL, macctl);
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~0, B43_MACCTL_TBTTHOLD);
        /* Commit the write */
        b43_read32(dev, B43_MMIO_MACCTL);
 }
 
 static void b43_time_unlock(struct b43_wldev *dev)
 {
-       u32 macctl;
-
-       macctl = b43_read32(dev, B43_MMIO_MACCTL);
-       macctl &= ~B43_MACCTL_TBTTHOLD;
-       b43_write32(dev, B43_MMIO_MACCTL, macctl);
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_TBTTHOLD, 0);
        /* Commit the write */
        b43_read32(dev, B43_MMIO_MACCTL);
 }
@@ -2487,10 +2479,8 @@ static int b43_upload_microcode(struct b43_wldev *dev)
        b43_write32(dev, B43_MMIO_GEN_IRQ_REASON, B43_IRQ_ALL);
 
        /* Start the microcode PSM */
-       macctl = b43_read32(dev, B43_MMIO_MACCTL);
-       macctl &= ~B43_MACCTL_PSM_JMP0;
-       macctl |= B43_MACCTL_PSM_RUN;
-       b43_write32(dev, B43_MMIO_MACCTL, macctl);
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_PSM_JMP0,
+                     B43_MACCTL_PSM_RUN);
 
        /* Wait for the microcode to load and respond */
        i = 0;
@@ -2590,10 +2580,9 @@ static int b43_upload_microcode(struct b43_wldev *dev)
        return 0;
 
 error:
-       macctl = b43_read32(dev, B43_MMIO_MACCTL);
-       macctl &= ~B43_MACCTL_PSM_RUN;
-       macctl |= B43_MACCTL_PSM_JMP0;
-       b43_write32(dev, B43_MMIO_MACCTL, macctl);
+       /* Stop the microcode PSM. */
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_PSM_RUN,
+                     B43_MACCTL_PSM_JMP0);
 
        return err;
 }
@@ -2708,11 +2697,8 @@ static int b43_gpio_init(struct b43_wldev *dev)
        struct ssb_device *gpiodev;
        u32 mask, set;
 
-       b43_write32(dev, B43_MMIO_MACCTL, b43_read32(dev, B43_MMIO_MACCTL)
-                   & ~B43_MACCTL_GPOUTSMSK);
-
-       b43_write16(dev, B43_MMIO_GPIO_MASK, b43_read16(dev, B43_MMIO_GPIO_MASK)
-                   | 0x000F);
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0);
+       b43_maskset16(dev, B43_MMIO_GPIO_MASK, ~0, 0xF);
 
        mask = 0x0000001F;
        set = 0x0000000F;
@@ -2800,9 +2786,7 @@ void b43_mac_enable(struct b43_wldev *dev)
        dev->mac_suspended--;
        B43_WARN_ON(dev->mac_suspended < 0);
        if (dev->mac_suspended == 0) {
-               b43_write32(dev, B43_MMIO_MACCTL,
-                           b43_read32(dev, B43_MMIO_MACCTL)
-                           | B43_MACCTL_ENABLED);
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~0, B43_MACCTL_ENABLED);
                b43_write32(dev, B43_MMIO_GEN_IRQ_REASON,
                            B43_IRQ_MAC_SUSPENDED);
                /* Commit writes */
@@ -2823,9 +2807,7 @@ void b43_mac_suspend(struct b43_wldev *dev)
 
        if (dev->mac_suspended == 0) {
                b43_power_saving_ctl_bits(dev, B43_PS_AWAKE);
-               b43_write32(dev, B43_MMIO_MACCTL,
-                           b43_read32(dev, B43_MMIO_MACCTL)
-                           & ~B43_MACCTL_ENABLED);
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_ENABLED, 0);
                /* force pci to flush the write */
                b43_read32(dev, B43_MMIO_MACCTL);
                for (i = 35; i; i--) {
@@ -2931,15 +2913,10 @@ static void b43_adjust_opmode(struct b43_wldev *dev)
         *        so always disable it. If we want to implement PMQ,
         *        we need to enable it here (clear DISCPMQ) in AP mode.
         */
-       if (0  /* ctl & B43_MACCTL_AP */) {
-               b43_write32(dev, B43_MMIO_MACCTL,
-                           b43_read32(dev, B43_MMIO_MACCTL)
-                           & ~B43_MACCTL_DISCPMQ);
-       } else {
-               b43_write32(dev, B43_MMIO_MACCTL,
-                           b43_read32(dev, B43_MMIO_MACCTL)
-                           | B43_MACCTL_DISCPMQ);
-       }
+       if (0  /* ctl & B43_MACCTL_AP */)
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_DISCPMQ, 0);
+       else
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~0, B43_MACCTL_DISCPMQ);
 }
 
 static void b43_rate_memory_write(struct b43_wldev *dev, u16 rate, int is_ofdm)
@@ -3083,10 +3060,8 @@ static int b43_chip_init(struct b43_wldev *dev)
        if (dev->dev->core_rev < 5)
                b43_write32(dev, 0x010C, 0x01000000);
 
-       b43_write32(dev, B43_MMIO_MACCTL, b43_read32(dev, B43_MMIO_MACCTL)
-                   & ~B43_MACCTL_INFRA);
-       b43_write32(dev, B43_MMIO_MACCTL, b43_read32(dev, B43_MMIO_MACCTL)
-                   | B43_MACCTL_INFRA);
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_INFRA, 0);
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~0, B43_MACCTL_INFRA);
 
        /* Probe Response Timeout value */
        /* FIXME: Default to 0, has to be set by ioctl probably... :-/ */
@@ -4564,8 +4539,6 @@ static void b43_set_pretbtt(struct b43_wldev *dev)
 /* Locking: wl->mutex */
 static void b43_wireless_core_exit(struct b43_wldev *dev)
 {
-       u32 macctl;
-
        B43_WARN_ON(dev && b43_status(dev) > B43_STAT_INITIALIZED);
        if (!dev || b43_status(dev) != B43_STAT_INITIALIZED)
                return;
@@ -4576,10 +4549,8 @@ static void b43_wireless_core_exit(struct b43_wldev *dev)
        b43_set_status(dev, B43_STAT_UNINIT);
 
        /* Stop the microcode PSM. */
-       macctl = b43_read32(dev, B43_MMIO_MACCTL);
-       macctl &= ~B43_MACCTL_PSM_RUN;
-       macctl |= B43_MACCTL_PSM_JMP0;
-       b43_write32(dev, B43_MMIO_MACCTL, macctl);
+       b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_PSM_RUN,
+                     B43_MACCTL_PSM_JMP0);
 
        b43_dma_free(dev);
        b43_pio_free(dev);
index bf5a43855358319991f94e9e0c43f341dcb161bb..108118820b3635dc5c4ebdd0bd5239630734850f 100644 (file)
@@ -85,22 +85,11 @@ static inline bool b43_nphy_ipa(struct b43_wldev *dev)
                (dev->phy.n->ipa5g_on && band == IEEE80211_BAND_5GHZ));
 }
 
-/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/GetIpaGainTbl */
-static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev)
+/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RxCoreGetState */
+static u8 b43_nphy_get_rx_core_state(struct b43_wldev *dev)
 {
-       if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
-               if (dev->phy.rev >= 6) {
-                       if (dev->dev->chip_id == 47162)
-                               return txpwrctrl_tx_gain_ipa_rev5;
-                       return txpwrctrl_tx_gain_ipa_rev6;
-               } else if (dev->phy.rev >= 5) {
-                       return txpwrctrl_tx_gain_ipa_rev5;
-               } else {
-                       return txpwrctrl_tx_gain_ipa;
-               }
-       } else {
-               return txpwrctrl_tx_gain_ipa_5g;
-       }
+       return (b43_phy_read(dev, B43_NPHY_RFSEQCA) & B43_NPHY_RFSEQCA_RXEN) >>
+               B43_NPHY_RFSEQCA_RXEN_SHIFT;
 }
 
 /**************************************************
@@ -229,7 +218,7 @@ static void b43_nphy_rf_control_intc_override(struct b43_wldev *dev, u8 field,
 
                reg = (i == 0) ?
                        B43_NPHY_RFCTL_INTC1 : B43_NPHY_RFCTL_INTC2;
-               b43_phy_mask(dev, reg, 0xFBFF);
+               b43_phy_set(dev, reg, 0x400);
 
                switch (field) {
                case 0:
@@ -245,7 +234,7 @@ static void b43_nphy_rf_control_intc_override(struct b43_wldev *dev, u8 field,
                                b43_phy_set(dev, B43_NPHY_RFCTL_CMD,
                                                B43_NPHY_RFCTL_CMD_START);
                                for (j = 0; j < 100; j++) {
-                                       if (b43_phy_read(dev, B43_NPHY_RFCTL_CMD) & B43_NPHY_RFCTL_CMD_START) {
+                                       if (!(b43_phy_read(dev, B43_NPHY_RFCTL_CMD) & B43_NPHY_RFCTL_CMD_START)) {
                                                j = 0;
                                                break;
                                        }
@@ -264,7 +253,7 @@ static void b43_nphy_rf_control_intc_override(struct b43_wldev *dev, u8 field,
                                b43_phy_set(dev, B43_NPHY_RFCTL_CMD,
                                                B43_NPHY_RFCTL_CMD_RXTX);
                                for (j = 0; j < 100; j++) {
-                                       if (b43_phy_read(dev, B43_NPHY_RFCTL_CMD) & B43_NPHY_RFCTL_CMD_RXTX) {
+                                       if (!(b43_phy_read(dev, B43_NPHY_RFCTL_CMD) & B43_NPHY_RFCTL_CMD_RXTX)) {
                                                j = 0;
                                                break;
                                        }
@@ -1231,12 +1220,12 @@ static int b43_nphy_poll_rssi(struct b43_wldev *dev, u8 type, s32 *buf,
        u16 s[2];
 
        if (dev->phy.rev >= 3) {
-               save_regs_phy[0] = b43_phy_read(dev,
+               save_regs_phy[0] = b43_phy_read(dev, B43_NPHY_AFECTL_C1);
+               save_regs_phy[1] = b43_phy_read(dev, B43_NPHY_AFECTL_C2);
+               save_regs_phy[2] = b43_phy_read(dev,
                                                B43_NPHY_RFCTL_LUT_TRSW_UP1);
-               save_regs_phy[1] = b43_phy_read(dev,
+               save_regs_phy[3] = b43_phy_read(dev,
                                                B43_NPHY_RFCTL_LUT_TRSW_UP2);
-               save_regs_phy[2] = b43_phy_read(dev, B43_NPHY_AFECTL_C1);
-               save_regs_phy[3] = b43_phy_read(dev, B43_NPHY_AFECTL_C2);
                save_regs_phy[4] = b43_phy_read(dev, B43_NPHY_AFECTL_OVER1);
                save_regs_phy[5] = b43_phy_read(dev, B43_NPHY_AFECTL_OVER);
                save_regs_phy[6] = b43_phy_read(dev, B43_NPHY_TXF_40CO_B1S0);
@@ -1285,12 +1274,12 @@ static int b43_nphy_poll_rssi(struct b43_wldev *dev, u8 type, s32 *buf,
                b43_phy_write(dev, B43_NPHY_GPIO_SEL, save_regs_phy[8]);
 
        if (dev->phy.rev >= 3) {
+               b43_phy_write(dev, B43_NPHY_AFECTL_C1, save_regs_phy[0]);
+               b43_phy_write(dev, B43_NPHY_AFECTL_C2, save_regs_phy[1]);
                b43_phy_write(dev, B43_NPHY_RFCTL_LUT_TRSW_UP1,
-                               save_regs_phy[0]);
+                               save_regs_phy[2]);
                b43_phy_write(dev, B43_NPHY_RFCTL_LUT_TRSW_UP2,
-                               save_regs_phy[1]);
-               b43_phy_write(dev, B43_NPHY_AFECTL_C1, save_regs_phy[2]);
-               b43_phy_write(dev, B43_NPHY_AFECTL_C2, save_regs_phy[3]);
+                               save_regs_phy[3]);
                b43_phy_write(dev, B43_NPHY_AFECTL_OVER1, save_regs_phy[4]);
                b43_phy_write(dev, B43_NPHY_AFECTL_OVER, save_regs_phy[5]);
                b43_phy_write(dev, B43_NPHY_TXF_40CO_B1S0, save_regs_phy[6]);
@@ -1308,6 +1297,186 @@ static int b43_nphy_poll_rssi(struct b43_wldev *dev, u8 type, s32 *buf,
        return out;
 }
 
+/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RSSICalRev3 */
+static void b43_nphy_rev3_rssi_cal(struct b43_wldev *dev)
+{
+       struct b43_phy_n *nphy = dev->phy.n;
+
+       u16 saved_regs_phy_rfctl[2];
+       u16 saved_regs_phy[13];
+       u16 regs_to_store[] = {
+               B43_NPHY_AFECTL_OVER1, B43_NPHY_AFECTL_OVER,
+               B43_NPHY_AFECTL_C1, B43_NPHY_AFECTL_C2,
+               B43_NPHY_TXF_40CO_B1S1, B43_NPHY_RFCTL_OVER,
+               B43_NPHY_TXF_40CO_B1S0, B43_NPHY_TXF_40CO_B32S1,
+               B43_NPHY_RFCTL_CMD,
+               B43_NPHY_RFCTL_LUT_TRSW_UP1, B43_NPHY_RFCTL_LUT_TRSW_UP2,
+               B43_NPHY_RFCTL_RSSIO1, B43_NPHY_RFCTL_RSSIO2
+       };
+
+       u16 class;
+
+       u16 clip_state[2];
+       u16 clip_off[2] = { 0xFFFF, 0xFFFF };
+
+       u8 vcm_final = 0;
+       s8 offset[4];
+       s32 results[8][4] = { };
+       s32 results_min[4] = { };
+       s32 poll_results[4] = { };
+
+       u16 *rssical_radio_regs = NULL;
+       u16 *rssical_phy_regs = NULL;
+
+       u16 r; /* routing */
+       u8 rx_core_state;
+       u8 core, i, j;
+
+       class = b43_nphy_classifier(dev, 0, 0);
+       b43_nphy_classifier(dev, 7, 4);
+       b43_nphy_read_clip_detection(dev, clip_state);
+       b43_nphy_write_clip_detection(dev, clip_off);
+
+       saved_regs_phy_rfctl[0] = b43_phy_read(dev, B43_NPHY_RFCTL_INTC1);
+       saved_regs_phy_rfctl[1] = b43_phy_read(dev, B43_NPHY_RFCTL_INTC2);
+       for (i = 0; i < ARRAY_SIZE(regs_to_store); i++)
+               saved_regs_phy[i] = b43_phy_read(dev, regs_to_store[i]);
+
+       b43_nphy_rf_control_intc_override(dev, 0, 0, 7);
+       b43_nphy_rf_control_intc_override(dev, 1, 1, 7);
+       b43_nphy_rf_control_override(dev, 0x1, 0, 0, false);
+       b43_nphy_rf_control_override(dev, 0x2, 1, 0, false);
+       b43_nphy_rf_control_override(dev, 0x80, 1, 0, false);
+       b43_nphy_rf_control_override(dev, 0x40, 1, 0, false);
+
+       if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) {
+               b43_nphy_rf_control_override(dev, 0x20, 0, 0, false);
+               b43_nphy_rf_control_override(dev, 0x10, 1, 0, false);
+       } else {
+               b43_nphy_rf_control_override(dev, 0x10, 0, 0, false);
+               b43_nphy_rf_control_override(dev, 0x20, 1, 0, false);
+       }
+
+       rx_core_state = b43_nphy_get_rx_core_state(dev);
+       for (core = 0; core < 2; core++) {
+               if (!(rx_core_state & (1 << core)))
+                       continue;
+               r = core ? B2056_RX1 : B2056_RX0;
+               b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, 0, 2);
+               b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, 1, 2);
+               for (i = 0; i < 8; i++) {
+                       b43_radio_maskset(dev, r | B2056_RX_RSSI_MISC, 0xE3,
+                                       i << 2);
+                       b43_nphy_poll_rssi(dev, 2, results[i], 8);
+               }
+               for (i = 0; i < 4; i++) {
+                       s32 curr;
+                       s32 mind = 40;
+                       s32 minpoll = 249;
+                       u8 minvcm = 0;
+                       if (2 * core != i)
+                               continue;
+                       for (j = 0; j < 8; j++) {
+                               curr = results[j][i] * results[j][i] +
+                                       results[j][i + 1] * results[j][i];
+                               if (curr < mind) {
+                                       mind = curr;
+                                       minvcm = j;
+                               }
+                               if (results[j][i] < minpoll)
+                                       minpoll = results[j][i];
+                       }
+                       vcm_final = minvcm;
+                       results_min[i] = minpoll;
+               }
+               b43_radio_maskset(dev, r | B2056_RX_RSSI_MISC, 0xE3,
+                                 vcm_final << 2);
+               for (i = 0; i < 4; i++) {
+                       if (core != i / 2)
+                               continue;
+                       offset[i] = -results[vcm_final][i];
+                       if (offset[i] < 0)
+                               offset[i] = -((abs(offset[i]) + 4) / 8);
+                       else
+                               offset[i] = (offset[i] + 4) / 8;
+                       if (results_min[i] == 248)
+                               offset[i] = -32;
+                       b43_nphy_scale_offset_rssi(dev, 0, offset[i],
+                                                  (i / 2 == 0) ? 1 : 2,
+                                                  (i % 2 == 0) ? 0 : 1,
+                                                  2);
+               }
+       }
+       for (core = 0; core < 2; core++) {
+               if (!(rx_core_state & (1 << core)))
+                       continue;
+               for (i = 0; i < 2; i++) {
+                       b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, 0, i);
+                       b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, 1, i);
+                       b43_nphy_poll_rssi(dev, i, poll_results, 8);
+                       for (j = 0; j < 4; j++) {
+                               if (j / 2 == core)
+                                       offset[j] = 232 - poll_results[j];
+                               if (offset[j] < 0)
+                                       offset[j] = -(abs(offset[j] + 4) / 8);
+                               else
+                                       offset[j] = (offset[j] + 4) / 8;
+                               b43_nphy_scale_offset_rssi(dev, 0,
+                                       offset[2 * core], core + 1, j % 2, i);
+                       }
+               }
+       }
+
+       b43_phy_write(dev, B43_NPHY_RFCTL_INTC1, saved_regs_phy_rfctl[0]);
+       b43_phy_write(dev, B43_NPHY_RFCTL_INTC2, saved_regs_phy_rfctl[1]);
+
+       b43_nphy_force_rf_sequence(dev, B43_RFSEQ_RESET2RX);
+
+       b43_phy_set(dev, B43_NPHY_TXF_40CO_B1S1, 0x1);
+       b43_phy_set(dev, B43_NPHY_RFCTL_CMD, B43_NPHY_RFCTL_CMD_START);
+       b43_phy_mask(dev, B43_NPHY_TXF_40CO_B1S1, ~0x1);
+
+       b43_phy_set(dev, B43_NPHY_RFCTL_OVER, 0x1);
+       b43_phy_set(dev, B43_NPHY_RFCTL_CMD, B43_NPHY_RFCTL_CMD_RXTX);
+       b43_phy_mask(dev, B43_NPHY_TXF_40CO_B1S1, ~0x1);
+
+       for (i = 0; i < ARRAY_SIZE(regs_to_store); i++)
+               b43_phy_write(dev, regs_to_store[i], saved_regs_phy[i]);
+
+       /* Store for future configuration */
+       if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
+               rssical_radio_regs = nphy->rssical_cache.rssical_radio_regs_2G;
+               rssical_phy_regs = nphy->rssical_cache.rssical_phy_regs_2G;
+       } else {
+               rssical_radio_regs = nphy->rssical_cache.rssical_radio_regs_5G;
+               rssical_phy_regs = nphy->rssical_cache.rssical_phy_regs_5G;
+       }
+       rssical_radio_regs[0] = b43_radio_read(dev, 0x602B);
+       rssical_radio_regs[0] = b43_radio_read(dev, 0x702B);
+       rssical_phy_regs[0] = b43_phy_read(dev, B43_NPHY_RSSIMC_0I_RSSI_Z);
+       rssical_phy_regs[1] = b43_phy_read(dev, B43_NPHY_RSSIMC_0Q_RSSI_Z);
+       rssical_phy_regs[2] = b43_phy_read(dev, B43_NPHY_RSSIMC_1I_RSSI_Z);
+       rssical_phy_regs[3] = b43_phy_read(dev, B43_NPHY_RSSIMC_1Q_RSSI_Z);
+       rssical_phy_regs[4] = b43_phy_read(dev, B43_NPHY_RSSIMC_0I_RSSI_X);
+       rssical_phy_regs[5] = b43_phy_read(dev, B43_NPHY_RSSIMC_0Q_RSSI_X);
+       rssical_phy_regs[6] = b43_phy_read(dev, B43_NPHY_RSSIMC_1I_RSSI_X);
+       rssical_phy_regs[7] = b43_phy_read(dev, B43_NPHY_RSSIMC_1Q_RSSI_X);
+       rssical_phy_regs[8] = b43_phy_read(dev, B43_NPHY_RSSIMC_0I_RSSI_Y);
+       rssical_phy_regs[9] = b43_phy_read(dev, B43_NPHY_RSSIMC_0Q_RSSI_Y);
+       rssical_phy_regs[10] = b43_phy_read(dev, B43_NPHY_RSSIMC_1I_RSSI_Y);
+       rssical_phy_regs[11] = b43_phy_read(dev, B43_NPHY_RSSIMC_1Q_RSSI_Y);
+
+       /* Remember for which channel we store configuration */
+       if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ)
+               nphy->rssical_chanspec_2G.center_freq = dev->phy.channel_freq;
+       else
+               nphy->rssical_chanspec_5G.center_freq = dev->phy.channel_freq;
+
+       /* End of calibration, restore configuration */
+       b43_nphy_classifier(dev, 7, class);
+       b43_nphy_write_clip_detection(dev, clip_state);
+}
+
 /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RSSICal */
 static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev, u8 type)
 {
@@ -1472,12 +1641,6 @@ static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev, u8 type)
        b43_nphy_reset_cca(dev);
 }
 
-/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RSSICalRev3 */
-static void b43_nphy_rev3_rssi_cal(struct b43_wldev *dev)
-{
-       /* TODO */
-}
-
 /*
  * RSSI Calibration
  * http://bcm-v4.sipsolutions.net/802.11/PHY/N/RSSICal
@@ -2229,27 +2392,12 @@ static void b43_nphy_tx_power_fix(struct b43_wldev *dev)
        */
 
        for (i = 0; i < 2; i++) {
-               if (dev->phy.rev >= 3) {
-                       if (b43_nphy_ipa(dev)) {
-                               txgain = *(b43_nphy_get_ipa_gain_table(dev) +
-                                               txpi[i]);
-                       } else if (b43_current_band(dev->wl) ==
-                                  IEEE80211_BAND_5GHZ) {
-                               /* FIXME: use 5GHz tables */
-                               txgain =
-                                       b43_ntab_tx_gain_rev3plus_2ghz[txpi[i]];
-                       } else {
-                               if (dev->phy.rev >= 5 &&
-                                   sprom->fem.ghz5.extpa_gain == 3)
-                                       ; /* FIXME: 5GHz_txgain_HiPwrEPA */
-                               txgain =
-                                       b43_ntab_tx_gain_rev3plus_2ghz[txpi[i]];
-                       }
+               txgain = *(b43_nphy_get_tx_gain_table(dev) + txpi[i]);
+
+               if (dev->phy.rev >= 3)
                        radio_gain = (txgain >> 16) & 0x1FFFF;
-               } else {
-                       txgain = b43_ntab_tx_gain_rev0_1_2[txpi[i]];
+               else
                        radio_gain = (txgain >> 16) & 0x1FFF;
-               }
 
                if (dev->phy.rev >= 7)
                        dac_gain = (txgain >> 8) & 0x7;
@@ -2420,55 +2568,252 @@ static void b43_nphy_tx_power_ctl_idle_tssi(struct b43_wldev *dev)
        nphy->pwr_ctl_info[1].idle_tssi_2g = (tmp >> 8) & 0xFF;
 }
 
-static void b43_nphy_tx_gain_table_upload(struct b43_wldev *dev)
+/* http://bcm-v4.sipsolutions.net/PHY/N/TxPwrLimitToTbl */
+static void b43_nphy_tx_prepare_adjusted_power_table(struct b43_wldev *dev)
 {
-       struct b43_phy *phy = &dev->phy;
+       struct b43_phy_n *nphy = dev->phy.n;
 
-       const u32 *table = NULL;
-#if 0
-       TODO: b43_ntab_papd_pga_gain_delta_ipa_2*
-       u32 rfpwr_offset;
-       u8 pga_gain;
-       int i;
-#endif
+       u8 idx, delta;
+       u8 i, stf_mode;
 
-       if (phy->rev >= 3) {
-               if (b43_nphy_ipa(dev)) {
-                       table = b43_nphy_get_ipa_gain_table(dev);
+       for (i = 0; i < 4; i++)
+               nphy->adj_pwr_tbl[i] = nphy->tx_power_offset[i];
+
+       for (stf_mode = 0; stf_mode < 4; stf_mode++) {
+               delta = 0;
+               switch (stf_mode) {
+               case 0:
+                       if (dev->phy.is_40mhz && dev->phy.rev >= 5) {
+                               idx = 68;
+                       } else {
+                               delta = 1;
+                               idx = dev->phy.is_40mhz ? 52 : 4;
+                       }
+                       break;
+               case 1:
+                       idx = dev->phy.is_40mhz ? 76 : 28;
+                       break;
+               case 2:
+                       idx = dev->phy.is_40mhz ? 84 : 36;
+                       break;
+               case 3:
+                       idx = dev->phy.is_40mhz ? 92 : 44;
+                       break;
+               }
+
+               for (i = 0; i < 20; i++) {
+                       nphy->adj_pwr_tbl[4 + 4 * i + stf_mode] =
+                               nphy->tx_power_offset[idx];
+                       if (i == 0)
+                               idx += delta;
+                       if (i == 14)
+                               idx += 1 - delta;
+                       if (i == 3 || i == 4 || i == 7 || i == 8 || i == 11 ||
+                           i == 13)
+                               idx += 1;
+               }
+       }
+}
+
+/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/TxPwrCtrlSetup */
+static void b43_nphy_tx_power_ctl_setup(struct b43_wldev *dev)
+{
+       struct b43_phy_n *nphy = dev->phy.n;
+       struct ssb_sprom *sprom = dev->dev->bus_sprom;
+
+       s16 a1[2], b0[2], b1[2];
+       u8 idle[2];
+       s8 target[2];
+       s32 num, den, pwr;
+       u32 regval[64];
+
+       u16 freq = dev->phy.channel_freq;
+       u16 tmp;
+       u16 r; /* routing */
+       u8 i, c;
+
+       if (dev->dev->core_rev == 11 || dev->dev->core_rev == 12) {
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~0, 0x200000);
+               b43_read32(dev, B43_MMIO_MACCTL);
+               udelay(1);
+       }
+
+       if (nphy->hang_avoid)
+               b43_nphy_stay_in_carrier_search(dev, true);
+
+       b43_phy_set(dev, B43_NPHY_TSSIMODE, B43_NPHY_TSSIMODE_EN);
+       if (dev->phy.rev >= 3)
+               b43_phy_mask(dev, B43_NPHY_TXPCTL_CMD,
+                            ~B43_NPHY_TXPCTL_CMD_PCTLEN & 0xFFFF);
+       else
+               b43_phy_set(dev, B43_NPHY_TXPCTL_CMD,
+                           B43_NPHY_TXPCTL_CMD_PCTLEN);
+
+       if (dev->dev->core_rev == 11 || dev->dev->core_rev == 12)
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~0x200000, 0);
+
+       if (sprom->revision < 4) {
+               idle[0] = nphy->pwr_ctl_info[0].idle_tssi_2g;
+               idle[1] = nphy->pwr_ctl_info[1].idle_tssi_2g;
+               target[0] = target[1] = 52;
+               a1[0] = a1[1] = -424;
+               b0[0] = b0[1] = 5612;
+               b1[0] = b1[1] = -1393;
+       } else {
+               if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
+                       for (c = 0; c < 2; c++) {
+                               idle[c] = nphy->pwr_ctl_info[c].idle_tssi_2g;
+                               target[c] = sprom->core_pwr_info[c].maxpwr_2g;
+                               a1[c] = sprom->core_pwr_info[c].pa_2g[0];
+                               b0[c] = sprom->core_pwr_info[c].pa_2g[1];
+                               b1[c] = sprom->core_pwr_info[c].pa_2g[2];
+                       }
+               } else if (freq >= 4900 && freq < 5100) {
+                       for (c = 0; c < 2; c++) {
+                               idle[c] = nphy->pwr_ctl_info[c].idle_tssi_5g;
+                               target[c] = sprom->core_pwr_info[c].maxpwr_5gl;
+                               a1[c] = sprom->core_pwr_info[c].pa_5gl[0];
+                               b0[c] = sprom->core_pwr_info[c].pa_5gl[1];
+                               b1[c] = sprom->core_pwr_info[c].pa_5gl[2];
+                       }
+               } else if (freq >= 5100 && freq < 5500) {
+                       for (c = 0; c < 2; c++) {
+                               idle[c] = nphy->pwr_ctl_info[c].idle_tssi_5g;
+                               target[c] = sprom->core_pwr_info[c].maxpwr_5g;
+                               a1[c] = sprom->core_pwr_info[c].pa_5g[0];
+                               b0[c] = sprom->core_pwr_info[c].pa_5g[1];
+                               b1[c] = sprom->core_pwr_info[c].pa_5g[2];
+                       }
+               } else if (freq >= 5500) {
+                       for (c = 0; c < 2; c++) {
+                               idle[c] = nphy->pwr_ctl_info[c].idle_tssi_5g;
+                               target[c] = sprom->core_pwr_info[c].maxpwr_5gh;
+                               a1[c] = sprom->core_pwr_info[c].pa_5gh[0];
+                               b0[c] = sprom->core_pwr_info[c].pa_5gh[1];
+                               b1[c] = sprom->core_pwr_info[c].pa_5gh[2];
+                       }
                } else {
-                       if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) {
-                               if (phy->rev == 3)
-                                       table = b43_ntab_tx_gain_rev3_5ghz;
-                               if (phy->rev == 4)
-                                       table = b43_ntab_tx_gain_rev4_5ghz;
-                               else
-                                       table = b43_ntab_tx_gain_rev5plus_5ghz;
+                       idle[0] = nphy->pwr_ctl_info[0].idle_tssi_5g;
+                       idle[1] = nphy->pwr_ctl_info[1].idle_tssi_5g;
+                       target[0] = target[1] = 52;
+                       a1[0] = a1[1] = -424;
+                       b0[0] = b0[1] = 5612;
+                       b1[0] = b1[1] = -1393;
+               }
+       }
+       /* target[0] = target[1] = nphy->tx_power_max; */
+
+       if (dev->phy.rev >= 3) {
+               if (sprom->fem.ghz2.tssipos)
+                       b43_phy_set(dev, B43_NPHY_TXPCTL_ITSSI, 0x4000);
+               if (dev->phy.rev >= 7) {
+                       for (c = 0; c < 2; c++) {
+                               r = c ? 0x190 : 0x170;
+                               if (b43_nphy_ipa(dev))
+                                       b43_radio_write(dev, r + 0x9, (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) ? 0xE : 0xC);
+                       }
+               } else {
+                       if (b43_nphy_ipa(dev)) {
+                               tmp = (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) ? 0xC : 0xE;
+                               b43_radio_write(dev,
+                                       B2056_TX0 | B2056_TX_TX_SSI_MUX, tmp);
+                               b43_radio_write(dev,
+                                       B2056_TX1 | B2056_TX_TX_SSI_MUX, tmp);
                        } else {
-                               table = b43_ntab_tx_gain_rev3plus_2ghz;
+                               b43_radio_write(dev,
+                                       B2056_TX0 | B2056_TX_TX_SSI_MUX, 0x11);
+                               b43_radio_write(dev,
+                                       B2056_TX1 | B2056_TX_TX_SSI_MUX, 0x11);
                        }
                }
+       }
+
+       if (dev->dev->core_rev == 11 || dev->dev->core_rev == 12) {
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~0, 0x200000);
+               b43_read32(dev, B43_MMIO_MACCTL);
+               udelay(1);
+       }
+
+       if (dev->phy.rev >= 7) {
+               b43_phy_maskset(dev, B43_NPHY_TXPCTL_CMD,
+                               ~B43_NPHY_TXPCTL_CMD_INIT, 0x19);
+               b43_phy_maskset(dev, B43_NPHY_TXPCTL_INIT,
+                               ~B43_NPHY_TXPCTL_INIT_PIDXI1, 0x19);
        } else {
-               table = b43_ntab_tx_gain_rev0_1_2;
+               b43_phy_maskset(dev, B43_NPHY_TXPCTL_CMD,
+                               ~B43_NPHY_TXPCTL_CMD_INIT, 0x40);
+               if (dev->phy.rev > 1)
+                       b43_phy_maskset(dev, B43_NPHY_TXPCTL_INIT,
+                               ~B43_NPHY_TXPCTL_INIT_PIDXI1, 0x40);
+       }
+
+       if (dev->dev->core_rev == 11 || dev->dev->core_rev == 12)
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~0x200000, 0);
+
+       b43_phy_write(dev, B43_NPHY_TXPCTL_N,
+                     0xF0 << B43_NPHY_TXPCTL_N_TSSID_SHIFT |
+                     3 << B43_NPHY_TXPCTL_N_NPTIL2_SHIFT);
+       b43_phy_write(dev, B43_NPHY_TXPCTL_ITSSI,
+                     idle[0] << B43_NPHY_TXPCTL_ITSSI_0_SHIFT |
+                     idle[1] << B43_NPHY_TXPCTL_ITSSI_1_SHIFT |
+                     B43_NPHY_TXPCTL_ITSSI_BINF);
+       b43_phy_write(dev, B43_NPHY_TXPCTL_TPWR,
+                     target[0] << B43_NPHY_TXPCTL_TPWR_0_SHIFT |
+                     target[1] << B43_NPHY_TXPCTL_TPWR_1_SHIFT);
+
+       for (c = 0; c < 2; c++) {
+               for (i = 0; i < 64; i++) {
+                       num = 8 * (16 * b0[c] + b1[c] * i);
+                       den = 32768 + a1[c] * i;
+                       pwr = max((4 * num + den / 2) / den, -8);
+                       if (dev->phy.rev < 3 && (i <= (31 - idle[c] + 1)))
+                               pwr = max(pwr, target[c] + 1);
+                       regval[i] = pwr;
+               }
+               b43_ntab_write_bulk(dev, B43_NTAB32(26 + c, 0), 64, regval);
        }
+
+       b43_nphy_tx_prepare_adjusted_power_table(dev);
+       /*
+       b43_ntab_write_bulk(dev, B43_NTAB16(26, 64), 84, nphy->adj_pwr_tbl);
+       b43_ntab_write_bulk(dev, B43_NTAB16(27, 64), 84, nphy->adj_pwr_tbl);
+       */
+
+       if (nphy->hang_avoid)
+               b43_nphy_stay_in_carrier_search(dev, false);
+}
+
+static void b43_nphy_tx_gain_table_upload(struct b43_wldev *dev)
+{
+       struct b43_phy *phy = &dev->phy;
+
+       const u32 *table = NULL;
+       u32 rfpwr_offset;
+       u8 pga_gain;
+       int i;
+
+       table = b43_nphy_get_tx_gain_table(dev);
        b43_ntab_write_bulk(dev, B43_NTAB32(26, 192), 128, table);
        b43_ntab_write_bulk(dev, B43_NTAB32(27, 192), 128, table);
 
        if (phy->rev >= 3) {
 #if 0
                nphy->gmval = (table[0] >> 16) & 0x7000;
+#endif
 
                for (i = 0; i < 128; i++) {
                        pga_gain = (table[i] >> 24) & 0xF;
                        if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ)
-                               rfpwr_offset = b43_ntab_papd_pga_gain_delta_ipa_2g[pga_gain];
+                               rfpwr_offset =
+                                b43_ntab_papd_pga_gain_delta_ipa_2g[pga_gain];
                        else
-                               rfpwr_offset = b43_ntab_papd_pga_gain_delta_ipa_5g[pga_gain];
+                               rfpwr_offset =
+                                0; /* FIXME */
                        b43_ntab_write(dev, B43_NTAB32(26, 576 + i),
                                       rfpwr_offset);
                        b43_ntab_write(dev, B43_NTAB32(27, 576 + i),
                                       rfpwr_offset);
                }
-#endif
        }
 }
 
@@ -3139,32 +3484,13 @@ static struct nphy_txgains b43_nphy_get_tx_gains(struct b43_wldev *dev)
                        B43_NPHY_TXPCTL_STAT_BIDX_SHIFT;
 
                for (i = 0; i < 2; ++i) {
+                       table = b43_nphy_get_tx_gain_table(dev);
                        if (dev->phy.rev >= 3) {
-                               enum ieee80211_band band =
-                                       b43_current_band(dev->wl);
-
-                               if (b43_nphy_ipa(dev)) {
-                                       table = b43_nphy_get_ipa_gain_table(dev);
-                               } else {
-                                       if (band == IEEE80211_BAND_5GHZ) {
-                                               if (dev->phy.rev == 3)
-                                                       table = b43_ntab_tx_gain_rev3_5ghz;
-                                               else if (dev->phy.rev == 4)
-                                                       table = b43_ntab_tx_gain_rev4_5ghz;
-                                               else
-                                                       table = b43_ntab_tx_gain_rev5plus_5ghz;
-                                       } else {
-                                               table = b43_ntab_tx_gain_rev3plus_2ghz;
-                                       }
-                               }
-
                                target.ipa[i] = (table[index[i]] >> 16) & 0xF;
                                target.pad[i] = (table[index[i]] >> 20) & 0xF;
                                target.pga[i] = (table[index[i]] >> 24) & 0xF;
                                target.txgm[i] = (table[index[i]] >> 28) & 0xF;
                        } else {
-                               table = b43_ntab_tx_gain_rev0_1_2;
-
                                target.ipa[i] = (table[index[i]] >> 16) & 0x3;
                                target.pad[i] = (table[index[i]] >> 18) & 0x3;
                                target.pga[i] = (table[index[i]] >> 20) & 0x7;
@@ -3968,13 +4294,10 @@ static void b43_nphy_superswitch_init(struct b43_wldev *dev, bool init)
 #endif
                }
 
-               b43_write32(dev, B43_MMIO_MACCTL,
-                       b43_read32(dev, B43_MMIO_MACCTL) &
-                       ~B43_MACCTL_GPOUTSMSK);
-               b43_write16(dev, B43_MMIO_GPIO_MASK,
-                       b43_read16(dev, B43_MMIO_GPIO_MASK) | 0xFC00);
-               b43_write16(dev, B43_MMIO_GPIO_CONTROL,
-                       b43_read16(dev, B43_MMIO_GPIO_CONTROL) & ~0xFC00);
+               b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0);
+               b43_maskset16(dev, B43_MMIO_GPIO_MASK, ~0, 0xFC00);
+               b43_maskset16(dev, B43_MMIO_GPIO_CONTROL, (~0xFC00 & 0xFFFF),
+                             0);
 
                if (init) {
                        b43_phy_write(dev, B43_NPHY_RFCTL_LUT_TRSW_LO1, 0x2D8);
@@ -4110,7 +4433,7 @@ int b43_phy_initn(struct b43_wldev *dev)
        b43_nphy_tx_power_ctrl(dev, false);
        b43_nphy_tx_power_fix(dev);
        b43_nphy_tx_power_ctl_idle_tssi(dev);
-       /* TODO N PHY TX Power Control Setup */
+       b43_nphy_tx_power_ctl_setup(dev);
        b43_nphy_tx_gain_table_upload(dev);
 
        if (nphy->phyrxchain != 3)
@@ -4530,8 +4853,7 @@ static void b43_nphy_op_maskset(struct b43_wldev *dev, u16 reg, u16 mask,
 {
        check_phyreg(dev, reg);
        b43_write16(dev, B43_MMIO_PHY_CONTROL, reg);
-       b43_write16(dev, B43_MMIO_PHY_DATA,
-                   (b43_read16(dev, B43_MMIO_PHY_DATA) & mask) | set);
+       b43_maskset16(dev, B43_MMIO_PHY_DATA, mask, set);
 }
 
 static u16 b43_nphy_op_radio_read(struct b43_wldev *dev, u16 reg)
index 5de8f74cc02f5815f973855c0e1c0cdfd20f09e2..fd12b386fea1cc5a1c0796589b650d12e6917fcf 100644 (file)
@@ -798,6 +798,7 @@ struct b43_phy_n {
        bool txpwrctrl;
        bool pwg_gain_5ghz;
        u8 tx_pwr_idx[2];
+       s8 tx_power_offset[101];
        u16 adj_pwr_tbl[84];
        u16 txcal_bbmult;
        u16 txiqlocal_bestc[11];
index f7def13524dd72dca17eef3219fb9cdb5580e531..f0d8377429c695dc6d5cbe4342d49a4bc513ef5d 100644 (file)
@@ -2214,7 +2214,7 @@ static const u16 b43_ntab_antswctl2g_r3[4][32] = {
 };
 
 /* TX gain tables */
-const u32 b43_ntab_tx_gain_rev0_1_2[] = {
+static const u32 b43_ntab_tx_gain_rev0_1_2[] = {
        0x03cc2b44, 0x03cc2b42, 0x03cc2a44, 0x03cc2a42,
        0x03cc2944, 0x03c82b44, 0x03c82b42, 0x03c82a44,
        0x03c82a42, 0x03c82944, 0x03c82942, 0x03c82844,
@@ -2249,7 +2249,7 @@ const u32 b43_ntab_tx_gain_rev0_1_2[] = {
        0x03801442, 0x03801344, 0x03801342, 0x00002b00,
 };
 
-const u32 b43_ntab_tx_gain_rev3plus_2ghz[] = {
+static const u32 b43_ntab_tx_gain_rev3plus_2ghz[] = {
        0x1f410044, 0x1f410042, 0x1f410040, 0x1f41003e,
        0x1f41003c, 0x1f41003b, 0x1f410039, 0x1f410037,
        0x1e410044, 0x1e410042, 0x1e410040, 0x1e41003e,
@@ -2284,7 +2284,7 @@ const u32 b43_ntab_tx_gain_rev3plus_2ghz[] = {
        0x1041003c, 0x1041003b, 0x10410039, 0x10410037,
 };
 
-const u32 b43_ntab_tx_gain_rev3_5ghz[] = {
+static const u32 b43_ntab_tx_gain_rev3_5ghz[] = {
        0xcff70044, 0xcff70042, 0xcff70040, 0xcff7003e,
        0xcff7003c, 0xcff7003b, 0xcff70039, 0xcff70037,
        0xcef70044, 0xcef70042, 0xcef70040, 0xcef7003e,
@@ -2319,7 +2319,7 @@ const u32 b43_ntab_tx_gain_rev3_5ghz[] = {
        0xc0f7003c, 0xc0f7003b, 0xc0f70039, 0xc0f70037,
 };
 
-const u32 b43_ntab_tx_gain_rev4_5ghz[] = {
+static const u32 b43_ntab_tx_gain_rev4_5ghz[] = {
        0x2ff20044, 0x2ff20042, 0x2ff20040, 0x2ff2003e,
        0x2ff2003c, 0x2ff2003b, 0x2ff20039, 0x2ff20037,
        0x2ef20044, 0x2ef20042, 0x2ef20040, 0x2ef2003e,
@@ -2354,7 +2354,7 @@ const u32 b43_ntab_tx_gain_rev4_5ghz[] = {
        0x20d2003a, 0x20d20038, 0x20d20036, 0x20d20034,
 };
 
-const u32 b43_ntab_tx_gain_rev5plus_5ghz[] = {
+static const u32 b43_ntab_tx_gain_rev5plus_5ghz[] = {
        0x0f62004a, 0x0f620048, 0x0f620046, 0x0f620044,
        0x0f620042, 0x0f620040, 0x0f62003e, 0x0f62003c,
        0x0e620044, 0x0e620042, 0x0e620040, 0x0e62003e,
@@ -2389,7 +2389,7 @@ const u32 b43_ntab_tx_gain_rev5plus_5ghz[] = {
        0x0062003b, 0x00620039, 0x00620037, 0x00620035,
 };
 
-const u32 txpwrctrl_tx_gain_ipa[] = {
+static const u32 txpwrctrl_tx_gain_ipa[] = {
        0x5ff7002d, 0x5ff7002b, 0x5ff7002a, 0x5ff70029,
        0x5ff70028, 0x5ff70027, 0x5ff70026, 0x5ff70025,
        0x5ef7002d, 0x5ef7002b, 0x5ef7002a, 0x5ef70029,
@@ -2424,7 +2424,7 @@ const u32 txpwrctrl_tx_gain_ipa[] = {
        0x50f70028, 0x50f70027, 0x50f70026, 0x50f70025,
 };
 
-const u32 txpwrctrl_tx_gain_ipa_rev5[] = {
+static const u32 txpwrctrl_tx_gain_ipa_rev5[] = {
        0x1ff7002d, 0x1ff7002b, 0x1ff7002a, 0x1ff70029,
        0x1ff70028, 0x1ff70027, 0x1ff70026, 0x1ff70025,
        0x1ef7002d, 0x1ef7002b, 0x1ef7002a, 0x1ef70029,
@@ -2459,7 +2459,7 @@ const u32 txpwrctrl_tx_gain_ipa_rev5[] = {
        0x10f70028, 0x10f70027, 0x10f70026, 0x10f70025,
 };
 
-const u32 txpwrctrl_tx_gain_ipa_rev6[] = {
+static const u32 txpwrctrl_tx_gain_ipa_rev6[] = {
        0x0ff7002d, 0x0ff7002b, 0x0ff7002a, 0x0ff70029,
        0x0ff70028, 0x0ff70027, 0x0ff70026, 0x0ff70025,
        0x0ef7002d, 0x0ef7002b, 0x0ef7002a, 0x0ef70029,
@@ -2494,7 +2494,7 @@ const u32 txpwrctrl_tx_gain_ipa_rev6[] = {
        0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
 };
 
-const u32 txpwrctrl_tx_gain_ipa_5g[] = {
+static const u32 txpwrctrl_tx_gain_ipa_5g[] = {
        0x7ff70035, 0x7ff70033, 0x7ff70032, 0x7ff70031,
        0x7ff7002f, 0x7ff7002e, 0x7ff7002d, 0x7ff7002b,
        0x7ff7002a, 0x7ff70029, 0x7ff70028, 0x7ff70027,
@@ -2529,6 +2529,11 @@ const u32 txpwrctrl_tx_gain_ipa_5g[] = {
        0x70f70021, 0x70f70020, 0x70f70020, 0x70f7001f,
 };
 
+const s8 b43_ntab_papd_pga_gain_delta_ipa_2g[] = {
+       -114, -108, -98, -91, -84, -78, -70, -62,
+       -54, -46, -39, -31, -23, -15, -8, 0
+};
+
 const u16 tbl_iqcal_gainparams[2][9][8] = {
        {
                { 0x000, 0, 0, 2, 0x69, 0x69, 0x69, 0x69 },
@@ -2739,11 +2744,11 @@ const struct nphy_rf_control_override_rev3 tbl_rf_control_override_rev3[] = {
        { 0x0001,  0, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0002 (fls 2) */
        { 0x0002,  1, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0004 (fls 3) */
        { 0x0004,  2, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0008 (fls 4) */
-       { 0x0016,  4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
+       { 0x0010,  4, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0010 (fls 5) */
        { 0x0020,  5, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0020 (fls 6) */
        { 0x0040,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0040 (fls 7) */
-       { 0x0080,  6, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
-       { 0x0100,  7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
+       { 0x0080,  7, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0080 (fls 8) */
+       { 0x0100,  8, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0100 (fls 9) */
        { 0x0007,  0, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0200 (fls 10) */
        { 0x0070,  4, 0xE7, 0xF8, 0xEC, 0xFA }, /* field == 0x0400 (fls 11) */
        { 0xE000, 13, 0xE7, 0x7A, 0xEC, 0x7D }, /* field == 0x0800 (fls 12) */
@@ -3126,6 +3131,53 @@ void b43_nphy_rev3plus_tables_init(struct b43_wldev *dev)
                B43_WARN_ON(1);
 }
 
+/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/GetIpaGainTbl */
+static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev)
+{
+       if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
+               if (dev->phy.rev >= 6) {
+                       if (dev->dev->chip_id == 47162)
+                               return txpwrctrl_tx_gain_ipa_rev5;
+                       return txpwrctrl_tx_gain_ipa_rev6;
+               } else if (dev->phy.rev >= 5) {
+                       return txpwrctrl_tx_gain_ipa_rev5;
+               } else {
+                       return txpwrctrl_tx_gain_ipa;
+               }
+       } else {
+               return txpwrctrl_tx_gain_ipa_5g;
+       }
+}
+
+const u32 *b43_nphy_get_tx_gain_table(struct b43_wldev *dev)
+{
+       enum ieee80211_band band = b43_current_band(dev->wl);
+       struct ssb_sprom *sprom = dev->dev->bus_sprom;
+
+       if (dev->phy.rev < 3)
+               return b43_ntab_tx_gain_rev0_1_2;
+
+       /* rev 3+ */
+       if ((dev->phy.n->ipa2g_on && band == IEEE80211_BAND_2GHZ) ||
+           (dev->phy.n->ipa5g_on && band == IEEE80211_BAND_5GHZ)) {
+               return b43_nphy_get_ipa_gain_table(dev);
+       } else if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) {
+               if (dev->phy.rev == 3)
+                       return b43_ntab_tx_gain_rev3_5ghz;
+               if (dev->phy.rev == 4)
+                       return sprom->fem.ghz5.extpa_gain == 3 ?
+                               b43_ntab_tx_gain_rev4_5ghz :
+                               b43_ntab_tx_gain_rev4_5ghz; /* FIXME */
+               else
+                       return b43_ntab_tx_gain_rev5plus_5ghz;
+       } else {
+               if (dev->phy.rev >= 5 && sprom->fem.ghz5.extpa_gain == 3)
+                       return b43_ntab_tx_gain_rev3plus_2ghz; /* FIXME */
+               else
+                       return b43_ntab_tx_gain_rev3plus_2ghz;
+       }
+}
+
 struct nphy_gain_ctl_workaround_entry *b43_nphy_get_gain_ctl_workaround_ent(
        struct b43_wldev *dev, bool ghz5, bool ext_lna)
 {
index 97038c4819304938a6d41fed53ae3b0d65ce5a6c..f348953c02308b5c29f4048f5e4e87ebff8a37cb 100644 (file)
@@ -177,16 +177,10 @@ void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset,
 void b43_nphy_rev0_1_2_tables_init(struct b43_wldev *dev);
 void b43_nphy_rev3plus_tables_init(struct b43_wldev *dev);
 
-extern const u32 b43_ntab_tx_gain_rev0_1_2[];
-extern const u32 b43_ntab_tx_gain_rev3plus_2ghz[];
-extern const u32 b43_ntab_tx_gain_rev3_5ghz[];
-extern const u32 b43_ntab_tx_gain_rev4_5ghz[];
-extern const u32 b43_ntab_tx_gain_rev5plus_5ghz[];
-
-extern const u32 txpwrctrl_tx_gain_ipa[];
-extern const u32 txpwrctrl_tx_gain_ipa_rev5[];
-extern const u32 txpwrctrl_tx_gain_ipa_rev6[];
-extern const u32 txpwrctrl_tx_gain_ipa_5g[];
+const u32 *b43_nphy_get_tx_gain_table(struct b43_wldev *dev);
+
+extern const s8 b43_ntab_papd_pga_gain_delta_ipa_2g[];
+
 extern const u16 tbl_iqcal_gainparams[2][9][8];
 extern const struct nphy_txiqcal_ladder ladder_lo[];
 extern const struct nphy_txiqcal_ladder ladder_iq[];
index f41c047eca8292652204b6c43e8de19c39503445..b987920e982e2db07aa49dc9ffadf5070addfa98 100644 (file)
@@ -16,7 +16,7 @@
 # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 # common flags
-subdir-ccflags-$(CONFIG_BRCMDBG)       += -DBCMDBG
+subdir-ccflags-$(CONFIG_BRCMDBG)       += -DDEBUG
 
 obj-$(CONFIG_BRCMUTIL) += brcmutil/
 obj-$(CONFIG_BRCMFMAC) += brcmfmac/
index 4bc8d251acf8ed79d446b0dce22c938ca9bcb709..e925290b432bc104057be312664e322a18a66ac6 100644 (file)
@@ -15,6 +15,8 @@
  */
 /* ****************** SDIO CARD Interface Functions **************************/
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/netdevice.h>
 #include <linux/export.h>
index 9b8c0ed833d40f523ffbb9ea9f3388ad610daa71..ac71adeece51aa0f4bcb343de17e2abfbd130bde 100644 (file)
@@ -13,6 +13,9 @@
  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/netdevice.h>
 #include <linux/mmc/sdio.h>
index e58ea40a75b0679645a983a715fbfa1e71fb0fe3..07686a748d3cf3ae3746784d34f40d796f93fbc2 100644 (file)
@@ -644,9 +644,9 @@ extern char *brcmf_ifname(struct brcmf_pub *drvr, int idx);
 extern int brcmf_proto_cdc_query_dcmd(struct brcmf_pub *drvr, int ifidx,
                                       uint cmd, void *buf, uint len);
 
-#ifdef BCMDBG
+#ifdef DEBUG
 extern int brcmf_write_to_file(struct brcmf_pub *drvr, const u8 *buf, int size);
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 extern int brcmf_ifname2idx(struct brcmf_pub *drvr, char *name);
 extern int brcmf_c_host_event(struct brcmf_pub *drvr, int *idx,
index ac8d1f4378886c53d2678c5ab763a9bfd6b87951..b3e3b7f25d82332226be904263de4b7109b84823 100644 (file)
@@ -19,6 +19,8 @@
  * For certain dcmd codes, the dongle interprets string data from the host.
  ******************************************************************************/
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/netdevice.h>
 #include <linux/sched.h>
index a51d8f5d36fcf843bf311e5e257d560bb134e134..4187435220f34fbbb5b33fb9d266ffaff121c713 100644 (file)
@@ -13,6 +13,9 @@
  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/sched.h>
@@ -38,7 +41,7 @@
 #define BRCMF_PKT_FILTER_PATTERN_FIXED_LEN     \
        offsetof(struct brcmf_pkt_filter_pattern_le, mask_and_pattern)
 
-#ifdef BCMDBG
+#ifdef DEBUG
 static const char brcmf_version[] =
        "Dongle Host Driver, version " BRCMF_VERSION_STR "\nCompiled on "
        __DATE__ " at " __TIME__;
@@ -133,7 +136,7 @@ bool brcmf_c_prec_enq(struct device *dev, struct pktq *q,
        return p != NULL;
 }
 
-#ifdef BCMDBG
+#ifdef DEBUG
 static void
 brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
 {
@@ -399,10 +402,10 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
                p = (char *)&buf[sizeof(struct msgtrace_hdr)];
                while ((s = strstr(p, "\n")) != NULL) {
                        *s = '\0';
-                       printk(KERN_DEBUG"%s\n", p);
+                       pr_debug("%s\n", p);
                        p = s + 1;
                }
-               printk(KERN_DEBUG "%s\n", p);
+               pr_debug("%s\n", p);
 
                /* Reset datalen to avoid display below */
                datalen = 0;
@@ -430,7 +433,7 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
                brcmf_dbg(EVENT, "\n");
        }
 }
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 int
 brcmf_c_host_event(struct brcmf_pub *drvr, int *ifidx, void *pktdata,
@@ -518,9 +521,9 @@ brcmf_c_host_event(struct brcmf_pub *drvr, int *ifidx, void *pktdata,
                break;
        }
 
-#ifdef BCMDBG
+#ifdef DEBUG
        brcmf_c_show_host_event(event, event_data);
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        return 0;
 }
index bb26ee36bc6894e3223f35b2838e391892a947c4..a2c4576cf9ff3fa50e303cf03d1c042a40b45f75 100644 (file)
 #define BRCMF_BTA_VAL  0x1000
 #define BRCMF_ISCAN_VAL 0x2000
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
 
 #define brcmf_dbg(level, fmt, ...)                                     \
 do {                                                                   \
        if (BRCMF_ERROR_VAL == BRCMF_##level##_VAL) {                   \
                if (brcmf_msg_level & BRCMF_##level##_VAL) {            \
                        if (net_ratelimit())                            \
-                               printk(KERN_DEBUG "%s: " fmt,           \
-                                      __func__, ##__VA_ARGS__);        \
+                               pr_debug("%s: " fmt,                    \
+                                        __func__, ##__VA_ARGS__);      \
                }                                                       \
        } else {                                                        \
                if (brcmf_msg_level & BRCMF_##level##_VAL) {            \
-                       printk(KERN_DEBUG "%s: " fmt,                   \
-                              __func__, ##__VA_ARGS__);                \
+                       pr_debug("%s: " fmt,                            \
+                                __func__, ##__VA_ARGS__);              \
                }                                                       \
        }                                                               \
 } while (0)
@@ -56,7 +56,7 @@ do {                                                                  \
 #define BRCMF_BYTES_ON()       (brcmf_msg_level & BRCMF_BYTES_VAL)
 #define BRCMF_GLOM_ON()                (brcmf_msg_level & BRCMF_GLOM_VAL)
 
-#else  /* (defined BCMDBG) || (defined BCMDBG) */
+#else  /* (defined DEBUG) || (defined DEBUG) */
 
 #define brcmf_dbg(level, fmt, ...) no_printk(fmt, ##__VA_ARGS__)
 
@@ -66,7 +66,13 @@ do {                                                                 \
 #define BRCMF_BYTES_ON()       0
 #define BRCMF_GLOM_ON()                0
 
-#endif                         /* defined(BCMDBG) */
+#endif                         /* defined(DEBUG) */
+
+#define brcmf_dbg_hex_dump(test, data, len, fmt, ...)                  \
+do {                                                                   \
+       if (test)                                                       \
+               brcmu_dbg_hex_dump(data, len, fmt, ##__VA_ARGS__);      \
+} while (0)
 
 extern int brcmf_msg_level;
 
index eb9eb766ac270d5e3011b98568343eeba12c5833..db2df1f1e6b27589befa5c810acd8d0b223fe75b 100644 (file)
@@ -14,6 +14,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/kthread.h>
@@ -590,8 +592,8 @@ static void brcmf_ethtool_get_drvinfo(struct net_device *ndev,
        sprintf(info->bus_info, "%s", dev_name(drvr->dev));
 }
 
-static struct ethtool_ops brcmf_ethtool_ops = {
-       .get_drvinfo = brcmf_ethtool_get_drvinfo
+static const struct ethtool_ops brcmf_ethtool_ops = {
+       .get_drvinfo = brcmf_ethtool_get_drvinfo,
 };
 
 static int brcmf_ethtool(struct brcmf_pub *drvr, void __user *uaddr)
@@ -1146,7 +1148,7 @@ int brcmf_netdev_wait_pend8021x(struct net_device *ndev)
        return pend;
 }
 
-#ifdef BCMDBG
+#ifdef DEBUG
 int brcmf_write_to_file(struct brcmf_pub *drvr, const u8 *buf, int size)
 {
        int ret = 0;
@@ -1180,4 +1182,4 @@ exit:
 
        return ret;
 }
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
index f7eeee1dcdb66a8b3a09c5534bb8f15a15f09e91..6e4b5e85a099d252891acefc0650fa2429ef9238 100644 (file)
@@ -14,6 +14,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/kthread.h>
@@ -40,7 +42,7 @@
 
 #define DCMD_RESP_TIMEOUT  2000        /* In milli second */
 
-#ifdef BCMDBG
+#ifdef DEBUG
 
 #define BRCMF_TRAP_INFO_SIZE   80
 
@@ -84,7 +86,7 @@ struct rte_console {
        char cbuf[CBUF_LEN];
 };
 
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 #include <chipcommon.h>
 
 #include "dhd_bus.h"
@@ -416,7 +418,7 @@ struct sdpcmd_regs {
        u16 PAD[0x80];
 };
 
-#ifdef BCMDBG
+#ifdef DEBUG
 /* Device console log buffer state */
 struct brcmf_console {
        uint count;             /* Poll interval msec counter */
@@ -426,7 +428,7 @@ struct brcmf_console {
        u8 *buf;                /* Log buffer (host copy) */
        uint last;              /* Last buffer read index */
 };
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 struct sdpcm_shared {
        u32 flags;
@@ -507,11 +509,11 @@ struct brcmf_sdio {
        uint polltick;          /* Tick counter */
        uint pollcnt;           /* Count of active polls */
 
-#ifdef BCMDBG
+#ifdef DEBUG
        uint console_interval;
        struct brcmf_console console;   /* Console output polling support */
        uint console_addr;      /* Console address from shared struct */
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        uint regfails;          /* Count of R_REG failures */
 
@@ -587,10 +589,10 @@ struct brcmf_sdio {
 #define CLK_PENDING    2       /* Not used yet */
 #define CLK_AVAIL      3
 
-#ifdef BCMDBG
+#ifdef DEBUG
 static int qcount[NUMPRIO];
 static int tx_packets[NUMPRIO];
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 #define SDIO_DRIVE_STRENGTH    6       /* in milliamps */
 
@@ -764,12 +766,12 @@ static int brcmf_sdbrcm_htclk(struct brcmf_sdio *bus, bool on, bool pendok)
                bus->clkstate = CLK_AVAIL;
                brcmf_dbg(INFO, "CLKCTL: turned ON\n");
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
                if (bus->alp_only != true) {
                        if (SBSDIO_ALPONLY(clkctl))
                                brcmf_dbg(ERROR, "HT Clock should be on\n");
                }
-#endif                         /* defined (BCMDBG) */
+#endif                         /* defined (DEBUG) */
 
                bus->activity = true;
        } else {
@@ -814,9 +816,9 @@ static int brcmf_sdbrcm_sdclk(struct brcmf_sdio *bus, bool on)
 /* Transition SD and backplane clock readiness */
 static int brcmf_sdbrcm_clkctl(struct brcmf_sdio *bus, uint target, bool pendok)
 {
-#ifdef BCMDBG
+#ifdef DEBUG
        uint oldstate = bus->clkstate;
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        brcmf_dbg(TRACE, "Enter\n");
 
@@ -861,9 +863,9 @@ static int brcmf_sdbrcm_clkctl(struct brcmf_sdio *bus, uint target, bool pendok)
                brcmf_sdbrcm_wd_timer(bus, 0);
                break;
        }
-#ifdef BCMDBG
+#ifdef DEBUG
        brcmf_dbg(INFO, "%d -> %d\n", oldstate, bus->clkstate);
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        return 0;
 }
@@ -1279,13 +1281,10 @@ static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq)
                        }
                        return 0;
                }
-#ifdef BCMDBG
-               if (BRCMF_GLOM_ON()) {
-                       printk(KERN_DEBUG "SUPERFRAME:\n");
-                       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                               pfirst->data, min_t(int, pfirst->len, 48));
-               }
-#endif
+
+               brcmf_dbg_hex_dump(BRCMF_GLOM_ON(),
+                                  pfirst->data, min_t(int, pfirst->len, 48),
+                                  "SUPERFRAME:\n");
 
                /* Validate the superframe header */
                dptr = (u8 *) (pfirst->data);
@@ -1362,13 +1361,8 @@ static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq)
                        check = get_unaligned_le16(dptr + sizeof(u16));
                        chan = SDPCM_PACKET_CHANNEL(&dptr[SDPCM_FRAMETAG_LEN]);
                        doff = SDPCM_DOFFSET_VALUE(&dptr[SDPCM_FRAMETAG_LEN]);
-#ifdef BCMDBG
-                       if (BRCMF_GLOM_ON()) {
-                               printk(KERN_DEBUG "subframe:\n");
-                               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                                    dptr, 32);
-                       }
-#endif
+                       brcmf_dbg_hex_dump(BRCMF_GLOM_ON(),
+                                          dptr, 32, "subframe:\n");
 
                        if ((u16)~(sublen ^ check)) {
                                brcmf_dbg(ERROR, "(subframe %d): HW hdr error: len/check 0x%04x/0x%04x\n",
@@ -1433,13 +1427,8 @@ static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq)
                        }
                        rxseq++;
 
-#ifdef BCMDBG
-                       if (BRCMF_BYTES_ON() && BRCMF_DATA_ON()) {
-                               printk(KERN_DEBUG "Rx Subframe Data:\n");
-                               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                                    dptr, dlen);
-                       }
-#endif
+                       brcmf_dbg_hex_dump(BRCMF_BYTES_ON() && BRCMF_DATA_ON(),
+                                          dptr, dlen, "Rx Subframe Data:\n");
 
                        __skb_trim(pfirst, sublen);
                        skb_pull(pfirst, doff);
@@ -1457,17 +1446,13 @@ static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq)
                                continue;
                        }
 
-#ifdef BCMDBG
-                       if (BRCMF_GLOM_ON()) {
-                               brcmf_dbg(GLOM, "subframe %d to stack, %p (%p/%d) nxt/lnk %p/%p\n",
-                                         bus->glom.qlen, pfirst, pfirst->data,
-                                         pfirst->len, pfirst->next,
-                                         pfirst->prev);
-                               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                               pfirst->data,
-                                               min_t(int, pfirst->len, 32));
-                       }
-#endif                         /* BCMDBG */
+                       brcmf_dbg_hex_dump(BRCMF_GLOM_ON(),
+                                          pfirst->data,
+                                          min_t(int, pfirst->len, 32),
+                                          "subframe %d to stack, %p (%p/%d) nxt/lnk %p/%p\n",
+                                          bus->glom.qlen, pfirst, pfirst->data,
+                                          pfirst->len, pfirst->next,
+                                          pfirst->prev);
                }
                /* sent any remaining packets up */
                if (bus->glom.qlen) {
@@ -1584,12 +1569,8 @@ brcmf_sdbrcm_read_control(struct brcmf_sdio *bus, u8 *hdr, uint len, uint doff)
 
 gotpkt:
 
-#ifdef BCMDBG
-       if (BRCMF_BYTES_ON() && BRCMF_CTL_ON()) {
-               printk(KERN_DEBUG "RxCtrl:\n");
-               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, bus->rxctl, len);
-       }
-#endif
+       brcmf_dbg_hex_dump(BRCMF_BYTES_ON() && BRCMF_CTL_ON(),
+                          bus->rxctl, len, "RxCtrl:\n");
 
        /* Point to valid data and indicate its length */
        bus->rxctl += doff;
@@ -1818,17 +1799,13 @@ brcmf_sdbrcm_readframes(struct brcmf_sdio *bus, uint maxframes, bool *finished)
                        }
                        bus->tx_max = txmax;
 
-#ifdef BCMDBG
-                       if (BRCMF_BYTES_ON() && BRCMF_DATA_ON()) {
-                               printk(KERN_DEBUG "Rx Data:\n");
-                               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                                    rxbuf, len);
-                       } else if (BRCMF_HDRS_ON()) {
-                               printk(KERN_DEBUG "RxHdr:\n");
-                               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                                    bus->rxhdr, SDPCM_HDRLEN);
-                       }
-#endif
+                       brcmf_dbg_hex_dump(BRCMF_BYTES_ON() && BRCMF_DATA_ON(),
+                                          rxbuf, len, "Rx Data:\n");
+                       brcmf_dbg_hex_dump(!(BRCMF_BYTES_ON() &&
+                                            BRCMF_DATA_ON()) &&
+                                          BRCMF_HDRS_ON(),
+                                          bus->rxhdr, SDPCM_HDRLEN,
+                                          "RxHdr:\n");
 
                        if (chan == SDPCM_CONTROL_CHANNEL) {
                                brcmf_dbg(ERROR, "(nextlen): readahead on control packet %d?\n",
@@ -1865,13 +1842,9 @@ brcmf_sdbrcm_readframes(struct brcmf_sdio *bus, uint maxframes, bool *finished)
                        brcmf_sdbrcm_rxfail(bus, true, true);
                        continue;
                }
-#ifdef BCMDBG
-               if (BRCMF_BYTES_ON() || BRCMF_HDRS_ON()) {
-                       printk(KERN_DEBUG "RxHdr:\n");
-                       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                            bus->rxhdr, SDPCM_HDRLEN);
-               }
-#endif
+               brcmf_dbg_hex_dump(BRCMF_BYTES_ON() || BRCMF_HDRS_ON(),
+                                  bus->rxhdr, SDPCM_HDRLEN, "RxHdr:\n");
+
 
                /* Extract hardware header fields */
                len = get_unaligned_le16(bus->rxhdr);
@@ -2024,13 +1997,8 @@ brcmf_sdbrcm_readframes(struct brcmf_sdio *bus, uint maxframes, bool *finished)
                skb_push(pkt, BRCMF_FIRSTREAD);
                memcpy(pkt->data, bus->rxhdr, BRCMF_FIRSTREAD);
 
-#ifdef BCMDBG
-               if (BRCMF_BYTES_ON() && BRCMF_DATA_ON()) {
-                       printk(KERN_DEBUG "Rx Data:\n");
-                       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                            pkt->data, len);
-               }
-#endif
+               brcmf_dbg_hex_dump(BRCMF_BYTES_ON() && BRCMF_DATA_ON(),
+                                  pkt->data, len, "Rx Data:\n");
 
 deliver:
                /* Save superframe descriptor and allocate packet frame */
@@ -2038,14 +2006,9 @@ deliver:
                        if (SDPCM_GLOMDESC(&bus->rxhdr[SDPCM_FRAMETAG_LEN])) {
                                brcmf_dbg(GLOM, "glom descriptor, %d bytes:\n",
                                          len);
-#ifdef BCMDBG
-                               if (BRCMF_GLOM_ON()) {
-                                       printk(KERN_DEBUG "Glom Data:\n");
-                                       print_hex_dump_bytes("",
-                                                            DUMP_PREFIX_OFFSET,
-                                                            pkt->data, len);
-                               }
-#endif
+                               brcmf_dbg_hex_dump(BRCMF_GLOM_ON(),
+                                                  pkt->data, len,
+                                                  "Glom Data:\n");
                                __skb_trim(pkt, len);
                                skb_pull(pkt, SDPCM_HDRLEN);
                                bus->glomd = pkt;
@@ -2078,13 +2041,11 @@ deliver:
                down(&bus->sdsem);
        }
        rxcount = maxframes - rxleft;
-#ifdef BCMDBG
        /* Message if we hit the limit */
        if (!rxleft)
                brcmf_dbg(DATA, "hit rx limit of %d frames\n",
                          maxframes);
        else
-#endif                         /* BCMDBG */
                brcmf_dbg(DATA, "processed %d frames\n", rxcount);
        /* Back off rxseq if awaiting rtx, update rx_seq */
        if (bus->rxskip)
@@ -2176,20 +2137,22 @@ static int brcmf_sdbrcm_txpkt(struct brcmf_sdio *bus, struct sk_buff *pkt,
        put_unaligned_le32(swheader, frame + SDPCM_FRAMETAG_LEN);
        put_unaligned_le32(0, frame + SDPCM_FRAMETAG_LEN + sizeof(swheader));
 
-#ifdef BCMDBG
+#ifdef DEBUG
        tx_packets[pkt->priority]++;
-       if (BRCMF_BYTES_ON() &&
-           (((BRCMF_CTL_ON() && (chan == SDPCM_CONTROL_CHANNEL)) ||
-             (BRCMF_DATA_ON() && (chan != SDPCM_CONTROL_CHANNEL))))) {
-               printk(KERN_DEBUG "Tx Frame:\n");
-               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, frame, len);
-       } else if (BRCMF_HDRS_ON()) {
-               printk(KERN_DEBUG "TxHdr:\n");
-               print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                    frame, min_t(u16, len, 16));
-       }
 #endif
 
+       brcmf_dbg_hex_dump(BRCMF_BYTES_ON() &&
+                          ((BRCMF_CTL_ON() && chan == SDPCM_CONTROL_CHANNEL) ||
+                           (BRCMF_DATA_ON() && chan != SDPCM_CONTROL_CHANNEL)),
+                          frame, len, "Tx Frame:\n");
+       brcmf_dbg_hex_dump(!(BRCMF_BYTES_ON() &&
+                            ((BRCMF_CTL_ON() &&
+                              chan == SDPCM_CONTROL_CHANNEL) ||
+                             (BRCMF_DATA_ON() &&
+                              chan != SDPCM_CONTROL_CHANNEL))) &&
+                          BRCMF_HDRS_ON(),
+                          frame, min_t(u16, len, 16), "TxHdr:\n");
+
        /* Raise len to next SDIO block to eliminate tail command */
        if (bus->roundup && bus->blocksize && (len > bus->blocksize)) {
                u16 pad = bus->blocksize - (len % bus->blocksize);
@@ -2410,7 +2373,7 @@ static bool brcmf_sdbrcm_dpc(struct brcmf_sdio *bus)
                int err;
                u8 clkctl, devctl = 0;
 
-#ifdef BCMDBG
+#ifdef DEBUG
                /* Check for inconsistent device control */
                devctl = brcmf_sdcard_cfg_read(bus->sdiodev, SDIO_FUNC_1,
                                               SBSDIO_DEVICE_CTL, &err);
@@ -2418,7 +2381,7 @@ static bool brcmf_sdbrcm_dpc(struct brcmf_sdio *bus)
                        brcmf_dbg(ERROR, "error reading DEVCTL: %d\n", err);
                        bus->sdiodev->bus_if->state = BRCMF_BUS_DOWN;
                }
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
                /* Read CSR, if clock on switch to AVAIL, else ignore */
                clkctl = brcmf_sdcard_cfg_read(bus->sdiodev, SDIO_FUNC_1,
@@ -2701,7 +2664,7 @@ static int brcmf_sdbrcm_bus_txdata(struct device *dev, struct sk_buff *pkt)
                brcmf_txflowcontrol(bus->sdiodev->dev, 0, ON);
        }
 
-#ifdef BCMDBG
+#ifdef DEBUG
        if (pktq_plen(&bus->txq, prec) > qcount[prec])
                qcount[prec] = pktq_plen(&bus->txq, prec);
 #endif
@@ -2774,7 +2737,7 @@ xfer_done:
        return bcmerror;
 }
 
-#ifdef BCMDBG
+#ifdef DEBUG
 #define CONSOLE_LINE_MAX       192
 
 static int brcmf_sdbrcm_readconsole(struct brcmf_sdio *bus)
@@ -2845,14 +2808,14 @@ static int brcmf_sdbrcm_readconsole(struct brcmf_sdio *bus)
                        if (line[n - 1] == '\r')
                                n--;
                        line[n] = 0;
-                       printk(KERN_DEBUG "CONSOLE: %s\n", line);
+                       pr_debug("CONSOLE: %s\n", line);
                }
        }
 break2:
 
        return 0;
 }
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 static int brcmf_tx_frame(struct brcmf_sdio *bus, u8 *frame, u16 len)
 {
@@ -2982,17 +2945,11 @@ brcmf_sdbrcm_bus_txctl(struct device *dev, unsigned char *msg, uint msglen)
        }
 
        if (ret == -1) {
-#ifdef BCMDBG
-               if (BRCMF_BYTES_ON() && BRCMF_CTL_ON()) {
-                       printk(KERN_DEBUG "Tx Frame:\n");
-                       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                            frame, len);
-               } else if (BRCMF_HDRS_ON()) {
-                       printk(KERN_DEBUG "TxHdr:\n");
-                       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                                            frame, min_t(u16, len, 16));
-               }
-#endif
+               brcmf_dbg_hex_dump(BRCMF_BYTES_ON() && BRCMF_CTL_ON(),
+                                  frame, len, "Tx Frame:\n");
+               brcmf_dbg_hex_dump(!(BRCMF_BYTES_ON() && BRCMF_CTL_ON()) &&
+                                  BRCMF_HDRS_ON(),
+                                  frame, min_t(u16, len, 16), "TxHdr:\n");
 
                do {
                        ret = brcmf_tx_frame(bus, frame, len);
@@ -3096,9 +3053,9 @@ static int brcmf_sdbrcm_write_vars(struct brcmf_sdio *bus)
        u8 *vbuffer;
        u32 varsizew;
        __le32 varsizew_le;
-#ifdef BCMDBG
+#ifdef DEBUG
        char *nvram_ularray;
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        /* Even if there are no vars are to be written, we still
                 need to set the ramsize. */
@@ -3115,7 +3072,7 @@ static int brcmf_sdbrcm_write_vars(struct brcmf_sdio *bus)
                /* Write the vars list */
                bcmerror =
                    brcmf_sdbrcm_membytes(bus, true, varaddr, vbuffer, varsize);
-#ifdef BCMDBG
+#ifdef DEBUG
                /* Verify NVRAM bytes */
                brcmf_dbg(INFO, "Compare NVRAM dl & ul; varsize=%d\n", varsize);
                nvram_ularray = kmalloc(varsize, GFP_ATOMIC);
@@ -3142,7 +3099,7 @@ static int brcmf_sdbrcm_write_vars(struct brcmf_sdio *bus)
                        brcmf_dbg(ERROR, "Download/Upload/Compare of NVRAM ok\n");
 
                kfree(nvram_ularray);
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
                kfree(vbuffer);
        }
@@ -3569,9 +3526,9 @@ void brcmf_sdbrcm_isr(void *arg)
 
 static bool brcmf_sdbrcm_bus_watchdog(struct brcmf_sdio *bus)
 {
-#ifdef BCMDBG
+#ifdef DEBUG
        struct brcmf_bus *bus_if = dev_get_drvdata(bus->sdiodev->dev);
-#endif /* BCMDBG */
+#endif /* DEBUG */
 
        brcmf_dbg(TIMER, "Enter\n");
 
@@ -3616,7 +3573,7 @@ static bool brcmf_sdbrcm_bus_watchdog(struct brcmf_sdio *bus)
                /* Update interrupt tracking */
                bus->lastintrs = bus->intrcount;
        }
-#ifdef BCMDBG
+#ifdef DEBUG
        /* Poll for console output periodically */
        if (bus_if->state == BRCMF_BUS_DATA &&
            bus->console_interval != 0) {
@@ -3630,7 +3587,7 @@ static bool brcmf_sdbrcm_bus_watchdog(struct brcmf_sdio *bus)
                                bus->console_interval = 0;
                }
        }
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        /* On idle timeout clear activity flag and/or turn off clock */
        if ((bus->idletime > 0) && (bus->clkstate == CLK_AVAIL)) {
@@ -3721,11 +3678,8 @@ brcmf_sdbrcm_probe_attach(struct brcmf_sdio *bus, u32 regsva)
        if (brcmf_sdcard_set_sbaddr_window(bus->sdiodev, SI_ENUM_BASE))
                brcmf_dbg(ERROR, "FAILED to return to SI_ENUM_BASE\n");
 
-#ifdef BCMDBG
-       printk(KERN_DEBUG "F1 signature read @0x18000000=0x%4x\n",
-              brcmf_sdcard_reg_read(bus->sdiodev, SI_ENUM_BASE, 4));
-
-#endif                         /* BCMDBG */
+       pr_debug("F1 signature read @0x18000000=0x%4x\n",
+                brcmf_sdcard_reg_read(bus->sdiodev, SI_ENUM_BASE, 4));
 
        /*
         * Force PLL off until brcmf_sdio_chip_attach()
@@ -3944,8 +3898,7 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev)
        bus->watchdog_tsk = kthread_run(brcmf_sdbrcm_watchdog_thread,
                                        bus, "brcmf_watchdog");
        if (IS_ERR(bus->watchdog_tsk)) {
-               printk(KERN_WARNING
-                      "brcmf_watchdog thread failed to start\n");
+               pr_warn("brcmf_watchdog thread failed to start\n");
                bus->watchdog_tsk = NULL;
        }
        /* Initialize DPC thread */
@@ -3953,8 +3906,7 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev)
        bus->dpc_tsk = kthread_run(brcmf_sdbrcm_dpc_thread,
                                   bus, "brcmf_dpc");
        if (IS_ERR(bus->dpc_tsk)) {
-               printk(KERN_WARNING
-                      "brcmf_dpc thread failed to start\n");
+               pr_warn("brcmf_dpc thread failed to start\n");
                bus->dpc_tsk = NULL;
        }
 
index 11b2d7c97ba22072e8231fd02f2758e7d0bf5945..1534efc21631482e5b7902e88511b48964a15568 100644 (file)
@@ -15,6 +15,8 @@
  */
 /* ***** SDIO interface chip backplane handle functions ***** */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/netdevice.h>
 #include <linux/mmc/card.h>
index bf11850a20f11b1201179c7c7659a16397f2d4cc..74c95a597950426f10fc1029d4f0b2faea31ce38 100644 (file)
@@ -16,6 +16,8 @@
 
 /* Toplevel file. Relies on dhd_linux.c to send commands to the dongle. */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kernel.h>
 #include <linux/if_arp.h>
 #include <linux/sched.h>
@@ -2783,7 +2785,7 @@ static struct wireless_dev *brcmf_alloc_wdev(s32 sizeof_iface,
            wiphy_new(&wl_cfg80211_ops,
                      sizeof(struct brcmf_cfg80211_priv) + sizeof_iface);
        if (!wdev->wiphy) {
-               WL_ERR("Couldn not allocate wiphy device\n");
+               WL_ERR("Could not allocate wiphy device\n");
                err = -ENOMEM;
                goto wiphy_new_out;
        }
@@ -2809,7 +2811,7 @@ static struct wireless_dev *brcmf_alloc_wdev(s32 sizeof_iface,
                                                                 */
        err = wiphy_register(wdev->wiphy);
        if (err < 0) {
-               WL_ERR("Couldn not register wiphy device (%d)\n", err);
+               WL_ERR("Could not register wiphy device (%d)\n", err);
                goto wiphy_register_out;
        }
        return wdev;
index a613b49cb13f543e66363f5749ac09473a64b4b5..b5d9b36df3d0556bb54a34efbeabc5512b10057b 100644 (file)
@@ -32,63 +32,63 @@ struct brcmf_cfg80211_ibss;
 #define WL_DBG_MASK            ((WL_DBG_INFO | WL_DBG_ERR | WL_DBG_TRACE) | \
                                (WL_DBG_SCAN) | (WL_DBG_CONN))
 
-#define        WL_ERR(fmt, args...)                                    \
+#define        WL_ERR(fmt, ...)                                        \
 do {                                                           \
        if (brcmf_dbg_level & WL_DBG_ERR) {                     \
                if (net_ratelimit()) {                          \
-                       printk(KERN_ERR "ERROR @%s : " fmt,     \
-                               __func__, ##args);              \
+                       pr_err("ERROR @%s : " fmt,              \
+                              __func__, ##__VA_ARGS__);        \
                }                                               \
        }                                                       \
 } while (0)
 
-#if (defined BCMDBG)
-#define        WL_INFO(fmt, args...)                                   \
+#if (defined DEBUG)
+#define        WL_INFO(fmt, ...)                                       \
 do {                                                           \
        if (brcmf_dbg_level & WL_DBG_INFO) {                    \
                if (net_ratelimit()) {                          \
-                       printk(KERN_ERR "INFO @%s : " fmt,      \
-                               __func__, ##args);              \
+                       pr_err("INFO @%s : " fmt,               \
+                              __func__, ##__VA_ARGS__);        \
                }                                               \
        }                                                       \
 } while (0)
 
-#define        WL_TRACE(fmt, args...)                                  \
+#define        WL_TRACE(fmt, ...)                                      \
 do {                                                           \
        if (brcmf_dbg_level & WL_DBG_TRACE) {                   \
                if (net_ratelimit()) {                          \
-                       printk(KERN_ERR "TRACE @%s : " fmt,     \
-                               __func__, ##args);              \
+                       pr_err("TRACE @%s : " fmt,              \
+                              __func__, ##__VA_ARGS__);        \
                }                                               \
        }                                                       \
 } while (0)
 
-#define        WL_SCAN(fmt, args...)                                   \
+#define        WL_SCAN(fmt, ...)                                       \
 do {                                                           \
        if (brcmf_dbg_level & WL_DBG_SCAN) {                    \
                if (net_ratelimit()) {                          \
-                       printk(KERN_ERR "SCAN @%s : " fmt,      \
-                               __func__, ##args);              \
+                       pr_err("SCAN @%s : " fmt,               \
+                              __func__, ##__VA_ARGS__);        \
                }                                               \
        }                                                       \
 } while (0)
 
-#define        WL_CONN(fmt, args...)                                   \
+#define        WL_CONN(fmt, ...)                                       \
 do {                                                           \
        if (brcmf_dbg_level & WL_DBG_CONN) {                    \
                if (net_ratelimit()) {                          \
-                       printk(KERN_ERR "CONN @%s : " fmt,      \
-                               __func__, ##args);              \
+                       pr_err("CONN @%s : " fmt,               \
+                              __func__, ##__VA_ARGS__);        \
                }                                               \
        }                                                       \
 } while (0)
 
-#else /* (defined BCMDBG) */
+#else /* (defined DEBUG) */
 #define        WL_INFO(fmt, args...)
 #define        WL_TRACE(fmt, args...)
 #define        WL_SCAN(fmt, args...)
 #define        WL_CONN(fmt, args...)
-#endif /* (defined BCMDBG) */
+#endif /* (defined DEBUG) */
 
 #define WL_NUM_SCAN_MAX                1
 #define WL_NUM_PMKIDS_MAX      MAXPMKID        /* will be used
index ab9bb11abfbb2b26f0bf3a440030a26734099887..c93ea35bceecc2e19157a81981ba183ad5b59b6d 100644 (file)
 
 #define PCI_FORCEHT(sih) (PCIE(sih) && (ai_get_chip_id(sih) == BCM4716_CHIP_ID))
 
-#ifdef BCMDBG
+#ifdef DEBUG
 #define        SI_MSG(fmt, ...)        pr_debug(fmt, ##__VA_ARGS__)
 #else
 #define        SI_MSG(fmt, ...)        no_printk(fmt, ##__VA_ARGS__)
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 #define        GOODCOREADDR(x, b) \
        (((x) >= (b)) && ((x) < ((b) + SI_MAXCORES * SI_CORE_SIZE)) && \
index 90911eec0cf55948fddecffb225eb1543412cc6a..d89dcb14cb6ddd8608f78c93440504b47decab84 100644 (file)
@@ -915,7 +915,7 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
        struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(p);
        struct wiphy *wiphy = wlc->wiphy;
 
-#ifdef BCMDBG
+#ifdef DEBUG
        u8 hole[AMPDU_MAX_MPDU];
        memset(hole, 0, sizeof(hole));
 #endif
index 2e90a9a16ed6885e4792c56953efb701c8b8ee8e..11054ae9d4f6e6993ab5483140a1c367f8c670e2 100644 (file)
 #define BCMEXTRAHDROOM 172
 
 /* debug/trace */
-#ifdef BCMDBG
+#ifdef DEBUG
 #define        DMA_ERROR(fmt, ...)                                     \
 do {                                                           \
        if (*di->msg_level & 1)                                 \
@@ -193,7 +193,7 @@ do {                                                                \
        no_printk(fmt, ##__VA_ARGS__)
 #define        DMA_TRACE(fmt, ...)                     \
        no_printk(fmt, ##__VA_ARGS__)
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 #define        DMA_NONE(fmt, ...)                      \
        no_printk(fmt, ##__VA_ARGS__)
@@ -968,7 +968,7 @@ int dma_rx(struct dma_pub *pub, struct sk_buff_head *skb_list)
                        pktcnt++;
                }
 
-#ifdef BCMDBG
+#ifdef DEBUG
                if (resid > 0) {
                        uint cur;
                        cur =
@@ -979,7 +979,7 @@ int dma_rx(struct dma_pub *pub, struct sk_buff_head *skb_list)
                        DMA_ERROR("rxin %d rxout %d, hw_curr %d\n",
                                   di->rxin, di->rxout, cur);
                }
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
                if ((di->dma.dmactrlflags & DMA_CTRL_RXMULTI) == 0) {
                        DMA_ERROR("%s: bad frame length (%d)\n",
index 448ab9c4eb47b00db5ff558db6a4ab978a4f4f77..c8427978d09e503adb58264d2b6e5e2d1d9ef143 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #define __UNDEF_NO_VERSION__
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/etherdevice.h>
 #include <linux/sched.h>
@@ -96,10 +97,10 @@ static struct bcma_device_id brcms_coreid_table[] = {
 };
 MODULE_DEVICE_TABLE(bcma, brcms_coreid_table);
 
-#ifdef BCMDBG
+#ifdef DEBUG
 static int msglevel = 0xdeadbeef;
 module_param(msglevel, int, 0);
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 static struct ieee80211_channel brcms_2ghz_chantable[] = {
        CHAN2GHZ(1, 2412, IEEE80211_CHAN_NO_HT40MINUS),
@@ -857,7 +858,7 @@ static void brcms_free(struct brcms_info *wl)
        /* free timers */
        for (t = wl->timers; t; t = next) {
                next = t->next;
-#ifdef BCMDBG
+#ifdef DEBUG
                kfree(t->name);
 #endif
                kfree(t);
@@ -1121,8 +1122,7 @@ static int __devinit brcms_bcma_probe(struct bcma_device *pdev)
 
        wl = brcms_attach(pdev);
        if (!wl) {
-               pr_err("%s: %s: brcms_attach failed!\n", KBUILD_MODNAME,
-                      __func__);
+               pr_err("%s: brcms_attach failed!\n", __func__);
                return -ENODEV;
        }
        return 0;
@@ -1177,13 +1177,13 @@ static int __init brcms_module_init(void)
 {
        int error = -ENODEV;
 
-#ifdef BCMDBG
+#ifdef DEBUG
        if (msglevel != 0xdeadbeef)
                brcm_msg_level = msglevel;
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        error = bcma_driver_register(&brcms_bcma_driver);
-       printk(KERN_ERR "%s: register returned %d\n", __func__, error);
+       pr_err("%s: register returned %d\n", __func__, error);
        if (!error)
                return 0;
 
@@ -1367,7 +1367,7 @@ struct brcms_timer *brcms_init_timer(struct brcms_info *wl,
        t->next = wl->timers;
        wl->timers = t;
 
-#ifdef BCMDBG
+#ifdef DEBUG
        t->name = kmalloc(strlen(name) + 1, GFP_ATOMIC);
        if (t->name)
                strcpy(t->name, name);
@@ -1386,7 +1386,7 @@ void brcms_add_timer(struct brcms_timer *t, uint ms, int periodic)
 {
        struct ieee80211_hw *hw = t->wl->pub->ieee_hw;
 
-#ifdef BCMDBG
+#ifdef DEBUG
        if (t->set)
                wiphy_err(hw->wiphy, "%s: Already set. Name: %s, per %d\n",
                          __func__, t->name, periodic);
@@ -1431,7 +1431,7 @@ void brcms_free_timer(struct brcms_timer *t)
 
        if (wl->timers == t) {
                wl->timers = wl->timers->next;
-#ifdef BCMDBG
+#ifdef DEBUG
                kfree(t->name);
 #endif
                kfree(t);
@@ -1443,7 +1443,7 @@ void brcms_free_timer(struct brcms_timer *t)
        while (tmp) {
                if (tmp->next == t) {
                        tmp->next = t->next;
-#ifdef BCMDBG
+#ifdef DEBUG
                        kfree(t->name);
 #endif
                        kfree(t);
index 8f60419c37bf1e0d5d0c15062c8a1103b8248b61..9358bd5ebd35d016058d1238d11aca6880fdae19 100644 (file)
@@ -40,7 +40,7 @@ struct brcms_timer {
        bool periodic;
        bool set;               /* indicates if timer is active */
        struct brcms_timer *next;       /* for freeing on unload */
-#ifdef BCMDBG
+#ifdef DEBUG
        char *name;             /* Description of the timer */
 #endif
 };
index f6affc6fd12a511831d07d7333ea0b45f0bb8d5f..fb712cac915732bc8568f0724d65169a0ea67a12 100644 (file)
@@ -14,6 +14,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/pci_ids.h>
 #include <linux/if_ether.h>
 #include <net/mac80211.h>
@@ -293,11 +295,11 @@ const u8 prio2fifo[NUMPRIO] = {
 
 /* debug/trace */
 uint brcm_msg_level =
-#if defined(BCMDBG)
+#if defined(DEBUG)
        LOG_ERROR_VAL;
 #else
        0;
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
 /* TX FIFO number to WME/802.1E Access Category */
 static const u8 wme_fifo2ac[] = {
@@ -342,14 +344,14 @@ static const u16 xmtfifo_sz[][NFIFO] = {
        {9, 58, 22, 14, 14, 5},
 };
 
-#ifdef BCMDBG
+#ifdef DEBUG
 static const char * const fifo_names[] = {
        "AC_BK", "AC_BE", "AC_VI", "AC_VO", "BCMC", "ATIM" };
 #else
 static const char fifo_names[6][0];
 #endif
 
-#ifdef BCMDBG
+#ifdef DEBUG
 /* pointer to most recently allocated wl/wlc */
 static struct brcms_c_info *wlc_info_dbg = (struct brcms_c_info *) (NULL);
 #endif
@@ -3075,30 +3077,30 @@ static void brcms_c_statsupd(struct brcms_c_info *wlc)
 {
        int i;
        struct macstat macstats;
-#ifdef BCMDBG
+#ifdef DEBUG
        u16 delta;
        u16 rxf0ovfl;
        u16 txfunfl[NFIFO];
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        /* if driver down, make no sense to update stats */
        if (!wlc->pub->up)
                return;
 
-#ifdef BCMDBG
+#ifdef DEBUG
        /* save last rx fifo 0 overflow count */
        rxf0ovfl = wlc->core->macstat_snapshot->rxf0ovfl;
 
        /* save last tx fifo  underflow count */
        for (i = 0; i < NFIFO; i++)
                txfunfl[i] = wlc->core->macstat_snapshot->txfunfl[i];
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        /* Read mac stats from contiguous shared memory */
        brcms_b_copyfrom_objmem(wlc->hw, M_UCODE_MACSTAT, &macstats,
                                sizeof(struct macstat), OBJADDR_SHM_SEL);
 
-#ifdef BCMDBG
+#ifdef DEBUG
        /* check for rx fifo 0 overflow */
        delta = (u16) (wlc->core->macstat_snapshot->rxf0ovfl - rxf0ovfl);
        if (delta)
@@ -3114,7 +3116,7 @@ static void brcms_c_statsupd(struct brcms_c_info *wlc)
                        wiphy_err(wlc->wiphy, "wl%d: %u tx fifo %d underflows!"
                                  "\n", wlc->pub->unit, delta, i);
        }
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
 
        /* merge counters from dma module */
        for (i = 0; i < NFIFO; i++) {
@@ -5765,62 +5767,49 @@ int brcms_c_module_unregister(struct brcms_pub *pub, const char *name,
        return -ENODATA;
 }
 
-#ifdef BCMDBG
-static const char * const supr_reason[] = {
-       "None", "PMQ Entry", "Flush request",
-       "Previous frag failure", "Channel mismatch",
-       "Lifetime Expiry", "Underflow"
-};
-
-static void brcms_c_print_txs_status(u16 s)
-{
-       printk(KERN_DEBUG "[15:12]  %d  frame attempts\n",
-              (s & TX_STATUS_FRM_RTX_MASK) >> TX_STATUS_FRM_RTX_SHIFT);
-       printk(KERN_DEBUG " [11:8]  %d  rts attempts\n",
-              (s & TX_STATUS_RTS_RTX_MASK) >> TX_STATUS_RTS_RTX_SHIFT);
-       printk(KERN_DEBUG "    [7]  %d  PM mode indicated\n",
-              ((s & TX_STATUS_PMINDCTD) ? 1 : 0));
-       printk(KERN_DEBUG "    [6]  %d  intermediate status\n",
-              ((s & TX_STATUS_INTERMEDIATE) ? 1 : 0));
-       printk(KERN_DEBUG "    [5]  %d  AMPDU\n",
-              (s & TX_STATUS_AMPDU) ? 1 : 0);
-       printk(KERN_DEBUG "  [4:2]  %d  Frame Suppressed Reason (%s)\n",
-              ((s & TX_STATUS_SUPR_MASK) >> TX_STATUS_SUPR_SHIFT),
-              supr_reason[(s & TX_STATUS_SUPR_MASK) >> TX_STATUS_SUPR_SHIFT]);
-       printk(KERN_DEBUG "    [1]  %d  acked\n",
-              ((s & TX_STATUS_ACK_RCV) ? 1 : 0));
-}
-#endif                         /* BCMDBG */
-
 void brcms_c_print_txstatus(struct tx_status *txs)
 {
-#if defined(BCMDBG)
-       u16 s = txs->status;
-       u16 ackphyrxsh = txs->ackphyrxsh;
-
-       printk(KERN_DEBUG "\ntxpkt (MPDU) Complete\n");
-
-       printk(KERN_DEBUG "FrameID: %04x   ", txs->frameid);
-       printk(KERN_DEBUG "TxStatus: %04x", s);
-       printk(KERN_DEBUG "\n");
-
-       brcms_c_print_txs_status(s);
-
-       printk(KERN_DEBUG "LastTxTime: %04x ", txs->lasttxtime);
-       printk(KERN_DEBUG "Seq: %04x ", txs->sequence);
-       printk(KERN_DEBUG "PHYTxStatus: %04x ", txs->phyerr);
-       printk(KERN_DEBUG "RxAckRSSI: %04x ",
-              (ackphyrxsh & PRXS1_JSSI_MASK) >> PRXS1_JSSI_SHIFT);
-       printk(KERN_DEBUG "RxAckSQ: %04x",
-              (ackphyrxsh & PRXS1_SQ_MASK) >> PRXS1_SQ_SHIFT);
-       printk(KERN_DEBUG "\n");
-#endif                         /* defined(BCMDBG) */
+       pr_debug("\ntxpkt (MPDU) Complete\n");
+
+       pr_debug("FrameID: %04x   TxStatus: %04x\n", txs->frameid, txs->status);
+
+       pr_debug("[15:12]  %d  frame attempts\n",
+                 (txs->status & TX_STATUS_FRM_RTX_MASK) >>
+                TX_STATUS_FRM_RTX_SHIFT);
+       pr_debug(" [11:8]  %d  rts attempts\n",
+                (txs->status & TX_STATUS_RTS_RTX_MASK) >>
+                TX_STATUS_RTS_RTX_SHIFT);
+       pr_debug("    [7]  %d  PM mode indicated\n",
+                txs->status & TX_STATUS_PMINDCTD ? 1 : 0);
+       pr_debug("    [6]  %d  intermediate status\n",
+                txs->status & TX_STATUS_INTERMEDIATE ? 1 : 0);
+       pr_debug("    [5]  %d  AMPDU\n",
+                txs->status & TX_STATUS_AMPDU ? 1 : 0);
+       pr_debug("  [4:2]  %d  Frame Suppressed Reason (%s)\n",
+                (txs->status & TX_STATUS_SUPR_MASK) >> TX_STATUS_SUPR_SHIFT,
+                (const char *[]) {
+                       "None",
+                       "PMQ Entry",
+                       "Flush request",
+                       "Previous frag failure",
+                       "Channel mismatch",
+                       "Lifetime Expiry",
+                       "Underflow"
+                } [(txs->status & TX_STATUS_SUPR_MASK) >>
+                   TX_STATUS_SUPR_SHIFT]);
+       pr_debug("    [1]  %d  acked\n",
+                txs->status & TX_STATUS_ACK_RCV ? 1 : 0);
+
+       pr_debug("LastTxTime: %04x Seq: %04x PHYTxStatus: %04x RxAckRSSI: %04x RxAckSQ: %04x\n",
+                txs->lasttxtime, txs->sequence, txs->phyerr,
+                (txs->ackphyrxsh & PRXS1_JSSI_MASK) >> PRXS1_JSSI_SHIFT,
+                (txs->ackphyrxsh & PRXS1_SQ_MASK) >> PRXS1_SQ_SHIFT);
 }
 
 bool brcms_c_chipmatch(u16 vendor, u16 device)
 {
        if (vendor != PCI_VENDOR_ID_BROADCOM) {
-               pr_err("chipmatch: unknown vendor id %04x\n", vendor);
+               pr_err("unknown vendor id %04x\n", vendor);
                return false;
        }
 
@@ -5833,11 +5822,11 @@ bool brcms_c_chipmatch(u16 vendor, u16 device)
        if ((device == BCM43236_D11N_ID) || (device == BCM43236_D11N2G_ID))
                return true;
 
-       pr_err("chipmatch: unknown device id %04x\n", device);
+       pr_err("unknown device id %04x\n", device);
        return false;
 }
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
 void brcms_c_print_txdesc(struct d11txh *txh)
 {
        u16 mtcl = le16_to_cpu(txh->MacTxControlLow);
@@ -5871,57 +5860,56 @@ void brcms_c_print_txdesc(struct d11txh *txh)
        struct ieee80211_rts rts = txh->rts_frame;
 
        /* add plcp header along with txh descriptor */
-       printk(KERN_DEBUG "Raw TxDesc + plcp header:\n");
-       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
-                            txh, sizeof(struct d11txh) + 48);
-
-       printk(KERN_DEBUG "TxCtlLow: %04x ", mtcl);
-       printk(KERN_DEBUG "TxCtlHigh: %04x ", mtch);
-       printk(KERN_DEBUG "FC: %04x ", mfc);
-       printk(KERN_DEBUG "FES Time: %04x\n", tfest);
-       printk(KERN_DEBUG "PhyCtl: %04x%s ", ptcw,
+       brcmu_dbg_hex_dump(txh, sizeof(struct d11txh) + 48,
+                          "Raw TxDesc + plcp header:\n");
+
+       pr_debug("TxCtlLow: %04x ", mtcl);
+       pr_debug("TxCtlHigh: %04x ", mtch);
+       pr_debug("FC: %04x ", mfc);
+       pr_debug("FES Time: %04x\n", tfest);
+       pr_debug("PhyCtl: %04x%s ", ptcw,
               (ptcw & PHY_TXC_SHORT_HDR) ? " short" : "");
-       printk(KERN_DEBUG "PhyCtl_1: %04x ", ptcw_1);
-       printk(KERN_DEBUG "PhyCtl_1_Fbr: %04x\n", ptcw_1_Fbr);
-       printk(KERN_DEBUG "PhyCtl_1_Rts: %04x ", ptcw_1_Rts);
-       printk(KERN_DEBUG "PhyCtl_1_Fbr_Rts: %04x\n", ptcw_1_FbrRts);
-       printk(KERN_DEBUG "MainRates: %04x ", mainrates);
-       printk(KERN_DEBUG "XtraFrameTypes: %04x ", xtraft);
-       printk(KERN_DEBUG "\n");
+       pr_debug("PhyCtl_1: %04x ", ptcw_1);
+       pr_debug("PhyCtl_1_Fbr: %04x\n", ptcw_1_Fbr);
+       pr_debug("PhyCtl_1_Rts: %04x ", ptcw_1_Rts);
+       pr_debug("PhyCtl_1_Fbr_Rts: %04x\n", ptcw_1_FbrRts);
+       pr_debug("MainRates: %04x ", mainrates);
+       pr_debug("XtraFrameTypes: %04x ", xtraft);
+       pr_debug("\n");
 
        print_hex_dump_bytes("SecIV:", DUMP_PREFIX_OFFSET, iv, sizeof(txh->IV));
        print_hex_dump_bytes("RA:", DUMP_PREFIX_OFFSET,
                             ra, sizeof(txh->TxFrameRA));
 
-       printk(KERN_DEBUG "Fb FES Time: %04x ", tfestfb);
+       pr_debug("Fb FES Time: %04x ", tfestfb);
        print_hex_dump_bytes("Fb RTS PLCP:", DUMP_PREFIX_OFFSET,
                             rtspfb, sizeof(txh->RTSPLCPFallback));
-       printk(KERN_DEBUG "RTS DUR: %04x ", rtsdfb);
+       pr_debug("RTS DUR: %04x ", rtsdfb);
        print_hex_dump_bytes("PLCP:", DUMP_PREFIX_OFFSET,
                             fragpfb, sizeof(txh->FragPLCPFallback));
-       printk(KERN_DEBUG "DUR: %04x", fragdfb);
-       printk(KERN_DEBUG "\n");
+       pr_debug("DUR: %04x", fragdfb);
+       pr_debug("\n");
 
-       printk(KERN_DEBUG "MModeLen: %04x ", mmodelen);
-       printk(KERN_DEBUG "MModeFbrLen: %04x\n", mmodefbrlen);
+       pr_debug("MModeLen: %04x ", mmodelen);
+       pr_debug("MModeFbrLen: %04x\n", mmodefbrlen);
 
-       printk(KERN_DEBUG "FrameID:     %04x\n", tfid);
-       printk(KERN_DEBUG "TxStatus:    %04x\n", txs);
+       pr_debug("FrameID:     %04x\n", tfid);
+       pr_debug("TxStatus:    %04x\n", txs);
 
-       printk(KERN_DEBUG "MaxNumMpdu:  %04x\n", mnmpdu);
-       printk(KERN_DEBUG "MaxAggbyte:  %04x\n", mabyte);
-       printk(KERN_DEBUG "MaxAggbyte_fb:  %04x\n", mabyte_f);
-       printk(KERN_DEBUG "MinByte:     %04x\n", mmbyte);
+       pr_debug("MaxNumMpdu:  %04x\n", mnmpdu);
+       pr_debug("MaxAggbyte:  %04x\n", mabyte);
+       pr_debug("MaxAggbyte_fb:  %04x\n", mabyte_f);
+       pr_debug("MinByte:     %04x\n", mmbyte);
 
        print_hex_dump_bytes("RTS PLCP:", DUMP_PREFIX_OFFSET,
                             rtsph, sizeof(txh->RTSPhyHeader));
        print_hex_dump_bytes("RTS Frame:", DUMP_PREFIX_OFFSET,
                             (u8 *)&rts, sizeof(txh->rts_frame));
-       printk(KERN_DEBUG "\n");
+       pr_debug("\n");
 }
-#endif                         /* defined(BCMDBG) */
+#endif                         /* defined(DEBUG) */
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
 static int
 brcms_c_format_flags(const struct brcms_c_bit_desc *bd, u32 flags, char *buf,
                     int len)
@@ -5975,9 +5963,9 @@ brcms_c_format_flags(const struct brcms_c_bit_desc *bd, u32 flags, char *buf,
 
        return (int)(p - buf);
 }
-#endif                         /* defined(BCMDBG) */
+#endif                         /* defined(DEBUG) */
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
 void brcms_c_print_rxh(struct d11rxhdr *rxh)
 {
        u16 len = rxh->RxFrameSize;
@@ -5999,24 +5987,22 @@ void brcms_c_print_rxh(struct d11rxhdr *rxh)
                {0, NULL}
        };
 
-       printk(KERN_DEBUG "Raw RxDesc:\n");
-       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, rxh,
-                            sizeof(struct d11rxhdr));
+       brcmu_dbg_hex_dump(rxh, sizeof(struct d11rxhdr), "Raw RxDesc:\n");
 
        brcms_c_format_flags(macstat_flags, macstatus1, flagstr, 64);
 
        snprintf(lenbuf, sizeof(lenbuf), "0x%x", len);
 
-       printk(KERN_DEBUG "RxFrameSize:     %6s (%d)%s\n", lenbuf, len,
+       pr_debug("RxFrameSize:     %6s (%d)%s\n", lenbuf, len,
               (rxh->PhyRxStatus_0 & PRXS0_SHORTH) ? " short preamble" : "");
-       printk(KERN_DEBUG "RxPHYStatus:     %04x %04x %04x %04x\n",
+       pr_debug("RxPHYStatus:     %04x %04x %04x %04x\n",
               phystatus_0, phystatus_1, phystatus_2, phystatus_3);
-       printk(KERN_DEBUG "RxMACStatus:     %x %s\n", macstatus1, flagstr);
-       printk(KERN_DEBUG "RXMACaggtype:    %x\n",
+       pr_debug("RxMACStatus:     %x %s\n", macstatus1, flagstr);
+       pr_debug("RXMACaggtype:    %x\n",
               (macstatus2 & RXS_AGGTYPE_MASK));
-       printk(KERN_DEBUG "RxTSFTime:       %04x\n", rxh->RxTSFTime);
+       pr_debug("RxTSFTime:       %04x\n", rxh->RxTSFTime);
 }
-#endif                         /* defined(BCMDBG) */
+#endif                         /* defined(DEBUG) */
 
 u16 brcms_b_rate_shm_offset(struct brcms_hardware *wlc_hw, u8 rate)
 {
@@ -8354,7 +8340,7 @@ brcms_c_attach(struct brcms_info *wl, struct bcma_device *core, uint unit,
        wlc->wiphy = wl->wiphy;
        pub = wlc->pub;
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
        wlc_info_dbg = wlc;
 #endif
 
index adb136ec1f04b0db413bac1f02f915c0222db36a..8debc74c54e1a63b5d9be1eae54e3c52d33375ba 100644 (file)
@@ -648,10 +648,12 @@ extern void brcms_c_print_txstatus(struct tx_status *txs);
 extern int brcms_b_xmtfifo_sz_get(struct brcms_hardware *wlc_hw, uint fifo,
                   uint *blocks);
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
 extern void brcms_c_print_txdesc(struct d11txh *txh);
 #else
-#define brcms_c_print_txdesc(a)
+static inline void brcms_c_print_txdesc(struct d11txh *txh)
+{
+}
 #endif
 
 extern int brcms_c_set_gmode(struct brcms_c_info *wlc, u8 gmode, bool config);
index a16f1ab292fdb2c87e1d3c5c1a1ada25df897769..ec7450d2fbd6230d11181aceb0c582c7fd5c9cb0 100644 (file)
@@ -14,6 +14,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kernel.h>
 #include <linux/delay.h>
 #include <linux/cordic.h>
@@ -26434,8 +26436,7 @@ cal_try:
        }
 
        if (bcmerror != 0) {
-               printk(KERN_DEBUG "%s: Failed, cnt = %d\n", __func__,
-                      cal_retry);
+               pr_debug("%s: Failed, cnt = %d\n", __func__, cal_retry);
 
                if (cal_retry < CAL_RETRY_CNT) {
                        cal_retry++;
index b7537f70a79538fab66fd48183179c4b78a2f78a..b45ab34cdfdc0693676fae614359b2bafaa5c526 100644 (file)
@@ -14,6 +14,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/netdevice.h>
 #include <linux/module.h>
 
@@ -240,17 +242,35 @@ struct sk_buff *brcmu_pktq_mdeq(struct pktq *pq, uint prec_bmp,
 }
 EXPORT_SYMBOL(brcmu_pktq_mdeq);
 
-#if defined(BCMDBG)
+#if defined(DEBUG)
 /* pretty hex print a pkt buffer chain */
 void brcmu_prpkt(const char *msg, struct sk_buff *p0)
 {
        struct sk_buff *p;
 
        if (msg && (msg[0] != '\0'))
-               printk(KERN_DEBUG "%s:\n", msg);
+               pr_debug("%s:\n", msg);
 
        for (p = p0; p; p = p->next)
                print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, p->data, p->len);
 }
 EXPORT_SYMBOL(brcmu_prpkt);
-#endif                         /* defined(BCMDBG) */
+
+void brcmu_dbg_hex_dump(const void *data, size_t size, const char *fmt, ...)
+{
+       struct va_format vaf;
+       va_list args;
+
+       va_start(args, fmt);
+
+       vaf.fmt = fmt;
+       vaf.va = &args;
+
+       pr_debug("%pV", &vaf);
+
+       va_end(args);
+
+       print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, data, size);
+}
+EXPORT_SYMBOL(brcmu_dbg_hex_dump);
+#endif                         /* defined(DEBUG) */
index ad249a0b4730ebea6eec5cd2f2bdfbb355fe232a..477b92ad3d62c37b9ec99b3e7b48b0b60f388311 100644 (file)
@@ -176,10 +176,21 @@ struct ipv4_addr;
 
 /* externs */
 /* format/print */
-#ifdef BCMDBG
+#ifdef DEBUG
 extern void brcmu_prpkt(const char *msg, struct sk_buff *p0);
 #else
 #define brcmu_prpkt(a, b)
-#endif                         /* BCMDBG */
+#endif                         /* DEBUG */
+
+#ifdef DEBUG
+extern __printf(3, 4)
+void brcmu_dbg_hex_dump(const void *data, size_t size, const char *fmt, ...);
+#else
+__printf(3, 4)
+static inline
+void brcmu_dbg_hex_dump(const void *data, size_t size, const char *fmt, ...)
+{
+}
+#endif
 
 #endif                         /* _BRCMU_UTILS_H_ */
index 1ef7bfc2ab2522629ec7a81125f7043804c32899..cc04cce1156750f4e827529340e6c5e1c32043b6 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 094693328dbb24ad971dc243052eb23b1b033df4..00db092d8cd0964c99dd5b2a5b67b7cac070ba4e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index b3a365fea7bbd85b48cd22db06ccf0bdac1a5042..47fd98b3652c53b06a30ea62b478132bb0a3da6b 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 54b753399e6e8331006f6da436d0719412152e27..ab62c018fcdb03832f05aaf82794721ad9b2c06a 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 50ff849c9f67a5849e4f70bd394a855f3a712401..6aa009827865d677dfd512bafb23038ecc00ae8f 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 10275ce92bde8875f9807245cf32a0ec00addae6..9ed6683314a7fe3b493ca4fe86edf0b0c7367264 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 123ef5e129d5b734fc42ac31114cb8ea5a70765e..d0ec0abd3c896ec4391a596874660ed026419c7d 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 64cf439035c3854593f27e51a838826a714518dd..a8f7689aaacfb91049941c736ff46660c4830313 100644 (file)
@@ -2,7 +2,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
index 334b5ae8fdd454ac69d9f760e28359e2b97429b7..b9ba404d15c1cdd25271175e20848247571aa1de 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 6675b3c816d989e3a7f47f1a8f025fac98aab67e..203b1c13c491ffc00bb0b343caad9b54bdabf839 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index b22b2976f899e037cb73884c1ef66b9af565386f..f127f913e5a61b92fe1f28cd329b567db3dae723 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portionhelp of the ieee80211 subsystem header files.
@@ -1172,20 +1172,22 @@ int iwl_rx_dispatch(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb,
                wake_up_all(&priv->shrd->notif_waitq);
        }
 
-       if (priv->pre_rx_handler)
+       if (priv->pre_rx_handler &&
+           priv->shrd->ucode_owner == IWL_OWNERSHIP_TM)
                priv->pre_rx_handler(priv, rxb);
-
-       /* Based on type of command response or notification,
-        *   handle those that need handling via function in
-        *   rx_handlers table.  See iwl_setup_rx_handlers() */
-       if (priv->rx_handlers[pkt->hdr.cmd]) {
-               priv->rx_handlers_stats[pkt->hdr.cmd]++;
-               err = priv->rx_handlers[pkt->hdr.cmd] (priv, rxb, cmd);
-       } else {
-               /* No handling needed */
-               IWL_DEBUG_RX(priv,
-                       "No handler needed for %s, 0x%02x\n",
-                       get_cmd_string(pkt->hdr.cmd), pkt->hdr.cmd);
+       else {
+               /* Based on type of command response or notification,
+                *   handle those that need handling via function in
+                *   rx_handlers table.  See iwl_setup_rx_handlers() */
+               if (priv->rx_handlers[pkt->hdr.cmd]) {
+                       priv->rx_handlers_stats[pkt->hdr.cmd]++;
+                       err = priv->rx_handlers[pkt->hdr.cmd] (priv, rxb, cmd);
+               } else {
+                       /* No handling needed */
+                       IWL_DEBUG_RX(priv,
+                               "No handler needed for %s, 0x%02x\n",
+                               get_cmd_string(pkt->hdr.cmd), pkt->hdr.cmd);
+               }
        }
        return err;
 }
index 1c66594166216ead48f032417f34e10ea6ebd2f3..8ca9570ec36539b7753e79783d452db6dd8fdec4 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 7353826095f110a8766d6c1a4425a71c49ba8a91..d6aab00272b9a1a5a2817084bbd0bf61321feed4 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
 #include "iwl-trans.h"
 
 /* priv->shrd->sta_lock must be held */
-static void iwl_sta_ucode_activate(struct iwl_priv *priv, u8 sta_id)
+static int iwl_sta_ucode_activate(struct iwl_priv *priv, u8 sta_id)
 {
-
+       if (sta_id >= IWLAGN_STATION_COUNT) {
+               IWL_ERR(priv, "invalid sta_id %u", sta_id);
+               return -EINVAL;
+       }
        if (!(priv->stations[sta_id].used & IWL_STA_DRIVER_ACTIVE))
                IWL_ERR(priv, "ACTIVATE a non DRIVER active station id %u "
                        "addr %pM\n",
@@ -53,6 +56,7 @@ static void iwl_sta_ucode_activate(struct iwl_priv *priv, u8 sta_id)
                IWL_DEBUG_ASSOC(priv, "Added STA id %u addr %pM to uCode\n",
                                sta_id, priv->stations[sta_id].sta.sta.addr);
        }
+       return 0;
 }
 
 static int iwl_process_add_sta_resp(struct iwl_priv *priv,
@@ -77,8 +81,7 @@ static int iwl_process_add_sta_resp(struct iwl_priv *priv,
        switch (pkt->u.add_sta.status) {
        case ADD_STA_SUCCESS_MSK:
                IWL_DEBUG_INFO(priv, "REPLY_ADD_STA PASSED\n");
-               iwl_sta_ucode_activate(priv, sta_id);
-               ret = 0;
+               ret = iwl_sta_ucode_activate(priv, sta_id);
                break;
        case ADD_STA_NO_ROOM_IN_TABLE:
                IWL_ERR(priv, "Adding station %d failed, no room in table.\n",
index b0dff7a753a56a5e60db10f6d5ab46dd024e7932..56c6def015a442684314016ac9c2bb0ccb654716 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index 7282a23e8f1ce3faab9e3cf78080323a65b9a453..86bbf47501c1b90d956c9e9035233ca2701e0c08 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index 63bbc60be28e461ada4e173b5caafbd43f243c31..64f8db685dc50fbdf72a5927331fc93d344a9f10 100644 (file)
@@ -2,7 +2,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
index b5c7c5f0a753f4da5520982f16b0ca8292958691..90315c69cdf62157de69c48dc694430b797fbbb9 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
@@ -315,7 +315,7 @@ static void iwl_bg_statistics_periodic(unsigned long data)
 
 static void iwl_print_cont_event_trace(struct iwl_priv *priv, u32 base,
                                        u32 start_idx, u32 num_events,
-                                       u32 mode)
+                                       u32 capacity, u32 mode)
 {
        u32 i;
        u32 ptr;        /* SRAM byte address of log data */
@@ -338,6 +338,15 @@ static void iwl_print_cont_event_trace(struct iwl_priv *priv, u32 base,
        iwl_write32(bus(priv), HBUS_TARG_MEM_RADDR, ptr);
        rmb();
 
+       /*
+        * Refuse to read more than would have fit into the log from
+        * the current start_idx. This used to happen due to the race
+        * described below, but now WARN because the code below should
+        * prevent it from happening here.
+        */
+       if (WARN_ON(num_events > capacity - start_idx))
+               num_events = capacity - start_idx;
+
        /*
         * "time" is actually "data" for mode 0 (no timestamp).
         * place event id # at far right for easier visual parsing.
@@ -346,12 +355,11 @@ static void iwl_print_cont_event_trace(struct iwl_priv *priv, u32 base,
                ev = iwl_read32(bus(priv), HBUS_TARG_MEM_RDAT);
                time = iwl_read32(bus(priv), HBUS_TARG_MEM_RDAT);
                if (mode == 0) {
-                       trace_iwlwifi_dev_ucode_cont_event(priv,
-                                                       0, time, ev);
+                       trace_iwlwifi_dev_ucode_cont_event(priv, 0, time, ev);
                } else {
                        data = iwl_read32(bus(priv), HBUS_TARG_MEM_RDAT);
-                       trace_iwlwifi_dev_ucode_cont_event(priv,
-                                               time, data, ev);
+                       trace_iwlwifi_dev_ucode_cont_event(priv, time,
+                                                          data, ev);
                }
        }
        /* Allow device to power down */
@@ -362,53 +370,83 @@ static void iwl_print_cont_event_trace(struct iwl_priv *priv, u32 base,
 static void iwl_continuous_event_trace(struct iwl_priv *priv)
 {
        u32 capacity;   /* event log capacity in # entries */
+       struct {
+               u32 capacity;
+               u32 mode;
+               u32 wrap_counter;
+               u32 write_counter;
+       } __packed read;
        u32 base;       /* SRAM byte address of event log header */
        u32 mode;       /* 0 - no timestamp, 1 - timestamp recorded */
        u32 num_wraps;  /* # times uCode wrapped to top of log */
        u32 next_entry; /* index of next entry to be written by uCode */
 
-       base = priv->shrd->device_pointers.error_event_table;
+       base = priv->shrd->device_pointers.log_event_table;
        if (iwlagn_hw_valid_rtc_data_addr(base)) {
-               capacity = iwl_read_targ_mem(bus(priv), base);
-               num_wraps = iwl_read_targ_mem(bus(priv),
-                                               base + (2 * sizeof(u32)));
-               mode = iwl_read_targ_mem(bus(priv), base + (1 * sizeof(u32)));
-               next_entry = iwl_read_targ_mem(bus(priv),
-                                               base + (3 * sizeof(u32)));
+               iwl_read_targ_mem_words(bus(priv), base, &read, sizeof(read));
+
+               capacity = read.capacity;
+               mode = read.mode;
+               num_wraps = read.wrap_counter;
+               next_entry = read.write_counter;
        } else
                return;
 
+       /*
+        * Unfortunately, the uCode doesn't use temporary variables.
+        * Therefore, it can happen that we read next_entry == capacity,
+        * which really means next_entry == 0.
+        */
+       if (unlikely(next_entry == capacity))
+               next_entry = 0;
+       /*
+        * Additionally, the uCode increases the write pointer before
+        * the wraps counter, so if the write pointer is smaller than
+        * the old write pointer (wrap occurred) but we read that no
+        * wrap occurred, we actually read between the next_entry and
+        * num_wraps update (this does happen in practice!!) -- take
+        * that into account by increasing num_wraps.
+        */
+       if (unlikely(next_entry < priv->event_log.next_entry &&
+                    num_wraps == priv->event_log.num_wraps))
+               num_wraps++;
+
        if (num_wraps == priv->event_log.num_wraps) {
-               iwl_print_cont_event_trace(priv,
-                                      base, priv->event_log.next_entry,
-                                      next_entry - priv->event_log.next_entry,
-                                      mode);
+               iwl_print_cont_event_trace(
+                       priv, base, priv->event_log.next_entry,
+                       next_entry - priv->event_log.next_entry,
+                       capacity, mode);
+
                priv->event_log.non_wraps_count++;
        } else {
-               if ((num_wraps - priv->event_log.num_wraps) > 1)
+               if (num_wraps - priv->event_log.num_wraps > 1)
                        priv->event_log.wraps_more_count++;
                else
                        priv->event_log.wraps_once_count++;
+
                trace_iwlwifi_dev_ucode_wrap_event(priv,
                                num_wraps - priv->event_log.num_wraps,
                                next_entry, priv->event_log.next_entry);
+
                if (next_entry < priv->event_log.next_entry) {
-                       iwl_print_cont_event_trace(priv, base,
-                              priv->event_log.next_entry,
-                              capacity - priv->event_log.next_entry,
-                              mode);
+                       iwl_print_cont_event_trace(
+                               priv, base, priv->event_log.next_entry,
+                               capacity - priv->event_log.next_entry,
+                               capacity, mode);
 
-                       iwl_print_cont_event_trace(priv, base, 0,
-                               next_entry, mode);
+                       iwl_print_cont_event_trace(
+                               priv, base, 0, next_entry, capacity, mode);
                } else {
-                       iwl_print_cont_event_trace(priv, base,
-                              next_entry, capacity - next_entry,
-                              mode);
+                       iwl_print_cont_event_trace(
+                               priv, base, next_entry,
+                               capacity - next_entry,
+                               capacity, mode);
 
-                       iwl_print_cont_event_trace(priv, base, 0,
-                               next_entry, mode);
+                       iwl_print_cont_event_trace(
+                               priv, base, 0, next_entry, capacity, mode);
                }
        }
+
        priv->event_log.num_wraps = num_wraps;
        priv->event_log.next_entry = next_entry;
 }
@@ -1219,6 +1257,11 @@ int iwl_alive_start(struct iwl_priv *priv)
        if (iwl_is_rfkill(priv->shrd))
                return -ERFKILL;
 
+       if (priv->event_log.ucode_trace) {
+               /* start collecting data now */
+               mod_timer(&priv->ucode_trace, jiffies);
+       }
+
        /* download priority table before any calibration request */
        if (cfg(priv)->bt_params &&
            cfg(priv)->bt_params->advanced_bt_coexist) {
@@ -2054,7 +2097,7 @@ MODULE_PARM_DESC(bt_coex_active, "enable wifi/bt co-exist (default: enable)");
 
 module_param_named(led_mode, iwlagn_mod_params.led_mode, int, S_IRUGO);
 MODULE_PARM_DESC(led_mode, "0=system default, "
-               "1=On(RF On)/Off(RF Off), 2=blinking (default: 0)");
+               "1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0)");
 
 module_param_named(power_save, iwlagn_mod_params.power_save,
                bool, S_IRUGO);
index f84fb3c535639980f9e5f9d2ae157b236085d92c..39cbe1a1577cf9da094515413c1e0dd907c9d287 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 940d5038b39c2d93966f64dbcbf17efe25bc8bd6..941b9cb234423933d6e0ddd75eb0972d9795d67f 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index e1d78257e4a9426c0908a0b64acd7b31a1ca972b..957bc00cdaf0f469e07338983e10a74e7c368e10 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index f822ac447c3bcd484979d9ce5179a6064bb2e2f9..c20618d9226813d2e1b75654c2000522e181eebc 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 7bcfa781e0b914594c9157d561a7509d2a32a291..7d6eef96454a2610266a3ae196742cee966d63b7 100644 (file)
@@ -2,7 +2,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
index 7bf76ab94dd21afb5fc8d80351eca3788d8452fa..63f29111da135080b9168607fb92e76803de256e 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index fbc3095c7b445b71f9ddf09bc15d3cf2fd308869..5f96ce105f08c1916abd41246a57b1ce610b3082 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index f8fc2393dd4c15686755a702392dd936b963f95c..6f7612781e03a2e5d2fe4fe6ec78e8de736551e7 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project.
  *
index 04a3343f4610faf4e654b5232c2d0d29f6773c75..978a1d4c6a0a30160e4ad535989493ba0659444b 100644 (file)
@@ -2,7 +2,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -2131,9 +2131,10 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file,
 
        if (trace) {
                priv->event_log.ucode_trace = true;
-               /* schedule the ucode timer to occur in UCODE_TRACE_PERIOD */
-               mod_timer(&priv->ucode_trace,
-                       jiffies + msecs_to_jiffies(UCODE_TRACE_PERIOD));
+               if (iwl_is_alive(priv->shrd)) {
+                       /* start collecting data now */
+                       mod_timer(&priv->ucode_trace, jiffies);
+               }
        } else {
                priv->event_log.ucode_trace = false;
                del_timer_sync(&priv->ucode_trace);
index e54a4d11e5845316bbb2b1067b9e958e35b0dbaf..af846002150ab162addd11bc5a0a94628f99a601 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -661,7 +661,7 @@ struct traffic_stats {
  * schedule the timer to wake up every UCODE_TRACE_PERIOD milliseconds
  * to perform continuous uCode event logging operation if enabled
  */
-#define UCODE_TRACE_PERIOD (100)
+#define UCODE_TRACE_PERIOD (10)
 
 /*
  * iwl_event_log: current uCode event log position
index 2a2c8de64a04d135052d2e8ec421f2aebbd8553d..91f45e71e0a2568498e60f01003f8c79e27670f7 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2009 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 9b212a8f30bb8789bb4bd5c214e7841bd4672cf7..4d892211ce4ca973cef472728ed144eedda6c09a 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2009 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index c1eda9724f42f41059b4e161f60a64d7b7f7bdf0..e27d9f55267ba3667d93541d8c8db03cb764f2bc 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 9fa937ec35e38ca314284453ebad05de058c505e..13f2d3928ef8e57cb34869b0e7a282108aa7da69 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 5bede9d7f9555ed04ea82a5ad76cb1d928381ba7..90208094b8ebdb472fcc9078ca605c83f37d9197 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index d57ea6484bbedf7529f47d6d79d4f79695bd6e19..83fdff381150548f7e37a4a6531f411308aa7ca8 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project.
  *
index aae2eeb331a8e277e8cb668c9bfab6ddc5bad799..427d065435c8b5ee28590800e8d258548924e03b 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project.
  *
index 14dcbfcdc0fd3247a74f69f55460d9198840b1f9..8761438f1532b47e63dc477aef9d82bf00996f17 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -177,6 +177,10 @@ void iwl_leds_init(struct iwl_priv *priv)
        int mode = iwlagn_mod_params.led_mode;
        int ret;
 
+       if (mode == IWL_LED_DISABLE) {
+               IWL_INFO(priv, "Led disabled\n");
+               return;
+       }
        if (mode == IWL_LED_DEFAULT)
                mode = cfg(priv)->led_mode;
 
index 2550b3c7dcbf4d26ed7a111944bf91ae0648bd79..b02a853103d380397b940afdfb1068c0ef37632a 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index f980e574e1f90dc38b2c9bc426107b9bb1fd400a..965d0475affd947dbff3a1fc5989846b89959e0a 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index fb30ea7ca96b54d43aa1bf0048d52a7c0f4df161..03702a2e913afe2a44e4398c90e35dc13ec4b3ca 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 2b188a6025b319ac7fcc3aa804b117ba3d29bdca..c7394ef2e490f41c5ab45c01aabbd3d4b4c02ae3 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index 5f7b720cf1a4335236c86ed5cc1f8230658c9f01..07a19fce5fdc7cfb77b2b25cc00a976914b61d26 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index bebdd828f324ef2295e6bc92525c401792dcdc59..a4d11016c3b46a9eea12c80180bc06d66e95b466 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index a6454726737e04b207d0c9ae710098f98cef6c63..7f2e3a1c80efeaea0ae6b7828cd05f6866c19173 100644 (file)
@@ -2,7 +2,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -414,10 +414,25 @@ static u16 iwl_limit_dwell(struct iwl_priv *priv, u16 dwell_time)
        for_each_context(priv, ctx) {
                u16 value;
 
-               if (!iwl_is_associated_ctx(ctx))
-                       continue;
-               if (ctx->staging.dev_type == RXON_DEV_TYPE_P2P)
+               switch (ctx->staging.dev_type) {
+               case RXON_DEV_TYPE_P2P:
+                       /* no timing constraints */
                        continue;
+               case RXON_DEV_TYPE_ESS:
+               default:
+                       /* timing constraints if associated */
+                       if (!iwl_is_associated_ctx(ctx))
+                               continue;
+                       break;
+               case RXON_DEV_TYPE_CP:
+               case RXON_DEV_TYPE_2STA:
+                       /*
+                        * These seem to always have timers for TBTT
+                        * active in uCode even when not associated yet.
+                        */
+                       break;
+               }
+
                value = ctx->beacon_int;
                if (!value)
                        value = IWL_PASSIVE_DWELL_BASE;
index dc55cc4a8108191fbdb84ccdb7296cd25d394d98..04975b7b65b33e74af420802f808408b14c5dd4a 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -102,7 +102,7 @@ struct iwl_trans_ops;
 
 #define DRV_NAME        "iwlwifi"
 #define IWLWIFI_VERSION "in-tree:"
-#define DRV_COPYRIGHT  "Copyright(c) 2003-2011 Intel Corporation"
+#define DRV_COPYRIGHT  "Copyright(c) 2003-2012 Intel Corporation"
 #define DRV_AUTHOR     "<ilw@linux.intel.com>"
 
 extern struct iwl_mod_params iwlagn_mod_params;
@@ -264,11 +264,13 @@ enum iwl_pa_type {
  *                     LED ON  = RF ON
  *                     LED OFF = RF OFF
  *    IWL_LED_BLINK:    adjust led blink rate based on blink table
+ *    IWL_LED_DISABLE: led disabled
  */
 enum iwl_led_mode {
        IWL_LED_DEFAULT,
        IWL_LED_RF_STATE,
        IWL_LED_BLINK,
+       IWL_LED_DISABLE,
 };
 
 /**
index 4a5cddd2d56bfb867a21c6d00f49cd219743ce2a..a56a77b8f9264ec85041cf1b93e73795fdaf46fc 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2010 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2010 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -115,6 +115,9 @@ struct nla_policy iwl_testmode_gnl_msg_policy[IWL_TM_ATTR_MAX] = {
 
        [IWL_TM_ATTR_FW_VERSION] = { .type = NLA_U32, },
        [IWL_TM_ATTR_DEVICE_ID] = { .type = NLA_U32, },
+       [IWL_TM_ATTR_FW_TYPE] = { .type = NLA_U32, },
+       [IWL_TM_ATTR_FW_INST_SIZE] = { .type = NLA_U32, },
+       [IWL_TM_ATTR_FW_DATA_SIZE] = { .type = NLA_U32, },
 };
 
 /*
@@ -299,7 +302,7 @@ static int iwl_testmode_reg(struct ieee80211_hw *hw, struct nlattr **tb)
 
        switch (nla_get_u32(tb[IWL_TM_ATTR_COMMAND])) {
        case IWL_TM_CMD_APP2DEV_DIRECT_REG_READ32:
-               val32 = iwl_read32(bus(priv), ofs);
+               val32 = iwl_read_direct32(bus(priv), ofs);
                IWL_INFO(priv, "32bit value to read 0x%x\n", val32);
 
                skb = cfg80211_testmode_alloc_reply_skb(hw->wiphy, 20);
@@ -321,7 +324,7 @@ static int iwl_testmode_reg(struct ieee80211_hw *hw, struct nlattr **tb)
                } else {
                        val32 = nla_get_u32(tb[IWL_TM_ATTR_REG_VALUE32]);
                        IWL_INFO(priv, "32bit value to write 0x%x\n", val32);
-                       iwl_write32(bus(priv), ofs, val32);
+                       iwl_write_direct32(bus(priv), ofs, val32);
                }
                break;
        case IWL_TM_CMD_APP2DEV_DIRECT_REG_WRITE8:
@@ -422,7 +425,7 @@ static int iwl_testmode_driver(struct ieee80211_hw *hw, struct nlattr **tb)
        struct sk_buff *skb;
        unsigned char *rsp_data_ptr = NULL;
        int status = 0, rsp_data_len = 0;
-       u32 devid;
+       u32 devid, inst_size = 0, data_size = 0;
 
        switch (nla_get_u32(tb[IWL_TM_ATTR_COMMAND])) {
        case IWL_TM_CMD_APP2DEV_GET_DEVICENAME:
@@ -548,6 +551,41 @@ static int iwl_testmode_driver(struct ieee80211_hw *hw, struct nlattr **tb)
                                        "Error sending msg : %d\n", status);
                break;
 
+       case IWL_TM_CMD_APP2DEV_GET_FW_INFO:
+               skb = cfg80211_testmode_alloc_reply_skb(hw->wiphy, 20 + 8);
+               if (!skb) {
+                       IWL_DEBUG_INFO(priv, "Error allocating memory\n");
+                       return -ENOMEM;
+               }
+               switch (priv->shrd->ucode_type) {
+               case IWL_UCODE_REGULAR:
+                       inst_size = trans(priv)->ucode_rt.code.len;
+                       data_size = trans(priv)->ucode_rt.data.len;
+                       break;
+               case IWL_UCODE_INIT:
+                       inst_size = trans(priv)->ucode_init.code.len;
+                       data_size = trans(priv)->ucode_init.data.len;
+                       break;
+               case IWL_UCODE_WOWLAN:
+                       inst_size = trans(priv)->ucode_wowlan.code.len;
+                       data_size = trans(priv)->ucode_wowlan.data.len;
+                       break;
+               case IWL_UCODE_NONE:
+                       IWL_DEBUG_INFO(priv, "The uCode has not been loaded\n");
+                       break;
+               default:
+                       IWL_DEBUG_INFO(priv, "Unsupported uCode type\n");
+                       break;
+               }
+               NLA_PUT_U32(skb, IWL_TM_ATTR_FW_TYPE, priv->shrd->ucode_type);
+               NLA_PUT_U32(skb, IWL_TM_ATTR_FW_INST_SIZE, inst_size);
+               NLA_PUT_U32(skb, IWL_TM_ATTR_FW_DATA_SIZE, data_size);
+               status = cfg80211_testmode_reply(skb);
+               if (status < 0)
+                       IWL_DEBUG_INFO(priv,
+                                       "Error sending msg : %d\n", status);
+               break;
+
        default:
                IWL_DEBUG_INFO(priv, "Unknown testmode driver command ID\n");
                return -ENOSYS;
@@ -733,7 +771,7 @@ static int iwl_testmode_ownership(struct ieee80211_hw *hw, struct nlattr **tb)
 static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
 {
        struct iwl_priv *priv = hw->priv;
-       u32 base, ofs, size, maxsize;
+       u32 ofs, size, maxsize;
 
        if (priv->testmode_sram.sram_readed)
                return -EBUSY;
@@ -759,25 +797,24 @@ static int iwl_testmode_sram(struct ieee80211_hw *hw, struct nlattr **tb)
                maxsize = trans(priv)->ucode_wowlan.data.len;
                break;
        case IWL_UCODE_NONE:
-               IWL_DEBUG_INFO(priv, "Error, uCode does not been loaded\n");
+               IWL_ERR(priv, "Error, uCode does not been loaded\n");
                return -ENOSYS;
        default:
-               IWL_DEBUG_INFO(priv, "Error, unsupported uCode type\n");
+               IWL_ERR(priv, "Error, unsupported uCode type\n");
                return -ENOSYS;
        }
-       if ((ofs + size) > maxsize) {
-               IWL_DEBUG_INFO(priv, "Invalid offset/size: out of range\n");
+       if ((ofs + size) > (maxsize + SRAM_DATA_SEG_OFFSET)) {
+               IWL_ERR(priv, "Invalid offset/size: out of range\n");
                return -EINVAL;
        }
        priv->testmode_sram.buff_size = (size / 4) * 4;
        priv->testmode_sram.buff_addr =
                kmalloc(priv->testmode_sram.buff_size, GFP_KERNEL);
        if (priv->testmode_sram.buff_addr == NULL) {
-               IWL_DEBUG_INFO(priv, "Error allocating memory\n");
+               IWL_ERR(priv, "Error allocating memory\n");
                return -ENOMEM;
        }
-       base = 0x800000;
-       _iwl_read_targ_mem_words(bus(priv), base + ofs,
+       _iwl_read_targ_mem_words(bus(priv), ofs,
                                        priv->testmode_sram.buff_addr,
                                        priv->testmode_sram.buff_size / 4);
        priv->testmode_sram.num_chunks =
@@ -882,6 +919,7 @@ int iwlagn_mac_testmode_cmd(struct ieee80211_hw *hw, void *data, int len)
        case IWL_TM_CMD_APP2DEV_LOAD_WOWLAN_FW:
        case IWL_TM_CMD_APP2DEV_GET_FW_VERSION:
        case IWL_TM_CMD_APP2DEV_GET_DEVICE_ID:
+       case IWL_TM_CMD_APP2DEV_GET_FW_INFO:
                IWL_DEBUG_INFO(priv, "testmode cmd to driver\n");
                result = iwl_testmode_driver(hw, tb);
                break;
index 26138f110340819fc68407d21e3a827cce101591..f97d06169b4596d190e8578cc3f4497e5becde11 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2010 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2010 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  *
  * @IWL_TM_CMD_APP2DEV_INDIRECT_REG_READ32:
  * @IWL_TM_CMD_APP2DEV_INDIRECT_REG_WRITE32:
- *     commands from user applicaiton to indirectly access peripheral register
+ *     commands from user application to indirectly access peripheral register
  *
  * @IWL_TM_CMD_APP2DEV_READ_SRAM:
  * @IWL_TM_CMD_APP2DEV_DUMP_SRAM:
- *     commands from user applicaiton to read data in sram
+ *     commands from user application to read data in sram
  *
- * @IWL_TM_CMD_APP2DEV_LOAD_WOWLAN_FW: load Weak On Wireless LAN uCode image
+ * @IWL_TM_CMD_APP2DEV_LOAD_WOWLAN_FW: load Wake On Wireless LAN uCode image
  * @IWL_TM_CMD_APP2DEV_GET_FW_VERSION: retrieve uCode version
  * @IWL_TM_CMD_APP2DEV_GET_DEVICE_ID: retrieve ID information in device
+ * @IWL_TM_CMD_APP2DEV_GET_FW_INFO:
+ *     retrieve information of existing loaded uCode image
  *
  */
 enum iwl_tm_cmd_t {
@@ -147,7 +149,8 @@ enum iwl_tm_cmd_t {
        IWL_TM_CMD_APP2DEV_LOAD_WOWLAN_FW       = 22,
        IWL_TM_CMD_APP2DEV_GET_FW_VERSION       = 23,
        IWL_TM_CMD_APP2DEV_GET_DEVICE_ID        = 24,
-       IWL_TM_CMD_MAX                          = 25,
+       IWL_TM_CMD_APP2DEV_GET_FW_INFO          = 25,
+       IWL_TM_CMD_MAX                          = 26,
 };
 
 /*
@@ -237,6 +240,15 @@ enum iwl_tm_cmd_t {
  *     When IWL_TM_ATTR_COMMAND is IWL_TM_CMD_APP2DEV_GET_DEVICE_ID,
  *     IWL_TM_ATTR_DEVICE_ID for the device ID information
  *
+ * @IWL_TM_ATTR_FW_TYPE:
+ * @IWL_TM_ATTR_FW_INST_SIZE:
+ * @IWL_TM_ATTR_FW_DATA_SIZE:
+ *     When IWL_TM_ATTR_COMMAND is IWL_TM_CMD_APP2DEV_GET_FW_INFO,
+ *     The mandatory fields are:
+ *     IWL_TM_ATTR_FW_TYPE for the uCode type (INIT/RUNTIME/...)
+ *     IWL_TM_ATTR_FW_INST_SIZE for the size of instruction section
+ *     IWL_TM_ATTR_FW_DATA_SIZE for the size of data section
+ *
  */
 enum iwl_tm_attr_t {
        IWL_TM_ATTR_NOT_APPLICABLE              = 0,
@@ -259,7 +271,10 @@ enum iwl_tm_attr_t {
        IWL_TM_ATTR_SRAM_DUMP                   = 17,
        IWL_TM_ATTR_FW_VERSION                  = 18,
        IWL_TM_ATTR_DEVICE_ID                   = 19,
-       IWL_TM_ATTR_MAX                         = 20,
+       IWL_TM_ATTR_FW_TYPE                     = 20,
+       IWL_TM_ATTR_FW_INST_SIZE                = 21,
+       IWL_TM_ATTR_FW_DATA_SIZE                = 22,
+       IWL_TM_ATTR_MAX                         = 23,
 };
 
 /* uCode trace buffer */
@@ -271,4 +286,7 @@ enum iwl_tm_attr_t {
 /* Maximum data size of each dump it packet */
 #define DUMP_CHUNK_SIZE                (PAGE_SIZE - 1024)
 
+/* Address offset of data segment in SRAM */
+#define SRAM_DATA_SEG_OFFSET   0x800000
+
 #endif
index f6debf91d7b514036baf05530af28507440cab3e..0ac9b4d3027139dcadba502b4158d5128f9f9afa 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index 65d1f05007be0e0b6ba421e24b273b3bb77adc97..2900db973aaa9a6d613987206dc0f0491ad4d26c 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index bd29568177e6354eb2f6523c0a782155221072a5..30814b55705e2f168c3cf75c9e2b45767806bf30 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
  *
  * Portions of this file are derived from the ipw3945 project, as well
  * as portions of the ieee80211 subsystem header files.
index 324d06dfb69003ca14ac5ab024d800a750057568..3c64c4e5885b8804a57219acab42603b41b6311f 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 1b20c4fb791b07bac2473978d79f24c37a4b5703..506c062343b2afce4393fb3fb462d8ad96c7c241 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index e6bf3f554772354ed816c2e707b5fed2f3d28105..42a9f303f543c75d2a846dc2f1d5bbad7859022e 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2007 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 36a1b5b2585898094d158c7a5f874958d35c7851..2edf0ef65a5be2c6acc285c1d022b21441322098 100644 (file)
@@ -2,7 +2,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
index 18501101a53032d2b04007d2fbb7bfb5879c0138..7e6eb20823cf9757121b6ec683e3d734a88aed92 100644 (file)
@@ -5,7 +5,7 @@
  *
  * GPL LICENSE SUMMARY
  *
- * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of version 2 of the GNU General Public License as
@@ -30,7 +30,7 @@
  *
  * BSD LICENSE
  *
- * Copyright(c) 2005 - 2011 Intel Corporation. All rights reserved.
+ * Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
index 079e5532e686c0c9f4256fc5b4207316b0248f1c..ea6832dc6677d7e689b8ac1bd6b620f7be2706b5 100644 (file)
@@ -182,7 +182,8 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
        skb_reserve(skb_aggr, headroom + sizeof(struct txpd));
        tx_info_aggr =  MWIFIEX_SKB_TXCB(skb_aggr);
 
-       tx_info_aggr->bss_index = tx_info_src->bss_index;
+       tx_info_aggr->bss_type = tx_info_src->bss_type;
+       tx_info_aggr->bss_num = tx_info_src->bss_num;
        skb_aggr->priority = skb_src->priority;
 
        do {
index c3b6c4652cd6cd87d6a5fd8e22506013bcfe1e92..6fef4925d13af1245f617939ee0a94e0e0664738 100644 (file)
@@ -79,7 +79,7 @@ static int
 mwifiex_cfg80211_del_key(struct wiphy *wiphy, struct net_device *netdev,
                         u8 key_index, bool pairwise, const u8 *mac_addr)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
 
        if (mwifiex_set_encode(priv, NULL, 0, key_index, 1)) {
                wiphy_err(wiphy, "deleting the crypto keys\n");
@@ -122,7 +122,7 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
                                struct net_device *dev,
                                bool enabled, int timeout)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
        u32 ps_mode;
 
        if (timeout)
@@ -143,7 +143,7 @@ mwifiex_cfg80211_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
                                 u8 key_index, bool unicast,
                                 bool multicast)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
 
        /* Return if WEP key not configured */
        if (priv->sec_info.wep_status == MWIFIEX_802_11_WEP_DISABLED)
@@ -165,7 +165,7 @@ mwifiex_cfg80211_add_key(struct wiphy *wiphy, struct net_device *netdev,
                         u8 key_index, bool pairwise, const u8 *mac_addr,
                         struct key_params *params)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(netdev);
 
        if (mwifiex_set_encode(priv, params->key, params->key_len,
                                                        key_index, 0)) {
@@ -376,7 +376,7 @@ mwifiex_cfg80211_set_channel(struct wiphy *wiphy, struct net_device *dev,
                             struct ieee80211_channel *chan,
                             enum nl80211_channel_type channel_type)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
 
        if (priv->media_connected) {
                wiphy_err(wiphy, "This setting is valid only when station "
@@ -557,6 +557,23 @@ mwifiex_dump_station_info(struct mwifiex_private *priv,
        /* bit rate is in 500 kb/s units. Convert it to 100kb/s units */
        sinfo->txrate.legacy = rate.rate * 5;
 
+       if (priv->bss_mode == NL80211_IFTYPE_STATION) {
+               sinfo->filled |= STATION_INFO_BSS_PARAM;
+               sinfo->bss_param.flags = 0;
+               if (priv->curr_bss_params.bss_descriptor.cap_info_bitmap &
+                                               WLAN_CAPABILITY_SHORT_PREAMBLE)
+                       sinfo->bss_param.flags |=
+                                       BSS_PARAM_FLAGS_SHORT_PREAMBLE;
+               if (priv->curr_bss_params.bss_descriptor.cap_info_bitmap &
+                                               WLAN_CAPABILITY_SHORT_SLOT_TIME)
+                       sinfo->bss_param.flags |=
+                                       BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
+               sinfo->bss_param.dtim_period =
+                       priv->curr_bss_params.bss_descriptor.dtim_period;
+               sinfo->bss_param.beacon_interval =
+                       priv->curr_bss_params.bss_descriptor.beacon_period;
+       }
+
        return ret;
 }
 
@@ -1004,7 +1021,7 @@ static int
 mwifiex_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
                           struct cfg80211_ibss_params *params)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
        int ret = 0;
 
        if (priv->bss_mode != NL80211_IFTYPE_ADHOC) {
@@ -1042,7 +1059,7 @@ done:
 static int
 mwifiex_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
 
        wiphy_dbg(wiphy, "info: disconnecting from essid %pM\n",
                        priv->cfg_bssid);
@@ -1217,7 +1234,6 @@ struct net_device *mwifiex_add_virtual_intf(struct wiphy *wiphy,
                priv->frame_type = MWIFIEX_DATA_FRAME_TYPE_ETH_II;
                priv->bss_priority = 0;
                priv->bss_role = MWIFIEX_BSS_ROLE_STA;
-               priv->bss_index = 0;
                priv->bss_num = 0;
 
                break;
@@ -1281,10 +1297,7 @@ EXPORT_SYMBOL_GPL(mwifiex_add_virtual_intf);
  */
 int mwifiex_del_virtual_intf(struct wiphy *wiphy, struct net_device *dev)
 {
-       struct mwifiex_private *priv = mwifiex_cfg80211_get_priv(wiphy);
-
-       if (!priv || !dev)
-               return 0;
+       struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
 
 #ifdef CONFIG_DEBUG_FS
        mwifiex_dev_debugfs_remove(priv);
index 6e0a3eaecf7070bcdcce90eb91e63d7fe6cc6aab..6623db69e1571693df899ccd6e26d03c8b92620b 100644 (file)
@@ -391,7 +391,8 @@ int mwifiex_process_event(struct mwifiex_adapter *adapter)
 
        if (skb) {
                rx_info = MWIFIEX_SKB_RXCB(skb);
-               rx_info->bss_index = priv->bss_index;
+               rx_info->bss_num = priv->bss_num;
+               rx_info->bss_type = priv->bss_type;
        }
 
        if (eventcause != EVENT_PS_SLEEP && eventcause != EVENT_PS_AWAKE) {
index ae17ce02a3d0f074d24924a39f54a8a59748f30f..3735c775495c24d4d0b6ef01e0be55426f71a3b9 100644 (file)
@@ -102,7 +102,8 @@ struct mwifiex_wait_queue {
 };
 
 struct mwifiex_rxinfo {
-       u8 bss_index;
+       u8 bss_num;
+       u8 bss_type;
        struct sk_buff *parent;
        u8 use_count;
 };
@@ -110,7 +111,8 @@ struct mwifiex_rxinfo {
 struct mwifiex_txinfo {
        u32 status_code;
        u8 flags;
-       u8 bss_index;
+       u8 bss_num;
+       u8 bss_type;
 };
 
 enum mwifiex_wmm_ac_e {
index e05b417a3fae8b54d5e632f477dc5885c8a2697f..e13b6d99171ab9e76a64b44abec39a4b85e90b7f 100644 (file)
@@ -526,8 +526,9 @@ static void mwifiex_delete_bss_prio_tbl(struct mwifiex_private *priv)
                cur = &adapter->bss_prio_tbl[i].bss_prio_cur;
                lock = &adapter->bss_prio_tbl[i].bss_prio_lock;
                dev_dbg(adapter->dev, "info: delete BSS priority table,"
-                               " index = %d, i = %d, head = %p, cur = %p\n",
-                             priv->bss_index, i, head, *cur);
+                               " bss_type = %d, bss_num = %d, i = %d,"
+                               " head = %p, cur = %p\n",
+                             priv->bss_type, priv->bss_num, i, head, *cur);
                if (*cur) {
                        spin_lock_irqsave(lock, flags);
                        if (list_empty(head)) {
index 84be196188ccc75bfbaf97f1e7bd8c4ab2fd654b..80e44566bf6ecd15bf093ccb9c597088c6ed91c9 100644 (file)
@@ -424,8 +424,8 @@ mwifiex_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
        struct sk_buff *new_skb;
        struct mwifiex_txinfo *tx_info;
 
-       dev_dbg(priv->adapter->dev, "data: %lu BSS(%d): Data <= kernel\n",
-                               jiffies, priv->bss_index);
+       dev_dbg(priv->adapter->dev, "data: %lu BSS(%d-%d): Data <= kernel\n",
+                               jiffies, priv->bss_type, priv->bss_num);
 
        if (priv->adapter->surprise_removed) {
                kfree_skb(skb);
@@ -458,10 +458,11 @@ mwifiex_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
        }
 
        tx_info = MWIFIEX_SKB_TXCB(skb);
-       tx_info->bss_index = priv->bss_index;
+       tx_info->bss_num = priv->bss_num;
+       tx_info->bss_type = priv->bss_type;
        mwifiex_fill_buffer(skb);
 
-       mwifiex_wmm_add_buf_txqueue(priv->adapter, skb);
+       mwifiex_wmm_add_buf_txqueue(priv, skb);
        atomic_inc(&priv->adapter->tx_pending);
 
        if (atomic_read(&priv->adapter->tx_pending) >= MAX_TX_PENDING) {
@@ -531,8 +532,8 @@ mwifiex_tx_timeout(struct net_device *dev)
 {
        struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
 
-       dev_err(priv->adapter->dev, "%lu : Tx timeout, bss_index=%d\n",
-                               jiffies, priv->bss_index);
+       dev_err(priv->adapter->dev, "%lu : Tx timeout, bss_type-num = %d-%d\n",
+                               jiffies, priv->bss_type, priv->bss_num);
        mwifiex_set_trans_start(dev);
        priv->num_tx_timeout++;
 }
@@ -604,18 +605,6 @@ int is_command_pending(struct mwifiex_adapter *adapter)
        return !is_cmd_pend_q_empty;
 }
 
-/*
- * This function returns the correct private structure pointer based
- * upon the BSS number.
- */
-struct mwifiex_private *
-mwifiex_bss_index_to_priv(struct mwifiex_adapter *adapter, u8 bss_index)
-{
-       if (!adapter || (bss_index >= adapter->priv_num))
-               return NULL;
-       return adapter->priv[bss_index];
-}
-
 /*
  * This is the main work queue function.
  *
index 3186aa437f421272f929ebdfb8872312c768782f..3dc0f721c1db7590bffe85bdb837df32eabda834 100644 (file)
@@ -249,6 +249,7 @@ struct mwifiex_bssdescriptor {
        u32 channel;
        u32 freq;
        u16 beacon_period;
+       u8 dtim_period;
        u8 erp_flags;
        u32 bss_mode;
        u8 supported_rates[MWIFIEX_SUPPORTED_RATES];
@@ -352,7 +353,6 @@ struct mwifiex_private;
 
 struct mwifiex_private {
        struct mwifiex_adapter *adapter;
-       u8 bss_index;
        u8 bss_type;
        u8 bss_role;
        u8 bss_priority;
@@ -884,8 +884,6 @@ mwifiex_netdev_get_priv(struct net_device *dev)
        return (struct mwifiex_private *) (*(unsigned long *) netdev_priv(dev));
 }
 
-struct mwifiex_private *mwifiex_bss_index_to_priv(struct mwifiex_adapter
-                                               *adapter, u8 bss_index);
 int mwifiex_init_shutdown_fw(struct mwifiex_private *priv,
                             u32 func_init_shutdown);
 int mwifiex_add_card(void *, struct semaphore *, struct mwifiex_if_ops *, u8);
index 6396d3318ead1e3b3afb26858d57873a228022b4..135208596afff16cb272b7c9519ea7543c284747 100644 (file)
@@ -1086,6 +1086,7 @@ mwifiex_update_bss_desc_with_ie(struct mwifiex_adapter *adapter,
        struct ieee_types_vendor_specific *vendor_ie;
        const u8 wpa_oui[4] = { 0x00, 0x50, 0xf2, 0x01 };
        const u8 wmm_oui[4] = { 0x00, 0x50, 0xf2, 0x02 };
+       struct ieee80211_tim_ie *tim_ie;
 
        found_data_rate_ie = false;
        rate_size = 0;
@@ -1258,6 +1259,11 @@ mwifiex_update_bss_desc_with_ie(struct mwifiex_adapter *adapter,
                                        sizeof(struct ieee_types_header) -
                                        bss_entry->beacon_buf);
                        break;
+               case WLAN_EID_TIM:
+                       tim_ie = (void *) (current_ptr +
+                                        sizeof(struct ieee_types_header));
+                       bss_entry->dtim_period = tim_ie->dtim_period;
+                       break;
                default:
                        break;
                }
@@ -2001,7 +2007,7 @@ mwifiex_save_curr_bcn(struct mwifiex_private *priv)
 
                kfree(priv->curr_bcn_buf);
                priv->curr_bcn_buf = kmalloc(curr_bss->beacon_buf_size,
-                                               GFP_KERNEL);
+                                               GFP_ATOMIC);
                if (!priv->curr_bcn_buf) {
                        dev_err(priv->adapter->dev,
                                        "failed to alloc curr_bcn_buf\n");
index 5e1ef7e5da4f3f5b2679c47d012588e642be093f..d7a5d7616f227cfa14f181062c625c2b2ed15381 100644 (file)
@@ -43,7 +43,8 @@ int mwifiex_process_rx_packet(struct mwifiex_adapter *adapter,
 {
        int ret;
        struct mwifiex_rxinfo *rx_info = MWIFIEX_SKB_RXCB(skb);
-       struct mwifiex_private *priv = adapter->priv[rx_info->bss_index];
+       struct mwifiex_private *priv = mwifiex_get_priv_by_id(adapter,
+                       rx_info->bss_num, rx_info->bss_type);
        struct rx_packet_hdr *rx_pkt_hdr;
        struct rxpd *local_rx_pd;
        int hdr_chop;
@@ -124,7 +125,8 @@ int mwifiex_process_sta_rx_packet(struct mwifiex_adapter *adapter,
        struct rx_packet_hdr *rx_pkt_hdr;
        u8 ta[ETH_ALEN];
        u16 rx_pkt_type;
-       struct mwifiex_private *priv = adapter->priv[rx_info->bss_index];
+       struct mwifiex_private *priv = mwifiex_get_priv_by_id(adapter,
+                       rx_info->bss_num, rx_info->bss_type);
 
        if (!priv)
                return -1;
index d97facd70e88b48c45c6f0602f7bfb259d0c1a7c..94d31a94620a75cc4e1ead5384b4ed87ae7d567c 100644 (file)
@@ -136,7 +136,8 @@ int mwifiex_send_null_packet(struct mwifiex_private *priv, u8 flags)
                return -1;
 
        tx_info = MWIFIEX_SKB_TXCB(skb);
-       tx_info->bss_index = priv->bss_index;
+       tx_info->bss_num = priv->bss_num;
+       tx_info->bss_type = priv->bss_type;
        skb_reserve(skb, sizeof(struct txpd) + INTF_HEADER_LEN);
        skb_push(skb, sizeof(struct txpd));
 
index d9274a1b77acabce253e6400af854d71c29b814b..9a6eacc9d6f9fee4b1f1374a2e006cf532523b15 100644 (file)
@@ -48,7 +48,8 @@ int mwifiex_handle_rx_packet(struct mwifiex_adapter *adapter,
        if (!priv)
                priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY);
 
-       rx_info->bss_index = priv->bss_index;
+       rx_info->bss_num = priv->bss_num;
+       rx_info->bss_type = priv->bss_type;
 
        return mwifiex_process_sta_rx_packet(adapter, skb);
 }
@@ -130,7 +131,8 @@ int mwifiex_write_data_complete(struct mwifiex_adapter *adapter,
                return 0;
 
        tx_info = MWIFIEX_SKB_TXCB(skb);
-       priv = mwifiex_bss_index_to_priv(adapter, tx_info->bss_index);
+       priv = mwifiex_get_priv_by_id(adapter, tx_info->bss_num,
+                       tx_info->bss_type);
        if (!priv)
                goto done;
 
index 06976f517f6603998a43e419988aa50b79378d48..9c48f37069f70b17096c75c2382e49aecc8f40e0 100644 (file)
@@ -159,7 +159,8 @@ int mwifiex_recv_packet(struct mwifiex_adapter *adapter, struct sk_buff *skb)
                return -1;
 
        rx_info = MWIFIEX_SKB_RXCB(skb);
-       priv = mwifiex_bss_index_to_priv(adapter, rx_info->bss_index);
+       priv = mwifiex_get_priv_by_id(adapter, rx_info->bss_num,
+                       rx_info->bss_type);
        if (!priv)
                return -1;
 
index 6c239c3c8249c31395d337213b5a1c0e3176e4ab..75f79ef9f6cfed068497e384a36384224985bb83 100644 (file)
@@ -599,11 +599,10 @@ mwifiex_is_ralist_valid(struct mwifiex_private *priv,
  * is queued at the list tail.
  */
 void
-mwifiex_wmm_add_buf_txqueue(struct mwifiex_adapter *adapter,
+mwifiex_wmm_add_buf_txqueue(struct mwifiex_private *priv,
                            struct sk_buff *skb)
 {
-       struct mwifiex_txinfo *tx_info = MWIFIEX_SKB_TXCB(skb);
-       struct mwifiex_private *priv = adapter->priv[tx_info->bss_index];
+       struct mwifiex_adapter *adapter = priv->adapter;
        u32 tid;
        struct mwifiex_ra_list_tbl *ra_list;
        u8 ra[ETH_ALEN], tid_down;
index fcea1f68792f8c06e053352a69a17164194d0987..ec839952d2e77bc01bf57bb63be53086913821f0 100644 (file)
@@ -80,8 +80,8 @@ mwifiex_wmm_is_ra_list_empty(struct list_head *ra_list_hhead)
        return true;
 }
 
-void mwifiex_wmm_add_buf_txqueue(struct mwifiex_adapter *adapter,
-                                struct sk_buff *skb);
+void mwifiex_wmm_add_buf_txqueue(struct mwifiex_private *priv,
+                                       struct sk_buff *skb);
 void mwifiex_ralist_add(struct mwifiex_private *priv, u8 *ra);
 
 int mwifiex_wmm_lists_empty(struct mwifiex_adapter *adapter);
index dd5aeaff44ba3483804df003bd5779cbf0138794..fd125473be7a32f1afba257f5db8698498e822c0 100644 (file)
@@ -4093,7 +4093,7 @@ static int mwl8k_set_key(struct ieee80211_hw *hw,
                return -EOPNOTSUPP;
 
        if (sta == NULL)
-               addr = hw->wiphy->perm_addr;
+               addr = vif->addr;
        else
                addr = sta->addr;
 
index ae8ce56670b6734cec89ee5688263dcf2ba39db9..f634d4582bfe9d1d18890870ac74e499dc315a1b 100644 (file)
@@ -1754,11 +1754,6 @@ static struct usb_driver orinoco_driver = {
        .id_table = ezusb_table,
 };
 
-/* Can't be declared "const" or the whole __initdata section will
- * become const */
-static char version[] __initdata = DRIVER_NAME " " DRIVER_VERSION
-       " (Manuel Estrada Sainz)";
-
 module_usb_driver(orinoco_driver);
 
 MODULE_AUTHOR("Manuel Estrada Sainz");
index af2ca1a9c7d32ed014f11d1390e5c1d8bcf09fb6..40f4eb7da7b296e3d01227f625a24f4be401fdd6 100644 (file)
@@ -228,6 +228,8 @@ static int p54_add_interface(struct ieee80211_hw *dev,
 {
        struct p54_common *priv = dev->priv;
 
+       vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER;
+
        mutex_lock(&priv->conf_mutex);
        if (priv->mode != NL80211_IFTYPE_MONITOR) {
                mutex_unlock(&priv->conf_mutex);
@@ -734,7 +736,6 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len)
                     IEEE80211_HW_SIGNAL_DBM |
                     IEEE80211_HW_SUPPORTS_PS |
                     IEEE80211_HW_PS_NULLFUNC_STACK |
-                    IEEE80211_HW_BEACON_FILTER |
                     IEEE80211_HW_REPORTS_TX_ACK_STATUS;
 
        dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
index 7bef66def10c469166f6689adefbfe1d477bf034..dbe7ece862f2b23186620ea85883c755e2513052 100644 (file)
@@ -411,18 +411,6 @@ int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev,
                rt2800_register_write(rt2x00dev, PWR_PIN_CFG, 0x00000002);
        }
 
-       /*
-        * Disable DMA, will be reenabled later when enabling
-        * the radio.
-        */
-       rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, &reg);
-       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0);
-       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_TX_DMA_BUSY, 0);
-       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_RX_DMA, 0);
-       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_RX_DMA_BUSY, 0);
-       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_TX_WRITEBACK_DONE, 1);
-       rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg);
-
        /*
         * Write firmware to the device.
         */
@@ -443,11 +431,22 @@ int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev,
                return -EBUSY;
        }
 
+       /*
+        * Disable DMA, will be reenabled later when enabling
+        * the radio.
+        */
+       rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, &reg);
+       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0);
+       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_RX_DMA, 0);
+       rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg);
+
        /*
         * Initialize firmware.
         */
        rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0);
        rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0);
+       if (rt2x00_is_usb(rt2x00dev))
+               rt2800_register_write(rt2x00dev, H2M_INT_SRC, 0);
        msleep(1);
 
        return 0;
index dc88baefa72e88bd2b2f60b3ea2e8f7174ff34ed..4e985026985cd21e0eee1644a2016adba89d6397 100644 (file)
@@ -489,7 +489,7 @@ static int rt2800pci_init_registers(struct rt2x00_dev *rt2x00dev)
 
        rt2x00pci_register_write(rt2x00dev, PWR_PIN_CFG, 0x00000003);
 
-       rt2x00pci_register_read(rt2x00dev, MAC_SYS_CTRL, &reg);
+       reg = 0;
        rt2x00_set_field32(&reg, MAC_SYS_CTRL_RESET_CSR, 1);
        rt2x00_set_field32(&reg, MAC_SYS_CTRL_RESET_BBP, 1);
        rt2x00pci_register_write(rt2x00dev, MAC_SYS_CTRL, reg);
index 262ee9eefb6f08dc7d8b404c3f1f143060951633..f0074bcee7c9d780009c1e9a7e5ef2f9f451da97 100644 (file)
@@ -226,9 +226,7 @@ static int rt2800usb_init_registers(struct rt2x00_dev *rt2x00dev)
        rt2x00usb_register_read(rt2x00dev, PBF_SYS_CTRL, &reg);
        rt2x00usb_register_write(rt2x00dev, PBF_SYS_CTRL, reg & ~0x00002000);
 
-       rt2x00usb_register_write(rt2x00dev, PWR_PIN_CFG, 0x00000003);
-
-       rt2x00usb_register_read(rt2x00dev, MAC_SYS_CTRL, &reg);
+       reg = 0;
        rt2x00_set_field32(&reg, MAC_SYS_CTRL_RESET_CSR, 1);
        rt2x00_set_field32(&reg, MAC_SYS_CTRL_RESET_BBP, 1);
        rt2x00usb_register_write(rt2x00dev, MAC_SYS_CTRL, reg);
index d6c42e69bdbd467225d4db746f0e0f82d860fd68..44b9c0a57702dcdb37584ef4f099e8e6d093a461 100644 (file)
@@ -49,6 +49,11 @@ config RTLWIFI
        depends on RTL8192CE || RTL8192CU || RTL8192SE || RTL8192DE
        default m
 
+config RTLWIFI_DEBUG
+       tristate "Additional debugging output"
+       depends on RTL8192CE || RTL8192CU || RTL8192SE || RTL8192DE
+       default y
+
 config RTL8192C_COMMON
        tristate
        depends on RTL8192CE || RTL8192CU
index 8d6eb0f56c031b7b4b7ac2d43756c88cd9b0f28b..df5655cc55c0a315f768073e994695d79043ffa6 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/ip.h>
-#include <linux/module.h>
 #include "wifi.h"
 #include "rc.h"
 #include "base.h"
@@ -39,6 +35,9 @@
 #include "ps.h"
 #include "regd.h"
 
+#include <linux/ip.h>
+#include <linux/module.h>
+
 /*
  *NOTICE!!!: This file will be very big, we hsould
  *keep it clear under follwing roles:
@@ -211,7 +210,7 @@ static void _rtl_init_hw_ht_capab(struct ieee80211_hw *hw,
         */
        if (get_rf_type(rtlphy) == RF_1T2R || get_rf_type(rtlphy) == RF_2T2R) {
 
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("1T2R or 2T2R\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "1T2R or 2T2R\n");
 
                ht_cap->mcs.rx_mask[0] = 0xFF;
                ht_cap->mcs.rx_mask[1] = 0xFF;
@@ -220,7 +219,7 @@ static void _rtl_init_hw_ht_capab(struct ieee80211_hw *hw,
                ht_cap->mcs.rx_highest = cpu_to_le16(MAX_BIT_RATE_40MHZ_MCS15);
        } else if (get_rf_type(rtlphy) == RF_1T1R) {
 
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("1T1R\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "1T1R\n");
 
                ht_cap->mcs.rx_mask[0] = 0xFF;
                ht_cap->mcs.rx_mask[1] = 0x00;
@@ -302,15 +301,13 @@ static void _rtl_init_mac80211(struct ieee80211_hw *hw)
                        /* <4> set mac->sband to wiphy->sband */
                        hw->wiphy->bands[IEEE80211_BAND_5GHZ] = sband;
                } else {
-                       RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                                ("Err BAND %d\n",
-                                rtlhal->current_bandtype));
+                       RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, "Err BAND %d\n",
+                                rtlhal->current_bandtype);
                }
        }
        /* <5> set hw caps */
        hw->flags = IEEE80211_HW_SIGNAL_DBM |
            IEEE80211_HW_RX_INCLUDES_FCS |
-           IEEE80211_HW_BEACON_FILTER |
            IEEE80211_HW_AMPDU_AGGREGATION |
            IEEE80211_HW_CONNECTION_MONITOR |
            /* IEEE80211_HW_SUPPORTS_CQM_RSSI | */
@@ -413,6 +410,7 @@ void rtl_init_rfkill(struct ieee80211_hw *hw)
 
        wiphy_rfkill_start_polling(hw->wiphy);
 }
+EXPORT_SYMBOL(rtl_init_rfkill);
 
 void rtl_deinit_rfkill(struct ieee80211_hw *hw)
 {
@@ -436,13 +434,13 @@ int rtl_init_core(struct ieee80211_hw *hw)
         * mac80211 hw  in _rtl_init_mac80211.
         */
        if (rtl_regd_init(hw, rtl_reg_notifier)) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("REGD init failed\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "REGD init failed\n");
                return 1;
        } else {
                /* CRDA regd hint must after init CRDA */
                if (regulatory_hint(hw->wiphy, rtlpriv->regd.alpha2)) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                ("regulatory_hint fail\n"));
+                                "regulatory_hint fail\n");
                }
        }
 
@@ -922,17 +920,17 @@ bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx)
                                return false;
 
                        RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-                                ("%s ACT_ADDBAREQ From :%pM\n",
-                                 is_tx ? "Tx" : "Rx", hdr->addr2));
+                                "%s ACT_ADDBAREQ From :%pM\n",
+                                is_tx ? "Tx" : "Rx", hdr->addr2);
                        break;
                case ACT_ADDBARSP:
                        RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-                                ("%s ACT_ADDBARSP From :%pM\n",
-                                 is_tx ? "Tx" : "Rx", hdr->addr2));
+                                "%s ACT_ADDBARSP From :%pM\n",
+                                is_tx ? "Tx" : "Rx", hdr->addr2);
                        break;
                case ACT_DELBA:
                        RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-                                ("ACT_ADDBADEL From :%pM\n", hdr->addr2));
+                                "ACT_ADDBADEL From :%pM\n", hdr->addr2);
                        break;
                }
                break;
@@ -975,8 +973,8 @@ u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx)
                                 * 67 : UDP BOOTP server
                                 */
                                RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV),
-                                        DBG_DMESG, ("dhcp %s !!\n",
-                                                    (is_tx) ? "Tx" : "Rx"));
+                                        DBG_DMESG, "dhcp %s !!\n",
+                                        is_tx ? "Tx" : "Rx");
 
                                if (is_tx) {
                                        rtl_lps_leave(hw);
@@ -996,7 +994,7 @@ u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx)
                return true;
        } else if (ETH_P_PAE == ether_type) {
                RT_TRACE(rtlpriv, (COMP_SEND | COMP_RECV), DBG_DMESG,
-                        ("802.1X %s EAPOL pkt!!\n", (is_tx) ? "Tx" : "Rx"));
+                        "802.1X %s EAPOL pkt!!\n", is_tx ? "Tx" : "Rx");
 
                if (is_tx) {
                        rtl_lps_leave(hw);
@@ -1036,9 +1034,8 @@ int rtl_tx_agg_start(struct ieee80211_hw *hw,
                return -ENXIO;
        tid_data = &sta_entry->tids[tid];
 
-       RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG,
-                ("on ra = %pM tid = %d seq:%d\n", sta->addr, tid,
-                tid_data->seq_number));
+       RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "on ra = %pM tid = %d seq:%d\n",
+                sta->addr, tid, tid_data->seq_number);
 
        *ssn = tid_data->seq_number;
        tid_data->agg.agg_state = RTL_AGG_START;
@@ -1059,12 +1056,12 @@ int rtl_tx_agg_stop(struct ieee80211_hw *hw,
                return -EINVAL;
 
        if (!sta->addr) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("ra = NULL\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "ra = NULL\n");
                return -EINVAL;
        }
 
-       RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG,
-                ("on ra = %pM tid = %d\n", sta->addr, tid));
+       RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "on ra = %pM tid = %d\n",
+                sta->addr, tid);
 
        if (unlikely(tid >= MAX_TID_COUNT))
                return -EINVAL;
@@ -1087,12 +1084,12 @@ int rtl_tx_agg_oper(struct ieee80211_hw *hw,
                return -EINVAL;
 
        if (!sta->addr) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("ra = NULL\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "ra = NULL\n");
                return -EINVAL;
        }
 
-       RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG,
-                ("on ra = %pM tid = %d\n", sta->addr, tid));
+       RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "on ra = %pM tid = %d\n",
+                sta->addr, tid);
 
        if (unlikely(tid >= MAX_TID_COUNT))
                return -EINVAL;
@@ -1474,29 +1471,29 @@ void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len)
                (memcmp(mac->bssid, ap5_6, 3) == 0) ||
                vendor == PEER_ATH) {
                vendor = PEER_ATH;
-               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, ("=>ath find\n"));
+               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>ath find\n");
        } else if ((memcmp(mac->bssid, ap4_4, 3) == 0) ||
                (memcmp(mac->bssid, ap4_5, 3) == 0) ||
                (memcmp(mac->bssid, ap4_1, 3) == 0) ||
                (memcmp(mac->bssid, ap4_2, 3) == 0) ||
                (memcmp(mac->bssid, ap4_3, 3) == 0) ||
                vendor == PEER_RAL) {
-               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, ("=>ral findn\n"));
+               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>ral find\n");
                vendor = PEER_RAL;
        } else if (memcmp(mac->bssid, ap6_1, 3) == 0 ||
                vendor == PEER_CISCO) {
                vendor = PEER_CISCO;
-               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, ("=>cisco find\n"));
+               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>cisco find\n");
        } else if ((memcmp(mac->bssid, ap3_1, 3) == 0) ||
                (memcmp(mac->bssid, ap3_2, 3) == 0) ||
                (memcmp(mac->bssid, ap3_3, 3) == 0) ||
                vendor == PEER_BROAD) {
-               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, ("=>broad find\n"));
+               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>broad find\n");
                vendor = PEER_BROAD;
        } else if (memcmp(mac->bssid, ap7_1, 3) == 0 ||
                vendor == PEER_MARV) {
                vendor = PEER_MARV;
-               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, ("=>marv find\n"));
+               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "=>marv find\n");
        }
 
        mac->vendor = vendor;
index f66b5757f6b9b5bfef1a5111b517fa65131eed78..5a23a6d0f49d4b7f6dd8c35da72e16ff21a715f6 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index dc36d7461caaaecd07a8f60a93941b843c094ff2..5c7d57947d2338731f7fed6e78cd3460114d17c9 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -27,8 +27,6 @@
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
 #include <linux/export.h>
 #include "wifi.h"
 #include "cam.h"
@@ -55,10 +53,10 @@ static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no,
        u8 entry_i;
 
        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                ("key_cont_128:\n %x:%x:%x:%x:%x:%x\n",
-                 key_cont_128[0], key_cont_128[1],
-                 key_cont_128[2], key_cont_128[3],
-                 key_cont_128[4], key_cont_128[5]));
+                "key_cont_128:\n %x:%x:%x:%x:%x:%x\n",
+                key_cont_128[0], key_cont_128[1],
+                key_cont_128[2], key_cont_128[3],
+                key_cont_128[4], key_cont_128[5]);
 
        for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) {
                target_command = entry_i + CAM_CONTENT_COUNT * entry_no;
@@ -73,14 +71,12 @@ static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no,
                        rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM],
                                        target_command);
 
+                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "WRITE %x: %x\n",
+                                rtlpriv->cfg->maps[WCAMI], target_content);
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("WRITE %x: %x\n",
-                                 rtlpriv->cfg->maps[WCAMI], target_content));
-                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The Key ID is %d\n", entry_no));
-                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("WRITE %x: %x\n",
-                                 rtlpriv->cfg->maps[RWCAM], target_command));
+                                "The Key ID is %d\n", entry_no);
+                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "WRITE %x: %x\n",
+                                rtlpriv->cfg->maps[RWCAM], target_command);
 
                } else if (entry_i == 1) {
 
@@ -94,10 +90,10 @@ static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no,
                        rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM],
                                        target_command);
 
-                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("WRITE A4: %x\n", target_content));
-                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("WRITE A0: %x\n", target_command));
+                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "WRITE A4: %x\n",
+                                target_content);
+                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "WRITE A0: %x\n",
+                                target_command);
 
                } else {
 
@@ -114,15 +110,15 @@ static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no,
                                        target_command);
                        udelay(100);
 
-                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("WRITE A4: %x\n", target_content));
-                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("WRITE A0: %x\n", target_command));
+                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "WRITE A4: %x\n",
+                                target_content);
+                       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "WRITE A0: %x\n",
+                                target_command);
                }
        }
 
-       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                ("after set key, usconfig:%x\n", us_config));
+       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "after set key, usconfig:%x\n",
+                us_config);
 }
 
 u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr,
@@ -133,14 +129,13 @@ u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                ("EntryNo:%x, ulKeyId=%x, ulEncAlg=%x, "
-                 "ulUseDK=%x MacAddr %pM\n",
-                 ul_entry_idx, ul_key_id, ul_enc_alg,
-                 ul_default_key, mac_addr));
+                "EntryNo:%x, ulKeyId=%x, ulEncAlg=%x, ulUseDK=%x MacAddr %pM\n",
+                ul_entry_idx, ul_key_id, ul_enc_alg,
+                ul_default_key, mac_addr);
 
        if (ul_key_id == TOTAL_CAM_ENTRY) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("<=== ulKeyId exceed!\n"));
+                        "<=== ulKeyId exceed!\n");
                return 0;
        }
 
@@ -153,7 +148,7 @@ u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr,
        rtl_cam_program_entry(hw, ul_entry_idx, mac_addr,
                              (u8 *) key_content, us_config);
 
-       RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("<===\n"));
+       RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "<===\n");
 
        return 1;
 
@@ -166,7 +161,7 @@ int rtl_cam_delete_one_entry(struct ieee80211_hw *hw,
        u32 ul_command;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("key_idx:%d\n", ul_key_id));
+       RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "key_idx:%d\n", ul_key_id);
 
        ul_command = ul_key_id * CAM_CONTENT_COUNT;
        ul_command = ul_command | BIT(31) | BIT(16);
@@ -175,9 +170,9 @@ int rtl_cam_delete_one_entry(struct ieee80211_hw *hw,
        rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command);
 
        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                ("rtl_cam_delete_one_entry(): WRITE A4: %x\n", 0));
+                "rtl_cam_delete_one_entry(): WRITE A4: %x\n", 0);
        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                ("rtl_cam_delete_one_entry(): WRITE A0: %x\n", ul_command));
+                "rtl_cam_delete_one_entry(): WRITE A0: %x\n", ul_command);
 
        return 0;
 
@@ -229,9 +224,9 @@ void rtl_cam_mark_invalid(struct ieee80211_hw *hw, u8 uc_index)
        rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command);
 
        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                ("rtl_cam_mark_invalid(): WRITE A4: %x\n", ul_content));
+                "rtl_cam_mark_invalid(): WRITE A4: %x\n", ul_content);
        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                ("rtl_cam_mark_invalid(): WRITE A0: %x\n", ul_command));
+                "rtl_cam_mark_invalid(): WRITE A0: %x\n", ul_command);
 }
 EXPORT_SYMBOL(rtl_cam_mark_invalid);
 
@@ -279,11 +274,11 @@ void rtl_cam_empty_entry(struct ieee80211_hw *hw, u8 uc_index)
                rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command);
 
                RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                        ("rtl_cam_empty_entry(): WRITE A4: %x\n",
-                         ul_content));
+                        "rtl_cam_empty_entry(): WRITE A4: %x\n",
+                        ul_content);
                RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                        ("rtl_cam_empty_entry(): WRITE A0: %x\n",
-                         ul_command));
+                        "rtl_cam_empty_entry(): WRITE A0: %x\n",
+                        ul_command);
        }
 
 }
@@ -297,8 +292,7 @@ u8 rtl_cam_get_free_entry(struct ieee80211_hw *hw, u8 *sta_addr)
        u8 i, *addr;
 
        if (NULL == sta_addr) {
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_EMERG,
-                       ("sta_addr is NULL.\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_EMERG, "sta_addr is NULL\n");
                return TOTAL_CAM_ENTRY;
        }
        /* Does STA already exist? */
@@ -311,8 +305,8 @@ u8 rtl_cam_get_free_entry(struct ieee80211_hw *hw, u8 *sta_addr)
        for (entry_idx = 4; entry_idx < TOTAL_CAM_ENTRY; entry_idx++) {
                if ((bitmap & BIT(0)) == 0) {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_EMERG,
-                               ("-----hwsec_cam_bitmap: 0x%x entry_idx=%d\n",
-                                rtlpriv->sec.hwsec_cam_bitmap, entry_idx));
+                                "-----hwsec_cam_bitmap: 0x%x entry_idx=%d\n",
+                                rtlpriv->sec.hwsec_cam_bitmap, entry_idx);
                        rtlpriv->sec.hwsec_cam_bitmap |= BIT(0) << entry_idx;
                        memcpy(rtlpriv->sec.hwsec_cam_sta_addr[entry_idx],
                               sta_addr, ETH_ALEN);
@@ -331,14 +325,13 @@ void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr)
        u8 i, *addr;
 
        if (NULL == sta_addr) {
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_EMERG,
-                       ("sta_addr is NULL.\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_EMERG, "sta_addr is NULL\n");
        }
 
        if ((sta_addr[0]|sta_addr[1]|sta_addr[2]|sta_addr[3]|\
                                sta_addr[4]|sta_addr[5]) == 0) {
                RT_TRACE(rtlpriv, COMP_SEC, DBG_EMERG,
-                       ("sta_addr is 00:00:00:00:00:00.\n"));
+                        "sta_addr is 00:00:00:00:00:00\n");
                return;
        }
        /* Does STA already exist? */
index c62da4eefc75e85f11d6aea2d9b9afbb5e111482..35e00086a520bf06393237b3aebf0aa3bbb9e617 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 3f0f056fae9cda0a4e232d401dd886f834f4e076..f231b9180436ba75043aa9320489908cb17eb75e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
 #include "core.h"
 #include "cam.h"
 #include "base.h"
+#include "pci.h"
 #include "ps.h"
 
+#include <linux/export.h>
+
+void rtl_fw_cb(const struct firmware *firmware, void *context)
+{
+       struct ieee80211_hw *hw = context;
+       struct rtl_priv *rtlpriv = rtl_priv(hw);
+       int err;
+
+       RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
+                        "Firmware callback routine entered!\n");
+       complete(&rtlpriv->firmware_loading_complete);
+       if (!firmware) {
+               pr_err("Firmware %s not available\n", rtlpriv->cfg->fw_name);
+               rtlpriv->max_fw_size = 0;
+               return;
+       }
+       if (firmware->size > rtlpriv->max_fw_size) {
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                        "Firmware is too big!\n");
+               release_firmware(firmware);
+               return;
+       }
+       memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size);
+       rtlpriv->rtlhal.fwsize = firmware->size;
+       release_firmware(firmware);
+
+       err = ieee80211_register_hw(hw);
+       if (err) {
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                        "Can't register mac80211 hw\n");
+               return;
+       } else {
+               rtlpriv->mac80211.mac80211_registered = 1;
+       }
+       set_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
+
+       /*init rfkill */
+       rtl_init_rfkill(hw);
+}
+EXPORT_SYMBOL(rtl_fw_cb);
+
 /*mutex for start & stop is must here. */
 static int rtl_op_start(struct ieee80211_hw *hw)
 {
@@ -112,9 +154,11 @@ static int rtl_op_add_interface(struct ieee80211_hw *hw,
        struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
        int err = 0;
 
+       vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER;
+
        if (mac->vif) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("vif has been set!! mac->vif = 0x%p\n", mac->vif));
+                        "vif has been set!! mac->vif = 0x%p\n", mac->vif);
                return -EOPNOTSUPP;
        }
 
@@ -125,7 +169,7 @@ static int rtl_op_add_interface(struct ieee80211_hw *hw,
        case NL80211_IFTYPE_STATION:
                if (mac->beacon_enabled == 1) {
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("NL80211_IFTYPE_STATION\n"));
+                                "NL80211_IFTYPE_STATION\n");
                        mac->beacon_enabled = 0;
                        rtlpriv->cfg->ops->update_interrupt_mask(hw, 0,
                                        rtlpriv->cfg->maps
@@ -134,7 +178,7 @@ static int rtl_op_add_interface(struct ieee80211_hw *hw,
                break;
        case NL80211_IFTYPE_ADHOC:
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                        ("NL80211_IFTYPE_ADHOC\n"));
+                        "NL80211_IFTYPE_ADHOC\n");
 
                mac->link_state = MAC80211_LINKED;
                rtlpriv->cfg->ops->set_bcn_reg(hw);
@@ -148,7 +192,7 @@ static int rtl_op_add_interface(struct ieee80211_hw *hw,
                break;
        case NL80211_IFTYPE_AP:
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                        ("NL80211_IFTYPE_AP\n"));
+                        "NL80211_IFTYPE_AP\n");
 
                mac->link_state = MAC80211_LINKED;
                rtlpriv->cfg->ops->set_bcn_reg(hw);
@@ -161,7 +205,7 @@ static int rtl_op_add_interface(struct ieee80211_hw *hw,
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("operation mode %d is not support!\n", vif->type));
+                        "operation mode %d is not supported!\n", vif->type);
                err = -EOPNOTSUPP;
                goto out;
        }
@@ -221,7 +265,7 @@ static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
        mutex_lock(&rtlpriv->locks.conf_mutex);
        if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) {  /*BIT(2)*/
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                        ("IEEE80211_CONF_CHANGE_LISTEN_INTERVAL\n"));
+                        "IEEE80211_CONF_CHANGE_LISTEN_INTERVAL\n");
        }
 
        /*For IPS */
@@ -252,10 +296,12 @@ static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
                         * because that will cause nullfunc send by mac80211
                         * fail, and cause pkt loss, we have tested that 5mA
                         * is worked very well */
-                       if (!rtlpriv->psc.multi_buffered)
+                       if (!rtlpriv->psc.multi_buffered) {
                                queue_delayed_work(rtlpriv->works.rtl_wq,
                                                &rtlpriv->works.ps_work,
                                                MSECS(5));
+                               pr_info("In section\n");
+                       }
                } else {
                        rtl_swlps_rf_awake(hw);
                        rtlpriv->psc.sw_ps_enabled = false;
@@ -264,8 +310,8 @@ static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
 
        if (changed & IEEE80211_CONF_CHANGE_RETRY_LIMITS) {
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                        ("IEEE80211_CONF_CHANGE_RETRY_LIMITS %x\n",
-                         hw->conf.long_frame_max_tx_count));
+                        "IEEE80211_CONF_CHANGE_RETRY_LIMITS %x\n",
+                        hw->conf.long_frame_max_tx_count);
                mac->retry_long = hw->conf.long_frame_max_tx_count;
                mac->retry_short = hw->conf.long_frame_max_tx_count;
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT,
@@ -320,7 +366,7 @@ static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
                default:
                        mac->bw_40 = false;
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                       ("switch case not processed\n"));
+                                "switch case not processed\n");
                        break;
                }
 
@@ -369,12 +415,12 @@ static void rtl_op_configure_filter(struct ieee80211_hw *hw,
                        mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AM] |
                            rtlpriv->cfg->maps[MAC_RCR_AB];
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Enable receive multicast frame.\n"));
+                                "Enable receive multicast frame\n");
                } else {
                        mac->rx_conf &= ~(rtlpriv->cfg->maps[MAC_RCR_AM] |
                                          rtlpriv->cfg->maps[MAC_RCR_AB]);
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Disable receive multicast frame.\n"));
+                                "Disable receive multicast frame\n");
                }
        }
 
@@ -382,11 +428,11 @@ static void rtl_op_configure_filter(struct ieee80211_hw *hw,
                if (*new_flags & FIF_FCSFAIL) {
                        mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACRC32];
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Enable receive FCS error frame.\n"));
+                                "Enable receive FCS error frame\n");
                } else {
                        mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACRC32];
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Disable receive FCS error frame.\n"));
+                                "Disable receive FCS error frame\n");
                }
        }
 
@@ -409,11 +455,11 @@ static void rtl_op_configure_filter(struct ieee80211_hw *hw,
                        mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACF];
 
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Enable receive control frame.\n"));
+                                "Enable receive control frame\n");
                } else {
                        mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACF];
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Disable receive control frame.\n"));
+                                "Disable receive control frame\n");
                }
        }
 
@@ -421,11 +467,11 @@ static void rtl_op_configure_filter(struct ieee80211_hw *hw,
                if (*new_flags & FIF_OTHER_BSS) {
                        mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AAP];
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Enable receive other BSS's frame.\n"));
+                                "Enable receive other BSS's frame\n");
                } else {
                        mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_AAP];
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                                ("Disable receive other BSS's frame.\n"));
+                                "Disable receive other BSS's frame\n");
                }
        }
 }
@@ -456,7 +502,7 @@ static int rtl_op_sta_add(struct ieee80211_hw *hw,
                        sta_entry->wireless_mode = WIRELESS_MODE_G;
 
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-                       ("Add sta addr is %pM\n", sta->addr));
+                        "Add sta addr is %pM\n", sta->addr);
                rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0);
        }
        return 0;
@@ -469,7 +515,7 @@ static int rtl_op_sta_remove(struct ieee80211_hw *hw,
        struct rtl_sta_info *sta_entry;
        if (sta) {
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-                       ("Remove sta addr is %pM\n", sta->addr));
+                        "Remove sta addr is %pM\n", sta->addr);
                sta_entry = (struct rtl_sta_info *) sta->drv_priv;
                sta_entry->wireless_mode = 0;
                sta_entry->ratr_index = 0;
@@ -514,7 +560,7 @@ static int rtl_op_conf_tx(struct ieee80211_hw *hw,
 
        if (queue >= AC_MAX) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("queue number %d is incorrect!\n", queue));
+                        "queue number %d is incorrect!\n", queue);
                return -EINVAL;
        }
 
@@ -547,7 +593,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
                     bss_conf->enable_beacon)) {
                        if (mac->beacon_enabled == 0) {
                                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-                                        ("BSS_CHANGED_BEACON_ENABLED\n"));
+                                        "BSS_CHANGED_BEACON_ENABLED\n");
 
                                /*start hw beacon interrupt. */
                                /*rtlpriv->cfg->ops->set_bcn_reg(hw); */
@@ -565,7 +611,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
                        !bss_conf->enable_beacon)) {
                        if (mac->beacon_enabled == 1) {
                                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-                                        ("ADHOC DISABLE BEACON\n"));
+                                        "ADHOC DISABLE BEACON\n");
 
                                mac->beacon_enabled = 0;
                                rtlpriv->cfg->ops->update_interrupt_mask(hw, 0,
@@ -575,7 +621,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
                }
                if (changed & BSS_CHANGED_BEACON_INT) {
                        RT_TRACE(rtlpriv, COMP_BEACON, DBG_TRACE,
-                                ("BSS_CHANGED_BEACON_INT\n"));
+                                "BSS_CHANGED_BEACON_INT\n");
                        mac->beacon_interval = bss_conf->beacon_int;
                        rtlpriv->cfg->ops->set_bcn_intv(hw);
                }
@@ -604,7 +650,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
                        if (mac->opmode == NL80211_IFTYPE_STATION && sta)
                                rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0);
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-                                ("BSS_CHANGED_ASSOC\n"));
+                                "BSS_CHANGED_ASSOC\n");
                } else {
                        if (mac->link_state == MAC80211_LINKED)
                                rtl_lps_leave(hw);
@@ -619,20 +665,20 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
                        mac->vendor = PEER_UNKNOWN;
 
                        RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-                                ("BSS_CHANGED_UN_ASSOC\n"));
+                                "BSS_CHANGED_UN_ASSOC\n");
                }
        }
 
        if (changed & BSS_CHANGED_ERP_CTS_PROT) {
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("BSS_CHANGED_ERP_CTS_PROT\n"));
+                        "BSS_CHANGED_ERP_CTS_PROT\n");
                mac->use_cts_protect = bss_conf->use_cts_prot;
        }
 
        if (changed & BSS_CHANGED_ERP_PREAMBLE) {
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
-                        ("BSS_CHANGED_ERP_PREAMBLE use short preamble:%x\n",
-                         bss_conf->use_short_preamble));
+                        "BSS_CHANGED_ERP_PREAMBLE use short preamble:%x\n",
+                        bss_conf->use_short_preamble);
 
                mac->short_preamble = bss_conf->use_short_preamble;
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACK_PREAMBLE,
@@ -641,7 +687,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
 
        if (changed & BSS_CHANGED_ERP_SLOT) {
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("BSS_CHANGED_ERP_SLOT\n"));
+                        "BSS_CHANGED_ERP_SLOT\n");
 
                if (bss_conf->use_short_slot)
                        mac->slot_time = RTL_SLOT_TIME_9;
@@ -653,8 +699,7 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
        }
 
        if (changed & BSS_CHANGED_HT) {
-               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("BSS_CHANGED_HT\n"));
+               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE, "BSS_CHANGED_HT\n");
                rcu_read_lock();
                sta = get_sta(hw, vif, bss_conf->bssid);
                if (sta) {
@@ -683,8 +728,8 @@ static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
                rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BSSID,
                                              (u8 *) bss_conf->bssid);
 
-               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
-                        ("%pM\n", bss_conf->bssid));
+               RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG, "%pM\n",
+                        bss_conf->bssid);
 
                mac->vendor = PEER_UNKNOWN;
                memcpy(mac->bssid, bss_conf->bssid, 6);
@@ -831,30 +876,30 @@ static int rtl_op_ampdu_action(struct ieee80211_hw *hw,
        switch (action) {
        case IEEE80211_AMPDU_TX_START:
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("IEEE80211_AMPDU_TX_START: TID:%d\n", tid));
+                        "IEEE80211_AMPDU_TX_START: TID:%d\n", tid);
                return rtl_tx_agg_start(hw, sta, tid, ssn);
                break;
        case IEEE80211_AMPDU_TX_STOP:
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid));
+                        "IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid);
                return rtl_tx_agg_stop(hw, sta, tid);
                break;
        case IEEE80211_AMPDU_TX_OPERATIONAL:
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid));
+                        "IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid);
                rtl_tx_agg_oper(hw, sta, tid);
                break;
        case IEEE80211_AMPDU_RX_START:
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("IEEE80211_AMPDU_RX_START:TID:%d\n", tid));
+                        "IEEE80211_AMPDU_RX_START:TID:%d\n", tid);
                break;
        case IEEE80211_AMPDU_RX_STOP:
                RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
-                        ("IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid));
+                        "IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid);
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("IEEE80211_AMPDU_ERR!!!!:\n"));
+                        "IEEE80211_AMPDU_ERR!!!!:\n");
                return -EOPNOTSUPP;
        }
        return 0;
@@ -867,7 +912,7 @@ static void rtl_op_sw_scan_start(struct ieee80211_hw *hw)
 
        mac->act_scanning = true;
 
-       RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, ("\n"));
+       RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
 
        if (mac->link_state == MAC80211_LINKED) {
                rtl_lps_leave(hw);
@@ -888,7 +933,7 @@ static void rtl_op_sw_scan_complete(struct ieee80211_hw *hw)
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
 
-       RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, ("\n"));
+       RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
        mac->act_scanning = false;
        /* Dual mac */
        rtlpriv->rtlhal.load_imrandiqk_setting_for2g = false;
@@ -921,13 +966,13 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
 
        if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("not open hw encryption\n"));
+                        "not open hw encryption\n");
                return -ENOSPC; /*User disabled HW-crypto */
        }
        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                ("%s hardware based encryption for keyidx: %d, mac: %pM\n",
-                 cmd == SET_KEY ? "Using" : "Disabling", key->keyidx,
-                 sta ? sta->addr : bcast_addr));
+                "%s hardware based encryption for keyidx: %d, mac: %pM\n",
+                cmd == SET_KEY ? "Using" : "Disabling", key->keyidx,
+                sta ? sta->addr : bcast_addr);
        rtlpriv->sec.being_setkey = true;
        rtl_ips_nic_on(hw);
        mutex_lock(&rtlpriv->locks.conf_mutex);
@@ -936,24 +981,23 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
        switch (key->cipher) {
        case WLAN_CIPHER_SUITE_WEP40:
                key_type = WEP40_ENCRYPTION;
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("alg:WEP40\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP40\n");
                break;
        case WLAN_CIPHER_SUITE_WEP104:
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                        ("alg:WEP104\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP104\n");
                key_type = WEP104_ENCRYPTION;
                break;
        case WLAN_CIPHER_SUITE_TKIP:
                key_type = TKIP_ENCRYPTION;
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("alg:TKIP\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:TKIP\n");
                break;
        case WLAN_CIPHER_SUITE_CCMP:
                key_type = AESCCMP_ENCRYPTION;
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("alg:CCMP\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CCMP\n");
                break;
        default:
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("alg_err:%x!!!!:\n", key->cipher));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "alg_err:%x!!!!\n",
+                        key->cipher);
                goto out_unlock;
        }
        if (key_type == WEP40_ENCRYPTION ||
@@ -995,8 +1039,8 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                                wep_only = true;
                        rtlpriv->sec.pairwise_enc_algorithm = key_type;
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                               ("set enable_hw_sec, key_type:%x(OPEN:0 WEP40:1"
-                               " TKIP:2 AES:4 WEP104:5)\n", key_type));
+                                "set enable_hw_sec, key_type:%x(OPEN:0 WEP40:1 TKIP:2 AES:4 WEP104:5)\n",
+                                key_type);
                        rtlpriv->cfg->ops->enable_hw_sec(hw);
                }
        }
@@ -1005,7 +1049,7 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
        case SET_KEY:
                if (wep_only) {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("set WEP(group/pairwise) key\n"));
+                                "set WEP(group/pairwise) key\n");
                        /* Pairwise key with an assigned MAC address. */
                        rtlpriv->sec.pairwise_enc_algorithm = key_type;
                        rtlpriv->sec.group_enc_algorithm = key_type;
@@ -1016,7 +1060,7 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                        memcpy(mac_addr, zero_addr, ETH_ALEN);
                } else if (group_key) { /* group key */
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("set group key\n"));
+                                "set group key\n");
                        /* group key */
                        rtlpriv->sec.group_enc_algorithm = key_type;
                        /*set local buf about group key. */
@@ -1026,10 +1070,10 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                        memcpy(mac_addr, bcast_addr, ETH_ALEN);
                } else {        /* pairwise key */
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("set pairwise key\n"));
+                                "set pairwise key\n");
                        if (!sta) {
-                               RT_ASSERT(false, ("pairwise key withnot"
-                                                 "mac_addr\n"));
+                               RT_ASSERT(false,
+                                         "pairwise key without mac_addr\n");
 
                                err = -EOPNOTSUPP;
                                goto out_unlock;
@@ -1056,7 +1100,7 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                break;
        case DISABLE_KEY:
                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                        ("disable key delete one entry\n"));
+                        "disable key delete one entry\n");
                /*set local buf about wep key. */
                if (mac->opmode == NL80211_IFTYPE_AP) {
                        if (sta)
@@ -1077,7 +1121,7 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("cmd_err:%x!!!!:\n", cmd));
+                        "cmd_err:%x!!!!\n", cmd);
        }
 out_unlock:
        mutex_unlock(&rtlpriv->locks.conf_mutex);
@@ -1106,8 +1150,8 @@ static void rtl_op_rfkill_poll(struct ieee80211_hw *hw)
                        rtlpriv->rfkill.rfkill_state = radio_state;
 
                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                (KERN_INFO "wireless radio switch turned %s\n",
-                                 radio_state ? "on" : "off"));
+                                "wireless radio switch turned %s\n",
+                                radio_state ? "on" : "off");
 
                        blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1;
                        wiphy_rfkill_set_hw_state(hw->wiphy, blocked);
index f02824a3b74736d9db8529affc777fe9550cd14c..2fe46a1b4f1f12c3e77ba985d59c4aaff1d88357 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * Tmis program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -30,8 +30,6 @@
 #ifndef __RTL_CORE_H__
 #define __RTL_CORE_H__
 
-#include <net/mac80211.h>
-
 #define RTL_SUPPORTED_FILTERS          \
        (FIF_PROMISC_IN_BSS | \
        FIF_ALLMULTI | FIF_CONTROL | \
@@ -42,4 +40,6 @@
 #define RTL_SUPPORTED_CTRL_FILTER      0xFF
 
 extern const struct ieee80211_ops rtl_ops;
+void rtl_fw_cb(const struct firmware *firmware, void *context);
+
 #endif
index 1b5cb7153a526b97a3f3ad63d8714ec48b8e2e27..bdda9b2fffe151f79af75eb3042d311e054ff3ed 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * Tmis program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -28,6 +28,8 @@
 
 #include "wifi.h"
 
+#include <linux/moduleparam.h>
+
 void rtl_dbgp_flag_init(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
index 160dd06852136d2a8616b115fdb426c93b093fa2..07493d2957f2a11d313275643b1fee0bc7c6196f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * Tmis program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -156,53 +156,78 @@ enum dbgp_flag_e {
        DBGP_TYPE_MAX
 };
 
-#define RT_ASSERT(_exp, fmt)                           \
-       do {                                            \
-               if (!(_exp)) {                  \
-                       printk(KERN_DEBUG "%s:%s(): ", KBUILD_MODNAME, \
-                       __func__);                      \
-                       printk fmt;                     \
-               } \
-       } while (0);
-
-#define RT_TRACE(rtlpriv, comp, level, fmt)\
-       do { \
-               if (unlikely(((comp) & rtlpriv->dbg.global_debugcomponents) && \
-                       ((level) <= rtlpriv->dbg.global_debuglevel))) {\
-                       printk(KERN_DEBUG "%s:%s():<%lx-%x> ", KBUILD_MODNAME, \
-                       __func__, in_interrupt(), in_atomic()); \
-                       printk fmt;                             \
-               } \
-       } while (0);
-
-#define RTPRINT(rtlpriv, dbgtype, dbgflag, printstr)   \
-       do {                                            \
-               if (unlikely(rtlpriv->dbg.dbgp_type[dbgtype] & dbgflag)) { \
-                       printk(KERN_DEBUG "%s: ", KBUILD_MODNAME);      \
-                       printk printstr;                \
-               }                                       \
-       } while (0);
-
-#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata, \
-               _hexdatalen) \
-       do {\
-               if (unlikely(((_comp) & rtlpriv->dbg.global_debugcomponents) &&\
-                       (_level <= rtlpriv->dbg.global_debuglevel)))    { \
-                       int __i;                                        \
-                       u8*     ptr = (u8 *)_hexdata;                   \
-                       printk(KERN_DEBUG "%s: ", KBUILD_MODNAME);      \
-                       printk("In process \"%s\" (pid %i):", current->comm,\
-                                       current->pid); \
-                       printk(_titlestring);           \
-                       for (__i = 0; __i < (int)_hexdatalen; __i++) {  \
-                               printk("%02X%s", ptr[__i], (((__i + 1) % 4)\
-                                                       == 0) ? "  " : " ");\
-                               if (((__i + 1) % 16) == 0)              \
-                                       printk("\n");                   \
-                       }                               \
-                       printk(KERN_DEBUG "\n");                        \
-               } \
-       } while (0);
+#ifdef CONFIG_RTLWIFI_DEBUG
+
+#define RT_ASSERT(_exp, fmt, ...)                                      \
+do {                                                                   \
+       if (!(_exp)) {                                                  \
+               printk(KERN_DEBUG KBUILD_MODNAME ":%s(): " fmt,         \
+                      __func__, ##__VA_ARGS__);                        \
+       }                                                               \
+} while (0)
+
+#define RT_TRACE(rtlpriv, comp, level, fmt, ...)                       \
+do {                                                                   \
+       if (unlikely(((comp) & rtlpriv->dbg.global_debugcomponents) &&  \
+                    ((level) <= rtlpriv->dbg.global_debuglevel))) {    \
+               printk(KERN_DEBUG KBUILD_MODNAME ":%s():<%lx-%x> " fmt, \
+                      __func__, in_interrupt(), in_atomic(),           \
+                      ##__VA_ARGS__);                                  \
+       }                                                               \
+} while (0)
+
+#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...)                   \
+do {                                                                   \
+       if (unlikely(rtlpriv->dbg.dbgp_type[dbgtype] & dbgflag)) {      \
+               printk(KERN_DEBUG KBUILD_MODNAME ": " fmt,              \
+                      ##__VA_ARGS__);                                  \
+       }                                                               \
+} while (0)
+
+#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata,  \
+                     _hexdatalen)                                      \
+do {                                                                   \
+       if (unlikely(((_comp) & rtlpriv->dbg.global_debugcomponents) && \
+                    (_level <= rtlpriv->dbg.global_debuglevel))) {     \
+               printk(KERN_DEBUG "%s: In process \"%s\" (pid %i): %s\n", \
+                      KBUILD_MODNAME, current->comm, current->pid,     \
+                      _titlestring);                                   \
+               print_hex_dump_bytes("", DUMP_PREFIX_NONE,              \
+                                    _hexdata, _hexdatalen);            \
+       }                                                               \
+} while (0)
+
+#else
+
+struct rtl_priv;
+
+__printf(2, 3)
+static inline void RT_ASSERT(int exp, const char *fmt, ...)
+{
+}
+
+__printf(4, 5)
+static inline void RT_TRACE(struct rtl_priv *rtlpriv,
+                           int comp, int level,
+                           const char *fmt, ...)
+{
+}
+
+__printf(4, 5)
+static inline void RTPRINT(struct rtl_priv *rtlpriv,
+                          int dbgtype, int dbgflag,
+                          const char *fmt, ...)
+{
+}
+
+static inline void RT_PRINT_DATA(struct rtl_priv *rtlpriv,
+                                int comp, int level,
+                                const char *titlestring,
+                                const void *hexdata, size_t hexdatalen)
+{
+}
+
+#endif
 
 void rtl_dbgp_flag_init(struct ieee80211_hw *hw);
 #endif
index ed1058b7158700c6eb65cc1f373472577b85ab1f..b24cbe6e16d893581317ce40ea39f8838ffaf2db 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * Tmis program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -162,8 +162,8 @@ void efuse_write_1byte(struct ieee80211_hw *hw, u16 address, u8 value)
        const u32 efuse_len =
                rtlpriv->cfg->maps[EFUSE_REAL_CONTENT_SIZE];
 
-       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-                ("Addr=%x Data =%x\n", address, value));
+       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "Addr=%x Data =%x\n",
+                address, value);
 
        if (address < efuse_len) {
                rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL], value);
@@ -252,8 +252,8 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
 
        if ((_offset + _size_byte) > rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]) {
                RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-                        ("read_efuse(): Invalid offset(%#x) with read "
-                         "bytes(%#x)!!\n", _offset, _size_byte));
+                        "read_efuse(): Invalid offset(%#x) with read bytes(%#x)!!\n",
+                        _offset, _size_byte);
                return;
        }
 
@@ -280,7 +280,7 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
        if (*rtemp8 != 0xFF) {
                efuse_utilized++;
                RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL,
-                       ("Addr=%d\n", efuse_addr));
+                       "Addr=%d\n", efuse_addr);
                efuse_addr++;
        }
 
@@ -290,13 +290,13 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
                if (offset < efuse_max_section) {
                        wren = (*rtemp8 & 0x0f);
                        RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL,
-                               ("offset-%d Worden=%x\n", offset, wren));
+                               "offset-%d Worden=%x\n", offset, wren);
 
                        for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
                                if (!(wren & 0x01)) {
                                        RTPRINT(rtlpriv, FEEPROM,
-                                               EFUSE_READ_ALL, ("Addr=%d\n",
-                                                                efuse_addr));
+                                               EFUSE_READ_ALL,
+                                               "Addr=%d\n", efuse_addr);
 
                                        read_efuse_byte(hw, efuse_addr, rtemp8);
                                        efuse_addr++;
@@ -308,8 +308,8 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
                                                break;
 
                                        RTPRINT(rtlpriv, FEEPROM,
-                                               EFUSE_READ_ALL, ("Addr=%d\n",
-                                                                efuse_addr));
+                                               EFUSE_READ_ALL,
+                                               "Addr=%d\n", efuse_addr);
 
                                        read_efuse_byte(hw, efuse_addr, rtemp8);
                                        efuse_addr++;
@@ -326,7 +326,7 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf)
                }
 
                RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL,
-                       ("Addr=%d\n", efuse_addr));
+                       "Addr=%d\n", efuse_addr);
                read_efuse_byte(hw, efuse_addr, rtemp8);
                if (*rtemp8 != 0xFF && (efuse_addr < efuse_len)) {
                        efuse_utilized++;
@@ -395,9 +395,8 @@ bool efuse_shadow_update_chk(struct ieee80211_hw *hw)
                result = false;
 
        RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-                ("efuse_shadow_update_chk(): totalbytes(%#x), "
-                 "hdr_num(%#x), words_need(%#x), efuse_used(%d)\n",
-                 totalbytes, hdr_num, words_need, efuse_used));
+                "efuse_shadow_update_chk(): totalbytes(%#x), hdr_num(%#x), words_need(%#x), efuse_used(%d)\n",
+                totalbytes, hdr_num, words_need, efuse_used);
 
        return result;
 }
@@ -434,7 +433,7 @@ bool efuse_shadow_update(struct ieee80211_hw *hw)
        u8 word_en = 0x0F;
        u8 first_pg = false;
 
-       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, ("--->\n"));
+       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "--->\n");
 
        if (!efuse_shadow_update_chk(hw)) {
                efuse_read_all_map(hw, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0]);
@@ -443,7 +442,7 @@ bool efuse_shadow_update(struct ieee80211_hw *hw)
                       rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]);
 
                RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-                        ("<---efuse out of capacity!!\n"));
+                        "<---efuse out of capacity!!\n");
                return false;
        }
        efuse_power_switch(hw, true, true);
@@ -478,12 +477,12 @@ bool efuse_shadow_update(struct ieee80211_hw *hw)
                               &rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base],
                               8);
                        RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_LOUD,
-                                     ("U-efuse\n"), tmpdata, 8);
+                                     "U-efuse", tmpdata, 8);
 
                        if (!efuse_pg_packet_write(hw, (u8) offset, word_en,
                                                   tmpdata)) {
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("PG section(%#x) fail!!\n", offset));
+                                        "PG section(%#x) fail!!\n", offset);
                                break;
                        }
                }
@@ -497,7 +496,7 @@ bool efuse_shadow_update(struct ieee80211_hw *hw)
               &rtlefuse->efuse_map[EFUSE_INIT_MAP][0],
               rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]);
 
-       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, ("<---\n"));
+       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "<---\n");
        return true;
 }
 
@@ -634,8 +633,8 @@ static int efuse_one_byte_write(struct ieee80211_hw *hw, u16 addr, u8 data)
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u8 tmpidx = 0;
 
-       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-                ("Addr = %x Data=%x\n", addr, data));
+       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "Addr = %x Data=%x\n",
+                addr, data);
 
        rtl_write_byte(rtlpriv,
                       rtlpriv->cfg->maps[EFUSE_CTRL] + 1, (u8) (addr & 0xff));
@@ -851,7 +850,7 @@ static void efuse_write_data_case1(struct ieee80211_hw *hw, u16 *efuse_addr,
                        }
                }
        }
-       RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, ("efuse PG_STATE_HEADER-1\n"));
+       RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,  "efuse PG_STATE_HEADER-1\n");
 }
 
 static void efuse_write_data_case2(struct ieee80211_hw *hw, u16 *efuse_addr,
@@ -916,7 +915,7 @@ static void efuse_write_data_case2(struct ieee80211_hw *hw, u16 *efuse_addr,
                }
 
                RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-                       ("efuse PG_STATE_HEADER-2\n"));
+                       "efuse PG_STATE_HEADER-2\n");
        }
 }
 
@@ -936,7 +935,7 @@ static int efuse_pg_packet_write(struct ieee80211_hw *hw,
        if (efuse_get_current_size(hw) >=
            (EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES)) {
                RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-                       ("efuse_pg_packet_write error\n"));
+                       "efuse_pg_packet_write error\n");
                return false;
        }
 
@@ -948,7 +947,7 @@ static int efuse_pg_packet_write(struct ieee80211_hw *hw,
        efuse_word_enable_data_read(word_en, data, target_pkt.data);
        target_word_cnts = efuse_calculate_word_cnts(target_pkt.word_en);
 
-       RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, ("efuse Power ON\n"));
+       RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,  "efuse Power ON\n");
 
        while (continual && (efuse_addr <
               (EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES))) {
@@ -956,7 +955,7 @@ static int efuse_pg_packet_write(struct ieee80211_hw *hw,
                if (write_state == PG_STATE_HEADER) {
                        badworden = 0x0F;
                        RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-                               ("efuse PG_STATE_HEADER\n"));
+                               "efuse PG_STATE_HEADER\n");
 
                        if (efuse_one_byte_read(hw, efuse_addr, &efuse_data) &&
                            (efuse_data != 0xFF))
@@ -976,7 +975,7 @@ static int efuse_pg_packet_write(struct ieee80211_hw *hw,
 
                } else if (write_state == PG_STATE_DATA) {
                        RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-                               ("efuse PG_STATE_DATA\n"));
+                               "efuse PG_STATE_DATA\n");
                        badworden =
                            efuse_word_enable_data_write(hw, efuse_addr + 1,
                                                         target_pkt.word_en,
@@ -999,14 +998,14 @@ static int efuse_pg_packet_write(struct ieee80211_hw *hw,
                                        result = false;
                                }
                                RTPRINT(rtlpriv, FEEPROM, EFUSE_PG,
-                                       ("efuse PG_STATE_HEADER-3\n"));
+                                       "efuse PG_STATE_HEADER-3\n");
                        }
                }
        }
 
        if (efuse_addr >= (EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES)) {
                RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-                        ("efuse_addr(%#x) Out of size!!\n", efuse_addr));
+                        "efuse_addr(%#x) Out of size!!\n", efuse_addr);
        }
 
        return true;
@@ -1046,8 +1045,8 @@ static u8 efuse_word_enable_data_write(struct ieee80211_hw *hw,
        u8 tmpdata[8];
 
        memset(tmpdata, 0xff, PGPKT_DATA_SIZE);
-       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD,
-                ("word_en = %x efuse_addr=%x\n", word_en, efuse_addr));
+       RT_TRACE(rtlpriv, COMP_EFUSE, DBG_LOUD, "word_en = %x efuse_addr=%x\n",
+                word_en, efuse_addr);
 
        if (!(word_en & BIT(0))) {
                tmpaddr = start_addr;
index 164dabaa76159cc14690c535258d3982357e3ac4..2bdea9a8699e1cd653d85371bd54f9d23ec817e7 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 39e0907a3c4eac8d89a9f682dc53d8471cbec560..5cb2199435d2382a28d2fd9028710a101bdb083f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  *
  *****************************************************************************/
 
-#include <linux/export.h>
-#include "core.h"
 #include "wifi.h"
+#include "core.h"
 #include "pci.h"
 #include "base.h"
 #include "ps.h"
 #include "efuse.h"
+#include <linux/export.h>
 
 static const u16 pcibridge_vendors[PCI_BRIDGE_VENDOR_MAX] = {
        PCI_VENDOR_ID_INTEL,
@@ -170,7 +170,7 @@ static void _rtl_pci_update_default_setting(struct ieee80211_hw *hw)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
 
@@ -232,7 +232,7 @@ static void rtl_pci_disable_aspm(struct ieee80211_hw *hw)
 
        if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("PCI(Bridge) UNKNOWN.\n"));
+                        "PCI(Bridge) UNKNOWN\n");
 
                return;
        }
@@ -286,7 +286,7 @@ static void rtl_pci_enable_aspm(struct ieee80211_hw *hw)
 
        if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("PCI(Bridge) UNKNOWN.\n"));
+                        "PCI(Bridge) UNKNOWN\n");
                return;
        }
 
@@ -303,11 +303,10 @@ static void rtl_pci_enable_aspm(struct ieee80211_hw *hw)
                              u_pcibridge_aspmsetting);
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("PlatformEnableASPM():PciBridge busnumber[%x], "
-                 "DevNumbe[%x], funcnumber[%x], Write reg[%x] = %x\n",
-                 pcibridge_busnum, pcibridge_devnum, pcibridge_funcnum,
-                 (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10),
-                 u_pcibridge_aspmsetting));
+                "PlatformEnableASPM():PciBridge busnumber[%x], DevNumbe[%x], funcnumber[%x], Write reg[%x] = %x\n",
+                pcibridge_busnum, pcibridge_devnum, pcibridge_funcnum,
+                (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10),
+                u_pcibridge_aspmsetting);
 
        udelay(50);
 
@@ -382,9 +381,8 @@ static void rtl_pci_parse_configuration(struct pci_dev *pdev,
        pci_read_config_byte(pdev, pos + PCI_EXP_LNKCTL, &linkctrl_reg);
        pcipriv->ndis_adapter.linkctrl_reg = linkctrl_reg;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Link Control Register =%x\n",
-                 pcipriv->ndis_adapter.linkctrl_reg));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Link Control Register =%x\n",
+                pcipriv->ndis_adapter.linkctrl_reg);
 
        pci_read_config_byte(pdev, 0x98, &tmp);
        tmp |= BIT(4);
@@ -551,11 +549,10 @@ static void _rtl_pci_tx_isr(struct ieee80211_hw *hw, int prio)
                        skb_pull(skb, EM_HDR_LEN);
 
                RT_TRACE(rtlpriv, (COMP_INTR | COMP_SEND), DBG_TRACE,
-                        ("new ring->idx:%d, "
-                         "free: skb_queue_len:%d, free: seq:%x\n",
-                         ring->idx,
-                         skb_queue_len(&ring->queue),
-                         *(u16 *) (skb->data + 22)));
+                        "new ring->idx:%d, free: skb_queue_len:%d, free: seq:%x\n",
+                        ring->idx,
+                        skb_queue_len(&ring->queue),
+                        *(u16 *) (skb->data + 22));
 
                if (prio == TXCMD_QUEUE) {
                        dev_kfree_skb(skb);
@@ -593,11 +590,9 @@ static void _rtl_pci_tx_isr(struct ieee80211_hw *hw, int prio)
                                == 2) {
 
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-                                       ("more desc left, wake"
-                                        "skb_queue@%d,ring->idx = %d,"
-                                        "skb_queue_len = 0x%d\n",
-                                        prio, ring->idx,
-                                        skb_queue_len(&ring->queue)));
+                                "more desc left, wake skb_queue@%d, ring->idx = %d, skb_queue_len = 0x%d\n",
+                                prio, ring->idx,
+                                skb_queue_len(&ring->queue));
 
                        ieee80211_wake_queue(hw,
                                        skb_get_queue_mapping
@@ -657,6 +652,8 @@ static void _rtl_receive_one(struct ieee80211_hw *hw, struct sk_buff *skb,
                return;
 
        uskb = dev_alloc_skb(skb->len + 128);
+       if (!uskb)
+               return;         /* exit if allocation failed */
        memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, sizeof(rx_status));
        pdata = (u8 *)skb_put(uskb, skb->len);
        memcpy(pdata, skb->data, skb->len);
@@ -709,9 +706,8 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
 
                new_skb = dev_alloc_skb(rtlpci->rxbuffersize);
                if (unlikely(!new_skb)) {
-                       RT_TRACE(rtlpriv, (COMP_INTR | COMP_RECV),
-                                DBG_DMESG,
-                                ("can't alloc skb for rx\n"));
+                       RT_TRACE(rtlpriv, (COMP_INTR | COMP_RECV), DBG_DMESG,
+                                "can't alloc skb for rx\n");
                        goto done;
                }
 
@@ -796,38 +792,37 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
        /*<1> beacon related */
        if (inta & rtlpriv->cfg->maps[RTL_IMR_TBDOK]) {
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("beacon ok interrupt!\n"));
+                        "beacon ok interrupt!\n");
        }
 
        if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_TBDER])) {
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("beacon err interrupt!\n"));
+                        "beacon err interrupt!\n");
        }
 
        if (inta & rtlpriv->cfg->maps[RTL_IMR_BDOK]) {
-               RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("beacon interrupt!\n"));
+               RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "beacon interrupt!\n");
        }
 
        if (inta & rtlpriv->cfg->maps[RTL_IMR_BcnInt]) {
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("prepare beacon for interrupt!\n"));
+                        "prepare beacon for interrupt!\n");
                tasklet_schedule(&rtlpriv->works.irq_prepare_bcn_tasklet);
        }
 
        /*<3> Tx related */
        if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_TXFOVW]))
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, ("IMR_TXFOVW!\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "IMR_TXFOVW!\n");
 
        if (inta & rtlpriv->cfg->maps[RTL_IMR_MGNTDOK]) {
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("Manage ok interrupt!\n"));
+                        "Manage ok interrupt!\n");
                _rtl_pci_tx_isr(hw, MGNT_QUEUE);
        }
 
        if (inta & rtlpriv->cfg->maps[RTL_IMR_HIGHDOK]) {
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("HIGH_QUEUE ok interrupt!\n"));
+                        "HIGH_QUEUE ok interrupt!\n");
                _rtl_pci_tx_isr(hw, HIGH_QUEUE);
        }
 
@@ -835,7 +830,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
                rtlpriv->link_info.num_tx_inperiod++;
 
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("BK Tx OK interrupt!\n"));
+                        "BK Tx OK interrupt!\n");
                _rtl_pci_tx_isr(hw, BK_QUEUE);
        }
 
@@ -843,7 +838,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
                rtlpriv->link_info.num_tx_inperiod++;
 
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("BE TX OK interrupt!\n"));
+                        "BE TX OK interrupt!\n");
                _rtl_pci_tx_isr(hw, BE_QUEUE);
        }
 
@@ -851,7 +846,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
                rtlpriv->link_info.num_tx_inperiod++;
 
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("VI TX OK interrupt!\n"));
+                        "VI TX OK interrupt!\n");
                _rtl_pci_tx_isr(hw, VI_QUEUE);
        }
 
@@ -859,7 +854,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
                rtlpriv->link_info.num_tx_inperiod++;
 
                RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                        ("Vo TX OK interrupt!\n"));
+                        "Vo TX OK interrupt!\n");
                _rtl_pci_tx_isr(hw, VO_QUEUE);
        }
 
@@ -868,25 +863,25 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
                        rtlpriv->link_info.num_tx_inperiod++;
 
                        RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE,
-                                       ("CMD TX OK interrupt!\n"));
+                                "CMD TX OK interrupt!\n");
                        _rtl_pci_tx_isr(hw, TXCMD_QUEUE);
                }
        }
 
        /*<2> Rx related */
        if (inta & rtlpriv->cfg->maps[RTL_IMR_ROK]) {
-               RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, ("Rx ok interrupt!\n"));
+               RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "Rx ok interrupt!\n");
                _rtl_pci_rx_interrupt(hw);
        }
 
        if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_RDU])) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("rx descriptor unavailable!\n"));
+                        "rx descriptor unavailable!\n");
                _rtl_pci_rx_interrupt(hw);
        }
 
        if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_RXFOVW])) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, ("rx overflow !\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "rx overflow !\n");
                _rtl_pci_rx_interrupt(hw);
        }
 
@@ -1028,7 +1023,7 @@ static int _rtl_pci_init_tx_ring(struct ieee80211_hw *hw,
 
        if (!ring || (unsigned long)ring & 0xFF) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Cannot allocate TX ring (prio = %d)\n", prio));
+                        "Cannot allocate TX ring (prio = %d)\n", prio);
                return -ENOMEM;
        }
 
@@ -1039,8 +1034,8 @@ static int _rtl_pci_init_tx_ring(struct ieee80211_hw *hw,
        rtlpci->tx_ring[prio].entries = entries;
        skb_queue_head_init(&rtlpci->tx_ring[prio].queue);
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("queue:%d, ring_addr:%p\n", prio, ring));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "queue:%d, ring_addr:%p\n",
+                prio, ring);
 
        for (i = 0; i < entries; i++) {
                nextdescaddress = (u32) dma +
@@ -1078,7 +1073,7 @@ static int _rtl_pci_init_rx_ring(struct ieee80211_hw *hw)
                if (!rtlpci->rx_ring[rx_queue_idx].desc ||
                    (unsigned long)rtlpci->rx_ring[rx_queue_idx].desc & 0xFF) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Cannot allocate RX ring\n"));
+                                "Cannot allocate RX ring\n");
                        return -ENOMEM;
                }
 
@@ -1355,7 +1350,7 @@ static int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
        u8 temp_one = 1;
 
        if (ieee80211_is_auth(fc)) {
-               RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, ("MAC80211_LINKING\n"));
+               RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "MAC80211_LINKING\n");
                rtl_ips_nic_on(hw);
        }
 
@@ -1388,10 +1383,9 @@ static int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
 
        if ((own == 1) && (hw_queue != BEACON_QUEUE)) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("No more TX desc@%d, ring->idx = %d,"
-                         "idx = %d, skb_queue_len = 0x%d\n",
-                         hw_queue, ring->idx, idx,
-                         skb_queue_len(&ring->queue)));
+                        "No more TX desc@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%d\n",
+                        hw_queue, ring->idx, idx,
+                        skb_queue_len(&ring->queue));
 
                spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
                return skb->len;
@@ -1426,11 +1420,9 @@ static int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
            hw_queue != BEACON_QUEUE) {
 
                RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
-                        ("less desc left, stop skb_queue@%d, "
-                         "ring->idx = %d,"
-                         "idx = %d, skb_queue_len = 0x%d\n",
-                         hw_queue, ring->idx, idx,
-                         skb_queue_len(&ring->queue)));
+                        "less desc left, stop skb_queue@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%d\n",
+                        hw_queue, ring->idx, idx,
+                        skb_queue_len(&ring->queue));
 
                ieee80211_stop_queue(hw, skb_get_queue_mapping(skb));
        }
@@ -1497,7 +1489,7 @@ static int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev)
        err = _rtl_pci_init_trx_ring(hw);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("tx ring initialization failed"));
+                        "tx ring initialization failed\n");
                return err;
        }
 
@@ -1519,12 +1511,12 @@ static int rtl_pci_start(struct ieee80211_hw *hw)
        err = rtlpriv->cfg->ops->hw_init(hw);
        if (err) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("Failed to config hardware!\n"));
+                        "Failed to config hardware!\n");
                return err;
        }
 
        rtlpriv->cfg->ops->enable_interrupt(hw);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("enable_interrupt OK\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "enable_interrupt OK\n");
 
        rtl_init_rx_config(hw);
 
@@ -1535,7 +1527,7 @@ static int rtl_pci_start(struct ieee80211_hw *hw)
 
        rtlpci->up_first_time = false;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("OK\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "OK\n");
        return 0;
 }
 
@@ -1573,6 +1565,9 @@ static void rtl_pci_stop(struct ieee80211_hw *hw)
 
        rtlpci->driver_is_goingto_unload = true;
        rtlpriv->cfg->ops->hw_disable(hw);
+       /* some things are not needed if firmware not available */
+       if (!rtlpriv->max_fw_size)
+               return;
        rtlpriv->cfg->ops->led_control(hw, LED_CTL_POWER_OFF);
 
        spin_lock_irqsave(&rtlpriv->locks.rf_ps_lock, flags);
@@ -1622,20 +1617,20 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
                switch (revisionid) {
                case RTL_PCI_REVISION_ID_8192PCIE:
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                                ("8192 PCI-E is found - "
-                                 "vid/did=%x/%x\n", venderid, deviceid));
+                                "8192 PCI-E is found - vid/did=%x/%x\n",
+                                venderid, deviceid);
                        rtlhal->hw_type = HARDWARE_TYPE_RTL8192E;
                        break;
                case RTL_PCI_REVISION_ID_8192SE:
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                                ("8192SE is found - "
-                                 "vid/did=%x/%x\n", venderid, deviceid));
+                                "8192SE is found - vid/did=%x/%x\n",
+                                venderid, deviceid);
                        rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE;
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                ("Err: Unknown device - "
-                                 "vid/did=%x/%x\n", venderid, deviceid));
+                                "Err: Unknown device - vid/did=%x/%x\n",
+                                venderid, deviceid);
                        rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE;
                        break;
 
@@ -1646,18 +1641,18 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
                   deviceid == RTL_PCI_8188CE_DID) {
                rtlhal->hw_type = HARDWARE_TYPE_RTL8192CE;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("8192C PCI-E is found - "
-                         "vid/did=%x/%x\n", venderid, deviceid));
+                        "8192C PCI-E is found - vid/did=%x/%x\n",
+                        venderid, deviceid);
        } else if (deviceid == RTL_PCI_8192DE_DID ||
                   deviceid == RTL_PCI_8192DE_DID2) {
                rtlhal->hw_type = HARDWARE_TYPE_RTL8192DE;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("8192D PCI-E is found - "
-                         "vid/did=%x/%x\n", venderid, deviceid));
+                        "8192D PCI-E is found - vid/did=%x/%x\n",
+                        venderid, deviceid);
        } else {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Err: Unknown device -"
-                         " vid/did=%x/%x\n", venderid, deviceid));
+                        "Err: Unknown device - vid/did=%x/%x\n",
+                        venderid, deviceid);
 
                rtlhal->hw_type = RTL_DEFAULT_HARDWARE_TYPE;
        }
@@ -1665,19 +1660,18 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
        if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192DE) {
                if (revisionid == 0 || revisionid == 1) {
                        if (revisionid == 0) {
-                               RT_TRACE(rtlpriv, COMP_INIT,
-                                        DBG_LOUD, ("Find 92DE MAC0.\n"));
+                               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                                        "Find 92DE MAC0\n");
                                rtlhal->interfaceindex = 0;
                        } else if (revisionid == 1) {
                                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                                       ("Find 92DE MAC1.\n"));
+                                        "Find 92DE MAC1\n");
                                rtlhal->interfaceindex = 1;
                        }
                } else {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                               ("Unknown device - "
-                               "VendorID/DeviceID=%x/%x, Revision=%x\n",
-                               venderid, deviceid, revisionid));
+                                "Unknown device - VendorID/DeviceID=%x/%x, Revision=%x\n",
+                                venderid, deviceid, revisionid);
                        rtlhal->interfaceindex = 0;
                }
        }
@@ -1693,8 +1687,8 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
                        if (bridge_pdev->vendor == pcibridge_vendors[tmp]) {
                                pcipriv->ndis_adapter.pcibridge_vendor = tmp;
                                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                                        ("Pci Bridge Vendor is found index:"
-                                        " %d\n", tmp));
+                                        "Pci Bridge Vendor is found index: %d\n",
+                                        tmp);
                                break;
                        }
                }
@@ -1723,23 +1717,21 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
        }
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("pcidev busnumber:devnumber:funcnumber:"
-                 "vendor:link_ctl %d:%d:%d:%x:%x\n",
-                 pcipriv->ndis_adapter.busnumber,
-                 pcipriv->ndis_adapter.devnumber,
-                 pcipriv->ndis_adapter.funcnumber,
-                 pdev->vendor, pcipriv->ndis_adapter.linkctrl_reg));
+                "pcidev busnumber:devnumber:funcnumber:vendor:link_ctl %d:%d:%d:%x:%x\n",
+                pcipriv->ndis_adapter.busnumber,
+                pcipriv->ndis_adapter.devnumber,
+                pcipriv->ndis_adapter.funcnumber,
+                pdev->vendor, pcipriv->ndis_adapter.linkctrl_reg);
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("pci_bridge busnumber:devnumber:funcnumber:vendor:"
-                 "pcie_cap:link_ctl_reg:amd %d:%d:%d:%x:%x:%x:%x\n",
-                 pcipriv->ndis_adapter.pcibridge_busnum,
-                 pcipriv->ndis_adapter.pcibridge_devnum,
-                 pcipriv->ndis_adapter.pcibridge_funcnum,
-                 pcibridge_vendors[pcipriv->ndis_adapter.pcibridge_vendor],
-                 pcipriv->ndis_adapter.pcibridge_pciehdr_offset,
-                 pcipriv->ndis_adapter.pcibridge_linkctrlreg,
-                 pcipriv->ndis_adapter.amd_l1_patch));
+                "pci_bridge busnumber:devnumber:funcnumber:vendor:pcie_cap:link_ctl_reg:amd %d:%d:%d:%x:%x:%x:%x\n",
+                pcipriv->ndis_adapter.pcibridge_busnum,
+                pcipriv->ndis_adapter.pcibridge_devnum,
+                pcipriv->ndis_adapter.pcibridge_funcnum,
+                pcibridge_vendors[pcipriv->ndis_adapter.pcibridge_vendor],
+                pcipriv->ndis_adapter.pcibridge_pciehdr_offset,
+                pcipriv->ndis_adapter.pcibridge_linkctrlreg,
+                pcipriv->ndis_adapter.amd_l1_patch);
 
        rtl_pci_parse_configuration(pdev, hw);
 
@@ -1759,16 +1751,15 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
 
        err = pci_enable_device(pdev);
        if (err) {
-               RT_ASSERT(false,
-                         ("%s : Cannot enable new PCI device\n",
-                          pci_name(pdev)));
+               RT_ASSERT(false, "%s : Cannot enable new PCI device\n",
+                         pci_name(pdev));
                return err;
        }
 
        if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
                if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
-                       RT_ASSERT(false, ("Unable to obtain 32bit DMA "
-                                         "for consistent allocations\n"));
+                       RT_ASSERT(false,
+                                 "Unable to obtain 32bit DMA for consistent allocations\n");
                        pci_disable_device(pdev);
                        return -ENOMEM;
                }
@@ -1780,7 +1771,7 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
                                sizeof(struct rtl_priv), &rtl_ops);
        if (!hw) {
                RT_ASSERT(false,
-                         ("%s : ieee80211 alloc failed\n", pci_name(pdev)));
+                         "%s : ieee80211 alloc failed\n", pci_name(pdev));
                err = -ENOMEM;
                goto fail1;
        }
@@ -1791,6 +1782,7 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
        rtlpriv = hw->priv;
        pcipriv = (void *)rtlpriv->priv;
        pcipriv->dev.pdev = pdev;
+       init_completion(&rtlpriv->firmware_loading_complete);
 
        /* init cfg & intf_ops */
        rtlpriv->rtlhal.interface = INTF_PCI;
@@ -1810,8 +1802,8 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
        /* MEM map */
        err = pci_request_regions(pdev, KBUILD_MODNAME);
        if (err) {
-               RT_ASSERT(false, ("Can't obtain PCI resources\n"));
-               return err;
+               RT_ASSERT(false, "Can't obtain PCI resources\n");
+               goto fail2;
        }
 
        pmem_start = pci_resource_start(pdev, rtlpriv->cfg->bar_id);
@@ -1823,15 +1815,14 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
                        (unsigned long)pci_iomap(pdev,
                        rtlpriv->cfg->bar_id, pmem_len);
        if (rtlpriv->io.pci_mem_start == 0) {
-               RT_ASSERT(false, ("Can't map PCI mem\n"));
+               RT_ASSERT(false, "Can't map PCI mem\n");
                goto fail2;
        }
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("mem mapped space: start: 0x%08lx len:%08lx "
-                 "flags:%08lx, after map:0x%08lx\n",
-                 pmem_start, pmem_len, pmem_flags,
-                 rtlpriv->io.pci_mem_start));
+                "mem mapped space: start: 0x%08lx len:%08lx flags:%08lx, after map:0x%08lx\n",
+                pmem_start, pmem_len, pmem_flags,
+                rtlpriv->io.pci_mem_start);
 
        /* Disable Clk Request */
        pci_write_config_byte(pdev, 0x81, 0);
@@ -1851,8 +1842,7 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
        rtlpriv->cfg->ops->read_eeprom_info(hw);
 
        if (rtlpriv->cfg->ops->init_sw_vars(hw)) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't init_sw_vars.\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Can't init_sw_vars\n");
                goto fail3;
        }
 
@@ -1865,63 +1855,48 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
        err = rtl_init_core(hw);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't allocate sw for mac80211.\n"));
+                        "Can't allocate sw for mac80211\n");
                goto fail3;
        }
 
        /* Init PCI sw */
        err = !rtl_pci_init(hw, pdev);
        if (err) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Failed to init PCI.\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Failed to init PCI\n");
                goto fail3;
        }
 
-       err = ieee80211_register_hw(hw);
-       if (err) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't register mac80211 hw.\n"));
-               goto fail3;
-       } else {
-               rtlpriv->mac80211.mac80211_registered = 1;
-       }
-
        err = sysfs_create_group(&pdev->dev.kobj, &rtl_attribute_group);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("failed to create sysfs device attributes\n"));
+                        "failed to create sysfs device attributes\n");
                goto fail3;
        }
 
-       /*init rfkill */
-       rtl_init_rfkill(hw);
-
        rtlpci = rtl_pcidev(pcipriv);
        err = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt,
                          IRQF_SHARED, KBUILD_MODNAME, hw);
        if (err) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("%s: failed to register IRQ handler\n",
-                         wiphy_name(hw->wiphy)));
+                        "%s: failed to register IRQ handler\n",
+                        wiphy_name(hw->wiphy));
                goto fail3;
-       } else {
-               rtlpci->irq_alloc = 1;
        }
+       rtlpci->irq_alloc = 1;
 
-       set_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
        return 0;
 
 fail3:
        pci_set_drvdata(pdev, NULL);
        rtl_deinit_core(hw);
        _rtl_pci_io_handler_release(hw);
-       ieee80211_free_hw(hw);
 
        if (rtlpriv->io.pci_mem_start != 0)
                pci_iounmap(pdev, (void __iomem *)rtlpriv->io.pci_mem_start);
 
 fail2:
        pci_release_regions(pdev);
+       complete(&rtlpriv->firmware_loading_complete);
 
 fail1:
 
@@ -1940,6 +1915,8 @@ void rtl_pci_disconnect(struct pci_dev *pdev)
        struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
        struct rtl_mac *rtlmac = rtl_mac(rtlpriv);
 
+       /* just in case driver is removed before firmware callback */
+       wait_for_completion(&rtlpriv->firmware_loading_complete);
        clear_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
 
        sysfs_remove_group(&pdev->dev.kobj, &rtl_attribute_group);
index ebe0b42c0518624bb7fcd9d6c4b881c714f39732..241448fc9ed5d190a5a54097571d4f3fc6504870 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -239,7 +239,6 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
 void rtl_pci_disconnect(struct pci_dev *pdev);
 int rtl_pci_suspend(struct device *dev);
 int rtl_pci_resume(struct device *dev);
-
 static inline u8 pci_read8_sync(struct rtl_priv *rtlpriv, u32 addr)
 {
        return readb((u8 __iomem *) rtlpriv->io.pci_mem_start + addr);
index 130fdd99d57336de7ebf4475ddf783365f43a24b..15f86eaa1cd621437f1b1f6dcaff3b317c88d943 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -44,10 +44,11 @@ bool rtl_ps_enable_nic(struct ieee80211_hw *hw)
 
        if (is_hal_stop(rtlhal))
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Driver is already down!\n"));
+                        "Driver is already down!\n");
 
        /*<2> Enable Adapter */
-       rtlpriv->cfg->ops->hw_init(hw);
+       if (rtlpriv->cfg->ops->hw_init(hw))
+               return 1;
        RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
 
        /*<3> Enable Interrupt */
@@ -120,7 +121,7 @@ bool rtl_ps_set_rf_state(struct ieee80211_hw *hw,
 
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
 
@@ -176,7 +177,7 @@ void rtl_ips_nic_off_wq_callback(void *data)
 
        if (mac->opmode != NL80211_IFTYPE_STATION) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("not station return\n"));
+                        "not station return\n");
                return;
        }
 
@@ -207,7 +208,7 @@ void rtl_ips_nic_off_wq_callback(void *data)
                    (mac->link_state == MAC80211_NOLINK) &&
                    !mac->act_scanning) {
                        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                                ("IPSEnter(): Turn off RF.\n"));
+                                "IPSEnter(): Turn off RF\n");
 
                        ppsc->inactive_pwrstate = ERFOFF;
                        ppsc->in_powersavemode = true;
@@ -280,8 +281,7 @@ static bool rtl_get_fwlps_doze(struct ieee80211_hw *hw)
 
        if (ps_timediff < 2000) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("Delay enter Fw LPS for DHCP, ARP,"
-                         " or EAPOL exchanging state.\n"));
+                        "Delay enter Fw LPS for DHCP, ARP, or EAPOL exchanging state\n");
                return false;
        }
 
@@ -328,8 +328,8 @@ static void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode)
                bool fw_current_inps;
                if (ppsc->dot11_psmode == EACTIVE) {
                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                ("FW LPS leave ps_mode:%x\n",
-                                 FW_PS_ACTIVE_MODE));
+                                "FW LPS leave ps_mode:%x\n",
+                                FW_PS_ACTIVE_MODE);
 
                        rpwm_val = 0x0C;        /* RF on */
                        fw_pwrmode = FW_PS_ACTIVE_MODE;
@@ -347,8 +347,8 @@ static void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode)
                } else {
                        if (rtl_get_fwlps_doze(hw)) {
                                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                               ("FW LPS enter ps_mode:%x\n",
-                                                ppsc->fwctrl_psmode));
+                                        "FW LPS enter ps_mode:%x\n",
+                                        ppsc->fwctrl_psmode);
 
                                rpwm_val = 0x02;        /* RF off */
                                fw_current_inps = true;
@@ -402,7 +402,7 @@ void rtl_lps_enter(struct ieee80211_hw *hw)
        if (mac->cnt_after_linked >= 2) {
                if (ppsc->dot11_psmode == EACTIVE) {
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                       ("Enter 802.11 power save mode...\n"));
+                                "Enter 802.11 power save mode...\n");
 
                        rtl_lps_set_psmode(hw, EAUTOPS);
                }
@@ -434,7 +434,7 @@ void rtl_lps_leave(struct ieee80211_hw *hw)
                        }
 
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("Busy Traffic,Leave 802.11 power save..\n"));
+                                "Busy Traffic,Leave 802.11 power save..\n");
 
                        rtl_lps_set_psmode(hw, EACTIVE);
                }
@@ -518,8 +518,8 @@ void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len)
                queue_delayed_work(rtlpriv->works.rtl_wq,
                                &rtlpriv->works.ps_work, MSECS(5));
        } else {
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG, ("u_bufferd: %x, "
-                               "m_buffered: %x\n", u_buffed, m_buffed));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
+                        "u_bufferd: %x, m_buffered: %x\n", u_buffed, m_buffed);
        }
 }
 
@@ -607,8 +607,8 @@ void rtl_swlps_rf_sleep(struct ieee80211_hw *hw)
         * sleep  = dtim_period, that meaons, we should
         * awake before every dtim */
        RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                ("dtim_counter:%x will sleep :%d"
-                " beacon_intv\n", rtlpriv->psc.dtim_counter, sleep_intv));
+                "dtim_counter:%x will sleep :%d beacon_intv\n",
+                rtlpriv->psc.dtim_counter, sleep_intv);
 
        /* we tested that 40ms is enough for sw & hw sw delay */
        queue_delayed_work(rtlpriv->works.rtl_wq, &rtlpriv->works.ps_rfon_wq,
index 84628e6041c7120b57d238dcbe8d49ee4549758d..1357856998c21b8a252c016af2a8af17c8af954b 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 539df66dce0a9ed9252e3984c5c1c9e5b9cbe123..c66f08a0524ac6f839c7b69ae7c6d6c16884d157 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -251,7 +251,7 @@ static void *rtl_rate_alloc_sta(void *ppriv,
        rate_priv = kzalloc(sizeof(struct rtl_rate_priv), gfp);
        if (!rate_priv) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Unable to allocate private rc structure\n"));
+                        "Unable to allocate private rc structure\n");
                return NULL;
        }
 
index 4afa2c20adcf29870b8d97718006f448eb3ea86e..4d61761606101faa35b0a9da503dc62a409f1a75 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 9fedb1f709191638ffd4a35bf96118d094456a92..c1608cddc5299e5150a323d0a3efb7a2f0b63de6 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -398,13 +398,11 @@ int rtl_regd_init(struct ieee80211_hw *hw,
        rtlpriv->regd.country_code = rtlpriv->efuse.channel_plan;
 
        RT_TRACE(rtlpriv, COMP_REGD, DBG_TRACE,
-                (KERN_DEBUG "rtl: EEPROM regdomain: 0x%0x\n",
-                 rtlpriv->regd.country_code));
+                "rtl: EEPROM regdomain: 0x%0x\n", rtlpriv->regd.country_code);
 
        if (rtlpriv->regd.country_code >= COUNTRY_CODE_MAX) {
                RT_TRACE(rtlpriv, COMP_REGD, DBG_DMESG,
-                        (KERN_DEBUG "rtl: EEPROM indicates invalid contry code"
-                         "world wide 13 should be used\n"));
+                        "rtl: EEPROM indicates invalid contry code, world wide 13 should be used\n");
 
                rtlpriv->regd.country_code = COUNTRY_CODE_WORLD_WIDE_13;
        }
@@ -420,8 +418,8 @@ int rtl_regd_init(struct ieee80211_hw *hw,
        }
 
        RT_TRACE(rtlpriv, COMP_REGD, DBG_TRACE,
-                (KERN_DEBUG "rtl: Country alpha2 being used: %c%c\n",
-                 rtlpriv->regd.alpha2[0], rtlpriv->regd.alpha2[1]));
+                "rtl: Country alpha2 being used: %c%c\n",
+                rtlpriv->regd.alpha2[0], rtlpriv->regd.alpha2[1]);
 
        _rtl_regd_init_wiphy(&rtlpriv->regd, wiphy, reg_notifier);
 
@@ -433,7 +431,7 @@ int rtl_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request)
        struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RT_TRACE(rtlpriv, COMP_REGD, DBG_LOUD, ("\n"));
+       RT_TRACE(rtlpriv, COMP_REGD, DBG_LOUD, "\n");
 
        return _rtl_reg_notifier_apply(wiphy, request, &rtlpriv->regd);
 }
index d23118938fac57035452331e4dbab04318e5aac8..70ef2f418a44134d1fd1d810afd5f4ace4705151 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 72a98cab6f699e124ac18cb0bf0a3c4d7f778634..cb5535cf3ae2567c53919bf17cfdf7f14255ae46 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -246,16 +246,15 @@ static void rtl92c_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw)
        rtl_set_bbreg(hw, RCCK0_FALSEALARMREPORT, 0x0000c000, 2);
 
        RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
-                ("cnt_parity_fail = %d, cnt_rate_illegal = %d, "
-                 "cnt_crc8_fail = %d, cnt_mcs_fail = %d\n",
-                 falsealm_cnt->cnt_parity_fail,
-                 falsealm_cnt->cnt_rate_illegal,
-                 falsealm_cnt->cnt_crc8_fail, falsealm_cnt->cnt_mcs_fail));
+                "cnt_parity_fail = %d, cnt_rate_illegal = %d, cnt_crc8_fail = %d, cnt_mcs_fail = %d\n",
+                falsealm_cnt->cnt_parity_fail,
+                falsealm_cnt->cnt_rate_illegal,
+                falsealm_cnt->cnt_crc8_fail, falsealm_cnt->cnt_mcs_fail);
 
        RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
-                ("cnt_ofdm_fail = %x, cnt_cck_fail = %x, cnt_all = %x\n",
-                 falsealm_cnt->cnt_ofdm_fail,
-                 falsealm_cnt->cnt_cck_fail, falsealm_cnt->cnt_all));
+                "cnt_ofdm_fail = %x, cnt_cck_fail = %x, cnt_all = %x\n",
+                falsealm_cnt->cnt_ofdm_fail,
+                falsealm_cnt->cnt_cck_fail, falsealm_cnt->cnt_all);
 }
 
 static void rtl92c_dm_ctrl_initgain_by_fa(struct ieee80211_hw *hw)
@@ -313,8 +312,8 @@ static void rtl92c_dm_ctrl_initgain_by_rssi(struct ieee80211_hw *hw)
                    dm_digtable.backoff_val;
 
        RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
-                ("rssi_val_min = %x backoff_val %x\n",
-                 dm_digtable.rssi_val_min, dm_digtable.backoff_val));
+                "rssi_val_min = %x backoff_val %x\n",
+                dm_digtable.rssi_val_min, dm_digtable.backoff_val);
 
        rtl92c_dm_write_dig(hw);
 }
@@ -364,10 +363,9 @@ static void rtl92c_dm_initial_gain_multi_sta(struct ieee80211_hw *hw)
        }
 
        RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
-                ("curmultista_connectstate = "
-                 "%x dig_ext_port_stage %x\n",
-                 dm_digtable.curmultista_connectstate,
-                 dm_digtable.dig_ext_port_stage));
+                "curmultista_connectstate = %x dig_ext_port_stage %x\n",
+                dm_digtable.curmultista_connectstate,
+                dm_digtable.dig_ext_port_stage);
 }
 
 static void rtl92c_dm_initial_gain_sta(struct ieee80211_hw *hw)
@@ -375,10 +373,9 @@ static void rtl92c_dm_initial_gain_sta(struct ieee80211_hw *hw)
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
        RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
-                ("presta_connectstate = %x,"
-                 " cursta_connectctate = %x\n",
-                 dm_digtable.presta_connectstate,
-                 dm_digtable.cursta_connectctate));
+                "presta_connectstate = %x, cursta_connectctate = %x\n",
+                dm_digtable.presta_connectstate,
+                dm_digtable.cursta_connectctate);
 
        if (dm_digtable.presta_connectstate == dm_digtable.cursta_connectctate
            || dm_digtable.cursta_connectctate == DIG_STA_BEFORE_CONNECT
@@ -464,11 +461,11 @@ static void rtl92c_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
                dm_digtable.pre_cck_pd_state = dm_digtable.cur_cck_pd_state;
        }
 
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
-                ("CCKPDStage=%x\n", dm_digtable.cur_cck_pd_state));
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, "CCKPDStage=%x\n",
+                dm_digtable.cur_cck_pd_state);
 
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE,
-                ("is92C=%x\n", IS_92C_SERIAL(rtlhal->version)));
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, "is92C=%x\n",
+                IS_92C_SERIAL(rtlhal->version));
 }
 
 static void rtl92c_dm_ctrl_initgain_by_twoport(struct ieee80211_hw *hw)
@@ -519,10 +516,9 @@ void rtl92c_dm_write_dig(struct ieee80211_hw *hw)
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                ("cur_igvalue = 0x%x, "
-                 "pre_igvalue = 0x%x, backoff_val = %d\n",
-                 dm_digtable.cur_igvalue, dm_digtable.pre_igvalue,
-                 dm_digtable.backoff_val));
+                "cur_igvalue = 0x%x, pre_igvalue = 0x%x, backoff_val = %d\n",
+                dm_digtable.cur_igvalue, dm_digtable.pre_igvalue,
+                dm_digtable.backoff_val);
 
        if (dm_digtable.pre_igvalue != dm_digtable.cur_igvalue) {
                rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f,
@@ -676,15 +672,14 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
 
        rtlpriv->dm.txpower_trackinginit = true;
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                ("rtl92c_dm_txpower_tracking_callback_thermalmeter\n"));
+                "rtl92c_dm_txpower_tracking_callback_thermalmeter\n");
 
        thermalvalue = (u8) rtl_get_rfreg(hw, RF90_PATH_A, RF_T_METER, 0x1f);
 
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                ("Readback Thermal Meter = 0x%x pre thermal meter 0x%x "
-                 "eeprom_thermalmeter 0x%x\n",
-                 thermalvalue, rtlpriv->dm.thermalvalue,
-                 rtlefuse->eeprom_thermalmeter));
+                "Readback Thermal Meter = 0x%x pre thermal meter 0x%x eeprom_thermalmeter 0x%x\n",
+                thermalvalue, rtlpriv->dm.thermalvalue,
+                rtlefuse->eeprom_thermalmeter);
 
        rtl92c_phy_ap_calibrate(hw, (thermalvalue -
                                     rtlefuse->eeprom_thermalmeter));
@@ -702,10 +697,9 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
                                ofdm_index_old[0] = (u8) i;
 
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                       ("Initial pathA ele_d reg0x%x = 0x%lx, "
-                                        "ofdm_index=0x%x\n",
+                                        "Initial pathA ele_d reg0x%x = 0x%lx, ofdm_index=0x%x\n",
                                         ROFDM0_XATXIQIMBALANCE,
-                                        ele_d, ofdm_index_old[0]));
+                                        ele_d, ofdm_index_old[0]);
                                break;
                        }
                }
@@ -719,11 +713,10 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
                                    MASKOFDM_D)) {
 
                                        RT_TRACE(rtlpriv, COMP_POWER_TRACKING,
-                                          DBG_LOUD,
-                                          ("Initial pathB ele_d reg0x%x = "
-                                          "0x%lx, ofdm_index=0x%x\n",
-                                          ROFDM0_XBTXIQIMBALANCE, ele_d,
-                                          ofdm_index_old[1]));
+                                                DBG_LOUD,
+                                                "Initial pathB ele_d reg0x%x = 0x%lx, ofdm_index=0x%x\n",
+                                                ROFDM0_XBTXIQIMBALANCE, ele_d,
+                                                ofdm_index_old[1]);
                                        break;
                                }
                        }
@@ -741,11 +734,10 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
 
                                        RT_TRACE(rtlpriv, COMP_POWER_TRACKING,
                                                 DBG_LOUD,
-                                                ("Initial reg0x%x = 0x%lx, "
-                                                 "cck_index=0x%x, ch 14 %d\n",
-                                                 RCCK0_TXFILTER2, temp_cck,
-                                                 cck_index_old,
-                                                 rtlpriv->dm.cck_inch14));
+                                                "Initial reg0x%x = 0x%lx, cck_index=0x%x, ch 14 %d\n",
+                                                RCCK0_TXFILTER2, temp_cck,
+                                                cck_index_old,
+                                                rtlpriv->dm.cck_inch14);
                                        break;
                                }
                        } else {
@@ -757,11 +749,10 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
 
                                        RT_TRACE(rtlpriv, COMP_POWER_TRACKING,
                                                 DBG_LOUD,
-                                                ("Initial reg0x%x = 0x%lx, "
-                                                 "cck_index=0x%x, ch14 %d\n",
-                                                 RCCK0_TXFILTER2, temp_cck,
-                                                 cck_index_old,
-                                                 rtlpriv->dm.cck_inch14));
+                                                "Initial reg0x%x = 0x%lx, cck_index=0x%x, ch14 %d\n",
+                                                RCCK0_TXFILTER2, temp_cck,
+                                                cck_index_old,
+                                                rtlpriv->dm.cck_inch14);
                                        break;
                                }
                        }
@@ -790,12 +781,10 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
                    (rtlpriv->dm.thermalvalue_iqk - thermalvalue);
 
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                       ("Readback Thermal Meter = 0x%x pre thermal meter 0x%x "
-                        "eeprom_thermalmeter 0x%x delta 0x%x "
-                        "delta_lck 0x%x delta_iqk 0x%x\n",
+                        "Readback Thermal Meter = 0x%x pre thermal meter 0x%x eeprom_thermalmeter 0x%x delta 0x%x delta_lck 0x%x delta_iqk 0x%x\n",
                         thermalvalue, rtlpriv->dm.thermalvalue,
                         rtlefuse->eeprom_thermalmeter, delta, delta_lck,
-                        delta_iqk));
+                        delta_iqk);
 
                if (delta_lck > 1) {
                        rtlpriv->dm.thermalvalue_lck = thermalvalue;
@@ -815,18 +804,15 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
 
                        if (is2t) {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("temp OFDM_A_index=0x%x, "
-                                         "OFDM_B_index=0x%x,"
-                                         "cck_index=0x%x\n",
-                                         rtlpriv->dm.ofdm_index[0],
-                                         rtlpriv->dm.ofdm_index[1],
-                                         rtlpriv->dm.cck_index));
+                                        "temp OFDM_A_index=0x%x, OFDM_B_index=0x%x, cck_index=0x%x\n",
+                                        rtlpriv->dm.ofdm_index[0],
+                                        rtlpriv->dm.ofdm_index[1],
+                                        rtlpriv->dm.cck_index);
                        } else {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("temp OFDM_A_index=0x%x,"
-                                         "cck_index=0x%x\n",
-                                         rtlpriv->dm.ofdm_index[0],
-                                         rtlpriv->dm.cck_index));
+                                        "temp OFDM_A_index=0x%x, cck_index=0x%x\n",
+                                        rtlpriv->dm.ofdm_index[0],
+                                        rtlpriv->dm.cck_index);
                        }
 
                        if (thermalvalue > rtlefuse->eeprom_thermalmeter) {
@@ -918,16 +904,13 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
 
                        if (is2t) {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("new OFDM_A_index=0x%x, "
-                                         "OFDM_B_index=0x%x,"
-                                         "cck_index=0x%x\n",
-                                         ofdm_index[0], ofdm_index[1],
-                                         cck_index));
+                                        "new OFDM_A_index=0x%x, OFDM_B_index=0x%x, cck_index=0x%x\n",
+                                        ofdm_index[0], ofdm_index[1],
+                                        cck_index);
                        } else {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("new OFDM_A_index=0x%x,"
-                                         "cck_index=0x%x\n",
-                                         ofdm_index[0], cck_index));
+                                        "new OFDM_A_index=0x%x, cck_index=0x%x\n",
+                                        ofdm_index[0], cck_index);
                        }
                }
 
@@ -1085,7 +1068,7 @@ static void rtl92c_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw
                        rtlpriv->dm.thermalvalue = thermalvalue;
        }
 
-       RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, ("<===\n"));
+       RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, "<===\n");
 
 }
 
@@ -1098,8 +1081,8 @@ static void rtl92c_dm_initialize_txpower_tracking_thermalmeter(
        rtlpriv->dm.txpower_trackinginit = false;
 
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                ("pMgntInfo->txpower_tracking = %d\n",
-                 rtlpriv->dm.txpower_tracking));
+                "pMgntInfo->txpower_tracking = %d\n",
+                rtlpriv->dm.txpower_tracking);
 }
 
 static void rtl92c_dm_initialize_txpower_tracking(struct ieee80211_hw *hw)
@@ -1125,12 +1108,12 @@ static void rtl92c_dm_check_txpower_tracking_thermal_meter(
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER, RFREG_OFFSET_MASK,
                              0x60);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                        ("Trigger 92S Thermal Meter!!\n"));
+                        "Trigger 92S Thermal Meter!!\n");
                tm_trigger = 1;
                return;
        } else {
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                        ("Schedule TxPowerTracking direct call!!\n"));
+                        "Schedule TxPowerTracking direct call!!\n");
                rtl92c_dm_txpower_tracking_directcall(hw);
                tm_trigger = 0;
        }
@@ -1169,13 +1152,13 @@ static void rtl92c_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw)
 
        if (is_hal_stop(rtlhal)) {
                RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD,
-                        ("<---- driver is going to unload\n"));
+                        "<---- driver is going to unload\n");
                return;
        }
 
        if (!rtlpriv->dm.useramask) {
                RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD,
-                       ("<---- driver does not control rate adaptive mask\n"));
+                        "<---- driver does not control rate adaptive mask\n");
                return;
        }
 
@@ -1210,14 +1193,13 @@ static void rtl92c_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw)
                        p_ra->ratr_state = DM_RATR_STA_LOW;
 
                if (p_ra->pre_ratr_state != p_ra->ratr_state) {
+                       RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, "RSSI = %ld\n",
+                                rtlpriv->dm.undecorated_smoothed_pwdb);
                        RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD,
-                                ("RSSI = %ld\n",
-                                 rtlpriv->dm.undecorated_smoothed_pwdb));
+                                "RSSI_LEVEL = %d\n", p_ra->ratr_state);
                        RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD,
-                                ("RSSI_LEVEL = %d\n", p_ra->ratr_state));
-                       RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD,
-                                ("PreState = %d, CurState = %d\n",
-                                 p_ra->pre_ratr_state, p_ra->ratr_state));
+                                "PreState = %d, CurState = %d\n",
+                                p_ra->pre_ratr_state, p_ra->ratr_state);
 
                        rcu_read_lock();
                        sta = ieee80211_find_sta(mac->vif, mac->bssid);
@@ -1316,8 +1298,7 @@ static void rtl92c_dm_dynamic_bb_powersaving(struct ieee80211_hw *hw)
        if (((mac->link_state == MAC80211_NOLINK)) &&
            (rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb == 0)) {
                dm_pstable.rssi_val_min = 0;
-               RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD,
-                        ("Not connected to any\n"));
+               RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD, "Not connected to any\n");
        }
 
        if (mac->link_state == MAC80211_LINKED) {
@@ -1325,22 +1306,22 @@ static void rtl92c_dm_dynamic_bb_powersaving(struct ieee80211_hw *hw)
                        dm_pstable.rssi_val_min =
                            rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
                        RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD,
-                                ("AP Client PWDB = 0x%lx\n",
-                                 dm_pstable.rssi_val_min));
+                                "AP Client PWDB = 0x%lx\n",
+                                dm_pstable.rssi_val_min);
                } else {
                        dm_pstable.rssi_val_min =
                            rtlpriv->dm.undecorated_smoothed_pwdb;
                        RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD,
-                                ("STA Default Port PWDB = 0x%lx\n",
-                                 dm_pstable.rssi_val_min));
+                                "STA Default Port PWDB = 0x%lx\n",
+                                dm_pstable.rssi_val_min);
                }
        } else {
                dm_pstable.rssi_val_min =
                    rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
 
                RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD,
-                        ("AP Ext Port PWDB = 0x%lx\n",
-                         dm_pstable.rssi_val_min));
+                        "AP Ext Port PWDB = 0x%lx\n",
+                        dm_pstable.rssi_val_min);
        }
 
        if (IS_92C_SERIAL(rtlhal->version))
@@ -1381,7 +1362,7 @@ void rtl92c_dm_dynamic_txpower(struct ieee80211_hw *hw)
        if ((mac->link_state < MAC80211_LINKED) &&
            (rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb == 0)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("Not connected to any\n"));
+                        "Not connected to any\n");
 
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL;
 
@@ -1394,28 +1375,28 @@ void rtl92c_dm_dynamic_txpower(struct ieee80211_hw *hw)
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("AP Client PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "AP Client PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                } else {
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.undecorated_smoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("STA Default Port PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "STA Default Port PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                }
        } else {
                undecorated_smoothed_pwdb =
                    rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
 
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("AP Ext Port PWDB = 0x%lx\n",
-                         undecorated_smoothed_pwdb));
+                        "AP Ext Port PWDB = 0x%lx\n",
+                        undecorated_smoothed_pwdb);
        }
 
        if (undecorated_smoothed_pwdb >= TX_POWER_NEAR_FIELD_THRESH_LVL2) {
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n"));
+                        "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n");
        } else if ((undecorated_smoothed_pwdb <
                    (TX_POWER_NEAR_FIELD_THRESH_LVL2 - 3)) &&
                   (undecorated_smoothed_pwdb >=
@@ -1423,18 +1404,18 @@ void rtl92c_dm_dynamic_txpower(struct ieee80211_hw *hw)
 
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n"));
+                        "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n");
        } else if (undecorated_smoothed_pwdb <
                   (TX_POWER_NEAR_FIELD_THRESH_LVL1 - 5)) {
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_NORMAL\n"));
+                        "TXHIGHPWRLEVEL_NORMAL\n");
        }
 
        if ((rtlpriv->dm.dynamic_txhighpower_lvl != rtlpriv->dm.last_dtp_lvl)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("PHY_SetTxPowerLevel8192S() Channel = %d\n",
-                         rtlphy->current_channel));
+                        "PHY_SetTxPowerLevel8192S() Channel = %d\n",
+                        rtlphy->current_channel);
                rtl92c_phy_set_txpower_level(hw, rtlphy->current_channel);
        }
 
index b9736d3e9a397cad52a009df793449550cd1b490..2178e3761883f831d381b9fbe850c37800a427bd 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 931d97979b04e3bcd26dbdfa1fdfa390be48db6e..c20b3c30f62ed7bfdeef57cebef888228ec07d9f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/firmware.h>
-#include <linux/export.h>
 #include "../wifi.h"
 #include "../pci.h"
 #include "../base.h"
 #include "../rtl8192ce/reg.h"
 #include "../rtl8192ce/def.h"
 #include "fw_common.h"
+#include <linux/export.h>
 
 static void _rtl92c_enable_fw_download(struct ieee80211_hw *hw, bool enable)
 {
@@ -172,7 +169,7 @@ static void _rtl92c_write_fw(struct ieee80211_hw *hw,
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        u8 *bufferPtr = (u8 *) buffer;
 
-       RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, ("FW size is %d bytes,\n", size));
+       RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, "FW size is %d bytes\n", size);
 
        if (IS_CHIP_VER_B(version)) {
                u32 pageNums, remainSize;
@@ -186,7 +183,7 @@ static void _rtl92c_write_fw(struct ieee80211_hw *hw,
 
                if (pageNums > 4) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Page numbers should not greater then 4\n"));
+                                "Page numbers should not greater then 4\n");
                }
 
                for (page = 0; page < pageNums; page++) {
@@ -219,13 +216,12 @@ static int _rtl92c_fw_free_to_go(struct ieee80211_hw *hw)
 
        if (counter >= FW_8192C_POLLING_TIMEOUT_COUNT) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("chksum report faill ! REG_MCUFWDL:0x%08x .\n",
-                         value32));
+                        "chksum report faill ! REG_MCUFWDL:0x%08x\n", value32);
                return -EIO;
        }
 
        RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-                ("Checksum report OK ! REG_MCUFWDL:0x%08x .\n", value32));
+                "Checksum report OK ! REG_MCUFWDL:0x%08x\n", value32);
 
        value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL);
        value32 |= MCUFWDL_RDY;
@@ -238,9 +234,8 @@ static int _rtl92c_fw_free_to_go(struct ieee80211_hw *hw)
                value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL);
                if (value32 & WINTINI_RDY) {
                        RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-                                ("Polling FW ready success!!"
-                                " REG_MCUFWDL:0x%08x .\n",
-                                value32));
+                                "Polling FW ready success!! REG_MCUFWDL:0x%08x\n",
+                                value32);
                        return 0;
                }
 
@@ -249,7 +244,7 @@ static int _rtl92c_fw_free_to_go(struct ieee80211_hw *hw)
        } while (counter++ < FW_8192C_POLLING_TIMEOUT_COUNT);
 
        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                ("Polling FW ready fail!! REG_MCUFWDL:0x%08x .\n", value32));
+                "Polling FW ready fail!! REG_MCUFWDL:0x%08x\n", value32);
        return -EIO;
 }
 
@@ -262,20 +257,19 @@ int rtl92c_download_fw(struct ieee80211_hw *hw)
        u32 fwsize;
        enum version_8192c version = rtlhal->version;
 
-       if (!rtlhal->pfirmware)
+       if (rtlpriv->max_fw_size == 0 || !rtlhal->pfirmware)
                return 1;
 
-       pr_info("Loading firmware file %s\n", rtlpriv->cfg->fw_name);
        pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware;
        pfwdata = (u8 *) rtlhal->pfirmware;
        fwsize = rtlhal->fwsize;
 
        if (IS_FW_HEADER_EXIST(pfwheader)) {
                RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                        ("Firmware Version(%d), Signature(%#x),Size(%d)\n",
+                        "Firmware Version(%d), Signature(%#x),Size(%d)\n",
                         le16_to_cpu(pfwheader->version),
                         le16_to_cpu(pfwheader->signature),
-                        (uint)sizeof(struct rtl92c_firmware_header)));
+                        (uint)sizeof(struct rtl92c_firmware_header));
 
                pfwdata = pfwdata + sizeof(struct rtl92c_firmware_header);
                fwsize = fwsize - sizeof(struct rtl92c_firmware_header);
@@ -287,10 +281,10 @@ int rtl92c_download_fw(struct ieee80211_hw *hw)
 
        if (_rtl92c_fw_free_to_go(hw)) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Firmware is not ready to run!\n"));
+                        "Firmware is not ready to run!\n");
        } else {
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-                        ("Firmware is ready to run!\n"));
+                        "Firmware is ready to run!\n");
        }
 
        return 0;
@@ -328,22 +322,22 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
        unsigned long flag;
        u8 idx;
 
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("come in\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "come in\n");
 
        while (true) {
                spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag);
                if (rtlhal->h2c_setinprogress) {
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("H2C set in progress! Wait to set.."
-                                 "element_id(%d).\n", element_id));
+                                "H2C set in progress! Wait to set..element_id(%d)\n",
+                                element_id);
 
                        while (rtlhal->h2c_setinprogress) {
                                spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock,
                                                       flag);
                                h2c_waitcounter++;
                                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                        ("Wait 100 us (%d times)...\n",
-                                         h2c_waitcounter));
+                                        "Wait 100 us (%d times)...\n",
+                                        h2c_waitcounter);
                                udelay(100);
 
                                if (h2c_waitcounter > 1000)
@@ -363,8 +357,7 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
                wait_writeh2c_limmit--;
                if (wait_writeh2c_limmit == 0) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Write H2C fail because no trigger "
-                                 "for FW INT!\n"));
+                                "Write H2C fail because no trigger for FW INT!\n");
                        break;
                }
 
@@ -388,7 +381,7 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
 
@@ -398,8 +391,8 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
                        wait_h2c_limmit--;
                        if (wait_h2c_limmit == 0) {
                                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                        ("Wating too long for FW read "
-                                         "clear HMEBox(%d)!\n", boxnum));
+                                        "Waiting too long for FW read clear HMEBox(%d)!\n",
+                                        boxnum);
                                break;
                        }
 
@@ -408,14 +401,14 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
                        isfw_read = _rtl92c_check_fw_read_last_h2c(hw, boxnum);
                        u1b_tmp = rtl_read_byte(rtlpriv, 0x1BF);
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("Wating for FW read clear HMEBox(%d)!!! "
-                                 "0x1BF = %2x\n", boxnum, u1b_tmp));
+                                "Waiting for FW read clear HMEBox(%d)!!! 0x1BF = %2x\n",
+                                boxnum, u1b_tmp);
                }
 
                if (!isfw_read) {
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("Write H2C register BOX[%d] fail!!!!! "
-                                 "Fw do not read.\n", boxnum));
+                                "Write H2C register BOX[%d] fail!!!!! Fw do not read\n",
+                                boxnum);
                        break;
                }
 
@@ -423,8 +416,8 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
                memset(boxextcontent, 0, sizeof(boxextcontent));
                boxcontent[0] = element_id;
                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                        ("Write element_id box_reg(%4x) = %2x\n",
-                         box_reg, element_id));
+                        "Write element_id box_reg(%4x) = %2x\n",
+                        box_reg, element_id);
 
                switch (cmd_len) {
                case 1:
@@ -493,7 +486,7 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
 
@@ -504,29 +497,22 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
                        rtlhal->last_hmeboxnum = 0;
 
                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                        ("pHalData->last_hmeboxnum  = %d\n",
-                         rtlhal->last_hmeboxnum));
+                        "pHalData->last_hmeboxnum  = %d\n",
+                        rtlhal->last_hmeboxnum);
        }
 
        spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag);
        rtlhal->h2c_setinprogress = false;
        spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag);
 
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("go out\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "go out\n");
 }
 
 void rtl92c_fill_h2c_cmd(struct ieee80211_hw *hw,
                         u8 element_id, u32 cmd_len, u8 *p_cmdbuffer)
 {
-       struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        u32 tmp_cmdbuf[2];
 
-       if (rtlhal->fw_ready == false) {
-               RT_ASSERT(false, ("return H2C cmd because of Fw "
-                                 "download fail!!!\n"));
-               return;
-       }
-
        memset(tmp_cmdbuf, 0, 8);
        memcpy(tmp_cmdbuf, p_cmdbuffer, cmd_len);
        _rtl92c_fill_h2c_command(hw, element_id, cmd_len, (u8 *)&tmp_cmdbuf);
@@ -547,7 +533,7 @@ void rtl92c_firmware_selfreset(struct ieee80211_hw *hw)
        while (u1b_tmp & BIT(2)) {
                delay--;
                if (delay == 0) {
-                       RT_ASSERT(false, ("8051 reset fail.\n"));
+                       RT_ASSERT(false, "8051 reset fail\n");
                        break;
                }
                udelay(50);
@@ -562,7 +548,7 @@ void rtl92c_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode)
        u8 u1_h2c_set_pwrmode[3] = {0};
        struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
 
-       RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("FW LPS mode = %d\n", mode));
+       RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "FW LPS mode = %d\n", mode);
 
        SET_H2CCMD_PWRMODE_PARM_MODE(u1_h2c_set_pwrmode, mode);
        SET_H2CCMD_PWRMODE_PARM_SMART_PS(u1_h2c_set_pwrmode, 1);
@@ -570,7 +556,7 @@ void rtl92c_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode)
                                              ppsc->reg_max_lps_awakeintvl);
 
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
-                     "rtl92c_set_fw_rsvdpagepkt(): u1_h2c_set_pwrmode\n",
+                     "rtl92c_set_fw_rsvdpagepkt(): u1_h2c_set_pwrmode",
                      u1_h2c_set_pwrmode, 3);
        rtl92c_fill_h2c_cmd(hw, H2C_SETPWRMODE, 3, u1_h2c_set_pwrmode);
 
@@ -780,14 +766,16 @@ void rtl92c_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
        totalpacketlen = TOTAL_RESERVED_PKT_LEN;
 
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
-                     "rtl92c_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
+                     "rtl92c_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL",
                      &reserved_page_packet[0], totalpacketlen);
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
-                     "rtl92c_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
+                     "rtl92c_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL",
                      u1RsvdPageLoc, 3);
 
 
        skb = dev_alloc_skb(totalpacketlen);
+       if (!skb)
+               return;
        memcpy((u8 *) skb_put(skb, totalpacketlen),
               &reserved_page_packet, totalpacketlen);
 
@@ -798,15 +786,14 @@ void rtl92c_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
 
        if (dlok) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("Set RSVD page location to Fw.\n"));
+                        "Set RSVD page location to Fw\n");
                RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
-                               "H2C_RSVDPAGE:\n",
-                               u1RsvdPageLoc, 3);
+                             "H2C_RSVDPAGE", u1RsvdPageLoc, 3);
                rtl92c_fill_h2c_cmd(hw, H2C_RSVDPAGE,
                                    sizeof(u1RsvdPageLoc), u1RsvdPageLoc);
        } else
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Set RSVD page location to Fw FAIL!!!!!!.\n"));
+                        "Set RSVD page location to Fw FAIL!!!!!!\n");
 }
 EXPORT_SYMBOL(rtl92c_set_fw_rsvdpagepkt);
 
index cec5a3a1cc5338ab0f136c933b3073cbbd02dc53..780ea5b1e24c4ae37e5b281b6c9fad6492c2a773 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 605ff191aeb7f437c756aba158c3a5daa49726ce..918b1d129e77cc48e0b936b207bfcd0d861489c5 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -27,8 +27,8 @@
  *
  *****************************************************************************/
 
-#include <linux/module.h>
 #include "../wifi.h"
+#include <linux/module.h>
 
 
 MODULE_AUTHOR("lizhaoming      <chaoming_li@realsil.com.cn>");
index 1f07558debf2b05b41bad4391b8fbccae9a19c68..22e998dd2f32beddc8ab1a3c9590e87b053de5e6 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -42,16 +42,15 @@ u32 rtl92c_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask)
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 returnvalue, originalvalue, bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-                                              "bitmask(%#x)\n", regaddr,
-                                              bitmask));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "regaddr(%#x), bitmask(%#x)\n",
+                regaddr, bitmask);
        originalvalue = rtl_read_dword(rtlpriv, regaddr);
        bitshift = _rtl92c_phy_calculate_bit_shift(bitmask);
        returnvalue = (originalvalue & bitmask) >> bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("BBR MASK=0x%x "
-                                              "Addr[0x%x]=0x%x\n", bitmask,
-                                              regaddr, originalvalue));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "BBR MASK=0x%x Addr[0x%x]=0x%x\n",
+                bitmask, regaddr, originalvalue);
 
        return returnvalue;
 
@@ -64,9 +63,9 @@ void rtl92c_phy_set_bb_reg(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 originalvalue, bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x),"
-                                              " data(%#x)\n", regaddr, bitmask,
-                                              data));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x)\n",
+                regaddr, bitmask, data);
 
        if (bitmask != MASKDWORD) {
                originalvalue = rtl_read_dword(rtlpriv, regaddr);
@@ -76,9 +75,9 @@ void rtl92c_phy_set_bb_reg(struct ieee80211_hw *hw,
 
        rtl_write_dword(rtlpriv, regaddr, data);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x),"
-                                              " data(%#x)\n", regaddr, bitmask,
-                                              data));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x)\n",
+                regaddr, bitmask, data);
 
 }
 EXPORT_SYMBOL(rtl92c_phy_set_bb_reg);
@@ -86,7 +85,7 @@ EXPORT_SYMBOL(rtl92c_phy_set_bb_reg);
 u32 _rtl92c_phy_fw_rf_serial_read(struct ieee80211_hw *hw,
                                  enum radio_path rfpath, u32 offset)
 {
-       RT_ASSERT(false, ("deprecated!\n"));
+       RT_ASSERT(false, "deprecated!\n");
        return 0;
 
 }
@@ -96,7 +95,7 @@ void _rtl92c_phy_fw_rf_serial_write(struct ieee80211_hw *hw,
                                    enum radio_path rfpath, u32 offset,
                                    u32 data)
 {
-       RT_ASSERT(false, ("deprecated!\n"));
+       RT_ASSERT(false, "deprecated!\n");
 }
 EXPORT_SYMBOL(_rtl92c_phy_fw_rf_serial_write);
 
@@ -114,7 +113,7 @@ u32 _rtl92c_phy_rf_serial_read(struct ieee80211_hw *hw,
        offset &= 0x3f;
        newoffset = offset;
        if (RT_CANNOT_IO(hw)) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("return all one\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "return all one\n");
                return 0xFFFFFFFF;
        }
        tmplong = rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD);
@@ -144,9 +143,8 @@ u32 _rtl92c_phy_rf_serial_read(struct ieee80211_hw *hw,
        else
                retvalue = rtl_get_bbreg(hw, pphyreg->rflssi_readback,
                                         BLSSIREADBACKDATA);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("RFR-%d Addr[0x%x]=0x%x\n",
-                                              rfpath, pphyreg->rflssi_readback,
-                                              retvalue));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFR-%d Addr[0x%x]=0x%x\n",
+                rfpath, pphyreg->rflssi_readback, retvalue);
        return retvalue;
 }
 EXPORT_SYMBOL(_rtl92c_phy_rf_serial_read);
@@ -162,16 +160,15 @@ void _rtl92c_phy_rf_serial_write(struct ieee80211_hw *hw,
        struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath];
 
        if (RT_CANNOT_IO(hw)) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("stop\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "stop\n");
                return;
        }
        offset &= 0x3f;
        newoffset = offset;
        data_and_addr = ((newoffset << 20) | (data & 0x000fffff)) & 0x0fffffff;
        rtl_set_bbreg(hw, pphyreg->rf3wire_offset, MASKDWORD, data_and_addr);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("RFW-%d Addr[0x%x]=0x%x\n",
-                                              rfpath, pphyreg->rf3wire_offset,
-                                              data_and_addr));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFW-%d Addr[0x%x]=0x%x\n",
+                rfpath, pphyreg->rf3wire_offset, data_and_addr);
 }
 EXPORT_SYMBOL(_rtl92c_phy_rf_serial_write);
 
@@ -216,16 +213,16 @@ bool _rtl92c_phy_bb8192c_config_parafile(struct ieee80211_hw *hw)
        struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
        bool rtstatus;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("==>\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "==>\n");
        rtstatus = rtlpriv->cfg->ops->config_bb_with_headerfile(hw,
                                                 BASEBAND_CONFIG_PHY_REG);
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Write BB Reg Fail!!"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Write BB Reg Fail!!\n");
                return false;
        }
        if (rtlphy->rf_type == RF_1T2R) {
                _rtl92c_phy_bb_config_1t(hw);
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Config to 1T!!\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Config to 1T!!\n");
        }
        if (rtlefuse->autoload_failflag == false) {
                rtlphy->pwrgroup_cnt = 0;
@@ -233,13 +230,13 @@ bool _rtl92c_phy_bb8192c_config_parafile(struct ieee80211_hw *hw)
                                                   BASEBAND_CONFIG_PHY_REG);
        }
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("BB_PG Reg Fail!!"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "BB_PG Reg Fail!!\n");
                return false;
        }
        rtstatus = rtlpriv->cfg->ops->config_bb_with_headerfile(hw,
                                                 BASEBAND_CONFIG_AGC_TAB);
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("AGC Table Fail\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "AGC Table Fail\n");
                return false;
        }
        rtlphy->cck_high_power = (bool) (rtl_get_bbreg(hw,
@@ -260,114 +257,114 @@ void _rtl92c_store_pwrIndex_diffrate_offset(struct ieee80211_hw *hw,
        if (regaddr == RTXAGC_A_RATE18_06) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][0] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][0] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][0]));
+                        "MCSTxPowerLevelOriginalOffset[%d][0] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][0]);
        }
        if (regaddr == RTXAGC_A_RATE54_24) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][1] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][1] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][1]));
+                        "MCSTxPowerLevelOriginalOffset[%d][1] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][1]);
        }
        if (regaddr == RTXAGC_A_CCK1_MCS32) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][6] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][6] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][6]));
+                        "MCSTxPowerLevelOriginalOffset[%d][6] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][6]);
        }
        if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0xffffff00) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][7] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][7] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][7]));
+                        "MCSTxPowerLevelOriginalOffset[%d][7] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][7]);
        }
        if (regaddr == RTXAGC_A_MCS03_MCS00) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][2] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][2] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][2]));
+                        "MCSTxPowerLevelOriginalOffset[%d][2] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][2]);
        }
        if (regaddr == RTXAGC_A_MCS07_MCS04) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][3] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][3] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][3]));
+                        "MCSTxPowerLevelOriginalOffset[%d][3] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][3]);
        }
        if (regaddr == RTXAGC_A_MCS11_MCS08) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][4] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][4] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][4]));
+                        "MCSTxPowerLevelOriginalOffset[%d][4] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][4]);
        }
        if (regaddr == RTXAGC_A_MCS15_MCS12) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][5] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][5] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][5]));
+                        "MCSTxPowerLevelOriginalOffset[%d][5] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][5]);
        }
        if (regaddr == RTXAGC_B_RATE18_06) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][8] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][8] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][8]));
+                        "MCSTxPowerLevelOriginalOffset[%d][8] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][8]);
        }
        if (regaddr == RTXAGC_B_RATE54_24) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][9] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][9] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][9]));
+                        "MCSTxPowerLevelOriginalOffset[%d][9] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][9]);
        }
        if (regaddr == RTXAGC_B_CCK1_55_MCS32) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][14] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][14] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][14]));
+                        "MCSTxPowerLevelOriginalOffset[%d][14] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][14]);
        }
        if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0x000000ff) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][15] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][15] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][15]));
+                        "MCSTxPowerLevelOriginalOffset[%d][15] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][15]);
        }
        if (regaddr == RTXAGC_B_MCS03_MCS00) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][10] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][10] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][10]));
+                        "MCSTxPowerLevelOriginalOffset[%d][10] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][10]);
        }
        if (regaddr == RTXAGC_B_MCS07_MCS04) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][11] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][11] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][11]));
+                        "MCSTxPowerLevelOriginalOffset[%d][11] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][11]);
        }
        if (regaddr == RTXAGC_B_MCS11_MCS08) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][12] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][12] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][12]));
+                        "MCSTxPowerLevelOriginalOffset[%d][12] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][12]);
        }
        if (regaddr == RTXAGC_B_MCS15_MCS12) {
                rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][13] = data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][13] = 0x%x\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][13]));
+                        "MCSTxPowerLevelOriginalOffset[%d][13] = 0x%x\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][13]);
 
                rtlphy->pwrgroup_cnt++;
        }
@@ -389,12 +386,11 @@ void rtl92c_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw)
            (u8) rtl_get_bbreg(hw, ROFDM0_XDAGCCORE1, MASKBYTE0);
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Default initial gain (c50=0x%x, "
-                 "c58=0x%x, c60=0x%x, c68=0x%x\n",
-                 rtlphy->default_initialgain[0],
-                 rtlphy->default_initialgain[1],
-                 rtlphy->default_initialgain[2],
-                 rtlphy->default_initialgain[3]));
+                "Default initial gain (c50=0x%x, c58=0x%x, c60=0x%x, c68=0x%x\n",
+                rtlphy->default_initialgain[0],
+                rtlphy->default_initialgain[1],
+                rtlphy->default_initialgain[2],
+                rtlphy->default_initialgain[3]);
 
        rtlphy->framesync = (u8) rtl_get_bbreg(hw,
                                               ROFDM0_RXDETECTOR3, MASKBYTE0);
@@ -402,8 +398,8 @@ void rtl92c_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw)
                                              ROFDM0_RXDETECTOR2, MASKDWORD);
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Default framesync (0x%x) = 0x%x\n",
-                 ROFDM0_RXDETECTOR3, rtlphy->framesync));
+                "Default framesync (0x%x) = 0x%x\n",
+                ROFDM0_RXDETECTOR3, rtlphy->framesync);
 }
 
 void _rtl92c_phy_init_bb_rf_register_definition(struct ieee80211_hw *hw)
@@ -615,8 +611,8 @@ bool rtl92c_phy_update_txpower_dbm(struct ieee80211_hw *hw, long power_indbm)
        else
                ofdmtxpwridx = 0;
        RT_TRACE(rtlpriv, COMP_TXAGC, DBG_TRACE,
-                ("%lx dBm, ccktxpwridx = %d, ofdmtxpwridx = %d\n",
-                 power_indbm, ccktxpwridx, ofdmtxpwridx));
+                "%lx dBm, ccktxpwridx = %d, ofdmtxpwridx = %d\n",
+                power_indbm, ccktxpwridx, ofdmtxpwridx);
        for (idx = 0; idx < 14; idx++) {
                for (rf_path = 0; rf_path < 2; rf_path++) {
                        rtlefuse->txpwrlevel_cck[rf_path][idx] = ccktxpwridx;
@@ -710,7 +706,7 @@ void rtl92c_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation)
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Unknown Scan Backup operation.\n"));
+                                "Unknown Scan Backup operation\n");
                        break;
                }
        }
@@ -732,7 +728,7 @@ void rtl92c_phy_set_bw_mode(struct ieee80211_hw *hw,
                rtlpriv->cfg->ops->phy_set_bw_mode_callback(hw);
        } else {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("FALSE driver sleep or unload\n"));
+                        "FALSE driver sleep or unload\n");
                rtlphy->set_bwmode_inprogress = false;
                rtlphy->current_chan_bw = tmp_bw;
        }
@@ -747,7 +743,7 @@ void rtl92c_phy_sw_chnl_callback(struct ieee80211_hw *hw)
        u32 delay;
 
        RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
-                ("switch to channel%d\n", rtlphy->current_channel));
+                "switch to channel%d\n", rtlphy->current_channel);
        if (is_hal_stop(rtlhal))
                return;
        do {
@@ -765,7 +761,7 @@ void rtl92c_phy_sw_chnl_callback(struct ieee80211_hw *hw)
                }
                break;
        } while (true);
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "<==\n");
 }
 EXPORT_SYMBOL(rtl92c_phy_sw_chnl_callback);
 
@@ -780,19 +776,18 @@ u8 rtl92c_phy_sw_chnl(struct ieee80211_hw *hw)
        if (rtlphy->set_bwmode_inprogress)
                return 0;
        RT_ASSERT((rtlphy->current_channel <= 14),
-                 ("WIRELESS_MODE_G but channel>14"));
+                 "WIRELESS_MODE_G but channel>14\n");
        rtlphy->sw_chnl_inprogress = true;
        rtlphy->sw_chnl_stage = 0;
        rtlphy->sw_chnl_step = 0;
        if (!(is_hal_stop(rtlhal)) && !(RT_CANNOT_IO(hw))) {
                rtl92c_phy_sw_chnl_callback(hw);
                RT_TRACE(rtlpriv, COMP_CHAN, DBG_LOUD,
-                        ("sw_chnl_inprogress false schdule workitem\n"));
+                        "sw_chnl_inprogress false schdule workitem\n");
                rtlphy->sw_chnl_inprogress = false;
        } else {
                RT_TRACE(rtlpriv, COMP_CHAN, DBG_LOUD,
-                        ("sw_chnl_inprogress false driver sleep or"
-                         " unload\n"));
+                        "sw_chnl_inprogress false driver sleep or unload\n");
                rtlphy->sw_chnl_inprogress = false;
        }
        return 1;
@@ -807,7 +802,7 @@ static bool _rtl92c_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable,
        struct swchnlcmd *pcmd;
 
        if (cmdtable == NULL) {
-               RT_ASSERT(false, ("cmdtable cannot be NULL.\n"));
+               RT_ASSERT(false, "cmdtable cannot be NULL\n");
                return false;
        }
 
@@ -853,7 +848,7 @@ bool _rtl92c_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
        rfdependcmdcnt = 0;
 
        RT_ASSERT((channel >= 1 && channel <= 14),
-                 ("illegal channel for Zebra: %d\n", channel));
+                 "invalid channel for Zebra: %d\n", channel);
 
        _rtl92c_phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++,
                                         MAX_RFDEPENDCMD_CNT, CMDID_RF_WRITEREG,
@@ -916,7 +911,7 @@ bool _rtl92c_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
 
@@ -1920,23 +1915,23 @@ bool rtl92c_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
        bool postprocessing = false;
 
        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                ("-->IO Cmd(%#x), set_io_inprogress(%d)\n",
-                 iotype, rtlphy->set_io_inprogress));
+                "-->IO Cmd(%#x), set_io_inprogress(%d)\n",
+                iotype, rtlphy->set_io_inprogress);
        do {
                switch (iotype) {
                case IO_CMD_RESUME_DM_BY_SCAN:
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                                ("[IO CMD] Resume DM after scan.\n"));
+                                "[IO CMD] Resume DM after scan\n");
                        postprocessing = true;
                        break;
                case IO_CMD_PAUSE_DM_BY_SCAN:
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                                ("[IO CMD] Pause DM before scan.\n"));
+                                "[IO CMD] Pause DM before scan\n");
                        postprocessing = true;
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
        } while (false);
@@ -1947,7 +1942,7 @@ bool rtl92c_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
                return false;
        }
        rtl92c_phy_set_io(hw);
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, ("<--IO Type(%#x)\n", iotype));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, "<--IO Type(%#x)\n", iotype);
        return true;
 }
 EXPORT_SYMBOL(rtl92c_phy_set_io_cmd);
@@ -1958,8 +1953,8 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
 
        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                ("--->Cmd(%#x), set_io_inprogress(%d)\n",
-                 rtlphy->current_io_type, rtlphy->set_io_inprogress));
+                "--->Cmd(%#x), set_io_inprogress(%d)\n",
+                rtlphy->current_io_type, rtlphy->set_io_inprogress);
        switch (rtlphy->current_io_type) {
        case IO_CMD_RESUME_DM_BY_SCAN:
                dm_digtable.cur_igvalue = rtlphy->initgain_backup.xaagccore1;
@@ -1973,12 +1968,12 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        rtlphy->set_io_inprogress = false;
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                ("<---(%#x)\n", rtlphy->current_io_type));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, "<---(%#x)\n",
+                rtlphy->current_io_type);
 }
 EXPORT_SYMBOL(rtl92c_phy_set_io);
 
@@ -2018,7 +2013,7 @@ void _rtl92c_phy_set_rf_sleep(struct ieee80211_hw *hw)
                rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3);
                rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00);
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("Switch RF timeout !!!.\n"));
+                        "Switch RF timeout !!!\n");
                return;
        }
        rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2);
index 9a264c0d6127da662691d0a790997b5982d838b9..cec10d696492ab4055a2982ffadb1202494eea5e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 9fc804d89d65984dffb70b047e3ca21a151033f8..04c3aef8a4f62e178fbac155a956c64c529b97c8 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 2df33e53e15a53ac9a5b68e9ef0524e376a52361..27b3af880d96ed235e163bbfb3defa53a669f3b5 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -54,7 +54,7 @@ void rtl92ce_dm_dynamic_txpower(struct ieee80211_hw *hw)
        if ((mac->link_state < MAC80211_LINKED) &&
            (rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb == 0)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("Not connected to any\n"));
+                        "Not connected to any\n");
 
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL;
 
@@ -67,28 +67,28 @@ void rtl92ce_dm_dynamic_txpower(struct ieee80211_hw *hw)
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("AP Client PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "AP Client PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                } else {
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.undecorated_smoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("STA Default Port PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "STA Default Port PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                }
        } else {
                undecorated_smoothed_pwdb =
                    rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
 
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("AP Ext Port PWDB = 0x%lx\n",
-                         undecorated_smoothed_pwdb));
+                        "AP Ext Port PWDB = 0x%lx\n",
+                        undecorated_smoothed_pwdb);
        }
 
        if (undecorated_smoothed_pwdb >= TX_POWER_NEAR_FIELD_THRESH_LVL2) {
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n"));
+                        "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n");
        } else if ((undecorated_smoothed_pwdb <
                    (TX_POWER_NEAR_FIELD_THRESH_LVL2 - 3)) &&
                   (undecorated_smoothed_pwdb >=
@@ -96,18 +96,18 @@ void rtl92ce_dm_dynamic_txpower(struct ieee80211_hw *hw)
 
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n"));
+                        "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n");
        } else if (undecorated_smoothed_pwdb <
                   (TX_POWER_NEAR_FIELD_THRESH_LVL1 - 5)) {
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_NORMAL\n"));
+                        "TXHIGHPWRLEVEL_NORMAL\n");
        }
 
        if ((rtlpriv->dm.dynamic_txhighpower_lvl != rtlpriv->dm.last_dtp_lvl)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("PHY_SetTxPowerLevel8192S() Channel = %d\n",
-                         rtlphy->current_channel));
+                        "PHY_SetTxPowerLevel8192S() Channel = %d\n",
+                        rtlphy->current_channel);
                rtl92c_phy_set_txpower_level(hw, rtlphy->current_channel);
        }
 
index 07dd9552e82f559344a239ce7b46a91c3d686708..26747fa8600507042ee3f3d7cbac169431b7457c 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index a3deaefa788c1c30f630f57bdb12c6d09007d46d..48c7b5d3fc5b17e68b7fa7f5de2dd56faa60b36e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -141,7 +141,7 @@ void rtl92ce_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                }
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
 }
@@ -207,7 +207,7 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        u8 e_aci;
 
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("HW_VAR_SLOT_TIME %x\n", val[0]));
+                                "HW_VAR_SLOT_TIME %x\n", val[0]);
 
                        rtl_write_byte(rtlpriv, REG_SLOT, val[0]);
 
@@ -246,8 +246,8 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                *val = min_spacing_to_set;
 
                                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                        ("Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
-                                         mac->min_space_cfg));
+                                        "Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
+                                        mac->min_space_cfg);
 
                                rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE,
                                               mac->min_space_cfg);
@@ -261,8 +261,8 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        mac->min_space_cfg |= (density_to_set << 3);
 
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("Set HW_VAR_SHORTGI_DENSITY: %#x\n",
-                                 mac->min_space_cfg));
+                                "Set HW_VAR_SHORTGI_DENSITY: %#x\n",
+                                mac->min_space_cfg);
 
                        rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE,
                                       mac->min_space_cfg);
@@ -310,8 +310,8 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                }
 
                                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                        ("Set HW_VAR_AMPDU_FACTOR: %#x\n",
-                                         factor_toset));
+                                        "Set HW_VAR_AMPDU_FACTOR: %#x\n",
+                                        factor_toset);
                        }
                        break;
                }
@@ -348,8 +348,8 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                        break;
                                default:
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                                ("HW_VAR_ACM_CTRL acm set "
-                                                 "failed: eACI is %d\n", acm));
+                                                "HW_VAR_ACM_CTRL acm set failed: eACI is %d\n",
+                                                acm);
                                        break;
                                }
                        } else {
@@ -365,14 +365,14 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                        break;
                                default:
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                                ("switch case not process\n"));
+                                                "switch case not processed\n");
                                        break;
                                }
                        }
 
                        RT_TRACE(rtlpriv, COMP_QOS, DBG_TRACE,
-                                ("SetHwReg8190pci(): [HW_VAR_ACM_CTRL] "
-                                 "Write 0x%X\n", acm_ctrl));
+                                "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n",
+                                acm_ctrl);
                        rtl_write_byte(rtlpriv, REG_ACMHWCTRL, acm_ctrl);
                        break;
                }
@@ -507,8 +507,8 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
 
                }
        default:
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("switch case "
-                                                       "not process\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                        "switch case not processed\n");
                break;
        }
 }
@@ -530,8 +530,8 @@ static bool _rtl92ce_llt_write(struct ieee80211_hw *hw, u32 address, u32 data)
 
                if (count > POLLING_LLT_THRESHOLD) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Failed to polling write LLT done at "
-                                 "address %d!\n", address));
+                                "Failed to polling write LLT done at address %d!\n",
+                                address);
                        status = false;
                        break;
                }
@@ -669,18 +669,15 @@ static bool _rtl92ce_init_mac(struct ieee80211_hw *hw)
        udelay(2);
 
        retry = 0;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("reg0xec:%x:%x\n",
-                                               rtl_read_dword(rtlpriv, 0xEC),
-                                               bytetmp));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "reg0xec:%x:%x\n",
+                rtl_read_dword(rtlpriv, 0xEC), bytetmp);
 
        while ((bytetmp & BIT(0)) && retry < 1000) {
                retry++;
                udelay(50);
                bytetmp = rtl_read_byte(rtlpriv, REG_APS_FSMCO + 1);
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("reg0xec:%x:%x\n",
-                                                       rtl_read_dword(rtlpriv,
-                                                                      0xEC),
-                                                       bytetmp));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "reg0xec:%x:%x\n",
+                        rtl_read_dword(rtlpriv, 0xEC), bytetmp);
                udelay(50);
        }
 
@@ -864,13 +861,13 @@ void rtl92ce_enable_hw_security_config(struct ieee80211_hw *hw)
        u8 sec_reg_value;
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
-                 rtlpriv->sec.pairwise_enc_algorithm,
-                 rtlpriv->sec.group_enc_algorithm));
+                "PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
+                rtlpriv->sec.pairwise_enc_algorithm,
+                rtlpriv->sec.group_enc_algorithm);
 
        if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("not open "
-                                                       "hw encryption\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
+                        "not open hw encryption\n");
                return;
        }
 
@@ -886,7 +883,7 @@ void rtl92ce_enable_hw_security_config(struct ieee80211_hw *hw)
        rtl_write_byte(rtlpriv, REG_CR + 1, 0x02);
 
        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                ("The SECR-value %x\n", sec_reg_value));
+                "The SECR-value %x\n", sec_reg_value);
 
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_WPA_CONFIG, &sec_reg_value);
 
@@ -910,7 +907,7 @@ int rtl92ce_hw_init(struct ieee80211_hw *hw)
        rtlpriv->intf_ops->disable_aspm(hw);
        rtstatus = _rtl92ce_init_mac(hw);
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Init MAC failed\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Init MAC failed\n");
                err = 1;
                return err;
        }
@@ -918,13 +915,9 @@ int rtl92ce_hw_init(struct ieee80211_hw *hw)
        err = rtl92c_download_fw(hw);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Failed to download FW. Init HW "
-                         "without FW now..\n"));
+                        "Failed to download FW. Init HW without FW now..\n");
                err = 1;
-               rtlhal->fw_ready = false;
                return err;
-       } else {
-               rtlhal->fw_ready = true;
        }
 
        rtlhal->last_hmeboxnum = 0;
@@ -968,12 +961,12 @@ int rtl92ce_hw_init(struct ieee80211_hw *hw)
        tmp_u1b = efuse_read_1byte(hw, 0x1FA);
        if (!(tmp_u1b & BIT(0))) {
                rtl_set_rfreg(hw, RF90_PATH_A, 0x15, 0x0F, 0x05);
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("PA BIAS path A\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "PA BIAS path A\n");
        }
 
        if (!(tmp_u1b & BIT(1)) && is92c) {
                rtl_set_rfreg(hw, RF90_PATH_B, 0x15, 0x0F, 0x05);
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("PA BIAS path B\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "PA BIAS path B\n");
        }
 
        if (!(tmp_u1b & BIT(4))) {
@@ -982,7 +975,7 @@ int rtl92ce_hw_init(struct ieee80211_hw *hw)
                rtl_write_byte(rtlpriv, 0x16, tmp_u1b | 0x80);
                udelay(10);
                rtl_write_byte(rtlpriv, 0x16, tmp_u1b | 0x90);
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("under 1.5V\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "under 1.5V\n");
        }
        rtl92c_dm_init(hw);
        rtlpci->being_init_adapter = false;
@@ -995,6 +988,7 @@ static enum version_8192c _rtl92ce_read_chip_version(struct ieee80211_hw *hw)
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
        enum version_8192c version = VERSION_UNKNOWN;
        u32 value32;
+       const char *versionid;
 
        value32 = rtl_read_dword(rtlpriv, REG_SYS_CFG);
        if (value32 & TRP_VAUX_EN) {
@@ -1007,27 +1001,25 @@ static enum version_8192c _rtl92ce_read_chip_version(struct ieee80211_hw *hw)
 
        switch (version) {
        case VERSION_B_CHIP_92C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Chip Version ID: VERSION_B_CHIP_92C.\n"));
+               versionid = "B_CHIP_92C";
                break;
        case VERSION_B_CHIP_88C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Chip Version ID: VERSION_B_CHIP_88C.\n"));
+               versionid = "B_CHIP_88C";
                break;
        case VERSION_A_CHIP_92C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Chip Version ID: VERSION_A_CHIP_92C.\n"));
+               versionid = "A_CHIP_92C";
                break;
        case VERSION_A_CHIP_88C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Chip Version ID: VERSION_A_CHIP_88C.\n"));
+               versionid = "A_CHIP_88C";
                break;
        default:
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Chip Version ID: Unknown. Bug?\n"));
+               versionid = "Unknown. Bug?";
                break;
        }
 
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
+                "Chip Version ID: %s\n", versionid);
+
        switch (version & 0x3) {
        case CHIP_88C:
                rtlphy->rf_type = RF_1T1R;
@@ -1041,13 +1033,12 @@ static enum version_8192c _rtl92ce_read_chip_version(struct ieee80211_hw *hw)
        default:
                rtlphy->rf_type = RF_1T1R;
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("ERROR RF_Type is set!!"));
+                        "ERROR RF_Type is set!!\n");
                break;
        }
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("Chip RF Type: %s\n", (rtlphy->rf_type == RF_2T2R) ?
-                 "RF_2T2R" : "RF_1T1R"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Chip RF Type: %s\n",
+                rtlphy->rf_type == RF_2T2R ? "RF_2T2R" : "RF_1T1R");
 
        return version;
 }
@@ -1069,8 +1060,8 @@ static int _rtl92ce_set_media_status(struct ieee80211_hw *hw,
                _rtl92ce_disable_bcn_sub_func(hw);
        } else {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Set HW_VAR_MEDIA_STATUS: "
-                         "No such media status(%x).\n", type));
+                        "Set HW_VAR_MEDIA_STATUS: No such media status(%x)\n",
+                        type);
        }
 
        switch (type) {
@@ -1078,27 +1069,27 @@ static int _rtl92ce_set_media_status(struct ieee80211_hw *hw,
                bt_msr |= MSR_NOLINK;
                ledaction = LED_CTL_LINK;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to NO LINK!\n"));
+                        "Set Network type to NO LINK!\n");
                break;
        case NL80211_IFTYPE_ADHOC:
                bt_msr |= MSR_ADHOC;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to Ad Hoc!\n"));
+                        "Set Network type to Ad Hoc!\n");
                break;
        case NL80211_IFTYPE_STATION:
                bt_msr |= MSR_INFRA;
                ledaction = LED_CTL_LINK;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to STA!\n"));
+                        "Set Network type to STA!\n");
                break;
        case NL80211_IFTYPE_AP:
                bt_msr |= MSR_AP;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to AP!\n"));
+                        "Set Network type to AP!\n");
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Network type %d not support!\n", type));
+                        "Network type %d not supported!\n", type);
                return 1;
                break;
 
@@ -1171,7 +1162,7 @@ void rtl92ce_set_qos(struct ieee80211_hw *hw, int aci)
                rtl_write_dword(rtlpriv, REG_EDCA_VO_PARAM, 0x2f3222);
                break;
        default:
-               RT_ASSERT(false, ("invalid aci: %d !\n", aci));
+               RT_ASSERT(false, "invalid aci: %d !\n", aci);
                break;
        }
 }
@@ -1199,7 +1190,6 @@ static void _rtl92ce_poweroff_adapter(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw);
-       struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        u8 u1b_tmp;
        u32 u4b_tmp;
 
@@ -1210,7 +1200,7 @@ static void _rtl92ce_poweroff_adapter(struct ieee80211_hw *hw)
        rtl_write_byte(rtlpriv, REG_APSD_CTRL, 0x40);
        rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2);
        rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE0);
-       if ((rtl_read_byte(rtlpriv, REG_MCUFWDL) & BIT(7)) && rtlhal->fw_ready)
+       if (rtl_read_byte(rtlpriv, REG_MCUFWDL) & BIT(7))
                rtl92c_firmware_selfreset(hw);
        rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, 0x51);
        rtl_write_byte(rtlpriv, REG_MCUFWDL, 0x00);
@@ -1300,7 +1290,7 @@ void rtl92ce_set_beacon_interval(struct ieee80211_hw *hw)
        u16 bcn_interval = mac->beacon_interval;
 
        RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-                ("beacon_interval:%d\n", bcn_interval));
+                "beacon_interval:%d\n", bcn_interval);
        rtl92ce_disable_interrupt(hw);
        rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval);
        rtl92ce_enable_interrupt(hw);
@@ -1312,8 +1302,8 @@ void rtl92ce_update_interrupt_mask(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
 
-       RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD,
-                ("add_msr:%x, rm_msr:%x\n", add_msr, rm_msr));
+       RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD, "add_msr:%x, rm_msr:%x\n",
+                add_msr, rm_msr);
 
        if (add_msr)
                rtlpci->irq_mask[0] |= add_msr;
@@ -1367,25 +1357,24 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM CCK Area(%d) = 0x%x\n", rf_path,
-                                i,
-                                rtlefuse->
-                                eeprom_chnlarea_txpwr_cck[rf_path][i]));
+                               "RF(%d) EEPROM CCK Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->
+                               eeprom_chnlarea_txpwr_cck[rf_path][i]);
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM HT40 1S Area(%d) = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->
-                                eeprom_chnlarea_txpwr_ht40_1s[rf_path][i]));
+                               "RF(%d) EEPROM HT40 1S Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->
+                               eeprom_chnlarea_txpwr_ht40_1s[rf_path][i]);
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM HT40 2S Diff Area(%d) = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->
-                                eeprom_chnlarea_txpwr_ht40_2sdiif[rf_path]
-                                [i]));
+                               "RF(%d) EEPROM HT40 2S Diff Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->
+                               eeprom_chnlarea_txpwr_ht40_2sdiif[rf_path][i]);
 
        for (rf_path = 0; rf_path < 2; rf_path++) {
                for (i = 0; i < 14; i++) {
@@ -1416,11 +1405,11 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
 
                for (i = 0; i < 14; i++) {
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = "
-                                "[0x%x / 0x%x / 0x%x]\n", rf_path, i,
-                                rtlefuse->txpwrlevel_cck[rf_path][i],
-                                rtlefuse->txpwrlevel_ht40_1s[rf_path][i],
-                                rtlefuse->txpwrlevel_ht40_2s[rf_path][i]));
+                               "RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n",
+                               rf_path, i,
+                               rtlefuse->txpwrlevel_cck[rf_path][i],
+                               rtlefuse->txpwrlevel_ht40_1s[rf_path][i],
+                               rtlefuse->txpwrlevel_ht40_2s[rf_path][i]);
                }
        }
 
@@ -1457,13 +1446,13 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
                        }
 
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF-%d pwrgroup_ht20[%d] = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->pwrgroup_ht20[rf_path][i]));
+                               "RF-%d pwrgroup_ht20[%d] = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->pwrgroup_ht20[rf_path][i]);
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF-%d pwrgroup_ht40[%d] = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->pwrgroup_ht40[rf_path][i]));
+                               "RF-%d pwrgroup_ht40[%d] = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->pwrgroup_ht40[rf_path][i]);
                }
        }
 
@@ -1502,27 +1491,27 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
 
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]));
+                       "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]));
+                       "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]));
+                       "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-B Legacy to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]));
+                       "RF-B Legacy to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]);
 
        if (!autoload_fail)
                rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7);
        else
                rtlefuse->eeprom_regulatory = 0;
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-               ("eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory));
+               "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
 
        if (!autoload_fail) {
                rtlefuse->eeprom_tssi[RF90_PATH_A] = hwinfo[EEPROM_TSSI_A];
@@ -1531,10 +1520,9 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
                rtlefuse->eeprom_tssi[RF90_PATH_A] = EEPROM_DEFAULT_TSSI;
                rtlefuse->eeprom_tssi[RF90_PATH_B] = EEPROM_DEFAULT_TSSI;
        }
-       RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-               ("TSSI_A = 0x%x, TSSI_B = 0x%x\n",
-                rtlefuse->eeprom_tssi[RF90_PATH_A],
-                rtlefuse->eeprom_tssi[RF90_PATH_B]));
+       RTPRINT(rtlpriv, FINIT, INIT_TxPower, "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
+               rtlefuse->eeprom_tssi[RF90_PATH_A],
+               rtlefuse->eeprom_tssi[RF90_PATH_B]);
 
        if (!autoload_fail)
                tempval = hwinfo[EEPROM_THERMAL_METER];
@@ -1547,7 +1535,7 @@ static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
 
        rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter;
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-               ("thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter));
+               "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
 }
 
 static void _rtl92ce_read_adapter_info(struct ieee80211_hw *hw)
@@ -1567,19 +1555,19 @@ static void _rtl92ce_read_adapter_info(struct ieee80211_hw *hw)
                       HWSET_MAX_SIZE);
        } else if (rtlefuse->epromtype == EEPROM_93C46) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("RTL819X Not boot from eeprom, check it !!"));
+                        "RTL819X Not boot from eeprom, check it !!");
        }
 
-       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP\n"),
+       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, "MAP",
                      hwinfo, HWSET_MAX_SIZE);
 
        eeprom_id = *((u16 *)&hwinfo[0]);
        if (eeprom_id != RTL8190_EEPROM_ID) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("EEPROM ID(%#x) is invalid!!\n", eeprom_id));
+                        "EEPROM ID(%#x) is invalid!!\n", eeprom_id);
                rtlefuse->autoload_failflag = true;
        } else {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
                rtlefuse->autoload_failflag = false;
        }
 
@@ -1591,8 +1579,7 @@ static void _rtl92ce_read_adapter_info(struct ieee80211_hw *hw)
                *((u16 *) (&rtlefuse->dev_addr[i])) = usvalue;
        }
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("%pM\n", rtlefuse->dev_addr));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%pM\n", rtlefuse->dev_addr);
 
        _rtl92ce_read_txpower_info_from_hwpg(hw,
                                             rtlefuse->autoload_failflag,
@@ -1608,7 +1595,7 @@ static void _rtl92ce_read_adapter_info(struct ieee80211_hw *hw)
        rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMER_ID];
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid));
+                "EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid);
 
        /* set channel paln to world wide 13 */
        rtlefuse->channel_plan = COUNTRY_CODE_WORLD_WIDE_13;
@@ -1662,7 +1649,7 @@ static void _rtl92ce_hal_customized_behavior(struct ieee80211_hw *hw)
                break;
        }
        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("RT Customized ID: 0x%02X\n", rtlhal->oem_id));
+                "RT Customized ID: 0x%02X\n", rtlhal->oem_id);
 }
 
 void rtl92ce_read_eeprom_info(struct ieee80211_hw *hw)
@@ -1679,22 +1666,22 @@ void rtl92ce_read_eeprom_info(struct ieee80211_hw *hw)
        else
                rtlpriv->dm.rfpath_rxenable[0] =
                    rtlpriv->dm.rfpath_rxenable[1] = true;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("VersionID = 0x%4x\n",
-                                               rtlhal->version));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "VersionID = 0x%4x\n",
+                rtlhal->version);
        tmp_u1b = rtl_read_byte(rtlpriv, REG_9346CR);
        if (tmp_u1b & BIT(4)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Boot from EEPROM\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EEPROM\n");
                rtlefuse->epromtype = EEPROM_93C46;
        } else {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Boot from EFUSE\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EFUSE\n");
                rtlefuse->epromtype = EEPROM_BOOT_EFUSE;
        }
        if (tmp_u1b & BIT(5)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
                rtlefuse->autoload_failflag = false;
                _rtl92ce_read_adapter_info(hw);
        } else {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Autoload ERR!!\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Autoload ERR!!\n");
        }
        _rtl92ce_hal_customized_behavior(hw);
 }
@@ -1790,8 +1777,8 @@ static void rtl92ce_update_hal_rate_table(struct ieee80211_hw *hw,
 
        rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value);
 
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
-                ("%x\n", rtl_read_dword(rtlpriv, REG_ARFR0)));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, "%x\n",
+                rtl_read_dword(rtlpriv, REG_ARFR0));
 }
 
 static void rtl92ce_update_hal_rate_mask(struct ieee80211_hw *hw,
@@ -1919,16 +1906,15 @@ static void rtl92ce_update_hal_rate_mask(struct ieee80211_hw *hw,
                break;
        }
        RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
-                ("ratr_bitmap :%x\n", ratr_bitmap));
+                "ratr_bitmap :%x\n", ratr_bitmap);
        *(u32 *)&rate_mask = EF4BYTE((ratr_bitmap & 0x0fffffff) |
                                     (ratr_index << 28));
        rate_mask[4] = macid | (shortgi ? 0x20 : 0x00) | 0x80;
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, ("Rate_index:%x, "
-                                                "ratr_val:%x, %x:%x:%x:%x:%x\n",
-                                                ratr_index, ratr_bitmap,
-                                                rate_mask[0], rate_mask[1],
-                                                rate_mask[2], rate_mask[3],
-                                                rate_mask[4]));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
+                "Rate_index:%x, ratr_val:%x, %x:%x:%x:%x:%x\n",
+                ratr_index, ratr_bitmap,
+                rate_mask[0], rate_mask[1], rate_mask[2], rate_mask[3],
+                rate_mask[4]);
        rtl92c_fill_h2c_cmd(hw, H2C_RA_MASK, 5, rate_mask);
 
        if (macid != 0)
@@ -1994,7 +1980,7 @@ bool rtl92ce_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid)
 
        if ((ppsc->hwradiooff) && (e_rfpowerstate_toset == ERFON)) {
                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                        ("GPIOChangeRF  - HW Radio ON, RF ON\n"));
+                        "GPIOChangeRF  - HW Radio ON, RF ON\n");
 
                e_rfpowerstate_toset = ERFON;
                ppsc->hwradiooff = false;
@@ -2002,7 +1988,7 @@ bool rtl92ce_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid)
        } else if ((ppsc->hwradiooff == false)
                   && (e_rfpowerstate_toset == ERFOFF)) {
                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                        ("GPIOChangeRF  - HW Radio OFF, RF OFF\n"));
+                        "GPIOChangeRF  - HW Radio OFF, RF OFF\n");
 
                e_rfpowerstate_toset = ERFOFF;
                ppsc->hwradiooff = true;
@@ -2053,7 +2039,7 @@ void rtl92ce_set_key(struct ieee80211_hw *hw, u32 key_index,
                u8 cam_offset = 0;
                u8 clear_number = 5;
 
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("clear_all\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "clear_all\n");
 
                for (idx = 0; idx < clear_number; idx++) {
                        rtl_cam_mark_invalid(hw, cam_offset + idx);
@@ -2081,8 +2067,8 @@ void rtl92ce_set_key(struct ieee80211_hw *hw, u32 key_index,
                        enc_algo = CAM_AES;
                        break;
                default:
-                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("switch case "
-                                       "not process\n"));
+                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                                "switch case not processed\n");
                        enc_algo = CAM_TKIP;
                        break;
                }
@@ -2100,9 +2086,8 @@ void rtl92ce_set_key(struct ieee80211_hw *hw, u32 key_index,
                                                                 p_macaddr);
                                        if (entry_id >=  TOTAL_CAM_ENTRY) {
                                                RT_TRACE(rtlpriv, COMP_SEC,
-                                                    DBG_EMERG,
-                                                    ("Can not find free hw"
-                                                    " security cam entry\n"));
+                                                        DBG_EMERG,
+                                                        "Can not find free hw security cam entry\n");
                                                return;
                                        }
                                } else {
@@ -2116,31 +2101,31 @@ void rtl92ce_set_key(struct ieee80211_hw *hw, u32 key_index,
 
                if (rtlpriv->sec.key_len[key_index] == 0) {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("delete one entry, entry_id is %d\n",
-                                entry_id));
+                                "delete one entry, entry_id is %d\n",
+                                entry_id);
                        if (mac->opmode == NL80211_IFTYPE_AP)
                                rtl_cam_del_entry(hw, p_macaddr);
                        rtl_cam_delete_one_entry(hw, p_macaddr, entry_id);
                } else {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY length is %d\n",
-                                 rtlpriv->sec.key_len[PAIRWISE_KEYIDX]));
+                                "The insert KEY length is %d\n",
+                                rtlpriv->sec.key_len[PAIRWISE_KEYIDX]);
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY  is %x %x\n",
-                                 rtlpriv->sec.key_buf[0][0],
-                                 rtlpriv->sec.key_buf[0][1]));
+                                "The insert KEY is %x %x\n",
+                                rtlpriv->sec.key_buf[0][0],
+                                rtlpriv->sec.key_buf[0][1]);
 
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("add one entry\n"));
+                                "add one entry\n");
                        if (is_pairwise) {
                                RT_PRINT_DATA(rtlpriv, COMP_SEC, DBG_LOUD,
-                                             "Pairwiase Key content :",
+                                             "Pairwise Key content",
                                              rtlpriv->sec.pairwise_key,
                                              rtlpriv->sec.
                                              key_len[PAIRWISE_KEYIDX]);
 
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set Pairwiase key\n"));
+                                        "set Pairwise key\n");
 
                                rtl_cam_add_one_entry(hw, macaddr, key_index,
                                                      entry_id, enc_algo,
@@ -2149,7 +2134,7 @@ void rtl92ce_set_key(struct ieee80211_hw *hw, u32 key_index,
                                                      key_buf[key_index]);
                        } else {
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set group key\n"));
+                                        "set group key\n");
 
                                if (mac->opmode == NL80211_IFTYPE_ADHOC) {
                                        rtl_cam_add_one_entry(hw,
index 07dbe3e340a5579c4af1c55ca805eb69dc649372..52a3aea9b3deecf8052293010ab3d95947d5cfb9 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 28a1a707d09ceb275f5266adc5c7e9d8d711181b..8283e9b27639f5bd95350fd09652ccfded1888ed 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -45,8 +45,8 @@ void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
        u8 ledcfg;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                REG_LEDCFG2, pled->ledpin);
 
        ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2);
 
@@ -62,7 +62,7 @@ void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = true;
@@ -74,8 +74,8 @@ void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
        struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
        u8 ledcfg;
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                REG_LEDCFG2, pled->ledpin);
 
        ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2);
 
@@ -97,7 +97,7 @@ void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = false;
@@ -145,7 +145,7 @@ void rtl92ce_led_control(struct ieee80211_hw *hw,
             ledaction == LED_CTL_POWER_ON)) {
                return;
        }
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, ("ledaction %d.\n",
-                               ledaction));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "ledaction %d\n",
+                ledaction);
        _rtl92ce_sw_led_control(hw, ledaction);
 }
index 7dfccea2095b016705f60174c4f3ee7ad91ab49e..c5761066d3835118ddf9f69a5bf4130e2bef4bea 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 3b585aadabfcdae61bc7aed6b8b2694266ed1f14..c64daf25566a90b7e4bd1e8e11363e28bd1f74c0 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -47,9 +47,9 @@ u32 rtl92c_phy_query_rf_reg(struct ieee80211_hw *hw,
        u32 original_value, readback_value, bitshift;
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-                                              "rfpath(%#x), bitmask(%#x)\n",
-                                              regaddr, rfpath, bitmask));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x)\n",
+                regaddr, rfpath, bitmask);
 
        spin_lock(&rtlpriv->locks.rf_lock);
 
@@ -67,9 +67,8 @@ u32 rtl92c_phy_query_rf_reg(struct ieee80211_hw *hw,
        spin_unlock(&rtlpriv->locks.rf_lock);
 
        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                ("regaddr(%#x), rfpath(%#x), "
-                 "bitmask(%#x), original_value(%#x)\n",
-                 regaddr, rfpath, bitmask, original_value));
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x), original_value(%#x)\n",
+                regaddr, rfpath, bitmask, original_value);
 
        return readback_value;
 }
@@ -121,8 +120,8 @@ void rtl92ce_phy_set_rf_reg(struct ieee80211_hw *hw,
        u32 original_value, bitshift;
 
        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                ("regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
-                 regaddr, bitmask, data, rfpath));
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
 
        spin_lock(&rtlpriv->locks.rf_lock);
 
@@ -153,10 +152,9 @@ void rtl92ce_phy_set_rf_reg(struct ieee80211_hw *hw,
 
        spin_unlock(&rtlpriv->locks.rf_lock);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-                                              "bitmask(%#x), data(%#x), "
-                                              "rfpath(%#x)\n", regaddr,
-                                              bitmask, data, rfpath));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
 }
 
 static bool _rtl92c_phy_config_mac_with_headerfile(struct ieee80211_hw *hw)
@@ -166,11 +164,10 @@ static bool _rtl92c_phy_config_mac_with_headerfile(struct ieee80211_hw *hw)
        u32 arraylength;
        u32 *ptrarray;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Read Rtl819XMACPHY_Array\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Read Rtl819XMACPHY_Array\n");
        arraylength = MAC_2T_ARRAYLENGTH;
        ptrarray = RTL8192CEMAC_2T_ARRAY;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Img:RTL8192CEMAC_2T_ARRAY\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Img:RTL8192CEMAC_2T_ARRAY\n");
        for (i = 0; i < arraylength; i = i + 2)
                rtl_write_byte(rtlpriv, ptrarray[i], (u8) ptrarray[i + 1]);
        return true;
@@ -215,10 +212,9 @@ bool _rtl92ce_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                      phy_regarray_table[i + 1]);
                        udelay(1);
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                ("The phy_regarray_table[0] is %x"
-                                 " Rtl819XPHY_REGArray[1] is %x\n",
-                                 phy_regarray_table[i],
-                                 phy_regarray_table[i + 1]));
+                                "The phy_regarray_table[0] is %x Rtl819XPHY_REGArray[1] is %x\n",
+                                phy_regarray_table[i],
+                                phy_regarray_table[i + 1]);
                }
        } else if (configtype == BASEBAND_CONFIG_AGC_TAB) {
                for (i = 0; i < agctab_arraylen; i = i + 2) {
@@ -226,10 +222,9 @@ bool _rtl92ce_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                      agctab_array_table[i + 1]);
                        udelay(1);
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                ("The agctab_array_table[0] is "
-                                 "%x Rtl819XPHY_REGArray[1] is %x\n",
-                                 agctab_array_table[i],
-                                 agctab_array_table[i + 1]));
+                                "The agctab_array_table[0] is %x Rtl819XPHY_REGArray[1] is %x\n",
+                                agctab_array_table[i],
+                                agctab_array_table[i + 1]);
                }
        }
        return true;
@@ -269,7 +264,7 @@ bool _rtl92ce_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw,
        } else {
 
                RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-                        ("configtype != BaseBand_Config_PHY_REG\n"));
+                        "configtype != BaseBand_Config_PHY_REG\n");
        }
        return true;
 }
@@ -291,20 +286,20 @@ bool rtl92c_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
                radiob_arraylen = RADIOB_2TARRAYLENGTH;
                radiob_array_table = RTL8192CE_RADIOB_2TARRAY;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_A:RTL8192CERADIOA_2TARRAY\n"));
+                        "Radio_A:RTL8192CERADIOA_2TARRAY\n");
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_B:RTL8192CE_RADIOB_2TARRAY\n"));
+                        "Radio_B:RTL8192CE_RADIOB_2TARRAY\n");
        } else {
                radioa_arraylen = RADIOA_1TARRAYLENGTH;
                radioa_array_table = RTL8192CE_RADIOA_1TARRAY;
                radiob_arraylen = RADIOB_1TARRAYLENGTH;
                radiob_array_table = RTL8192CE_RADIOB_1TARRAY;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_A:RTL8192CE_RADIOA_1TARRAY\n"));
+                        "Radio_A:RTL8192CE_RADIOA_1TARRAY\n");
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_B:RTL8192CE_RADIOB_1TARRAY\n"));
+                        "Radio_B:RTL8192CE_RADIOB_1TARRAY\n");
        }
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Radio No %x\n", rfpath));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Radio No %x\n", rfpath);
        switch (rfpath) {
        case RF90_PATH_A:
                for (i = 0; i < radioa_arraylen; i = i + 2) {
@@ -352,11 +347,11 @@ bool rtl92c_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
                break;
        case RF90_PATH_C:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        case RF90_PATH_D:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        return true;
@@ -371,10 +366,9 @@ void rtl92ce_phy_set_bw_mode_callback(struct ieee80211_hw *hw)
        u8 reg_bw_opmode;
        u8 reg_prsr_rsc;
 
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
-                ("Switch to %s bandwidth\n",
-                 rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
-                 "20MHz" : "40MHz"))
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "Switch to %s bandwidth\n",
+                rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
+                "20MHz" : "40MHz");
 
        if (is_hal_stop(rtlhal)) {
                rtlphy->set_bwmode_inprogress = false;
@@ -398,7 +392,7 @@ void rtl92ce_phy_set_bw_mode_callback(struct ieee80211_hw *hw)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
        }
 
@@ -423,12 +417,12 @@ void rtl92ce_phy_set_bw_mode_callback(struct ieee80211_hw *hw)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
        }
        rtl92ce_phy_rf6052_set_bandwidth(hw, rtlphy->current_chan_bw);
        rtlphy->set_bwmode_inprogress = false;
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "<==\n");
 }
 
 void _rtl92ce_phy_lc_calibrate(struct ieee80211_hw *hw, bool is2t)
@@ -499,7 +493,7 @@ static void _rtl92ce_phy_set_rf_sleep(struct ieee80211_hw *hw)
                rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3);
                rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00);
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("Switch RF timeout !!!.\n"));
+                        "Switch RF timeout !!!\n");
                return;
        }
        rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2);
@@ -526,7 +520,7 @@ static bool _rtl92ce_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                do {
                                        InitializeCount++;
                                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                                ("IPS Set eRf nic enable\n"));
+                                                "IPS Set eRf nic enable\n");
                                        rtstatus = rtl_ps_enable_nic(hw);
                                } while ((rtstatus != true)
                                         && (InitializeCount < 10));
@@ -534,10 +528,10 @@ static bool _rtl92ce_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                                  RT_RF_OFF_LEVL_HALT_NIC);
                        } else {
                                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                        ("Set ERFON sleeped:%d ms\n",
-                                         jiffies_to_msecs(jiffies -
-                                                  ppsc->
-                                                  last_sleep_jiffies)));
+                                        "Set ERFON sleeped:%d ms\n",
+                                        jiffies_to_msecs(jiffies -
+                                                         ppsc->
+                                                         last_sleep_jiffies));
                                ppsc->last_awake_jiffies = jiffies;
                                rtl92ce_phy_set_rf_on(hw);
                        }
@@ -553,7 +547,7 @@ static bool _rtl92ce_phy_set_rf_power_state(struct ieee80211_hw *hw,
        case ERFOFF:{
                        if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) {
                                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                        ("IPS Set eRf nic disable\n"));
+                                        "IPS Set eRf nic disable\n");
                                rtl_ps_disable_nic(hw);
                                RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
                        } else {
@@ -578,35 +572,33 @@ static bool _rtl92ce_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                        continue;
                                } else {
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                                ("eRf Off/Sleep: %d times "
-                                                 "TcbBusyQueue[%d] =%d before "
-                                                 "doze!\n", (i + 1), queue_id,
-                                                 skb_queue_len(&ring->queue)));
+                                                "eRf Off/Sleep: %d times TcbBusyQueue[%d] =%d before doze!\n",
+                                                i + 1, queue_id,
+                                                skb_queue_len(&ring->queue));
 
                                        udelay(10);
                                        i++;
                                }
                                if (i >= MAX_DOZE_WAITING_TIMES_9x) {
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                                ("\n ERFSLEEP: %d times "
-                                                 "TcbBusyQueue[%d] = %d !\n",
-                                                 MAX_DOZE_WAITING_TIMES_9x,
-                                                 queue_id,
-                                                 skb_queue_len(&ring->queue)));
+                                                "ERFSLEEP: %d times TcbBusyQueue[%d] = %d !\n",
+                                                MAX_DOZE_WAITING_TIMES_9x,
+                                                queue_id,
+                                                skb_queue_len(&ring->queue));
                                        break;
                                }
                        }
                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                ("Set ERFSLEEP awaked:%d ms\n",
-                                 jiffies_to_msecs(jiffies -
-                                                  ppsc->last_awake_jiffies)));
+                                "Set ERFSLEEP awaked:%d ms\n",
+                                jiffies_to_msecs(jiffies -
+                                                 ppsc->last_awake_jiffies));
                        ppsc->last_sleep_jiffies = jiffies;
                        _rtl92ce_phy_set_rf_sleep(hw);
                        break;
                }
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                bresult = false;
                break;
        }
index be2c92adef33d293e1579a78f57c4eb56e8574de..d5e3b704f9304a596bd943cfcbebd00db6559776 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index ba5ff0411f0abce3c6e4e1e87b2e764b6182e6d0..43806d9d1e130146d217ccf89f46f47d93e4efb9 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index d3b01e6023bac8b0549a2e46c876ecd7734be3a2..69d720dd9c38e1cb73da741f89d81cce972b854d 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -56,7 +56,7 @@ void rtl92ce_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", bandwidth));
+                        "unknown bandwidth: %#X\n", bandwidth);
                break;
        }
 }
@@ -123,8 +123,8 @@ void rtl92ce_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw,
        rtl_set_bbreg(hw, RTXAGC_A_CCK1_MCS32, MASKBYTE1, tmpval);
 
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 1M (rf-A) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_A_CCK1_MCS32));
+               "CCK PWR 1M (rf-A) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_A_CCK1_MCS32);
 
        tmpval = tx_agc[RF90_PATH_A] >> 8;
 
@@ -133,22 +133,22 @@ void rtl92ce_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw,
        rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, 0xffffff00, tmpval);
 
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 2~11M (rf-A) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_B_CCK11_A_CCK2_11));
+               "CCK PWR 2~11M (rf-A) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK11_A_CCK2_11);
 
        tmpval = tx_agc[RF90_PATH_B] >> 24;
        rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, MASKBYTE0, tmpval);
 
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_B_CCK11_A_CCK2_11));
+               "CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK11_A_CCK2_11);
 
        tmpval = tx_agc[RF90_PATH_B] & 0x00ffffff;
        rtl_set_bbreg(hw, RTXAGC_B_CCK1_55_MCS32, 0xffffff00, tmpval);
 
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 1~5.5M (rf-B) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_B_CCK1_55_MCS32));
+               "CCK PWR 1~5.5M (rf-B) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK1_55_MCS32);
 }
 
 static void rtl92c_phy_get_power_base(struct ieee80211_hw *hw,
@@ -171,8 +171,8 @@ static void rtl92c_phy_get_power_base(struct ieee80211_hw *hw,
                    (powerBase0 << 8) | powerBase0;
                *(ofdmbase + i) = powerBase0;
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       (" [OFDM power base index rf(%c) = 0x%x]\n",
-                        ((i == 0) ? 'A' : 'B'), *(ofdmbase + i)));
+                       " [OFDM power base index rf(%c) = 0x%x]\n",
+                       i == 0 ? 'A' : 'B', *(ofdmbase + i));
        }
 
        for (i = 0; i < 2; i++) {
@@ -187,8 +187,8 @@ static void rtl92c_phy_get_power_base(struct ieee80211_hw *hw,
                *(mcsbase + i) = powerBase1;
 
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       (" [MCS power base index rf(%c) = 0x%x]\n",
-                        ((i == 0) ? 'A' : 'B'), *(mcsbase + i)));
+                       " [MCS power base index rf(%c) = 0x%x]\n",
+                       i == 0 ? 'A' : 'B', *(mcsbase + i));
        }
 }
 
@@ -215,9 +215,8 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                            + ((index < 2) ? powerBase0[rf] : powerBase1[rf]);
 
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("RTK better performance, "
-                                "writeVal(%c) = 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "RTK better performance, writeVal(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                case 1:
                        if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
@@ -225,9 +224,8 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                                            powerBase1[rf]);
 
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("Realtek regulatory, 40MHz, "
-                                        "writeVal(%c) = 0x%x\n",
-                                        ((rf == 0) ? 'A' : 'B'), writeVal));
+                                       "Realtek regulatory, 40MHz, writeVal(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B', writeVal);
                        } else {
                                if (rtlphy->pwrgroup_cnt == 1)
                                        chnlgroup = 0;
@@ -249,9 +247,8 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                                                              powerBase1[rf]);
 
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("Realtek regulatory, 20MHz, "
-                                        "writeVal(%c) = 0x%x\n",
-                                        ((rf == 0) ? 'A' : 'B'), writeVal));
+                                       "Realtek regulatory, 20MHz, writeVal(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B', writeVal);
                        }
                        break;
                case 2:
@@ -259,27 +256,24 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                            ((index < 2) ? powerBase0[rf] : powerBase1[rf]);
 
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Better regulatory, "
-                                "writeVal(%c) = 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "Better regulatory, writeVal(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                case 3:
                        chnlgroup = 0;
 
                        if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("customer's limit, 40MHz "
-                                        "rf(%c) = 0x%x\n",
-                                        ((rf == 0) ? 'A' : 'B'),
-                                        rtlefuse->pwrgroup_ht40[rf][channel -
-                                                                    1]));
+                                       "customer's limit, 40MHz rf(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B',
+                                       rtlefuse->pwrgroup_ht40[rf][channel -
+                                                                   1]);
                        } else {
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("customer's limit, 20MHz "
-                                        "rf(%c) = 0x%x\n",
-                                        ((rf == 0) ? 'A' : 'B'),
-                                        rtlefuse->pwrgroup_ht20[rf][channel -
-                                                                    1]));
+                                       "customer's limit, 20MHz rf(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B',
+                                       rtlefuse->pwrgroup_ht20[rf][channel -
+                                                                   1]);
                        }
                        for (i = 0; i < 4; i++) {
                                pwr_diff_limit[i] =
@@ -311,15 +305,15 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                            (pwr_diff_limit[1] << 8) | (pwr_diff_limit[0]);
 
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Customer's limit rf(%c) = 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), customer_limit));
+                               "Customer's limit rf(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', customer_limit);
 
                        writeVal = customer_limit +
                            ((index < 2) ? powerBase0[rf] : powerBase1[rf]);
 
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Customer, writeVal rf(%c)= 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "Customer, writeVal rf(%c)= 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                default:
                        chnlgroup = 0;
@@ -329,9 +323,8 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                            + ((index < 2) ? powerBase0[rf] : powerBase1[rf]);
 
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("RTK better performance, writeVal "
-                                "rf(%c) = 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "RTK better performance, writeVal rf(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                }
 
@@ -383,7 +376,7 @@ static void _rtl92c_write_ofdm_power_reg(struct ieee80211_hw *hw,
                rtl_set_bbreg(hw, regoffset, MASKDWORD, writeVal);
 
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       ("Set 0x%x = %08x\n", regoffset, writeVal));
+                       "Set 0x%x = %08x\n", regoffset, writeVal);
 
                if (((get_rf_type(rtlphy) == RF_2T2R) &&
                     (regoffset == RTXAGC_A_MCS15_MCS12 ||
@@ -512,12 +505,12 @@ static bool _rtl92ce_phy_rf6052_config_parafile(struct ieee80211_hw *hw)
 
                if (rtstatus != true) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                ("Radio[%d] Fail!!", rfpath));
+                                "Radio[%d] Fail!!\n", rfpath);
                        return false;
                }
 
        }
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("<---\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "<---\n");
        return rtstatus;
 }
index 39ff03685986a130b3304150bb0ab56a3ab42015..6c8d56efceae2fd8e76e8e128fea6e720241cf12 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 89ef6982ce50ea836c03975c3b39850f0b41aa5e..2c3b73366cd2e2928423c1f600d7106966bd34c4 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -27,9 +27,6 @@
  *
  *****************************************************************************/
 
-#include <linux/vmalloc.h>
-#include <linux/module.h>
-
 #include "../wifi.h"
 #include "../core.h"
 #include "../pci.h"
@@ -43,6 +40,8 @@
 #include "trx.h"
 #include "led.h"
 
+#include <linux/module.h>
+
 static void rtl92c_init_aspm_vars(struct ieee80211_hw *hw)
 {
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
@@ -92,9 +91,7 @@ int rtl92c_init_sw_vars(struct ieee80211_hw *hw)
        int err;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-       const struct firmware *firmware;
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-       char *fw_name = NULL;
 
        rtl8192ce_bt_reg_init(hw);
 
@@ -159,33 +156,27 @@ int rtl92c_init_sw_vars(struct ieee80211_hw *hw)
        rtlpriv->rtlhal.pfirmware = vzalloc(0x4000);
        if (!rtlpriv->rtlhal.pfirmware) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't alloc buffer for fw.\n"));
+                        "Can't alloc buffer for fw\n");
                return 1;
        }
 
        /* request fw */
        if (IS_VENDOR_UMC_A_CUT(rtlhal->version) &&
            !IS_92C_SERIAL(rtlhal->version))
-               fw_name = "rtlwifi/rtl8192cfwU.bin";
+               rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cfwU.bin";
        else if (IS_81xxC_VENDOR_UMC_B_CUT(rtlhal->version))
-               fw_name = "rtlwifi/rtl8192cfwU_B.bin";
-       else
-               fw_name = rtlpriv->cfg->fw_name;
-       err = request_firmware(&firmware, fw_name, rtlpriv->io.dev);
+               rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cfwU_B.bin";
+
+       rtlpriv->max_fw_size = 0x4000;
+       pr_info("Using firmware %s\n", rtlpriv->cfg->fw_name);
+       err = request_firmware_nowait(THIS_MODULE, 1, rtlpriv->cfg->fw_name,
+                                     rtlpriv->io.dev, GFP_KERNEL, hw,
+                                     rtl_fw_cb);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Failed to request firmware!\n"));
-               return 1;
-       }
-       if (firmware->size > 0x4000) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Firmware is too big!\n"));
-               release_firmware(firmware);
+                        "Failed to request firmware!\n");
                return 1;
        }
-       memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size);
-       rtlpriv->rtlhal.fwsize = firmware->size;
-       release_firmware(firmware);
 
        return 0;
 }
@@ -404,7 +395,7 @@ static int __init rtl92ce_module_init(void)
 
        ret = pci_register_driver(&rtl92ce_driver);
        if (ret)
-               RT_ASSERT(false, (": No device found\n"));
+               RT_ASSERT(false, "No device found\n");
 
        return ret;
 }
index b7dc3263e433171d8bc7687cca8af063630d7a9e..d2367a5d0cf5152ff9595328eac103b4923811a2 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index ba938b91aa6f3d9d506b6f67b984f42e41797ab8..752f943a84ae10bf7f2f466bcc35078fcf0bc5dc 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 3a6e8b6aeee0987df98c0d3ee37a050c7b635532..8b79161f71be25764db207edea9634127aab340f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 4fb5ae24dee07fc08819add09b6e7793298beff8..37b13636a7786c4a66fc7397116e389e2801a90f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -725,7 +725,7 @@ void rtl92ce_tx_fill_desc(struct ieee80211_hw *hw,
                if (ieee80211_is_data_qos(fc)) {
                        if (mac->rdg_en) {
                                RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-                                        ("Enable RDG function.\n"));
+                                        "Enable RDG function\n");
                                SET_TX_DESC_RDG_ENABLE(pdesc, 1);
                                SET_TX_DESC_HTC(pdesc, 1);
                        }
@@ -763,7 +763,7 @@ void rtl92ce_tx_fill_desc(struct ieee80211_hw *hw,
                SET_TX_DESC_BMC(pdesc, 1);
        }
 
-       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, ("\n"));
+       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
 }
 
 void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,
@@ -821,8 +821,7 @@ void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,
        }
 
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
-                     "H2C Tx Cmd Content\n",
-                     pdesc, TX_DESC_SIZE);
+                     "H2C Tx Cmd Content", pdesc, TX_DESC_SIZE);
 }
 
 void rtl92ce_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
@@ -837,8 +836,8 @@ void rtl92ce_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
                        SET_TX_DESC_NEXT_DESC_ADDRESS(pdesc, *(u32 *) val);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR txdesc :%d"
-                                         " not process\n", desc_name));
+                       RT_ASSERT(false, "ERR txdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        } else {
@@ -857,8 +856,8 @@ void rtl92ce_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
                        SET_RX_DESC_EOR(pdesc, 1);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR rxdesc :%d "
-                                         "not process\n", desc_name));
+                       RT_ASSERT(false, "ERR rxdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        }
@@ -877,8 +876,8 @@ u32 rtl92ce_get_desc(u8 *p_desc, bool istx, u8 desc_name)
                        ret = GET_TX_DESC_TX_BUFFER_ADDRESS(p_desc);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR txdesc :%d "
-                                         "not process\n", desc_name));
+                       RT_ASSERT(false, "ERR txdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        } else {
@@ -891,8 +890,8 @@ u32 rtl92ce_get_desc(u8 *p_desc, bool istx, u8 desc_name)
                        ret = GET_RX_DESC_PKT_LEN(pdesc);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR rxdesc :%d "
-                                         "not process\n", desc_name));
+                       RT_ASSERT(false, "ERR rxdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        }
index c8977a50ca36de7b2d52f3abe8f55d4abd004e07..efb9ab270403321aec894da08569ca97eba6d11d 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index d097efb1e717b850a753b6c65e2101f0128330f9..f916555e6311dafef2c3821222d8d8bb54e8a916 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index f311baee668dfe6a7ff4b6ee1e47cc833a9e37eb..6fd39eaf361ee2bf5cdbcf70fc45804c6aa4e144 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -52,7 +52,7 @@ void rtl92cu_dm_dynamic_txpower(struct ieee80211_hw *hw)
        if ((mac->link_state < MAC80211_LINKED) &&
            (rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb == 0)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("Not connected to any\n"));
+                        "Not connected to any\n");
 
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL;
 
@@ -65,28 +65,28 @@ void rtl92cu_dm_dynamic_txpower(struct ieee80211_hw *hw)
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("AP Client PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "AP Client PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                } else {
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.undecorated_smoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("STA Default Port PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "STA Default Port PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                }
        } else {
                undecorated_smoothed_pwdb =
                    rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
 
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("AP Ext Port PWDB = 0x%lx\n",
-                         undecorated_smoothed_pwdb));
+                        "AP Ext Port PWDB = 0x%lx\n",
+                        undecorated_smoothed_pwdb);
        }
 
        if (undecorated_smoothed_pwdb >= TX_POWER_NEAR_FIELD_THRESH_LVL2) {
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n"));
+                        "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n");
        } else if ((undecorated_smoothed_pwdb <
                    (TX_POWER_NEAR_FIELD_THRESH_LVL2 - 3)) &&
                   (undecorated_smoothed_pwdb >=
@@ -94,18 +94,18 @@ void rtl92cu_dm_dynamic_txpower(struct ieee80211_hw *hw)
 
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n"));
+                        "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n");
        } else if (undecorated_smoothed_pwdb <
                   (TX_POWER_NEAR_FIELD_THRESH_LVL1 - 5)) {
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL;
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("TXHIGHPWRLEVEL_NORMAL\n"));
+                        "TXHIGHPWRLEVEL_NORMAL\n");
        }
 
        if ((rtlpriv->dm.dynamic_txhighpower_lvl != rtlpriv->dm.last_dtp_lvl)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("PHY_SetTxPowerLevel8192S() Channel = %d\n",
-                         rtlphy->current_channel));
+                        "PHY_SetTxPowerLevel8192S() Channel = %d\n",
+                        rtlphy->current_channel);
                rtl92c_phy_set_txpower_level(hw, rtlphy->current_channel);
        }
 
index 7f966c666b5adbce2ced9a094fd93a1deb3c6edb..d947e7d350bbc146d7b56b1c463c9dce829b5dce 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 124cf633861c3d6f061e44af9083f95a0a12b395..0c74d4f2eeb43c86ed59f9309b3170bd3aaed7a1 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -27,8 +27,6 @@
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
 #include "../wifi.h"
 #include "../efuse.h"
 #include "../base.h"
@@ -162,24 +160,24 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM CCK Area(%d) = 0x%x\n", rf_path,
-                                i, rtlefuse->
-                                eeprom_chnlarea_txpwr_cck[rf_path][i]));
+                               "RF(%d) EEPROM CCK Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->
+                               eeprom_chnlarea_txpwr_cck[rf_path][i]);
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM HT40 1S Area(%d) = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->
-                                eeprom_chnlarea_txpwr_ht40_1s[rf_path][i]));
+                               "RF(%d) EEPROM HT40 1S Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->
+                               eeprom_chnlarea_txpwr_ht40_1s[rf_path][i]);
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM HT40 2S Diff Area(%d) = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->
-                                eeprom_chnlarea_txpwr_ht40_2sdiif[rf_path]
-                                [i]));
+                               "RF(%d) EEPROM HT40 2S Diff Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->
+                               eeprom_chnlarea_txpwr_ht40_2sdiif[rf_path][i]);
        for (rf_path = 0; rf_path < 2; rf_path++) {
                for (i = 0; i < 14; i++) {
                        index = _rtl92c_get_chnl_group((u8) i);
@@ -205,11 +203,10 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
                }
                for (i = 0; i < 14; i++) {
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = "
-                                "[0x%x / 0x%x / 0x%x]\n", rf_path, i,
-                                rtlefuse->txpwrlevel_cck[rf_path][i],
-                                rtlefuse->txpwrlevel_ht40_1s[rf_path][i],
-                                rtlefuse->txpwrlevel_ht40_2s[rf_path][i]));
+                               "RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n", rf_path, i,
+                               rtlefuse->txpwrlevel_cck[rf_path][i],
+                               rtlefuse->txpwrlevel_ht40_1s[rf_path][i],
+                               rtlefuse->txpwrlevel_ht40_2s[rf_path][i]);
                }
        }
        for (i = 0; i < 3; i++) {
@@ -242,13 +239,13 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
                                      & 0xf0) >> 4);
                        }
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF-%d pwrgroup_ht20[%d] = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->pwrgroup_ht20[rf_path][i]));
+                               "RF-%d pwrgroup_ht20[%d] = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->pwrgroup_ht20[rf_path][i]);
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF-%d pwrgroup_ht40[%d] = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->pwrgroup_ht40[rf_path][i]));
+                               "RF-%d pwrgroup_ht40[%d] = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->pwrgroup_ht40[rf_path][i]);
                }
        }
        for (i = 0; i < 14; i++) {
@@ -277,26 +274,26 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
            rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][7];
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]));
+                       "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]));
+                       "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]));
+                       "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-B Legacy to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]));
+                       "RF-B Legacy to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]);
        if (!autoload_fail)
                rtlefuse->eeprom_regulatory = (hwinfo[RF_OPTION1] & 0x7);
        else
                rtlefuse->eeprom_regulatory = 0;
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-               ("eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory));
+               "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
        if (!autoload_fail) {
                rtlefuse->eeprom_tssi[RF90_PATH_A] = hwinfo[EEPROM_TSSI_A];
                rtlefuse->eeprom_tssi[RF90_PATH_B] = hwinfo[EEPROM_TSSI_B];
@@ -305,9 +302,9 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
                rtlefuse->eeprom_tssi[RF90_PATH_B] = EEPROM_DEFAULT_TSSI;
        }
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-               ("TSSI_A = 0x%x, TSSI_B = 0x%x\n",
-                rtlefuse->eeprom_tssi[RF90_PATH_A],
-                rtlefuse->eeprom_tssi[RF90_PATH_B]));
+               "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
+               rtlefuse->eeprom_tssi[RF90_PATH_A],
+               rtlefuse->eeprom_tssi[RF90_PATH_B]);
        if (!autoload_fail)
                tempval = hwinfo[EEPROM_THERMAL_METER];
        else
@@ -320,7 +317,7 @@ static void _rtl92cu_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
                rtlefuse->apk_thermalmeterignore = true;
        rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter;
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-               ("thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter));
+               "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
 }
 
 static void _rtl92cu_read_board_type(struct ieee80211_hw *hw, u8 *contents)
@@ -340,144 +337,8 @@ static void _rtl92cu_read_board_type(struct ieee80211_hw *hw, u8 *contents)
        if (IS_HIGHT_PA(rtlefuse->board_type))
                rtlefuse->external_pa = 1;
        pr_info("Board Type %x\n", rtlefuse->board_type);
-
-#ifdef CONFIG_ANTENNA_DIVERSITY
-       /* Antenna Diversity setting. */
-       if (registry_par->antdiv_cfg == 2) /* 2: From Efuse */
-               rtl_efuse->antenna_cfg = (contents[EEPROM_RF_OPT1]&0x18)>>3;
-       else
-               rtl_efuse->antenna_cfg = registry_par->antdiv_cfg; /* 0:OFF, */
-
-       pr_info("Antenna Config %x\n", rtl_efuse->antenna_cfg);
-#endif
-}
-
-#ifdef CONFIG_BT_COEXIST
-static void _update_bt_param(_adapter *padapter)
-{
-       struct btcoexist_priv    *pbtpriv = &(padapter->halpriv.bt_coexist);
-       struct registry_priv    *registry_par = &padapter->registrypriv;
-       if (2 != registry_par->bt_iso) {
-               /* 0:Low, 1:High, 2:From Efuse */
-               pbtpriv->BT_Ant_isolation = registry_par->bt_iso;
-       }
-       if (registry_par->bt_sco == 1) {
-               /* 0:Idle, 1:None-SCO, 2:SCO, 3:From Counter, 4.Busy,
-                * 5.OtherBusy */
-               pbtpriv->BT_Service = BT_OtherAction;
-       } else if (registry_par->bt_sco == 2) {
-               pbtpriv->BT_Service = BT_SCO;
-       } else if (registry_par->bt_sco == 4) {
-               pbtpriv->BT_Service = BT_Busy;
-       } else if (registry_par->bt_sco == 5) {
-               pbtpriv->BT_Service = BT_OtherBusy;
-       } else {
-               pbtpriv->BT_Service = BT_Idle;
-       }
-       pbtpriv->BT_Ampdu = registry_par->bt_ampdu;
-       pbtpriv->bCOBT = _TRUE;
-       pbtpriv->BtEdcaUL = 0;
-       pbtpriv->BtEdcaDL = 0;
-       pbtpriv->BtRssiState = 0xff;
-       pbtpriv->bInitSet = _FALSE;
-       pbtpriv->bBTBusyTraffic = _FALSE;
-       pbtpriv->bBTTrafficModeSet = _FALSE;
-       pbtpriv->bBTNonTrafficModeSet = _FALSE;
-       pbtpriv->CurrentState = 0;
-       pbtpriv->PreviousState = 0;
-       pr_info("BT Coexistance = %s\n",
-               (pbtpriv->BT_Coexist == _TRUE) ? "enable" : "disable");
-       if (pbtpriv->BT_Coexist) {
-               if (pbtpriv->BT_Ant_Num == Ant_x2)
-                       pr_info("BlueTooth BT_Ant_Num = Antx2\n");
-               else if (pbtpriv->BT_Ant_Num == Ant_x1)
-                       pr_info("BlueTooth BT_Ant_Num = Antx1\n");
-               switch (pbtpriv->BT_CoexistType) {
-               case BT_2Wire:
-                       pr_info("BlueTooth BT_CoexistType = BT_2Wire\n");
-                       break;
-               case BT_ISSC_3Wire:
-                       pr_info("BlueTooth BT_CoexistType = BT_ISSC_3Wire\n");
-                       break;
-               case BT_Accel:
-                       pr_info("BlueTooth BT_CoexistType = BT_Accel\n");
-                       break;
-               case BT_CSR_BC4:
-                       pr_info("BlueTooth BT_CoexistType = BT_CSR_BC4\n");
-                       break;
-               case BT_CSR_BC8:
-                       pr_info("BlueTooth BT_CoexistType = BT_CSR_BC8\n");
-                       break;
-               case BT_RTL8756:
-                       pr_info("BlueTooth BT_CoexistType = BT_RTL8756\n");
-                       break;
-               default:
-                       pr_info("BlueTooth BT_CoexistType = Unknown\n");
-                       break;
-               }
-               pr_info("BlueTooth BT_Ant_isolation = %d\n",
-                       pbtpriv->BT_Ant_isolation);
-               switch (pbtpriv->BT_Service) {
-               case BT_OtherAction:
-                       pr_info("BlueTooth BT_Service = BT_OtherAction\n");
-                       break;
-               case BT_SCO:
-                       pr_info("BlueTooth BT_Service = BT_SCO\n");
-                       break;
-               case BT_Busy:
-                       pr_info("BlueTooth BT_Service = BT_Busy\n");
-                       break;
-               case BT_OtherBusy:
-                       pr_info("BlueTooth BT_Service = BT_OtherBusy\n");
-                       break;
-               default:
-                       pr_info("BlueTooth BT_Service = BT_Idle\n");
-                       break;
-               }
-               pr_info("BT_RadioSharedType = 0x%x\n",
-                       pbtpriv->BT_RadioSharedType);
-       }
 }
 
-#define GET_BT_COEXIST(priv) (&priv->bt_coexist)
-
-static void _rtl92cu_read_bluetooth_coexistInfo(struct ieee80211_hw *hw,
-                                               u8 *contents,
-                                               bool bautoloadfailed);
-{
-       HAL_DATA_TYPE   *pHalData = GET_HAL_DATA(Adapter);
-       bool isNormal = IS_NORMAL_CHIP(pHalData->VersionID);
-       struct btcoexist_priv    *pbtpriv = &pHalData->bt_coexist;
-       u8      rf_opt4;
-
-       _rtw_memset(pbtpriv, 0, sizeof(struct btcoexist_priv));
-       if (AutoloadFail) {
-               pbtpriv->BT_Coexist = _FALSE;
-               pbtpriv->BT_CoexistType = BT_2Wire;
-               pbtpriv->BT_Ant_Num = Ant_x2;
-               pbtpriv->BT_Ant_isolation = 0;
-               pbtpriv->BT_RadioSharedType = BT_Radio_Shared;
-               return;
-       }
-       if (isNormal) {
-               if (pHalData->BoardType == BOARD_USB_COMBO)
-                       pbtpriv->BT_Coexist = _TRUE;
-               else
-                       pbtpriv->BT_Coexist = ((PROMContent[EEPROM_RF_OPT3] &
-                                             0x20) >> 5); /* bit[5] */
-               rf_opt4 = PROMContent[EEPROM_RF_OPT4];
-               pbtpriv->BT_CoexistType = ((rf_opt4&0xe)>>1); /* bit [3:1] */
-               pbtpriv->BT_Ant_Num = (rf_opt4&0x1); /* bit [0] */
-               pbtpriv->BT_Ant_isolation = ((rf_opt4&0x10)>>4); /* bit [4] */
-               pbtpriv->BT_RadioSharedType = ((rf_opt4&0x20)>>5); /* bit [5] */
-       } else {
-               pbtpriv->BT_Coexist = (PROMContent[EEPROM_RF_OPT4] >> 4) ?
-                                      _TRUE : _FALSE;
-       }
-       _update_bt_param(Adapter);
-}
-#endif
-
 static void _rtl92cu_read_adapter_info(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
@@ -494,17 +355,17 @@ static void _rtl92cu_read_adapter_info(struct ieee80211_hw *hw)
                       HWSET_MAX_SIZE);
        } else if (rtlefuse->epromtype == EEPROM_93C46) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("RTL819X Not boot from eeprom, check it !!"));
+                        "RTL819X Not boot from eeprom, check it !!\n");
        }
-       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_LOUD, ("MAP\n"),
+       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_LOUD, "MAP",
                      hwinfo, HWSET_MAX_SIZE);
        eeprom_id = le16_to_cpu(*((__le16 *)&hwinfo[0]));
        if (eeprom_id != RTL8190_EEPROM_ID) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("EEPROM ID(%#x) is invalid!!\n", eeprom_id));
+                        "EEPROM ID(%#x) is invalid!!\n", eeprom_id);
                rtlefuse->autoload_failflag = true;
        } else {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
                rtlefuse->autoload_failflag = false;
        }
        if (rtlefuse->autoload_failflag)
@@ -518,16 +379,15 @@ static void _rtl92cu_read_adapter_info(struct ieee80211_hw *hw)
                                           rtlefuse->autoload_failflag, hwinfo);
        rtlefuse->eeprom_vid = le16_to_cpu(*(__le16 *)&hwinfo[EEPROM_VID]);
        rtlefuse->eeprom_did = le16_to_cpu(*(__le16 *)&hwinfo[EEPROM_DID]);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                (" VID = 0x%02x PID = 0x%02x\n",
-                rtlefuse->eeprom_vid, rtlefuse->eeprom_did));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, " VID = 0x%02x PID = 0x%02x\n",
+                rtlefuse->eeprom_vid, rtlefuse->eeprom_did);
        rtlefuse->eeprom_channelplan = *(u8 *)&hwinfo[EEPROM_CHANNELPLAN];
        rtlefuse->eeprom_version =
                         le16_to_cpu(*(__le16 *)&hwinfo[EEPROM_VERSION]);
        rtlefuse->txpwr_fromeprom = true;
        rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMER_ID];
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM Customer ID: 0x%2x\n",
+                rtlefuse->eeprom_oemid);
        if (rtlhal->oem_id == RT_CID_DEFAULT) {
                switch (rtlefuse->eeprom_oemid) {
                case EEPROM_CID_DEFAULT:
@@ -554,10 +414,6 @@ static void _rtl92cu_read_adapter_info(struct ieee80211_hw *hw)
                }
        }
        _rtl92cu_read_board_type(hw, hwinfo);
-#ifdef CONFIG_BT_COEXIST
-       _rtl92cu_read_bluetooth_coexistInfo(hw, hwinfo,
-                                           rtlefuse->autoload_failflag);
-#endif
 }
 
 static void _rtl92cu_hal_customized_behavior(struct ieee80211_hw *hw)
@@ -579,8 +435,8 @@ static void _rtl92cu_hal_customized_behavior(struct ieee80211_hw *hw)
        default:
                break;
        }
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("RT Customized ID: 0x%02X\n", rtlhal->oem_id));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "RT Customized ID: 0x%02X\n",
+                rtlhal->oem_id);
 }
 
 void rtl92cu_read_eeprom_info(struct ieee80211_hw *hw)
@@ -596,11 +452,11 @@ void rtl92cu_read_eeprom_info(struct ieee80211_hw *hw)
        tmp_u1b = rtl_read_byte(rtlpriv, REG_9346CR);
        rtlefuse->epromtype = (tmp_u1b & BOOT_FROM_EEPROM) ?
                               EEPROM_93C46 : EEPROM_BOOT_EFUSE;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Boot from %s\n",
-                (tmp_u1b & BOOT_FROM_EEPROM) ? "EERROM" : "EFUSE"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from %s\n",
+                tmp_u1b & BOOT_FROM_EEPROM ? "EERROM" : "EFUSE");
        rtlefuse->autoload_failflag = (tmp_u1b & EEPROM_EN) ? false : true;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload %s\n",
-                (tmp_u1b & EEPROM_EN) ? "OK!!" : "ERR!!"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload %s\n",
+                tmp_u1b & EEPROM_EN ? "OK!!" : "ERR!!");
        _rtl92cu_read_adapter_info(hw);
        _rtl92cu_hal_customized_behavior(hw);
        return;
@@ -618,13 +474,12 @@ static int _rtl92cu_init_power_on(struct ieee80211_hw *hw)
        do {
                if (rtl_read_byte(rtlpriv, REG_APS_FSMCO) & PFM_ALDN) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                                ("Autoload Done!\n"));
+                                "Autoload Done!\n");
                        break;
                }
                if (pollingCount++ > 100) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                                ("Failed to polling REG_APS_FSMCO[PFM_ALDN]"
-                                " done!\n"));
+                                "Failed to polling REG_APS_FSMCO[PFM_ALDN] done!\n");
                        return -ENODEV;
                }
        } while (true);
@@ -639,8 +494,8 @@ static int _rtl92cu_init_power_on(struct ieee80211_hw *hw)
                value8 |= LDV12_EN;
                rtl_write_byte(rtlpriv, REG_LDOV12D_CTRL, value8);
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        (" power-on :REG_LDOV12D_CTRL Reg0x21:0x%02x.\n",
-                        value8));
+                        " power-on :REG_LDOV12D_CTRL Reg0x21:0x%02x\n",
+                        value8);
                udelay(100);
                value8 = rtl_read_byte(rtlpriv, REG_SYS_ISO_CTRL);
                value8 &= ~ISO_MD2PP;
@@ -658,8 +513,7 @@ static int _rtl92cu_init_power_on(struct ieee80211_hw *hw)
                }
                if (pollingCount++ > 100) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                                ("Failed to polling REG_APS_FSMCO[APFM_ONMAC]"
-                                " done!\n"));
+                                "Failed to polling REG_APS_FSMCO[APFM_ONMAC] done!\n");
                        return -ENODEV;
                }
        } while (true);
@@ -877,8 +731,8 @@ static void _rtl92cu_init_chipN_three_out_ep_priority(struct ieee80211_hw *hw,
                hiQ     = QUEUE_HIGH;
        }
        _rtl92c_init_chipN_reg_priority(hw, beQ, bkQ, viQ, voQ, mgtQ, hiQ);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                ("Tx queue select :0x%02x..\n", queue_sel));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, "Tx queue select :0x%02x..\n",
+                queue_sel);
 }
 
 static void _rtl92cu_init_chipN_queue_priority(struct ieee80211_hw *hw,
@@ -937,8 +791,8 @@ static void _rtl92cu_init_chipT_queue_priority(struct ieee80211_hw *hw,
                break;
        }
        rtl_write_byte(rtlpriv, (REG_TRXDMA_CTRL+1), hq_sele);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                ("Tx queue select :0x%02x..\n", hq_sele));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, "Tx queue select :0x%02x..\n",
+                hq_sele);
 }
 
 static void _rtl92cu_init_queue_priority(struct ieee80211_hw *hw,
@@ -998,7 +852,7 @@ static int _rtl92cu_init_mac(struct ieee80211_hw *hw)
 
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                       ("Failed to init power on!\n"));
+                        "Failed to init power on!\n");
                return err;
        }
        if (!wmm_enable) {
@@ -1010,7 +864,7 @@ static int _rtl92cu_init_mac(struct ieee80211_hw *hw)
        }
        if (false == rtl92c_init_llt_table(hw, boundary)) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                       ("Failed to init LLT Table!\n"));
+                        "Failed to init LLT Table!\n");
                return -EINVAL;
        }
        _rtl92cu_init_queue_reserved_page(hw, wmm_enable, out_ep_nums,
@@ -1043,12 +897,12 @@ void rtl92cu_enable_hw_security_config(struct ieee80211_hw *hw)
        struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
-                 rtlpriv->sec.pairwise_enc_algorithm,
-                 rtlpriv->sec.group_enc_algorithm));
+                "PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
+                rtlpriv->sec.pairwise_enc_algorithm,
+                rtlpriv->sec.group_enc_algorithm);
        if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                        ("not open sw encryption\n"));
+                        "not open sw encryption\n");
                return;
        }
        sec_reg_value = SCR_TxEncEnable | SCR_RxDecEnable;
@@ -1059,8 +913,8 @@ void rtl92cu_enable_hw_security_config(struct ieee80211_hw *hw)
        if (IS_NORMAL_CHIP(rtlhal->version))
                sec_reg_value |= (SCR_RXBCUSEDK | SCR_TXBCUSEDK);
        rtl_write_byte(rtlpriv, REG_CR + 1, 0x02);
-       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                ("The SECR-value %x\n", sec_reg_value));
+       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "The SECR-value %x\n",
+                sec_reg_value);
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_WPA_CONFIG, &sec_reg_value);
 }
 
@@ -1111,34 +965,6 @@ static void _InitPABias(struct ieee80211_hw *hw)
        }
 }
 
-static void _InitAntenna_Selection(struct ieee80211_hw *hw)
-{
-#ifdef CONFIG_ANTENNA_DIVERSITY
-       struct rtl_priv *rtlpriv = rtl_priv(hw);
-       struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-       struct rtl_phy *rtlphy = &(rtlpriv->phy);
-
-       if (pHalData->AntDivCfg == 0)
-               return;
-
-       if (rtlphy->rf_type == RF_1T1R) {
-               rtl_write_dword(rtlpriv, REG_LEDCFG0,
-                               rtl_read_dword(rtlpriv,
-                               REG_LEDCFG0)|BIT(23));
-               rtl_set_bbreg(hw, rFPGA0_XAB_RFPARAMETER, BIT(13), 0x01);
-               if (rtl_get_bbreg(hw, RFPGA0_XA_RFINTERFACEOE, 0x300) ==
-                   Antenna_A)
-                       pHalData->CurAntenna = Antenna_A;
-               else
-                       pHalData->CurAntenna = Antenna_B;
-       }
-#endif
-}
-
-static void _dump_registers(struct ieee80211_hw *hw)
-{
-}
-
 static void _update_mac_setting(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
@@ -1163,18 +989,15 @@ int rtl92cu_hw_init(struct ieee80211_hw *hw)
        rtlhal->hw_type = HARDWARE_TYPE_RTL8192CU;
        err = _rtl92cu_init_mac(hw);
        if (err) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("init mac failed!\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "init mac failed!\n");
                return err;
        }
        err = rtl92c_download_fw(hw);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Failed to download FW. Init HW without FW now..\n"));
+                        "Failed to download FW. Init HW without FW now..\n");
                err = 1;
-               rtlhal->fw_ready = false;
                return err;
-       } else {
-               rtlhal->fw_ready = true;
        }
        rtlhal->last_hmeboxnum = 0; /* h2c */
        _rtl92cu_phy_param_tab_init(hw);
@@ -1209,10 +1032,8 @@ int rtl92cu_hw_init(struct ieee80211_hw *hw)
        }
        _rtl92cu_hw_configure(hw);
        _InitPABias(hw);
-       _InitAntenna_Selection(hw);
        _update_mac_setting(hw);
        rtl92c_dm_init(hw);
-       _dump_registers(hw);
        return err;
 }
 
@@ -1270,24 +1091,21 @@ static void  _ResetDigitalProcedure1(struct ieee80211_hw *hw, bool bWithoutHWSM)
                if (rtl_read_byte(rtlpriv, REG_MCUFWDL) & BIT(1)) {
                        /* reset MCU ready status */
                        rtl_write_byte(rtlpriv, REG_MCUFWDL, 0);
-                       if (rtlhal->fw_ready) {
-                               /* 8051 reset by self */
-                               rtl_write_byte(rtlpriv, REG_HMETFR+3, 0x20);
-                               while ((retry_cnts++ < 100) &&
-                                      (FEN_CPUEN & rtl_read_word(rtlpriv,
-                                      REG_SYS_FUNC_EN))) {
-                                       udelay(50);
-                               }
-                               if (retry_cnts >= 100) {
-                                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                               ("#####=> 8051 reset failed!.."
-                                               ".......................\n"););
-                                       /* if 8051 reset fail, reset MAC. */
-                                       rtl_write_byte(rtlpriv,
-                                                      REG_SYS_FUNC_EN + 1,
-                                                      0x50);
-                                       udelay(100);
-                               }
+                       /* 8051 reset by self */
+                       rtl_write_byte(rtlpriv, REG_HMETFR+3, 0x20);
+                       while ((retry_cnts++ < 100) &&
+                              (FEN_CPUEN & rtl_read_word(rtlpriv,
+                              REG_SYS_FUNC_EN))) {
+                               udelay(50);
+                       }
+                       if (retry_cnts >= 100) {
+                               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                                        "#####=> 8051 reset failed!.........................\n");
+                               /* if 8051 reset fail, reset MAC. */
+                               rtl_write_byte(rtlpriv,
+                                              REG_SYS_FUNC_EN + 1,
+                                              0x50);
+                               udelay(100);
                        }
                }
                /* Reset MAC and Enable 8051 */
@@ -1495,35 +1313,36 @@ static int _rtl92cu_set_media_status(struct ieee80211_hw *hw,
                _rtl92cu_resume_tx_beacon(hw);
                _rtl92cu_disable_bcn_sub_func(hw);
        } else {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, ("Set HW_VAR_MEDIA_"
-                        "STATUS:No such media status(%x).\n", type));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
+                        "Set HW_VAR_MEDIA_STATUS:No such media status(%x)\n",
+                        type);
        }
        switch (type) {
        case NL80211_IFTYPE_UNSPECIFIED:
                bt_msr |= MSR_NOLINK;
                ledaction = LED_CTL_LINK;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to NO LINK!\n"));
+                        "Set Network type to NO LINK!\n");
                break;
        case NL80211_IFTYPE_ADHOC:
                bt_msr |= MSR_ADHOC;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to Ad Hoc!\n"));
+                        "Set Network type to Ad Hoc!\n");
                break;
        case NL80211_IFTYPE_STATION:
                bt_msr |= MSR_INFRA;
                ledaction = LED_CTL_LINK;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to STA!\n"));
+                        "Set Network type to STA!\n");
                break;
        case NL80211_IFTYPE_AP:
                bt_msr |= MSR_AP;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to AP!\n"));
+                        "Set Network type to AP!\n");
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Network type %d not support!\n", type));
+                        "Network type %d not supported!\n", type);
                goto error_out;
        }
        rtl_write_byte(rtlpriv, (MSR), bt_msr);
@@ -1684,8 +1503,8 @@ void rtl92cu_set_beacon_related_registers(struct ieee80211_hw *hw)
        value32 |= TSFRST;
        rtl_write_dword(rtlpriv, REG_TCR, value32);
        RT_TRACE(rtlpriv, COMP_INIT|COMP_BEACON, DBG_LOUD,
-                ("SetBeaconRelatedRegisters8192CUsb(): Set TCR(%x)\n",
-                value32));
+                "SetBeaconRelatedRegisters8192CUsb(): Set TCR(%x)\n",
+                value32);
        /* TODO: Modify later (Find the right parameters)
         * NOTE: Fix test chip's bug (about contention windows's randomness) */
        if ((mac->opmode == NL80211_IFTYPE_ADHOC) ||
@@ -1702,8 +1521,8 @@ void rtl92cu_set_beacon_interval(struct ieee80211_hw *hw)
        struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
        u16 bcn_interval = mac->beacon_interval;
 
-       RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-                ("beacon_interval:%d\n", bcn_interval));
+       RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG, "beacon_interval:%d\n",
+                bcn_interval);
        rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval);
 }
 
@@ -1767,7 +1586,7 @@ void rtl92cu_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
 }
@@ -1827,8 +1646,7 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        rtl_write_byte(rtlpriv, REG_MAC_SPEC_SIFS + 1, val[0]);
                        rtl_write_byte(rtlpriv, REG_R2T_SIFS+1, val[0]);
                        rtl_write_byte(rtlpriv, REG_T2T_SIFS+1, val[0]);
-                       RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("HW_VAR_SIFS\n"));
+                       RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD, "HW_VAR_SIFS\n");
                        break;
                }
        case HW_VAR_SLOT_TIME:{
@@ -1837,7 +1655,7 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
 
                        rtl_write_byte(rtlpriv, REG_SLOT, val[0]);
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("HW_VAR_SLOT_TIME %x\n", val[0]));
+                                "HW_VAR_SLOT_TIME %x\n", val[0]);
                        if (QOS_MODE) {
                                for (e_aci = 0; e_aci < AC_MAX; e_aci++)
                                        rtlpriv->cfg->ops->set_hw_reg(hw,
@@ -1901,8 +1719,8 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                                     min_spacing_to_set);
                                *val = min_spacing_to_set;
                                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                       ("Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
-                                       mac->min_space_cfg));
+                                        "Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
+                                        mac->min_space_cfg);
                                rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE,
                                               mac->min_space_cfg);
                        }
@@ -1916,8 +1734,8 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        mac->min_space_cfg &= 0x07;
                        mac->min_space_cfg |= (density_to_set << 3);
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("Set HW_VAR_SHORTGI_DENSITY: %#x\n",
-                                 mac->min_space_cfg));
+                                "Set HW_VAR_SHORTGI_DENSITY: %#x\n",
+                                mac->min_space_cfg);
                        rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE,
                                       mac->min_space_cfg);
                        break;
@@ -1950,8 +1768,8 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                                       p_regtoset[index]);
                                }
                                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                        ("Set HW_VAR_AMPDU_FACTOR: %#x\n",
-                                         factor_toset));
+                                        "Set HW_VAR_AMPDU_FACTOR: %#x\n",
+                                        factor_toset);
                        }
                        break;
                }
@@ -1969,8 +1787,8 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                         AC_PARAM_ECW_MAX_OFFSET);
                        u4b_ac_param |= (u32) tx_op << AC_PARAM_TXOP_OFFSET;
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("queue:%x, ac_param:%x\n", e_aci,
-                                 u4b_ac_param));
+                                "queue:%x, ac_param:%x\n",
+                                e_aci, u4b_ac_param);
                        switch (e_aci) {
                        case AC1_BK:
                                rtl_write_dword(rtlpriv, REG_EDCA_BK_PARAM,
@@ -1989,8 +1807,9 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                                u4b_ac_param);
                                break;
                        default:
-                               RT_ASSERT(false, ("SetHwReg8185(): invalid"
-                                         " aci: %d !\n", e_aci));
+                               RT_ASSERT(false,
+                                         "SetHwReg8185(): invalid aci: %d !\n",
+                                         e_aci);
                                break;
                        }
                        if (rtlusb->acm_method != eAcmWay2_SW)
@@ -2020,8 +1839,8 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                        break;
                                default:
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                                ("HW_VAR_ACM_CTRL acm set "
-                                                 "failed: eACI is %d\n", acm));
+                                                "HW_VAR_ACM_CTRL acm set failed: eACI is %d\n",
+                                                acm);
                                        break;
                                }
                        } else {
@@ -2037,13 +1856,13 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                        break;
                                default:
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                                ("switch case not process\n"));
+                                                "switch case not processed\n");
                                        break;
                                }
                        }
                        RT_TRACE(rtlpriv, COMP_QOS, DBG_TRACE,
-                                ("SetHwReg8190pci(): [HW_VAR_ACM_CTRL] "
-                                 "Write 0x%X\n", acm_ctrl));
+                                "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n",
+                                acm_ctrl);
                        rtl_write_byte(rtlpriv, REG_ACMHWCTRL, acm_ctrl);
                        break;
                }
@@ -2051,7 +1870,7 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        rtl_write_dword(rtlpriv, REG_RCR, ((u32 *) (val))[0]);
                        mac->rx_conf = ((u32 *) (val))[0];
                        RT_TRACE(rtlpriv, COMP_RECV, DBG_DMESG,
-                                ("### Set RCR(0x%08x) ###\n", mac->rx_conf));
+                                "### Set RCR(0x%08x) ###\n", mac->rx_conf);
                        break;
                }
        case HW_VAR_RETRY_LIMIT:{
@@ -2060,8 +1879,9 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        rtl_write_word(rtlpriv, REG_RL,
                                       retry_limit << RETRY_LIMIT_SHORT_SHIFT |
                                       retry_limit << RETRY_LIMIT_LONG_SHIFT);
-                       RT_TRACE(rtlpriv, COMP_MLME, DBG_DMESG, ("Set HW_VAR_R"
-                                "ETRY_LIMIT(0x%08x)\n", retry_limit));
+                       RT_TRACE(rtlpriv, COMP_MLME, DBG_DMESG,
+                                "Set HW_VAR_RETRY_LIMIT(0x%08x)\n",
+                                retry_limit);
                        break;
                }
        case HW_VAR_DUAL_TSF_RST:
@@ -2165,8 +1985,8 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                rtl_write_word(rtlpriv, REG_RXFLTMAP2, *(u16 *)val);
                break;
        default:
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("switch case "
-                                                       "not process\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                        "switch case not processed\n");
                break;
        }
 }
@@ -2239,8 +2059,8 @@ void rtl92cu_update_hal_rate_table(struct ieee80211_hw *hw,
                               (shortgi_rate << 4) | (shortgi_rate);
        }
        rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value);
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, ("%x\n", rtl_read_dword(rtlpriv,
-                REG_ARFR0)));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, "%x\n",
+                rtl_read_dword(rtlpriv, REG_ARFR0));
 }
 
 void rtl92cu_update_hal_rate_mask(struct ieee80211_hw *hw, u8 rssi_level)
@@ -2344,17 +2164,16 @@ void rtl92cu_update_hal_rate_mask(struct ieee80211_hw *hw, u8 rssi_level)
                        ratr_bitmap &= 0x0f0ff0ff;
                break;
        }
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, ("ratr_bitmap :%x\n",
-                ratr_bitmap));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, "ratr_bitmap :%x\n",
+                ratr_bitmap);
        *(u32 *)&rate_mask = ((ratr_bitmap & 0x0fffffff) |
                                      ratr_index << 28);
        rate_mask[4] = macid | (shortgi ? 0x20 : 0x00) | 0x80;
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, ("Rate_index:%x, "
-                                               "ratr_val:%x, %x:%x:%x:%x:%x\n",
-                                               ratr_index, ratr_bitmap,
-                                               rate_mask[0], rate_mask[1],
-                                               rate_mask[2], rate_mask[3],
-                                               rate_mask[4]));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
+                "Rate_index:%x, ratr_val:%x, %x:%x:%x:%x:%x\n",
+                ratr_index, ratr_bitmap,
+                rate_mask[0], rate_mask[1], rate_mask[2], rate_mask[3],
+                rate_mask[4]);
        rtl92c_fill_h2c_cmd(hw, H2C_RA_MASK, 5, rate_mask);
 }
 
@@ -2404,7 +2223,7 @@ bool rtl92cu_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 * valid)
                        e_rfpowerstate_toset = (u1tmp & BIT(7)) ?
                                               ERFOFF : ERFON;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                                ("pwrdown, 0x5c(BIT7)=%02x\n", u1tmp));
+                                "pwrdown, 0x5c(BIT7)=%02x\n", u1tmp);
                } else {
                        rtl_write_byte(rtlpriv, REG_MAC_PINMUX_CFG,
                                       rtl_read_byte(rtlpriv,
@@ -2413,27 +2232,26 @@ bool rtl92cu_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 * valid)
                        e_rfpowerstate_toset  = (u1tmp & BIT(3)) ?
                                                 ERFON : ERFOFF;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                               ("GPIO_IN=%02x\n", u1tmp));
+                                "GPIO_IN=%02x\n", u1tmp);
                }
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("N-SS RF =%x\n",
-                        e_rfpowerstate_toset));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "N-SS RF =%x\n",
+                        e_rfpowerstate_toset);
        }
        if ((ppsc->hwradiooff) && (e_rfpowerstate_toset == ERFON)) {
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("GPIOChangeRF  - HW "
-                        "Radio ON, RF ON\n"));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
+                        "GPIOChangeRF  - HW Radio ON, RF ON\n");
                ppsc->hwradiooff = false;
                actuallyset = true;
        } else if ((!ppsc->hwradiooff) && (e_rfpowerstate_toset  ==
                    ERFOFF)) {
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("GPIOChangeRF  - HW"
-                        " Radio OFF\n"));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
+                        "GPIOChangeRF  - HW Radio OFF\n");
                ppsc->hwradiooff = true;
                actuallyset = true;
        } else {
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD ,
-                        ("pHalData->bHwRadioOff and eRfPowerStateToSet do not"
-                        " match: pHalData->bHwRadioOff %x, eRfPowerStateToSet "
-                        "%x\n", ppsc->hwradiooff, e_rfpowerstate_toset));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
+                        "pHalData->bHwRadioOff and eRfPowerStateToSet do not match: pHalData->bHwRadioOff %x, eRfPowerStateToSet %x\n",
+                        ppsc->hwradiooff, e_rfpowerstate_toset);
        }
        if (actuallyset) {
                ppsc->hwradiooff = true;
index 32f85cba106ae7f2491e84a5caebf208208a0c53..f41a3aa4a26f3a90003a4aa0781e6fb041ef61cd 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 2ff9d8314e7b318fe3d9be9bc6f8c695422d26da..75a2deb23af101a7c2dacf92e4e3f803cd03aed7 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -47,8 +47,8 @@ void rtl92cu_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
        u8 ledcfg;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                REG_LEDCFG2, pled->ledpin);
        ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2);
        switch (pled->ledpin) {
        case LED_PIN_GPIO0:
@@ -62,7 +62,7 @@ void rtl92cu_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = true;
@@ -74,8 +74,8 @@ void rtl92cu_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
        struct rtl_usb_priv *usbpriv = rtl_usbpriv(hw);
        u8 ledcfg;
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                REG_LEDCFG2, pled->ledpin);
        ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2);
        switch (pled->ledpin) {
        case LED_PIN_GPIO0:
@@ -95,7 +95,7 @@ void rtl92cu_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = false;
@@ -136,7 +136,6 @@ void rtl92cu_led_control(struct ieee80211_hw *hw,
             ledaction == LED_CTL_POWER_ON)) {
                return;
        }
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, ("ledaction %d,\n",
-                               ledaction));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "ledaction %d\n", ledaction);
        _rtl92cu_sw_led_control(hw, ledaction);
 }
index decaee4d1eb1c459dc984a98993bda51bffc7a62..0f372278b7af84e4d310ecc7fb2a608f127c4385 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 9e0c8fcdf90fb60c1fb9370e3fe0c36d563f3da7..025bdc2eba44868d0f84caeed607b45c82fccee9 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  *
 ****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/module.h>
-
 #include "../wifi.h"
 #include "../pci.h"
 #include "../usb.h"
@@ -44,6 +40,8 @@
 #include "mac.h"
 #include "trx.h"
 
+#include <linux/module.h>
+
 /* macro to shorten lines */
 
 #define LINK_Q ui_link_quality
@@ -57,6 +55,7 @@ void rtl92c_read_chip_version(struct ieee80211_hw *hw)
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
        struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
        enum version_8192c chip_version = VERSION_UNKNOWN;
+       const char *versionid;
        u32 value32;
 
        value32 = rtl_read_dword(rtlpriv, REG_SYS_CFG);
@@ -84,88 +83,69 @@ void rtl92c_read_chip_version(struct ieee80211_hw *hw)
                }
        }
        rtlhal->version  = (enum version_8192c)chip_version;
-       pr_info("rtl8192cu: Chip version 0x%x\n", chip_version);
+       pr_info("Chip version 0x%x\n", chip_version);
        switch (rtlhal->version) {
        case VERSION_NORMAL_TSMC_CHIP_92C_1T2R:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Chip Version ID: VERSION_B_CHIP_92C.\n"));
+               versionid = "NORMAL_B_CHIP_92C";
                break;
        case VERSION_NORMAL_TSMC_CHIP_92C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_92C.\n"));
+               versionid = "NORMAL_TSMC_CHIP_92C";
                break;
        case VERSION_NORMAL_TSMC_CHIP_88C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_88C.\n"));
+               versionid = "NORMAL_TSMC_CHIP_88C";
                break;
        case VERSION_NORMAL_UMC_CHIP_92C_1T2R_A_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_UMC_CHIP_i"
-                       "92C_1T2R_A_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_i92C_1T2R_A_CUT";
                break;
        case VERSION_NORMAL_UMC_CHIP_92C_A_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_UMC_CHIP_"
-                       "92C_A_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_92C_A_CUT";
                break;
        case VERSION_NORMAL_UMC_CHIP_88C_A_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_UMC_CHIP"
-                       "_88C_A_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_88C_A_CUT";
                break;
        case VERSION_NORMAL_UMC_CHIP_92C_1T2R_B_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_UMC_CHIP"
-                       "_92C_1T2R_B_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_92C_1T2R_B_CUT";
                break;
        case VERSION_NORMAL_UMC_CHIP_92C_B_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_UMC_CHIP"
-                       "_92C_B_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_92C_B_CUT";
                break;
        case VERSION_NORMAL_UMC_CHIP_88C_B_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMAL_UMC_CHIP"
-                       "_88C_B_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_88C_B_CUT";
                break;
        case VERSION_NORMA_UMC_CHIP_8723_1T1R_A_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMA_UMC_CHIP"
-                       "_8723_1T1R_A_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_8723_1T1R_A_CUT";
                break;
        case VERSION_NORMA_UMC_CHIP_8723_1T1R_B_CUT:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_NORMA_UMC_CHIP"
-                       "_8723_1T1R_B_CUT.\n"));
+               versionid = "NORMAL_UMC_CHIP_8723_1T1R_B_CUT";
                break;
        case VERSION_TEST_CHIP_92C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_TEST_CHIP_92C.\n"));
+               versionid = "TEST_CHIP_92C";
                break;
        case VERSION_TEST_CHIP_88C:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: VERSION_TEST_CHIP_88C.\n"));
+               versionid = "TEST_CHIP_88C";
                break;
        default:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                       ("Chip Version ID: ???????????????.\n"));
+               versionid = "UNKNOWN";
                break;
        }
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
+                "Chip Version ID: %s\n", versionid);
+
        if (IS_92C_SERIAL(rtlhal->version))
                rtlphy->rf_type =
                         (IS_92C_1T2R(rtlhal->version)) ? RF_1T2R : RF_2T2R;
        else
                rtlphy->rf_type = RF_1T1R;
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("Chip RF Type: %s\n", (rtlphy->rf_type == RF_2T2R) ?
-                 "RF_2T2R" : "RF_1T1R"));
+                "Chip RF Type: %s\n",
+                rtlphy->rf_type == RF_2T2R ? "RF_2T2R" : "RF_1T1R");
        if (get_rf_type(rtlphy) == RF_1T1R)
                rtlpriv->dm.rfpath_rxenable[0] = true;
        else
                rtlpriv->dm.rfpath_rxenable[0] =
                    rtlpriv->dm.rfpath_rxenable[1] = true;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("VersionID = 0x%4x\n",
-                                               rtlhal->version));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "VersionID = 0x%4x\n",
+                rtlhal->version);
 }
 
 /**
@@ -192,9 +172,8 @@ bool rtl92c_llt_write(struct ieee80211_hw *hw, u32 address, u32 data)
                        break;
                if (count > POLLING_LLT_THRESHOLD) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Failed to polling write LLT done at"
-                                " address %d! _LLT_OP_VALUE(%x)\n",
-                                address, _LLT_OP_VALUE(value)));
+                                "Failed to polling write LLT done at address %d! _LLT_OP_VALUE(%x)\n",
+                                address, _LLT_OP_VALUE(value));
                        status = false;
                        break;
                }
@@ -272,7 +251,7 @@ void rtl92c_set_key(struct ieee80211_hw *hw, u32 key_index,
                u8 cam_offset = 0;
                u8 clear_number = 5;
 
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("clear_all\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "clear_all\n");
                for (idx = 0; idx < clear_number; idx++) {
                        rtl_cam_mark_invalid(hw, cam_offset + idx);
                        rtl_cam_empty_entry(hw, cam_offset + idx);
@@ -298,7 +277,7 @@ void rtl92c_set_key(struct ieee80211_hw *hw, u32 key_index,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                               ("iillegal switch case\n"));
+                                "illegal switch case\n");
                        enc_algo = CAM_TKIP;
                        break;
                }
@@ -317,26 +296,26 @@ void rtl92c_set_key(struct ieee80211_hw *hw, u32 key_index,
                }
                if (rtlpriv->sec.key_len[key_index] == 0) {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("delete one entry\n"));
+                                "delete one entry\n");
                        rtl_cam_delete_one_entry(hw, p_macaddr, entry_id);
                } else {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY length is %d\n",
-                                 rtlpriv->sec.key_len[PAIRWISE_KEYIDX]));
+                                "The insert KEY length is %d\n",
+                                rtlpriv->sec.key_len[PAIRWISE_KEYIDX]);
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY  is %x %x\n",
-                                 rtlpriv->sec.key_buf[0][0],
-                                 rtlpriv->sec.key_buf[0][1]));
+                                "The insert KEY is %x %x\n",
+                                rtlpriv->sec.key_buf[0][0],
+                                rtlpriv->sec.key_buf[0][1]);
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("add one entry\n"));
+                                "add one entry\n");
                        if (is_pairwise) {
                                RT_PRINT_DATA(rtlpriv, COMP_SEC, DBG_LOUD,
-                                             "Pairwiase Key content :",
+                                             "Pairwise Key content",
                                              rtlpriv->sec.pairwise_key,
                                              rtlpriv->sec.
                                              key_len[PAIRWISE_KEYIDX]);
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set Pairwiase key\n"));
+                                        "set Pairwise key\n");
 
                                rtl_cam_add_one_entry(hw, macaddr, key_index,
                                                entry_id, enc_algo,
@@ -345,7 +324,7 @@ void rtl92c_set_key(struct ieee80211_hw *hw, u32 key_index,
                                                key_buf[key_index]);
                        } else {
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set group key\n"));
+                                        "set group key\n");
                                if (mac->opmode == NL80211_IFTYPE_ADHOC) {
                                        rtl_cam_add_one_entry(hw,
                                                rtlefuse->dev_addr,
@@ -421,8 +400,8 @@ void rtl92c_set_qos(struct ieee80211_hw *hw, int aci)
            AC_PARAM_ECW_MAX_OFFSET;
        u4b_ac_param |= (u32) le16_to_cpu(mac->ac[aci].tx_op) <<
                         AC_PARAM_TXOP_OFFSET;
-       RT_TRACE(rtlpriv, COMP_QOS, DBG_LOUD,
-                ("queue:%x, ac_param:%x\n", aci, u4b_ac_param));
+       RT_TRACE(rtlpriv, COMP_QOS, DBG_LOUD, "queue:%x, ac_param:%x\n",
+                aci, u4b_ac_param);
        switch (aci) {
        case AC1_BK:
                rtl_write_dword(rtlpriv, REG_EDCA_BK_PARAM, u4b_ac_param);
@@ -437,7 +416,7 @@ void rtl92c_set_qos(struct ieee80211_hw *hw, int aci)
                rtl_write_dword(rtlpriv, REG_EDCA_VO_PARAM, u4b_ac_param);
                break;
        default:
-               RT_ASSERT(false, ("invalid aci: %d !\n", aci));
+               RT_ASSERT(false, "invalid aci: %d !\n", aci);
                break;
        }
 }
@@ -453,14 +432,14 @@ void rtl92c_set_mac_addr(struct ieee80211_hw *hw, const u8 *addr)
        for (i = 0 ; i < ETH_ALEN ; i++)
                rtl_write_byte(rtlpriv, (REG_MACID + i), *(addr+i));
 
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, ("MAC Address: %02X-%02X-%02X-"
-               "%02X-%02X-%02X\n",
-               rtl_read_byte(rtlpriv, REG_MACID),
-               rtl_read_byte(rtlpriv, REG_MACID+1),
-               rtl_read_byte(rtlpriv, REG_MACID+2),
-               rtl_read_byte(rtlpriv, REG_MACID+3),
-               rtl_read_byte(rtlpriv, REG_MACID+4),
-               rtl_read_byte(rtlpriv, REG_MACID+5)));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
+                "MAC Address: %02X-%02X-%02X-%02X-%02X-%02X\n",
+                rtl_read_byte(rtlpriv, REG_MACID),
+                rtl_read_byte(rtlpriv, REG_MACID+1),
+                rtl_read_byte(rtlpriv, REG_MACID+2),
+                rtl_read_byte(rtlpriv, REG_MACID+3),
+                rtl_read_byte(rtlpriv, REG_MACID+4),
+                rtl_read_byte(rtlpriv, REG_MACID+5));
 }
 
 void rtl92c_init_driver_info_size(struct ieee80211_hw *hw, u8 size)
@@ -478,26 +457,26 @@ int rtl92c_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type)
        case NL80211_IFTYPE_UNSPECIFIED:
                value = NT_NO_LINK;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                       ("Set Network type to NO LINK!\n"));
+                        "Set Network type to NO LINK!\n");
                break;
        case NL80211_IFTYPE_ADHOC:
                value = NT_LINK_AD_HOC;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                       ("Set Network type to Ad Hoc!\n"));
+                        "Set Network type to Ad Hoc!\n");
                break;
        case NL80211_IFTYPE_STATION:
                value = NT_LINK_AP;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                       ("Set Network type to STA!\n"));
+                        "Set Network type to STA!\n");
                break;
        case NL80211_IFTYPE_AP:
                value = NT_AS_AP;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                       ("Set Network type to AP!\n"));
+                        "Set Network type to AP!\n");
                break;
        default:
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                       ("Network type %d not support!\n", type));
+                        "Network type %d not supported!\n", type);
                return -EOPNOTSUPP;
        }
        rtl_write_byte(rtlpriv, (REG_CR + 2), value);
index 626d88e88e26b70c598d902c01747d8341a18965..bf53652e4eddb3428c5e80850c0a3aa59e4346f3 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index e49cf2244c7568af1958a57608804a61763cd23d..8ac3bcca4d4193dbe9f8dd8e1dc011643e34b274 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -44,9 +44,9 @@ u32 rtl92cu_phy_query_rf_reg(struct ieee80211_hw *hw,
        u32 original_value, readback_value, bitshift;
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-                                              "rfpath(%#x), bitmask(%#x)\n",
-                                              regaddr, rfpath, bitmask));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x)\n",
+                regaddr, rfpath, bitmask);
        if (rtlphy->rf_mode != RF_OP_BY_FW) {
                original_value = _rtl92c_phy_rf_serial_read(hw,
                                                            rfpath, regaddr);
@@ -57,9 +57,8 @@ u32 rtl92cu_phy_query_rf_reg(struct ieee80211_hw *hw,
        bitshift = _rtl92c_phy_calculate_bit_shift(bitmask);
        readback_value = (original_value & bitmask) >> bitshift;
        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                ("regaddr(%#x), rfpath(%#x), "
-                 "bitmask(%#x), original_value(%#x)\n",
-                 regaddr, rfpath, bitmask, original_value));
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x), original_value(%#x)\n",
+                regaddr, rfpath, bitmask, original_value);
        return readback_value;
 }
 
@@ -72,8 +71,8 @@ void rtl92cu_phy_set_rf_reg(struct ieee80211_hw *hw,
        u32 original_value, bitshift;
 
        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                ("regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
-                 regaddr, bitmask, data, rfpath));
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
        if (rtlphy->rf_mode != RF_OP_BY_FW) {
                if (bitmask != RFREG_OFFSET_MASK) {
                        original_value = _rtl92c_phy_rf_serial_read(hw,
@@ -97,9 +96,9 @@ void rtl92cu_phy_set_rf_reg(struct ieee80211_hw *hw,
                }
                _rtl92c_phy_fw_rf_serial_write(hw, rfpath, regaddr, data);
        }
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-                                              "bitmask(%#x), data(%#x), rfpath(%#x)\n",
-                                              regaddr, bitmask, data, rfpath));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
 }
 
 bool rtl92cu_phy_mac_config(struct ieee80211_hw *hw)
@@ -152,11 +151,10 @@ bool _rtl92cu_phy_config_mac_with_headerfile(struct ieee80211_hw *hw)
        u32 arraylength;
        u32 *ptrarray;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Read Rtl819XMACPHY_Array\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Read Rtl819XMACPHY_Array\n");
        arraylength =  rtlphy->hwparam_tables[MAC_REG].length ;
        ptrarray = rtlphy->hwparam_tables[MAC_REG].pdata;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Img:RTL8192CEMAC_2T_ARRAY\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Img:RTL8192CEMAC_2T_ARRAY\n");
        for (i = 0; i < arraylength; i = i + 2)
                rtl_write_byte(rtlpriv, ptrarray[i], (u8) ptrarray[i + 1]);
        return true;
@@ -202,10 +200,9 @@ bool _rtl92cu_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                      phy_regarray_table[i + 1]);
                        udelay(1);
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                ("The phy_regarray_table[0] is %x"
-                                 " Rtl819XPHY_REGArray[1] is %x\n",
-                                 phy_regarray_table[i],
-                                 phy_regarray_table[i + 1]));
+                                "The phy_regarray_table[0] is %x Rtl819XPHY_REGArray[1] is %x\n",
+                                phy_regarray_table[i],
+                                phy_regarray_table[i + 1]);
                }
        } else if (configtype == BASEBAND_CONFIG_AGC_TAB) {
                for (i = 0; i < agctab_arraylen; i = i + 2) {
@@ -213,10 +210,9 @@ bool _rtl92cu_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                      agctab_array_table[i + 1]);
                        udelay(1);
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                ("The agctab_array_table[0] is "
-                                 "%x Rtl819XPHY_REGArray[1] is %x\n",
-                                 agctab_array_table[i],
-                                 agctab_array_table[i + 1]));
+                                "The agctab_array_table[0] is %x Rtl819XPHY_REGArray[1] is %x\n",
+                                agctab_array_table[i],
+                                agctab_array_table[i + 1]);
                }
        }
        return true;
@@ -255,7 +251,7 @@ bool _rtl92cu_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw,
                }
        } else {
                RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-                        ("configtype != BaseBand_Config_PHY_REG\n"));
+                        "configtype != BaseBand_Config_PHY_REG\n");
        }
        return true;
 }
@@ -277,20 +273,20 @@ bool rtl92cu_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
                radiob_arraylen = rtlphy->hwparam_tables[RADIOB_2T].length;
                radiob_array_table = rtlphy->hwparam_tables[RADIOB_2T].pdata;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_A:RTL8192CERADIOA_2TARRAY\n"));
+                        "Radio_A:RTL8192CERADIOA_2TARRAY\n");
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_B:RTL8192CE_RADIOB_2TARRAY\n"));
+                        "Radio_B:RTL8192CE_RADIOB_2TARRAY\n");
        } else {
                radioa_arraylen = rtlphy->hwparam_tables[RADIOA_1T].length;
                radioa_array_table = rtlphy->hwparam_tables[RADIOA_1T].pdata;
                radiob_arraylen = rtlphy->hwparam_tables[RADIOB_1T].length;
                radiob_array_table = rtlphy->hwparam_tables[RADIOB_1T].pdata;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_A:RTL8192CE_RADIOA_1TARRAY\n"));
+                        "Radio_A:RTL8192CE_RADIOA_1TARRAY\n");
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Radio_B:RTL8192CE_RADIOB_1TARRAY\n"));
+                        "Radio_B:RTL8192CE_RADIOB_1TARRAY\n");
        }
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Radio No %x\n", rfpath));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Radio No %x\n", rfpath);
        switch (rfpath) {
        case RF90_PATH_A:
                for (i = 0; i < radioa_arraylen; i = i + 2) {
@@ -338,11 +334,11 @@ bool rtl92cu_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
                break;
        case RF90_PATH_C:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        case RF90_PATH_D:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        return true;
@@ -357,10 +353,9 @@ void rtl92cu_phy_set_bw_mode_callback(struct ieee80211_hw *hw)
        u8 reg_bw_opmode;
        u8 reg_prsr_rsc;
 
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
-                ("Switch to %s bandwidth\n",
-                 rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
-                 "20MHz" : "40MHz"))
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "Switch to %s bandwidth\n",
+                rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
+                "20MHz" : "40MHz");
        if (is_hal_stop(rtlhal)) {
                rtlphy->set_bwmode_inprogress = false;
                return;
@@ -381,7 +376,7 @@ void rtl92cu_phy_set_bw_mode_callback(struct ieee80211_hw *hw)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
        }
        switch (rtlphy->current_chan_bw) {
@@ -403,12 +398,12 @@ void rtl92cu_phy_set_bw_mode_callback(struct ieee80211_hw *hw)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
        }
        rtl92cu_phy_rf6052_set_bandwidth(hw, rtlphy->current_chan_bw);
        rtlphy->set_bwmode_inprogress = false;
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "<==\n");
 }
 
 void rtl92cu_bb_block_on(struct ieee80211_hw *hw)
@@ -480,7 +475,7 @@ static bool _rtl92cu_phy_set_rf_power_state(struct ieee80211_hw *hw,
                        do {
                                InitializeCount++;
                                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                        ("IPS Set eRf nic enable\n"));
+                                        "IPS Set eRf nic enable\n");
                                rtstatus = rtl_ps_enable_nic(hw);
                        } while ((rtstatus != true)
                                 && (InitializeCount < 10));
@@ -488,10 +483,9 @@ static bool _rtl92cu_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                          RT_RF_OFF_LEVL_HALT_NIC);
                } else {
                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                ("Set ERFON sleeped:%d ms\n",
-                                 jiffies_to_msecs(jiffies -
-                                                  ppsc->
-                                                  last_sleep_jiffies)));
+                                "Set ERFON sleeped:%d ms\n",
+                                jiffies_to_msecs(jiffies -
+                                                 ppsc->last_sleep_jiffies));
                        ppsc->last_awake_jiffies = jiffies;
                        rtl92ce_phy_set_rf_on(hw);
                }
@@ -513,27 +507,25 @@ static bool _rtl92cu_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                continue;
                        } else {
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("eRf Off/Sleep: %d times "
-                                         "TcbBusyQueue[%d] "
-                                         "=%d before doze!\n", (i + 1),
-                                         queue_id,
-                                         skb_queue_len(&ring->queue)));
+                                        "eRf Off/Sleep: %d times TcbBusyQueue[%d] =%d before doze!\n",
+                                        i + 1,
+                                        queue_id,
+                                        skb_queue_len(&ring->queue));
                                udelay(10);
                                i++;
                        }
                        if (i >= MAX_DOZE_WAITING_TIMES_9x) {
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("\nERFOFF: %d times "
-                                         "TcbBusyQueue[%d] = %d !\n",
-                                         MAX_DOZE_WAITING_TIMES_9x,
-                                         queue_id,
-                                         skb_queue_len(&ring->queue)));
+                                        "ERFOFF: %d times TcbBusyQueue[%d] = %d !\n",
+                                        MAX_DOZE_WAITING_TIMES_9x,
+                                        queue_id,
+                                        skb_queue_len(&ring->queue));
                                break;
                        }
                }
                if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) {
                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                ("IPS Set eRf nic disable\n"));
+                                "IPS Set eRf nic disable\n");
                        rtl_ps_disable_nic(hw);
                        RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
                } else {
@@ -557,33 +549,30 @@ static bool _rtl92cu_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                continue;
                        } else {
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("eRf Off/Sleep: %d times "
-                                         "TcbBusyQueue[%d] =%d before "
-                                         "doze!\n", (i + 1), queue_id,
-                                         skb_queue_len(&ring->queue)));
+                                        "eRf Off/Sleep: %d times TcbBusyQueue[%d] =%d before doze!\n",
+                                        i + 1, queue_id,
+                                        skb_queue_len(&ring->queue));
                                udelay(10);
                                i++;
                        }
                        if (i >= MAX_DOZE_WAITING_TIMES_9x) {
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("\n ERFSLEEP: %d times "
-                                         "TcbBusyQueue[%d] = %d !\n",
-                                         MAX_DOZE_WAITING_TIMES_9x,
-                                         queue_id,
-                                         skb_queue_len(&ring->queue)));
+                                        "ERFSLEEP: %d times TcbBusyQueue[%d] = %d !\n",
+                                        MAX_DOZE_WAITING_TIMES_9x,
+                                        queue_id,
+                                        skb_queue_len(&ring->queue));
                                break;
                        }
                }
                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                        ("Set ERFSLEEP awaked:%d ms\n",
-                         jiffies_to_msecs(jiffies -
-                                          ppsc->last_awake_jiffies)));
+                        "Set ERFSLEEP awaked:%d ms\n",
+                        jiffies_to_msecs(jiffies - ppsc->last_awake_jiffies));
                ppsc->last_sleep_jiffies = jiffies;
                _rtl92c_phy_set_rf_sleep(hw);
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                bresult = false;
                break;
        }
index ff81a61729d7bb1a353c9d05556363e205a21bf4..42b0686604833d87310e9d1d21295585ecc0b9c7 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 7f1be614c998ffead947a309e76c2913fdb8d91b..8b81465c629b9abfae5f337d709c9f45d3d99317 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 1e851aae58db913ebd49cc34878b24ab7d45937d..780c0d98a836122cc74ef535af017de717a48534 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -56,7 +56,7 @@ void rtl92cu_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", bandwidth));
+                        "unknown bandwidth: %#X\n", bandwidth);
                break;
        }
 }
@@ -140,26 +140,26 @@ void rtl92cu_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw,
        rtl_set_bbreg(hw, RTXAGC_A_CCK1_MCS32, MASKBYTE1, tmpval);
 
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 1M (rf-A) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_A_CCK1_MCS32));
+               "CCK PWR 1M (rf-A) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_A_CCK1_MCS32);
 
        tmpval = tx_agc[RF90_PATH_A] >> 8;
        if (mac->mode == WIRELESS_MODE_B)
                tmpval = tmpval & 0xff00ffff;
        rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, 0xffffff00, tmpval);
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 2~11M (rf-A) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_B_CCK11_A_CCK2_11));
+               "CCK PWR 2~11M (rf-A) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK11_A_CCK2_11);
        tmpval = tx_agc[RF90_PATH_B] >> 24;
        rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, MASKBYTE0, tmpval);
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_B_CCK11_A_CCK2_11));
+               "CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK11_A_CCK2_11);
        tmpval = tx_agc[RF90_PATH_B] & 0x00ffffff;
        rtl_set_bbreg(hw, RTXAGC_B_CCK1_55_MCS32, 0xffffff00, tmpval);
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 1~5.5M (rf-B) = 0x%x (reg 0x%x)\n", tmpval,
-                RTXAGC_B_CCK1_55_MCS32));
+               "CCK PWR 1~5.5M (rf-B) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK1_55_MCS32);
 }
 
 static void rtl92c_phy_get_power_base(struct ieee80211_hw *hw,
@@ -181,8 +181,8 @@ static void rtl92c_phy_get_power_base(struct ieee80211_hw *hw,
                    (powerBase0 << 8) | powerBase0;
                *(ofdmbase + i) = powerBase0;
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       (" [OFDM power base index rf(%c) = 0x%x]\n",
-                        ((i == 0) ? 'A' : 'B'), *(ofdmbase + i)));
+                       " [OFDM power base index rf(%c) = 0x%x]\n",
+                       i == 0 ? 'A' : 'B', *(ofdmbase + i));
        }
        for (i = 0; i < 2; i++) {
                if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20) {
@@ -194,8 +194,8 @@ static void rtl92c_phy_get_power_base(struct ieee80211_hw *hw,
                    (powerBase1 << 16) | (powerBase1 << 8) | powerBase1;
                *(mcsbase + i) = powerBase1;
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       (" [MCS power base index rf(%c) = 0x%x]\n",
-                        ((i == 0) ? 'A' : 'B'), *(mcsbase + i)));
+                       " [MCS power base index rf(%c) = 0x%x]\n",
+                       i == 0 ? 'A' : 'B', *(mcsbase + i));
        }
 }
 
@@ -219,8 +219,8 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                            [chnlgroup][index + (rf ? 8 : 0)]
                            + ((index < 2) ? powerBase0[rf] : powerBase1[rf]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("RTK better performance,writeVal(%c) = 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "RTK better performance,writeVal(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                case 1:
                        if (rtlphy->pwrgroup_cnt == 1)
@@ -244,32 +244,31 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                                        ((index < 2) ? powerBase0[rf] :
                                        powerBase1[rf]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Realtek regulatory, 20MHz, "
-                               "writeVal(%c) = 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "Realtek regulatory, 20MHz, writeVal(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                case 2:
                        writeVal = ((index < 2) ? powerBase0[rf] :
                                   powerBase1[rf]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Better regulatory,writeVal(%c) = 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "Better regulatory,writeVal(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                case 3:
                        chnlgroup = 0;
                        if (rtlphy->current_chan_bw ==
                            HT_CHANNEL_WIDTH_20_40) {
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("customer's limit, 40MHzrf(%c) = "
-                                       "0x%x\n", ((rf == 0) ? 'A' : 'B'),
+                                       "customer's limit, 40MHzrf(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B',
                                        rtlefuse->pwrgroup_ht40[rf]
-                                       [channel - 1]));
+                                       [channel - 1]);
                        } else {
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("customer's limit, 20MHz rf(%c) = "
-                                       "0x%x\n", ((rf == 0) ? 'A' : 'B'),
+                                       "customer's limit, 20MHz rf(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B',
                                        rtlefuse->pwrgroup_ht20[rf]
-                                       [channel - 1]));
+                                       [channel - 1]);
                        }
                        for (i = 0; i < 4; i++) {
                                pwr_diff_limit[i] =
@@ -297,22 +296,22 @@ static void _rtl92c_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                            (pwr_diff_limit[2] << 16) |
                            (pwr_diff_limit[1] << 8) | (pwr_diff_limit[0]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Customer's limit rf(%c) = 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), customer_limit));
+                               "Customer's limit rf(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', customer_limit);
                        writeVal = customer_limit + ((index < 2) ?
                                   powerBase0[rf] : powerBase1[rf]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Customer, writeVal rf(%c)= 0x%x\n",
-                                ((rf == 0) ? 'A' : 'B'), writeVal));
+                               "Customer, writeVal rf(%c)= 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                default:
                        chnlgroup = 0;
                        writeVal = rtlphy->mcs_txpwrlevel_origoffset[chnlgroup]
                                   [index + (rf ? 8 : 0)] + ((index < 2) ?
                                   powerBase0[rf] : powerBase1[rf]);
-                       RTPRINT(rtlpriv, FPHY, PHY_TXPWR, ("RTK better "
-                               "performance, writeValrf(%c) = 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), writeVal));
+                       RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
+                               "RTK better performance, writeValrf(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeVal);
                        break;
                }
                if (rtlpriv->dm.dynamic_txhighpower_lvl ==
@@ -365,7 +364,7 @@ static void _rtl92c_write_ofdm_power_reg(struct ieee80211_hw *hw,
                        regoffset = regoffset_b[index];
                rtl_set_bbreg(hw, regoffset, MASKDWORD, writeVal);
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       ("Set 0x%x = %08x\n", regoffset, writeVal));
+                       "Set 0x%x = %08x\n", regoffset, writeVal);
                if (((get_rf_type(rtlphy) == RF_2T2R) &&
                     (regoffset == RTXAGC_A_MCS15_MCS12 ||
                      regoffset == RTXAGC_B_MCS15_MCS12)) ||
@@ -482,11 +481,11 @@ static bool _rtl92c_phy_rf6052_config_parafile(struct ieee80211_hw *hw)
                }
                if (rtstatus != true) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                ("Radio[%d] Fail!!", rfpath));
+                                "Radio[%d] Fail!!", rfpath);
                        goto phy_rf_cfg_fail;
                }
        }
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("<---\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "<---\n");
        return rtstatus;
 phy_rf_cfg_fail:
        return rtstatus;
index 500a2094b6bbe496078b6c73c2ca9164b26a3390..090fd33a158db1635c14d3ea323a5363f7c82169 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 6d2ca773bbc7d9b6a9db6e28a91d2562c23ea37a..82c85286ab2e25852eb7e45f878fc7b783e07f97 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -41,7 +41,6 @@
 #include "trx.h"
 #include "led.h"
 #include "hw.h"
-#include <linux/vmalloc.h>
 #include <linux/module.h>
 
 MODULE_AUTHOR("Georgia         <georgia@realtek.com>");
@@ -54,7 +53,6 @@ MODULE_FIRMWARE("rtlwifi/rtl8192cufw.bin");
 static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       const struct firmware *firmware;
        int err;
 
        rtlpriv->dm.dm_initialgain_enable = true;
@@ -62,29 +60,21 @@ static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
        rtlpriv->dm.disable_framebursting = false;
        rtlpriv->dm.thermalvalue = 0;
        rtlpriv->dbg.global_debuglevel = rtlpriv->cfg->mod_params->debug;
-       rtlpriv->rtlhal.pfirmware = vmalloc(0x4000);
+
+       /* for firmware buf */
+       rtlpriv->rtlhal.pfirmware = vzalloc(0x4000);
        if (!rtlpriv->rtlhal.pfirmware) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't alloc buffer for fw.\n"));
+                        "Can't alloc buffer for fw\n");
                return 1;
        }
-       /* request fw */
-       err = request_firmware(&firmware, rtlpriv->cfg->fw_name,
-                       rtlpriv->io.dev);
-       if (err) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Failed to request firmware!\n"));
-               return 1;
-       }
-       if (firmware->size > 0x4000) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Firmware is too big!\n"));
-               release_firmware(firmware);
-               return 1;
-       }
-       memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size);
-       rtlpriv->rtlhal.fwsize = firmware->size;
-       release_firmware(firmware);
+
+       pr_info("Loading firmware %s\n", rtlpriv->cfg->fw_name);
+       rtlpriv->max_fw_size = 0x4000;
+       err = request_firmware_nowait(THIS_MODULE, 1,
+                                     rtlpriv->cfg->fw_name, rtlpriv->io.dev,
+                                     GFP_KERNEL, hw, rtl_fw_cb);
+
 
        return 0;
 }
index 43b1177924ab70073636cc93700865a0be26c3ef..a1310abd0d54605e6bbd1a1cc9f9200bc3ecbe43 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index d57ef5e88a9eb8db066b1a68905166f207946637..966be519edb89b8780778ad0145e4ece80c6621a 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index c3d5cd826cfaebfaf10e60bdda68c75e67d2ea78..4b020e9e30b1eb8a2f559b41c5906e10276c5e9a 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index b3cc7b9499927d3db75af87c0d1d2ebcd66e8b3b..21bc827c5fa60fe207e9c8883fa1d889b46b4db6 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -108,7 +108,7 @@ static void _TwoOutEpMapping(struct ieee80211_hw *hw, bool bIsChipB,
 
        if (bwificfg) { /* for WMM */
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("USB Chip-B & WMM Setting.....\n"));
+                        "USB Chip-B & WMM Setting.....\n");
                ep_map->ep_mapping[RTL_TXQ_BE]  = 2;
                ep_map->ep_mapping[RTL_TXQ_BK]  = 3;
                ep_map->ep_mapping[RTL_TXQ_VI]  = 3;
@@ -118,7 +118,7 @@ static void _TwoOutEpMapping(struct ieee80211_hw *hw, bool bIsChipB,
                ep_map->ep_mapping[RTL_TXQ_HI]  = 2;
        } else { /* typical setting */
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("USB typical Setting.....\n"));
+                        "USB typical Setting.....\n");
                ep_map->ep_mapping[RTL_TXQ_BE]  = 3;
                ep_map->ep_mapping[RTL_TXQ_BK]  = 3;
                ep_map->ep_mapping[RTL_TXQ_VI]  = 2;
@@ -135,7 +135,7 @@ static void _ThreeOutEpMapping(struct ieee80211_hw *hw, bool  bwificfg,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        if (bwificfg) { /* for WMM */
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("USB 3EP Setting for WMM.....\n"));
+                        "USB 3EP Setting for WMM.....\n");
                ep_map->ep_mapping[RTL_TXQ_BE]  = 5;
                ep_map->ep_mapping[RTL_TXQ_BK]  = 3;
                ep_map->ep_mapping[RTL_TXQ_VI]  = 3;
@@ -145,7 +145,7 @@ static void _ThreeOutEpMapping(struct ieee80211_hw *hw, bool  bwificfg,
                ep_map->ep_mapping[RTL_TXQ_HI]  = 2;
        } else { /* typical setting */
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("USB 3EP Setting for typical.....\n"));
+                        "USB 3EP Setting for typical.....\n");
                ep_map->ep_mapping[RTL_TXQ_BE]  = 5;
                ep_map->ep_mapping[RTL_TXQ_BK]  = 5;
                ep_map->ep_mapping[RTL_TXQ_VI]  = 3;
@@ -244,8 +244,8 @@ u16 rtl8192cu_mq_to_hwq(__le16 fc, u16 mac80211_queue_index)
                break;
        default:
                hw_queue_index = RTL_TXQ_BE;
-               RT_ASSERT(false, ("QSLT_BE queue, skb_queue:%d\n",
-                         mac80211_queue_index));
+               RT_ASSERT(false, "QSLT_BE queue, skb_queue:%d\n",
+                         mac80211_queue_index);
                break;
        }
 out:
@@ -270,23 +270,23 @@ static enum rtl_desc_qsel _rtl8192cu_mq_to_descq(struct ieee80211_hw *hw,
        case 0: /* VO */
                qsel = QSLT_VO;
                RT_TRACE(rtlpriv, COMP_USB, DBG_DMESG,
-                        ("VO queue, set qsel = 0x%x\n", QSLT_VO));
+                        "VO queue, set qsel = 0x%x\n", QSLT_VO);
                break;
        case 1: /* VI */
                qsel = QSLT_VI;
                RT_TRACE(rtlpriv, COMP_USB, DBG_DMESG,
-                        ("VI queue, set qsel = 0x%x\n", QSLT_VI));
+                        "VI queue, set qsel = 0x%x\n", QSLT_VI);
                break;
        case 3: /* BK */
                qsel = QSLT_BK;
                RT_TRACE(rtlpriv, COMP_USB, DBG_DMESG,
-                        ("BK queue, set qsel = 0x%x\n", QSLT_BK));
+                        "BK queue, set qsel = 0x%x\n", QSLT_BK);
                break;
        case 2: /* BE */
        default:
                qsel = QSLT_BE;
                RT_TRACE(rtlpriv, COMP_USB, DBG_DMESG,
-                        ("BE queue, set qsel = 0x%x\n", QSLT_BE));
+                        "BE queue, set qsel = 0x%x\n", QSLT_BE);
                break;
        }
 out:
@@ -422,17 +422,17 @@ static void _rtl_rx_process(struct ieee80211_hw *hw, struct sk_buff *skb)
        bv = ieee80211_is_probe_resp(fc);
        if (bv)
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("Got probe response frame.\n"));
+                        "Got probe response frame\n");
        if (ieee80211_is_beacon(fc))
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("Got beacon frame.\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Got beacon frame\n");
        if (ieee80211_is_data(fc))
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Got data frame.\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Got data frame\n");
        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("Fram: fc = 0x%X addr1 = 0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:"
-                "0x%02X\n", fc, (u32)hdr->addr1[0], (u32)hdr->addr1[1],
-                (u32)hdr->addr1[2], (u32)hdr->addr1[3], (u32)hdr->addr1[4],
-                (u32)hdr->addr1[5]));
+                "Fram: fc = 0x%X addr1 = 0x%02X:0x%02X:0x%02X:0x%02X:0x%02X:0x%02X\n",
+                fc,
+                (u32)hdr->addr1[0], (u32)hdr->addr1[1],
+                (u32)hdr->addr1[2], (u32)hdr->addr1[3],
+                (u32)hdr->addr1[4], (u32)hdr->addr1[5]);
        memcpy(IEEE80211_SKB_RXCB(skb), rx_status, sizeof(*rx_status));
        ieee80211_rx_irqsafe(hw, skb);
 }
@@ -594,7 +594,7 @@ void rtl92cu_tx_fill_desc(struct ieee80211_hw *hw,
        if (ieee80211_is_data_qos(fc)) {
                if (mac->rdg_en) {
                        RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-                                ("Enable RDG function.\n"));
+                                "Enable RDG function\n");
                        SET_TX_DESC_RDG_ENABLE(txdesc, 1);
                        SET_TX_DESC_HTC(txdesc, 1);
                }
@@ -620,7 +620,7 @@ void rtl92cu_tx_fill_desc(struct ieee80211_hw *hw,
                SET_TX_DESC_BMC(txdesc, 1);
        _rtl_fill_usb_tx_desc(txdesc);
        _rtl_tx_desc_checksum(txdesc);
-       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, (" %s ==>\n", __func__));
+       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "==>\n");
 }
 
 void rtl92cu_fill_fake_txdesc(struct ieee80211_hw *hw, u8 * pDesc,
@@ -677,7 +677,7 @@ void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw,
                SET_TX_DESC_HWSEQ_EN(pdesc, 1);
                SET_TX_DESC_PKT_ID(pdesc, 8);
        }
-       RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, "H2C Tx Cmd Content\n",
+       RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, "H2C Tx Cmd Content",
                      pdesc, RTL_TX_DESC_SIZE);
 }
 
index 53de5f66e2424803a6d9424fb4d301439a8d7155..332b06e78b00d8e9fb849e03709fcb0b412849b0 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 946304771748fab0781c65991b33882f982c6d70..eafdf76ed64db95c42972e7fb725ad4b7a4f3a18 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 3cd0736fe8e17230b52d2f0727be33af59c5ddf7..181ed6fc90e670993d6a4aa7c50765cfeb2190e5 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -246,23 +246,21 @@ static void rtl92d_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw)
                rtl_set_bbreg(hw, RCCK0_FALSEALARMREPORT, 0x0000c000, 2);
                rtl92d_release_cckandrw_pagea_ctl(hw, &flag);
        }
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("Cnt_Fast_Fsync_fail = %x, "
-                "Cnt_SB_Search_fail = %x\n",
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
+                "Cnt_Fast_Fsync_fail = %x, Cnt_SB_Search_fail = %x\n",
                 falsealm_cnt->cnt_fast_fsync_fail,
-                falsealm_cnt->cnt_sb_search_fail));
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("Cnt_Parity_Fail = %x, "
-                "Cnt_Rate_Illegal = %x, Cnt_Crc8_fail = %x, "
-                "Cnt_Mcs_fail = %x\n",
+                falsealm_cnt->cnt_sb_search_fail);
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
+                "Cnt_Parity_Fail = %x, Cnt_Rate_Illegal = %x, Cnt_Crc8_fail = %x, Cnt_Mcs_fail = %x\n",
                 falsealm_cnt->cnt_parity_fail,
                 falsealm_cnt->cnt_rate_illegal,
                 falsealm_cnt->cnt_crc8_fail,
-                falsealm_cnt->cnt_mcs_fail));
+                falsealm_cnt->cnt_mcs_fail);
        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                ("Cnt_Ofdm_fail = %x, " "Cnt_Cck_fail = %x, "
-                "Cnt_all = %x\n",
+                "Cnt_Ofdm_fail = %x, Cnt_Cck_fail = %x, Cnt_all = %x\n",
                 falsealm_cnt->cnt_ofdm_fail,
                 falsealm_cnt->cnt_cck_fail,
-                falsealm_cnt->cnt_all));
+                falsealm_cnt->cnt_all);
 }
 
 static void rtl92d_dm_find_minimum_rssi(struct ieee80211_hw *hw)
@@ -275,7 +273,7 @@ static void rtl92d_dm_find_minimum_rssi(struct ieee80211_hw *hw)
            (rtlpriv->dm.UNDEC_SM_PWDB == 0)) {
                de_digtable.min_undecorated_pwdb_for_dm = 0;
                RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD,
-                        ("Not connected to any\n"));
+                        "Not connected to any\n");
        }
        if (mac->link_state >= MAC80211_LINKED) {
                if (mac->opmode == NL80211_IFTYPE_AP ||
@@ -283,25 +281,25 @@ static void rtl92d_dm_find_minimum_rssi(struct ieee80211_hw *hw)
                        de_digtable.min_undecorated_pwdb_for_dm =
                            rtlpriv->dm.UNDEC_SM_PWDB;
                        RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD,
-                                ("AP Client PWDB = 0x%lx\n",
-                                 rtlpriv->dm.UNDEC_SM_PWDB));
+                                "AP Client PWDB = 0x%lx\n",
+                                rtlpriv->dm.UNDEC_SM_PWDB);
                } else {
                        de_digtable.min_undecorated_pwdb_for_dm =
                            rtlpriv->dm.undecorated_smoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD,
-                                ("STA Default Port PWDB = 0x%x\n",
-                                 de_digtable.min_undecorated_pwdb_for_dm));
+                                "STA Default Port PWDB = 0x%x\n",
+                                de_digtable.min_undecorated_pwdb_for_dm);
                }
        } else {
                de_digtable.min_undecorated_pwdb_for_dm =
                    rtlpriv->dm.UNDEC_SM_PWDB;
                RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD,
-                        ("AP Ext Port or disconnet PWDB = 0x%x\n",
-                         de_digtable.min_undecorated_pwdb_for_dm));
+                        "AP Ext Port or disconnet PWDB = 0x%x\n",
+                        de_digtable.min_undecorated_pwdb_for_dm);
        }
 
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("MinUndecoratedPWDBForDM =%d\n",
-                       de_digtable.min_undecorated_pwdb_for_dm));
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "MinUndecoratedPWDBForDM =%d\n",
+                de_digtable.min_undecorated_pwdb_for_dm);
 }
 
 static void rtl92d_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
@@ -340,14 +338,14 @@ static void rtl92d_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
                }
                de_digtable.pre_cck_pd_state = de_digtable.cur_cck_pd_state;
        }
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("CurSTAConnectState=%s\n",
-                (de_digtable.cursta_connectctate == DIG_STA_CONNECT ?
-                "DIG_STA_CONNECT " : "DIG_STA_DISCONNECT")));
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("CCKPDStage=%s\n",
-                (de_digtable.cur_cck_pd_state == CCK_PD_STAGE_LOWRSSI ?
-                "Low RSSI " : "High RSSI ")));
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("is92d single phy =%x\n",
-                IS_92D_SINGLEPHY(rtlpriv->rtlhal.version)));
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "CurSTAConnectState=%s\n",
+                de_digtable.cursta_connectctate == DIG_STA_CONNECT ?
+                "DIG_STA_CONNECT " : "DIG_STA_DISCONNECT");
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "CCKPDStage=%s\n",
+                de_digtable.cur_cck_pd_state == CCK_PD_STAGE_LOWRSSI ?
+                "Low RSSI " : "High RSSI ");
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "is92d single phy =%x\n",
+                IS_92D_SINGLEPHY(rtlpriv->rtlhal.version));
 
 }
 
@@ -355,12 +353,12 @@ void rtl92d_dm_write_dig(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("cur_igvalue = 0x%x, "
-                "pre_igvalue = 0x%x, backoff_val = %d\n",
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
+                "cur_igvalue = 0x%x, pre_igvalue = 0x%x, backoff_val = %d\n",
                 de_digtable.cur_igvalue, de_digtable.pre_igvalue,
-                de_digtable.backoff_val));
+                de_digtable.backoff_val);
        if (de_digtable.dig_enable_flag == false) {
-               RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("DIG is disabled\n"));
+               RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "DIG is disabled\n");
                de_digtable.pre_igvalue = 0x17;
                return;
        }
@@ -377,22 +375,21 @@ static void rtl92d_early_mode_enabled(struct rtl_priv *rtlpriv)
 {
        if ((rtlpriv->mac80211.link_state >= MAC80211_LINKED) &&
            (rtlpriv->mac80211.vendor == PEER_CISCO)) {
-               RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                        ("IOT_PEER = CISCO\n"));
+               RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "IOT_PEER = CISCO\n");
                if (de_digtable.last_min_undecorated_pwdb_for_dm >= 50
                    && de_digtable.min_undecorated_pwdb_for_dm < 50) {
                        rtl_write_byte(rtlpriv, REG_EARLY_MODE_CONTROL, 0x00);
                        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                                ("Early Mode Off\n"));
+                                "Early Mode Off\n");
                } else if (de_digtable.last_min_undecorated_pwdb_for_dm <= 55 &&
                           de_digtable.min_undecorated_pwdb_for_dm > 55) {
                        rtl_write_byte(rtlpriv, REG_EARLY_MODE_CONTROL, 0x0f);
                        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                                ("Early Mode On\n"));
+                                "Early Mode On\n");
                }
        } else if (!(rtl_read_byte(rtlpriv, REG_EARLY_MODE_CONTROL) & 0xf)) {
                rtl_write_byte(rtlpriv, REG_EARLY_MODE_CONTROL, 0x0f);
-               RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("Early Mode On\n"));
+               RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "Early Mode On\n");
        }
 }
 
@@ -402,7 +399,7 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
        u8 value_igi = de_digtable.cur_igvalue;
        struct false_alarm_statistics *falsealm_cnt = &(rtlpriv->falsealm_cnt);
 
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("==>\n"));
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "==>\n");
        if (rtlpriv->rtlhal.earlymode_enable) {
                rtl92d_early_mode_enabled(rtlpriv);
                de_digtable.last_min_undecorated_pwdb_for_dm =
@@ -421,7 +418,7 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
        /* Not STA mode return tmp */
        if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION)
                return;
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("progress\n"));
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "progress\n");
        /* Decide the current status and if modify initial gain or not */
        if (rtlpriv->mac80211.link_state >= MAC80211_LINKED)
                de_digtable.cursta_connectctate = DIG_STA_CONNECT;
@@ -438,16 +435,16 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
        else if (falsealm_cnt->cnt_all >= DM_DIG_FA_TH2)
                value_igi += 2;
        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                ("dm_DIG() Before: large_fa_hit=%d, forbidden_igi=%x\n",
-                de_digtable.large_fa_hit, de_digtable.forbidden_igi));
+                "dm_DIG() Before: large_fa_hit=%d, forbidden_igi=%x\n",
+                de_digtable.large_fa_hit, de_digtable.forbidden_igi);
        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                ("dm_DIG() Before: Recover_cnt=%d, rx_gain_range_min=%x\n",
-                de_digtable.recover_cnt, de_digtable.rx_gain_range_min));
+                "dm_DIG() Before: Recover_cnt=%d, rx_gain_range_min=%x\n",
+                de_digtable.recover_cnt, de_digtable.rx_gain_range_min);
 
        /* deal with abnorally large false alarm */
        if (falsealm_cnt->cnt_all > 10000) {
                RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                        ("dm_DIG(): Abnornally false alarm case.\n"));
+                        "dm_DIG(): Abnormally false alarm case\n");
 
                de_digtable.large_fa_hit++;
                if (de_digtable.forbidden_igi < de_digtable.cur_igvalue) {
@@ -486,11 +483,11 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
                }
        }
        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                ("dm_DIG() After: large_fa_hit=%d, forbidden_igi=%x\n",
-                 de_digtable.large_fa_hit, de_digtable.forbidden_igi));
+                "dm_DIG() After: large_fa_hit=%d, forbidden_igi=%x\n",
+                de_digtable.large_fa_hit, de_digtable.forbidden_igi);
        RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
-                ("dm_DIG() After: recover_cnt=%d, rx_gain_range_min=%x\n",
-                 de_digtable.recover_cnt, de_digtable.rx_gain_range_min));
+                "dm_DIG() After: recover_cnt=%d, rx_gain_range_min=%x\n",
+                de_digtable.recover_cnt, de_digtable.rx_gain_range_min);
 
        if (value_igi > DM_DIG_MAX)
                value_igi = DM_DIG_MAX;
@@ -500,7 +497,7 @@ static void rtl92d_dm_dig(struct ieee80211_hw *hw)
        rtl92d_dm_write_dig(hw);
        if (rtlpriv->rtlhal.current_bandtype != BAND_ON_5G)
                rtl92d_dm_cck_packet_detection_thresh(hw);
-       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, ("<<==\n"));
+       RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "<<==\n");
 }
 
 static void rtl92d_dm_init_dynamic_txpower(struct ieee80211_hw *hw)
@@ -528,7 +525,7 @@ static void rtl92d_dm_dynamic_txpower(struct ieee80211_hw *hw)
        if ((mac->link_state < MAC80211_LINKED) &&
            (rtlpriv->dm.UNDEC_SM_PWDB == 0)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("Not connected to any\n"));
+                        "Not connected to any\n");
                rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL;
                rtlpriv->dm.last_dtp_lvl = TXHIGHPWRLEVEL_NORMAL;
                return;
@@ -538,40 +535,40 @@ static void rtl92d_dm_dynamic_txpower(struct ieee80211_hw *hw)
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.UNDEC_SM_PWDB;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("IBSS Client PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "IBSS Client PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                } else {
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.undecorated_smoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("STA Default Port PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "STA Default Port PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                }
        } else {
                undecorated_smoothed_pwdb =
                    rtlpriv->dm.UNDEC_SM_PWDB;
 
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("AP Ext Port PWDB = 0x%lx\n",
-                         undecorated_smoothed_pwdb));
+                        "AP Ext Port PWDB = 0x%lx\n",
+                        undecorated_smoothed_pwdb);
        }
        if (rtlhal->current_bandtype == BAND_ON_5G) {
                if (undecorated_smoothed_pwdb >= 0x33) {
                        rtlpriv->dm.dynamic_txhighpower_lvl =
                                                 TXHIGHPWRLEVEL_LEVEL2;
                        RT_TRACE(rtlpriv, COMP_HIPWR, DBG_LOUD,
-                                ("5G:TxHighPwrLevel_Level2 (TxPwr=0x0)\n"));
+                                "5G:TxHighPwrLevel_Level2 (TxPwr=0x0)\n");
                } else if ((undecorated_smoothed_pwdb < 0x33)
                           && (undecorated_smoothed_pwdb >= 0x2b)) {
                        rtlpriv->dm.dynamic_txhighpower_lvl =
                                                 TXHIGHPWRLEVEL_LEVEL1;
                        RT_TRACE(rtlpriv, COMP_HIPWR, DBG_LOUD,
-                                ("5G:TxHighPwrLevel_Level1 (TxPwr=0x10)\n"));
+                                "5G:TxHighPwrLevel_Level1 (TxPwr=0x10)\n");
                } else if (undecorated_smoothed_pwdb < 0x2b) {
                        rtlpriv->dm.dynamic_txhighpower_lvl =
                                                 TXHIGHPWRLEVEL_NORMAL;
                        RT_TRACE(rtlpriv, COMP_HIPWR, DBG_LOUD,
-                                ("5G:TxHighPwrLevel_Normal\n"));
+                                "5G:TxHighPwrLevel_Normal\n");
                }
        } else {
                if (undecorated_smoothed_pwdb >=
@@ -579,7 +576,7 @@ static void rtl92d_dm_dynamic_txpower(struct ieee80211_hw *hw)
                        rtlpriv->dm.dynamic_txhighpower_lvl =
                                                 TXHIGHPWRLEVEL_LEVEL2;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n"));
+                                "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n");
                } else
                    if ((undecorated_smoothed_pwdb <
                         (TX_POWER_NEAR_FIELD_THRESH_LVL2 - 3))
@@ -589,19 +586,19 @@ static void rtl92d_dm_dynamic_txpower(struct ieee80211_hw *hw)
                        rtlpriv->dm.dynamic_txhighpower_lvl =
                                                 TXHIGHPWRLEVEL_LEVEL1;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n"));
+                                "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n");
                } else if (undecorated_smoothed_pwdb <
                           (TX_POWER_NEAR_FIELD_THRESH_LVL1 - 5)) {
                        rtlpriv->dm.dynamic_txhighpower_lvl =
                                                 TXHIGHPWRLEVEL_NORMAL;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("TXHIGHPWRLEVEL_NORMAL\n"));
+                                "TXHIGHPWRLEVEL_NORMAL\n");
                }
        }
        if ((rtlpriv->dm.dynamic_txhighpower_lvl != rtlpriv->dm.last_dtp_lvl)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("PHY_SetTxPowerLevel8192S() Channel = %d\n",
-                         rtlphy->current_channel));
+                        "PHY_SetTxPowerLevel8192S() Channel = %d\n",
+                        rtlphy->current_channel);
                rtl92d_phy_set_txpower_level(hw, rtlphy->current_channel);
        }
        rtlpriv->dm.last_dtp_lvl = rtlpriv->dm.dynamic_txhighpower_lvl;
@@ -717,7 +714,7 @@ static void rtl92d_dm_rxgain_tracking_thermalmeter(struct ieee80211_hw *hw)
        u4tmp = (index_mapping[(rtlpriv->efuse.eeprom_thermalmeter -
                                rtlpriv->dm.thermalvalue_rxgain)]) << 12;
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                ("===> Rx Gain %x\n", u4tmp));
+                "===> Rx Gain %x\n", u4tmp);
        for (i = RF90_PATH_A; i < rtlpriv->phy.num_total_rfpath; i++)
                rtl_set_rfreg(hw, i, 0x3C, BRFREGOFFSETMASK,
                              (rtlpriv->phy.reg_rf3c[i] & (~(0xF000))) | u4tmp);
@@ -741,27 +738,22 @@ static void rtl92d_bandtype_2_4G(struct ieee80211_hw *hw, long *temp_cckg,
                        if (!memcmp((void *)&temp_cck,
                            (void *)&cckswing_table_ch14[i][2], 4)) {
                                *cck_index_old = (u8) i;
-                               RT_TRACE(rtlpriv,
-                                        COMP_POWER_TRACKING,
-                                        DBG_LOUD,
-                                        ("Initial reg0x%x = 0x%lx, "
-                                         "cck_index=0x%x, ch 14 %d\n",
-                                         RCCK0_TXFILTER2,
-                                         temp_cck, *cck_index_old,
-                                         rtlpriv->dm.cck_inch14));
+                               RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
+                                        "Initial reg0x%x = 0x%lx, cck_index=0x%x, ch 14 %d\n",
+                                        RCCK0_TXFILTER2, temp_cck,
+                                        *cck_index_old,
+                                        rtlpriv->dm.cck_inch14);
                                break;
                        }
                } else {
                        if (!memcmp((void *) &temp_cck,
                            &cckswing_table_ch1ch13[i][2], 4)) {
                                *cck_index_old = (u8) i;
-                               RT_TRACE(rtlpriv, COMP_POWER_TRACKING,
-                                        DBG_LOUD,
-                                        ("Initial reg0x%x = 0x%lx, "
-                                        "cck_index = 0x%x, ch14 %d\n",
-                                        RCCK0_TXFILTER2,
-                                        temp_cck, *cck_index_old,
-                                        rtlpriv->dm.cck_inch14));
+                               RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
+                                        "Initial reg0x%x = 0x%lx, cck_index = 0x%x, ch14 %d\n",
+                                        RCCK0_TXFILTER2, temp_cck,
+                                        *cck_index_old,
+                                        rtlpriv->dm.cck_inch14);
                                break;
                        }
                }
@@ -884,12 +876,12 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
        };
 
        rtlpriv->dm.txpower_trackinginit = true;
-       RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, ("\n"));
+       RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, "\n");
        thermalvalue = (u8) rtl_get_rfreg(hw, RF90_PATH_A, RF_T_METER, 0xf800);
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                ("Readback Thermal Meter = 0x%x pre thermal meter 0x%x "
-                "eeprom_thermalmeter 0x%x\n", thermalvalue,
-                rtlpriv->dm.thermalvalue, rtlefuse->eeprom_thermalmeter));
+                "Readback Thermal Meter = 0x%x pre thermal meter 0x%x eeprom_thermalmeter 0x%x\n",
+                thermalvalue,
+                rtlpriv->dm.thermalvalue, rtlefuse->eeprom_thermalmeter);
        rtl92d_phy_ap_calibrate(hw, (thermalvalue -
                                     rtlefuse->eeprom_thermalmeter));
        if (is2t)
@@ -904,10 +896,9 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                                ofdm_index_old[0] = (u8) i;
 
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("Initial pathA ele_d reg0x%x = 0x%lx,"
-                                        " ofdm_index=0x%x\n",
+                                        "Initial pathA ele_d reg0x%x = 0x%lx, ofdm_index=0x%x\n",
                                         ROFDM0_XATxIQIMBALANCE,
-                                        ele_d, ofdm_index_old[0]));
+                                        ele_d, ofdm_index_old[0]);
                                break;
                        }
                }
@@ -920,11 +911,9 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                                        ofdm_index_old[1] = (u8) i;
                                        RT_TRACE(rtlpriv, COMP_POWER_TRACKING,
                                                 DBG_LOUD,
-                                                ("Initial pathB ele_d reg "
-                                                "0x%x = 0x%lx, ofdm_index "
-                                                "= 0x%x\n",
+                                                "Initial pathB ele_d reg 0x%x = 0x%lx, ofdm_index = 0x%x\n",
                                                 ROFDM0_XBTxIQIMBALANCE, ele_d,
-                                                ofdm_index_old[1]));
+                                                ofdm_index_old[1]);
                                        break;
                                }
                        }
@@ -952,7 +941,7 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                                rtlpriv->dm.ofdm_index[i] = ofdm_index_old[i];
                        rtlpriv->dm.cck_index = cck_index_old;
                        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                ("reload ofdm index for band switch\n"));
+                                "reload ofdm index for band switch\n");
                }
                rtlpriv->dm.thermalvalue_avg
                            [rtlpriv->dm.thermalvalue_avg_index] = thermalvalue;
@@ -995,12 +984,10 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                        (thermalvalue - rtlpriv->dm.thermalvalue_rxgain) :
                        (rtlpriv->dm.thermalvalue_rxgain - thermalvalue);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                        ("Readback Thermal Meter = 0x%x pre thermal meter 0x%x"
-                         " eeprom_thermalmeter 0x%x delta 0x%x "
-                         "delta_lck 0x%x delta_iqk 0x%x\n",
-                         thermalvalue, rtlpriv->dm.thermalvalue,
-                         rtlefuse->eeprom_thermalmeter, delta, delta_lck,
-                         delta_iqk));
+                        "Readback Thermal Meter = 0x%x pre thermal meter 0x%x eeprom_thermalmeter 0x%x delta 0x%x delta_lck 0x%x delta_iqk 0x%x\n",
+                        thermalvalue, rtlpriv->dm.thermalvalue,
+                        rtlefuse->eeprom_thermalmeter, delta, delta_lck,
+                        delta_iqk);
                if ((delta_lck > rtlefuse->delta_lck) &&
                    (rtlefuse->delta_lck != 0)) {
                        rtlpriv->dm.thermalvalue_lck = thermalvalue;
@@ -1036,17 +1023,15 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                        }
                        if (is2t) {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("temp OFDM_A_index=0x%x, OFDM_B_index"
-                                        " = 0x%x,cck_index=0x%x\n",
-                                         rtlpriv->dm.ofdm_index[0],
-                                         rtlpriv->dm.ofdm_index[1],
-                                         rtlpriv->dm.cck_index));
+                                        "temp OFDM_A_index=0x%x, OFDM_B_index = 0x%x,cck_index=0x%x\n",
+                                        rtlpriv->dm.ofdm_index[0],
+                                        rtlpriv->dm.ofdm_index[1],
+                                        rtlpriv->dm.cck_index);
                        } else {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("temp OFDM_A_index=0x%x,cck_index = "
-                                        "0x%x\n",
-                                         rtlpriv->dm.ofdm_index[0],
-                                                       rtlpriv->dm.cck_index));
+                                        "temp OFDM_A_index=0x%x,cck_index = 0x%x\n",
+                                        rtlpriv->dm.ofdm_index[0],
+                                        rtlpriv->dm.cck_index);
                        }
                        for (i = 0; i < rf; i++) {
                                if (ofdm_index[i] > OFDM_TABLE_SIZE_92D - 1)
@@ -1070,15 +1055,13 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                        }
                        if (is2t) {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("new OFDM_A_index=0x%x, OFDM_B_index "
-                                        "= 0x%x, cck_index=0x%x\n",
+                                        "new OFDM_A_index=0x%x, OFDM_B_index = 0x%x, cck_index=0x%x\n",
                                         ofdm_index[0], ofdm_index[1],
-                                        cck_index));
+                                        cck_index);
                        } else {
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("new OFDM_A_index=0x%x,cck_index = "
-                                        "0x%x\n",
-                                         ofdm_index[0], cck_index));
+                                        "new OFDM_A_index=0x%x,cck_index = 0x%x\n",
+                                        ofdm_index[0], cck_index);
                        }
                        ele_d = (ofdmswing_table[(u8) ofdm_index[0]] &
                                                 0xFFC00000) >> 22;
@@ -1124,12 +1107,10 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                        }
 
                        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                ("TxPwrTracking for interface %d path A: X ="
-                                " 0x%lx, Y = 0x%lx ele_A = 0x%lx ele_C = "
-                                "0x%lx ele_D = 0x%lx 0xe94 = 0x%lx 0xe9c = "
-                                "0x%lx\n", rtlhal->interfaceindex,
+                                "TxPwrTracking for interface %d path A: X = 0x%lx, Y = 0x%lx ele_A = 0x%lx ele_C = 0x%lx ele_D = 0x%lx 0xe94 = 0x%lx 0xe9c = 0x%lx\n",
+                                rtlhal->interfaceindex,
                                 val_x, val_y, ele_a, ele_c, ele_d,
-                                val_x, val_y));
+                                val_x, val_y);
 
                        if (rtlhal->current_bandtype == BAND_ON_2_4G) {
                                /* Adjust CCK according to IQK result */
@@ -1232,20 +1213,16 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                                                      BIT(28), 0x00);
                                }
                                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                        ("TxPwrTracking path B: X = 0x%lx, "
-                                        "Y = 0x%lx ele_A = 0x%lx ele_C = 0x"
-                                        "%lx ele_D = 0x%lx 0xeb4 = 0x%lx "
-                                        "0xebc = 0x%lx\n",
-                                         val_x, val_y, ele_a, ele_c,
-                                         ele_d, val_x, val_y));
+                                        "TxPwrTracking path B: X = 0x%lx, Y = 0x%lx ele_A = 0x%lx ele_C = 0x%lx ele_D = 0x%lx 0xeb4 = 0x%lx 0xebc = 0x%lx\n",
+                                        val_x, val_y, ele_a, ele_c,
+                                        ele_d, val_x, val_y);
                        }
                        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                                ("TxPwrTracking 0xc80 = 0x%x, 0xc94 = "
-                                "0x%x RF 0x24 = 0x%x\n",
+                                "TxPwrTracking 0xc80 = 0x%x, 0xc94 = 0x%x RF 0x24 = 0x%x\n",
                                 rtl_get_bbreg(hw, 0xc80, BMASKDWORD),
                                 rtl_get_bbreg(hw, 0xc94, BMASKDWORD),
                                 rtl_get_rfreg(hw, RF90_PATH_A, 0x24,
-                                BRFREGOFFSETMASK)));
+                                              BRFREGOFFSETMASK));
                }
                if ((delta_iqk > rtlefuse->delta_iqk) &&
                    (rtlefuse->delta_iqk != 0)) {
@@ -1262,7 +1239,7 @@ static void rtl92d_dm_txpower_tracking_callback_thermalmeter(
                        rtlpriv->dm.thermalvalue = thermalvalue;
        }
 
-       RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, ("<===\n"));
+       RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, "<===\n");
 }
 
 static void rtl92d_dm_initialize_txpower_tracking(struct ieee80211_hw *hw)
@@ -1273,8 +1250,8 @@ static void rtl92d_dm_initialize_txpower_tracking(struct ieee80211_hw *hw)
        rtlpriv->dm.txpower_trackinginit = false;
        rtlpriv->dm.txpower_track_control = true;
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                ("pMgntInfo->txpower_tracking = %d\n",
-                rtlpriv->dm.txpower_tracking));
+                "pMgntInfo->txpower_tracking = %d\n",
+                rtlpriv->dm.txpower_tracking);
 }
 
 void rtl92d_dm_check_txpower_tracking_thermal_meter(struct ieee80211_hw *hw)
@@ -1289,12 +1266,12 @@ void rtl92d_dm_check_txpower_tracking_thermal_meter(struct ieee80211_hw *hw)
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER, BIT(17) |
                              BIT(16), 0x03);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                        ("Trigger 92S Thermal Meter!!\n"));
+                        "Trigger 92S Thermal Meter!!\n");
                tm_trigger = 1;
                return;
        } else {
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                        ("Schedule TxPowerTracking direct call!!\n"));
+                        "Schedule TxPowerTracking direct call!!\n");
                rtl92d_dm_txpower_tracking_callback_thermalmeter(hw);
                tm_trigger = 0;
        }
index 69354657f0f5d7d64d537abe4f40ec2f2043b88d..91030ec8ac3e9e2eef67ea9913ffb8e9a3d5e8d9 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 82f060bdbc0b7fa8b22b14b96c8b478c977758ee..f548a8d0068d22d672bf505a9e9f071f1171560e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -124,14 +124,14 @@ static void _rtl92d_write_fw(struct ieee80211_hw *hw,
        u32 pagenums, remainSize;
        u32 page, offset;
 
-       RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, ("FW size is %d bytes,\n", size));
+       RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, "FW size is %d bytes,\n", size);
        if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192DE)
                _rtl92d_fill_dummy(bufferPtr, &size);
        pagenums = size / FW_8192D_PAGE_SIZE;
        remainSize = size % FW_8192D_PAGE_SIZE;
        if (pagenums > 8) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Page numbers should not greater then 8\n"));
+                        "Page numbers should not greater then 8\n");
        }
        for (page = 0; page < pagenums; page++) {
                offset = page * FW_8192D_PAGE_SIZE;
@@ -158,12 +158,12 @@ static int _rtl92d_fw_free_to_go(struct ieee80211_hw *hw)
                 (!(value32 & FWDL_ChkSum_rpt)));
        if (counter >= FW_8192D_POLLING_TIMEOUT_COUNT) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("chksum report faill ! REG_MCUFWDL:0x%08x .\n",
-                        value32));
+                        "chksum report faill ! REG_MCUFWDL:0x%08x\n",
+                        value32);
                return -EIO;
        }
        RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-                ("Checksum report OK ! REG_MCUFWDL:0x%08x .\n", value32));
+                "Checksum report OK ! REG_MCUFWDL:0x%08x\n", value32);
        value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL);
        value32 |= MCUFWDL_RDY;
        rtl_write_dword(rtlpriv, REG_MCUFWDL, value32);
@@ -186,9 +186,9 @@ void rtl92d_firmware_selfreset(struct ieee80211_hw *hw)
                udelay(50);
                u1b_tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1);
        }
-       RT_ASSERT((delay > 0), ("8051 reset failed!\n"));
+       RT_ASSERT((delay > 0), "8051 reset failed!\n");
        RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                ("=====> 8051 reset success (%d) .\n", delay));
+                "=====> 8051 reset success (%d)\n", delay);
 }
 
 static int _rtl92d_fw_init(struct ieee80211_hw *hw)
@@ -197,7 +197,7 @@ static int _rtl92d_fw_init(struct ieee80211_hw *hw)
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        u32 counter;
 
-       RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG, ("FW already have download\n"));
+       RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG, "FW already have download\n");
        /* polling for FW ready */
        counter = 0;
        do {
@@ -205,10 +205,9 @@ static int _rtl92d_fw_init(struct ieee80211_hw *hw)
                        if (rtl_read_byte(rtlpriv, FW_MAC0_READY) &
                            MAC0_READY) {
                                RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                                        ("Polling FW ready success!! "
-                                        "REG_MCUFWDL: 0x%x .\n",
+                                        "Polling FW ready success!! REG_MCUFWDL: 0x%x\n",
                                         rtl_read_byte(rtlpriv,
-                                        FW_MAC0_READY)));
+                                                      FW_MAC0_READY));
                                return 0;
                        }
                        udelay(5);
@@ -216,10 +215,9 @@ static int _rtl92d_fw_init(struct ieee80211_hw *hw)
                        if (rtl_read_byte(rtlpriv, FW_MAC1_READY) &
                            MAC1_READY) {
                                RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                                        ("Polling FW ready success!! "
-                                        "REG_MCUFWDL: 0x%x .\n",
+                                        "Polling FW ready success!! REG_MCUFWDL: 0x%x\n",
                                         rtl_read_byte(rtlpriv,
-                                                      FW_MAC1_READY)));
+                                                      FW_MAC1_READY));
                                return 0;
                        }
                        udelay(5);
@@ -228,18 +226,16 @@ static int _rtl92d_fw_init(struct ieee80211_hw *hw)
 
        if (rtlhal->interfaceindex == 0) {
                RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                        ("Polling FW ready fail!! MAC0 FW init not ready: "
-                        "0x%x .\n",
-                        rtl_read_byte(rtlpriv, FW_MAC0_READY)));
+                        "Polling FW ready fail!! MAC0 FW init not ready: 0x%x\n",
+                        rtl_read_byte(rtlpriv, FW_MAC0_READY));
        } else {
                RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                        ("Polling FW ready fail!! MAC1 FW init not ready: "
-                        "0x%x .\n",
-                        rtl_read_byte(rtlpriv, FW_MAC1_READY)));
+                        "Polling FW ready fail!! MAC1 FW init not ready: 0x%x\n",
+                        rtl_read_byte(rtlpriv, FW_MAC1_READY));
        }
        RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                ("Polling FW ready fail!! REG_MCUFWDL:0x%08ul .\n",
-                rtl_read_dword(rtlpriv, REG_MCUFWDL)));
+                "Polling FW ready fail!! REG_MCUFWDL:0x%08ul\n",
+                rtl_read_dword(rtlpriv, REG_MCUFWDL));
        return -1;
 }
 
@@ -257,20 +253,20 @@ int rtl92d_download_fw(struct ieee80211_hw *hw)
        bool fw_downloaded = false, fwdl_in_process = false;
        unsigned long flags;
 
-       if (!rtlhal->pfirmware)
+       if (rtlpriv->max_fw_size == 0 || !rtlhal->pfirmware)
                return 1;
        fwsize = rtlhal->fwsize;
        pfwheader = (u8 *) rtlhal->pfirmware;
        pfwdata = (u8 *) rtlhal->pfirmware;
        rtlhal->fw_version = (u16) GET_FIRMWARE_HDR_VERSION(pfwheader);
        rtlhal->fw_subversion = (u16) GET_FIRMWARE_HDR_SUB_VER(pfwheader);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, (" FirmwareVersion(%d),"
-                "FirmwareSubVersion(%d), Signature(%#x)\n",
-                rtlhal->fw_version,    rtlhal->fw_subversion,
-                GET_FIRMWARE_HDR_SIGNATURE(pfwheader)));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                "FirmwareVersion(%d), FirmwareSubVersion(%d), Signature(%#x)\n",
+                rtlhal->fw_version, rtlhal->fw_subversion,
+                GET_FIRMWARE_HDR_SIGNATURE(pfwheader));
        if (IS_FW_HEADER_EXIST(pfwheader)) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("Shift 32 bytes for FW header!!\n"));
+                        "Shift 32 bytes for FW header!!\n");
                pfwdata = pfwdata + 32;
                fwsize = fwsize - 32;
        }
@@ -302,8 +298,7 @@ int rtl92d_download_fw(struct ieee80211_hw *hw)
                                break;
                        else
                                RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
-                                        ("Wait for another mac "
-                                        "download fw\n"));
+                                        "Wait for another mac download fw\n");
                }
                spin_lock_irqsave(&globalmutex_for_fwdownload, flags);
                value = rtl_read_byte(rtlpriv, 0x1f);
@@ -337,11 +332,10 @@ int rtl92d_download_fw(struct ieee80211_hw *hw)
        spin_unlock_irqrestore(&globalmutex_for_fwdownload, flags);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("fw is not ready to run!\n"));
+                        "fw is not ready to run!\n");
                goto exit;
        } else {
-               RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
-                        ("fw is ready to run!\n"));
+               RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, "fw is ready to run!\n");
        }
 exit:
        err = _rtl92d_fw_init(hw);
@@ -381,24 +375,24 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
 
        if (ppsc->rfpwr_state == ERFOFF || ppsc->inactive_pwrstate == ERFOFF) {
                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                        ("Return as RF is off!!!\n"));
+                        "Return as RF is off!!!\n");
                return;
        }
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("come in\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "come in\n");
        while (true) {
                spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag);
                if (rtlhal->h2c_setinprogress) {
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("H2C set in progress! Wait to set.."
-                                "element_id(%d).\n", element_id));
+                                "H2C set in progress! Wait to set..element_id(%d)\n",
+                                element_id);
 
                        while (rtlhal->h2c_setinprogress) {
                                spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock,
                                                       flag);
                                h2c_waitcounter++;
                                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                        ("Wait 100 us (%d times)...\n",
-                                        h2c_waitcounter));
+                                        "Wait 100 us (%d times)...\n",
+                                        h2c_waitcounter);
                                udelay(100);
 
                                if (h2c_waitcounter > 1000)
@@ -418,8 +412,7 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
                wait_writeh2c_limmit--;
                if (wait_writeh2c_limmit == 0) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Write H2C fail because no trigger "
-                                "for FW INT!\n"));
+                                "Write H2C fail because no trigger for FW INT!\n");
                        break;
                }
                boxnum = rtlhal->last_hmeboxnum;
@@ -442,7 +435,7 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
                isfw_read = _rtl92d_check_fw_read_last_h2c(hw, boxnum);
@@ -450,29 +443,29 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
                        wait_h2c_limmit--;
                        if (wait_h2c_limmit == 0) {
                                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                        ("Wating too long for FW read "
-                                        "clear HMEBox(%d)!\n", boxnum));
+                                        "Waiting too long for FW read clear HMEBox(%d)!\n",
+                                        boxnum);
                                break;
                        }
                        udelay(10);
                        isfw_read = _rtl92d_check_fw_read_last_h2c(hw, boxnum);
                        u1b_tmp = rtl_read_byte(rtlpriv, 0x1BF);
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("Wating for FW read clear HMEBox(%d)!!! "
-                                "0x1BF = %2x\n", boxnum, u1b_tmp));
+                                "Waiting for FW read clear HMEBox(%d)!!! 0x1BF = %2x\n",
+                                boxnum, u1b_tmp);
                }
                if (!isfw_read) {
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("Write H2C register BOX[%d] fail!!!!! "
-                                "Fw do not read.\n", boxnum));
+                                "Write H2C register BOX[%d] fail!!!!! Fw do not read.\n",
+                                boxnum);
                        break;
                }
                memset(boxcontent, 0, sizeof(boxcontent));
                memset(boxextcontent, 0, sizeof(boxextcontent));
                boxcontent[0] = element_id;
                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                        ("Write element_id box_reg(%4x) = %2x\n",
-                        box_reg, element_id));
+                        "Write element_id box_reg(%4x) = %2x\n",
+                        box_reg, element_id);
                switch (cmd_len) {
                case 1:
                        boxcontent[0] &= ~(BIT(7));
@@ -519,7 +512,7 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                               ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
                bwrite_sucess = true;
@@ -527,26 +520,20 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
                if (rtlhal->last_hmeboxnum == 4)
                        rtlhal->last_hmeboxnum = 0;
                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                        ("pHalData->last_hmeboxnum  = %d\n",
-                         rtlhal->last_hmeboxnum));
+                        "pHalData->last_hmeboxnum  = %d\n",
+                        rtlhal->last_hmeboxnum);
        }
        spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag);
        rtlhal->h2c_setinprogress = false;
        spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag);
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("go out\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "go out\n");
 }
 
 void rtl92d_fill_h2c_cmd(struct ieee80211_hw *hw,
                         u8 element_id, u32 cmd_len, u8 *cmdbuffer)
 {
-       struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        u32 tmp_cmdbuf[2];
 
-       if (rtlhal->fw_ready == false) {
-               RT_ASSERT(false, ("return H2C cmd because of Fw "
-                                 "download fail!!!\n"));
-               return;
-       }
        memset(tmp_cmdbuf, 0, 8);
        memcpy(tmp_cmdbuf, cmdbuffer, cmd_len);
        _rtl92d_fill_h2c_command(hw, element_id, cmd_len, (u8 *)&tmp_cmdbuf);
@@ -559,13 +546,13 @@ void rtl92d_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode)
        u8 u1_h2c_set_pwrmode[3] = { 0 };
        struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
 
-       RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("FW LPS mode = %d\n", mode));
+       RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "FW LPS mode = %d\n", mode);
        SET_H2CCMD_PWRMODE_PARM_MODE(u1_h2c_set_pwrmode, mode);
        SET_H2CCMD_PWRMODE_PARM_SMART_PS(u1_h2c_set_pwrmode, 1);
        SET_H2CCMD_PWRMODE_PARM_BCN_PASS_TIME(u1_h2c_set_pwrmode,
                                              ppsc->reg_max_lps_awakeintvl);
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
-                     "rtl92d_set_fw_rsvdpagepkt(): u1_h2c_set_pwrmode\n",
+                     "rtl92d_set_fw_rsvdpagepkt(): u1_h2c_set_pwrmode",
                      u1_h2c_set_pwrmode, 3);
        rtl92d_fill_h2c_cmd(hw, H2C_SETPWRMODE, 3, u1_h2c_set_pwrmode);
 }
@@ -757,28 +744,32 @@ void rtl92d_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
        SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1RsvdPageLoc, PROBERSP_PG);
        totalpacketlen = TOTAL_RESERVED_PKT_LEN;
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
-                     "rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
+                     "rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL",
                      &reserved_page_packet[0], totalpacketlen);
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
-                     "rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
+                     "rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL",
                      u1RsvdPageLoc, 3);
        skb = dev_alloc_skb(totalpacketlen);
-       memcpy((u8 *) skb_put(skb, totalpacketlen), &reserved_page_packet,
-               totalpacketlen);
-       rtstatus = _rtl92d_cmd_send_packet(hw, skb);
+       if (!skb) {
+               dlok = false;
+       } else {
+               memcpy((u8 *) skb_put(skb, totalpacketlen),
+                       &reserved_page_packet, totalpacketlen);
+               rtstatus = _rtl92d_cmd_send_packet(hw, skb);
 
-       if (rtstatus)
-               dlok = true;
+               if (rtstatus)
+                       dlok = true;
+       }
        if (dlok) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                       ("Set RSVD page location to Fw.\n"));
+                        "Set RSVD page location to Fw\n");
                RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
-                             "H2C_RSVDPAGE:\n", u1RsvdPageLoc, 3);
+                             "H2C_RSVDPAGE", u1RsvdPageLoc, 3);
                rtl92d_fill_h2c_cmd(hw, H2C_RSVDPAGE,
                        sizeof(u1RsvdPageLoc), u1RsvdPageLoc);
        } else
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                       ("Set RSVD page location to Fw FAIL!!!!!!.\n"));
+                        "Set RSVD page location to Fw FAIL!!!!!!\n");
 }
 
 void rtl92d_set_fw_joinbss_report_cmd(struct ieee80211_hw *hw, u8 mstatus)
index 0c4d489eaa487ca572a21a085bf77c5a01052acb..1ffacdda734c96222ff59370dd917a3d73cb28e3 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 9d89d7ccdafb7fa389499ae5d9d6df1be75ddc0b..7d877125db29e12da4b12cad901f2f8bc641c331 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -166,7 +166,7 @@ void rtl92de_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
 }
@@ -230,7 +230,7 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                u8 e_aci;
 
                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                        ("HW_VAR_SLOT_TIME %x\n", val[0]));
+                        "HW_VAR_SLOT_TIME %x\n", val[0]);
                rtl_write_byte(rtlpriv, REG_SLOT, val[0]);
                for (e_aci = 0; e_aci < AC_MAX; e_aci++)
                        rtlpriv->cfg->ops->set_hw_reg(hw,
@@ -261,8 +261,8 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                              min_spacing_to_set);
                        *val = min_spacing_to_set;
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
-                                mac->min_space_cfg));
+                                "Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
+                                mac->min_space_cfg);
                        rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE,
                                       mac->min_space_cfg);
                }
@@ -275,8 +275,8 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                mac->min_space_cfg = rtlpriv->rtlhal.minspace_cfg;
                mac->min_space_cfg |= (density_to_set << 3);
                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                        ("Set HW_VAR_SHORTGI_DENSITY: %#x\n",
-                        mac->min_space_cfg));
+                        "Set HW_VAR_SHORTGI_DENSITY: %#x\n",
+                        mac->min_space_cfg);
                rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE,
                               mac->min_space_cfg);
                break;
@@ -310,8 +310,8 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        }
                        rtl_write_dword(rtlpriv, REG_AGGLEN_LMT, regtoSet);
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("Set HW_VAR_AMPDU_FACTOR: %#x\n",
-                                factor_toset));
+                                "Set HW_VAR_AMPDU_FACTOR: %#x\n",
+                                factor_toset);
                }
                break;
        }
@@ -344,8 +344,8 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                break;
                        default:
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("HW_VAR_ACM_CTRL acm set "
-                                        "failed: eACI is %d\n", acm));
+                                        "HW_VAR_ACM_CTRL acm set failed: eACI is %d\n",
+                                        acm);
                                break;
                        }
                } else {
@@ -361,13 +361,13 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                break;
                        default:
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                        ("switch case not process\n"));
+                                        "switch case not processed\n");
                                break;
                        }
                }
                RT_TRACE(rtlpriv, COMP_QOS, DBG_TRACE,
-                        ("SetHwReg8190pci(): [HW_VAR_ACM_CTRL] "
-                        "Write 0x%X\n", acm_ctrl));
+                        "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n",
+                        acm_ctrl);
                rtl_write_byte(rtlpriv, REG_ACMHWCTRL, acm_ctrl);
                break;
        }
@@ -502,7 +502,7 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
        }
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
 }
@@ -522,8 +522,8 @@ static bool _rtl92de_llt_write(struct ieee80211_hw *hw, u32 address, u32 data)
                        break;
                if (count > POLLING_LLT_THRESHOLD) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Failed to polling write LLT done at "
-                                 "address %d!\n", address));
+                                "Failed to polling write LLT done at address %d!\n",
+                                address);
                        status = false;
                        break;
                }
@@ -879,12 +879,12 @@ void rtl92de_enable_hw_security_config(struct ieee80211_hw *hw)
        u8 sec_reg_value;
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
-                 rtlpriv->sec.pairwise_enc_algorithm,
-                 rtlpriv->sec.group_enc_algorithm));
+                "PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
+                rtlpriv->sec.pairwise_enc_algorithm,
+                rtlpriv->sec.group_enc_algorithm);
        if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                        ("not open hw encryption\n"));
+                        "not open hw encryption\n");
                return;
        }
        sec_reg_value = SCR_TXENCENABLE | SCR_RXENCENABLE;
@@ -895,7 +895,7 @@ void rtl92de_enable_hw_security_config(struct ieee80211_hw *hw)
        sec_reg_value |= (SCR_RXBCUSEDK | SCR_TXBCUSEDK);
        rtl_write_byte(rtlpriv, REG_CR + 1, 0x02);
        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                ("The SECR-value %x\n", sec_reg_value));
+                "The SECR-value %x\n", sec_reg_value);
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_WPA_CONFIG, &sec_reg_value);
 }
 
@@ -921,7 +921,7 @@ int rtl92de_hw_init(struct ieee80211_hw *hw)
        /* rtlpriv->intf_ops->disable_aspm(hw); */
        rtstatus = _rtl92de_init_mac(hw);
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Init MAC failed\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Init MAC failed\n");
                err = 1;
                spin_unlock_irqrestore(&globalmutex_for_power_and_efuse, flags);
                return err;
@@ -930,12 +930,8 @@ int rtl92de_hw_init(struct ieee80211_hw *hw)
        spin_unlock_irqrestore(&globalmutex_for_power_and_efuse, flags);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Failed to download FW. Init HW "
-                        "without FW..\n"));
-               rtlhal->fw_ready = false;
+                        "Failed to download FW. Init HW without FW..\n");
                return 1;
-       } else {
-               rtlhal->fw_ready = true;
        }
        rtlhal->last_hmeboxnum = 0;
        rtlpriv->psc.fw_current_inpsmode = false;
@@ -946,7 +942,7 @@ int rtl92de_hw_init(struct ieee80211_hw *hw)
 
        if (rtlhal->earlymode_enable) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("EarlyMode Enabled!!!\n"));
+                        "EarlyMode Enabled!!!\n");
 
                tmp_u1b = rtl_read_byte(rtlpriv, 0x4d0);
                tmp_u1b = tmp_u1b | 0x1f;
@@ -1064,10 +1060,10 @@ static enum version_8192d _rtl92de_read_chip_version(struct ieee80211_hw *hw)
        value32 = rtl_read_dword(rtlpriv, REG_SYS_CFG);
        if (!(value32 & 0x000f0000)) {
                version = VERSION_TEST_CHIP_92D_SINGLEPHY;
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("TEST CHIP!!!\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "TEST CHIP!!!\n");
        } else {
                version = VERSION_NORMAL_CHIP_92D_SINGLEPHY;
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Normal CHIP!!!\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Normal CHIP!!!\n");
        }
        return version;
 }
@@ -1092,8 +1088,8 @@ static int _rtl92de_set_media_status(struct ieee80211_hw *hw,
                _rtl92de_disable_bcn_sub_func(hw);
        } else {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Set HW_VAR_MEDIA_STATUS: No such media "
-                        "status(%x).\n", type));
+                        "Set HW_VAR_MEDIA_STATUS: No such media status(%x)\n",
+                        type);
        }
        bcnfunc_enable = rtl_read_byte(rtlpriv, REG_BCN_CTRL);
        switch (type) {
@@ -1102,30 +1098,30 @@ static int _rtl92de_set_media_status(struct ieee80211_hw *hw,
                ledaction = LED_CTL_LINK;
                bcnfunc_enable &= 0xF7;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to NO LINK!\n"));
+                        "Set Network type to NO LINK!\n");
                break;
        case NL80211_IFTYPE_ADHOC:
                bt_msr |= MSR_ADHOC;
                bcnfunc_enable |= 0x08;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to Ad Hoc!\n"));
+                        "Set Network type to Ad Hoc!\n");
                break;
        case NL80211_IFTYPE_STATION:
                bt_msr |= MSR_INFRA;
                ledaction = LED_CTL_LINK;
                bcnfunc_enable &= 0xF7;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to STA!\n"));
+                        "Set Network type to STA!\n");
                break;
        case NL80211_IFTYPE_AP:
                bt_msr |= MSR_AP;
                bcnfunc_enable |= 0x08;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to AP!\n"));
+                        "Set Network type to AP!\n");
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Network type %d not support!\n", type));
+                        "Network type %d not supported!\n", type);
                return 1;
                break;
 
@@ -1189,7 +1185,7 @@ void rtl92d_linked_set_reg(struct ieee80211_hw *hw)
        indexforchannel = rtl92d_get_rightchnlplace_for_iqk(channel);
        if (!rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done) {
                RT_TRACE(rtlpriv, COMP_SCAN | COMP_INIT, DBG_DMESG,
-                               ("Do IQK for channel:%d.\n", channel));
+                        "Do IQK for channel:%d\n", channel);
                rtl92d_phy_iq_calibrate(hw);
        }
 }
@@ -1214,7 +1210,7 @@ void rtl92de_set_qos(struct ieee80211_hw *hw, int aci)
                rtl_write_dword(rtlpriv, REG_EDCA_VO_PARAM, 0x2f3222);
                break;
        default:
-               RT_ASSERT(false, ("invalid aci: %d !\n", aci));
+               RT_ASSERT(false, "invalid aci: %d !\n", aci);
                break;
        }
 }
@@ -1305,8 +1301,8 @@ static void _rtl92de_poweroff_adapter(struct ieee80211_hw *hw)
        rtl_write_byte(rtlpriv, REG_APS_FSMCO + 1, 0x10);
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("In PowerOff,reg0x%x=%X\n", REG_SPS0_CTRL,
-                 rtl_read_byte(rtlpriv, REG_SPS0_CTRL)));
+                "In PowerOff,reg0x%x=%X\n",
+                REG_SPS0_CTRL, rtl_read_byte(rtlpriv, REG_SPS0_CTRL));
        /* r.   Note: for PCIe interface, PON will not turn */
        /* off m-bias and BandGap in PCIe suspend mode.  */
 
@@ -1319,7 +1315,7 @@ static void _rtl92de_poweroff_adapter(struct ieee80211_hw *hw)
                spin_unlock_irqrestore(&globalmutex_power, flags);
        }
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("<=======\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "<=======\n");
 }
 
 void rtl92de_card_disable(struct ieee80211_hw *hw)
@@ -1377,7 +1373,7 @@ void rtl92de_card_disable(struct ieee80211_hw *hw)
        rtl_write_byte(rtlpriv, REG_PCIE_CTRL_REG + 1, 0xff);
        udelay(50);
        rtl_write_byte(rtlpriv, REG_CR, 0x0);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("==> Do power off.......\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "==> Do power off.......\n");
        if (rtl92d_phy_check_poweroff(hw))
                _rtl92de_poweroff_adapter(hw);
        return;
@@ -1425,7 +1421,7 @@ void rtl92de_set_beacon_interval(struct ieee80211_hw *hw)
        u16 bcn_interval = mac->beacon_interval;
 
        RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
-                ("beacon_interval:%d\n", bcn_interval));
+                "beacon_interval:%d\n", bcn_interval);
        /* rtl92de_disable_interrupt(hw); */
        rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval);
        /* rtl92de_enable_interrupt(hw); */
@@ -1437,8 +1433,8 @@ void rtl92de_update_interrupt_mask(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
 
-       RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD,
-                ("add_msr:%x, rm_msr:%x\n", add_msr, rm_msr));
+       RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD, "add_msr:%x, rm_msr:%x\n",
+                add_msr, rm_msr);
        if (add_msr)
                rtlpci->irq_mask[0] |= add_msr;
        if (rm_msr)
@@ -1615,9 +1611,9 @@ static void _rtl92de_read_txpower_info(struct ieee80211_hw *hw,
                        rtlefuse->internal_pa_5g[1] =
                                !((hwinfo[EEPROM_TSSI_B_5G] & BIT(6)) >> 6);
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                                ("Is D cut,Internal PA0 %d Internal PA1 %d\n",
+                                "Is D cut,Internal PA0 %d Internal PA1 %d\n",
                                 rtlefuse->internal_pa_5g[0],
-                                rtlefuse->internal_pa_5g[1]))
+                                rtlefuse->internal_pa_5g[1]);
                }
                rtlefuse->eeprom_c9 = hwinfo[EEPROM_RF_OPT6];
                rtlefuse->eeprom_cc = hwinfo[EEPROM_RF_OPT7];
@@ -1667,14 +1663,14 @@ static void _rtl92de_read_txpower_info(struct ieee80211_hw *hw,
        if (rtlefuse->eeprom_c9 == 0xFF)
                rtlefuse->eeprom_c9 = 0x00;
        RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD,
-                ("EEPROMRegulatory = 0x%x\n", rtlefuse->eeprom_regulatory));
+                "EEPROMRegulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
        RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD,
-                ("ThermalMeter = 0x%x\n", rtlefuse->eeprom_thermalmeter));
+                "ThermalMeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
        RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD,
-                ("CrystalCap = 0x%x\n", rtlefuse->crystalcap));
+                "CrystalCap = 0x%x\n", rtlefuse->crystalcap);
        RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD,
-                ("Delta_IQK = 0x%x Delta_LCK = 0x%x\n", rtlefuse->delta_iqk,
-                rtlefuse->delta_lck));
+                "Delta_IQK = 0x%x Delta_LCK = 0x%x\n",
+                rtlefuse->delta_iqk, rtlefuse->delta_lck);
 
        for (rfPath = 0; rfPath < RF6052_MAX_PATH; rfPath++) {
                for (ch = 0; ch < CHANNEL_MAX_NUMBER; ch++) {
@@ -1710,11 +1706,11 @@ static void _rtl92de_read_macphymode_from_prom(struct ieee80211_hw *hw,
        if (macphy_crvalue & BIT(3)) {
                rtlhal->macphymode = SINGLEMAC_SINGLEPHY;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("MacPhyMode SINGLEMAC_SINGLEPHY\n"));
+                        "MacPhyMode SINGLEMAC_SINGLEPHY\n");
        } else {
                rtlhal->macphymode = DUALMAC_DUALPHY;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("MacPhyMode DUALMAC_DUALPHY\n"));
+                        "MacPhyMode DUALMAC_DUALPHY\n");
        }
 }
 
@@ -1741,15 +1737,15 @@ static void _rtl92de_efuse_update_chip_version(struct ieee80211_hw *hw)
        switch (chipvalue) {
        case 0xAA55:
                chipver |= CHIP_92D_C_CUT;
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("C-CUT!!!\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "C-CUT!!!\n");
                break;
        case 0x9966:
                chipver |= CHIP_92D_D_CUT;
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("D-CUT!!!\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "D-CUT!!!\n");
                break;
        default:
                chipver |= CHIP_92D_D_CUT;
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, ("Unkown CUT!\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, "Unkown CUT!\n");
                break;
        }
        rtlpriv->rtlhal.version = chipver;
@@ -1775,23 +1771,23 @@ static void _rtl92de_read_adapter_info(struct ieee80211_hw *hw)
                       HWSET_MAX_SIZE);
        } else if (rtlefuse->epromtype == EEPROM_93C46) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("RTL819X Not boot from eeprom, check it !!"));
+                        "RTL819X Not boot from eeprom, check it !!\n");
        }
-       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP\n"),
+       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, "MAP",
                      hwinfo, HWSET_MAX_SIZE);
 
        eeprom_id = *((u16 *)&hwinfo[0]);
        if (eeprom_id != RTL8190_EEPROM_ID) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("EEPROM ID(%#x) is invalid!!\n", eeprom_id));
+                        "EEPROM ID(%#x) is invalid!!\n", eeprom_id);
                rtlefuse->autoload_failflag = true;
        } else {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
                rtlefuse->autoload_failflag = false;
        }
        if (rtlefuse->autoload_failflag) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("RTL819X Not boot from eeprom, check it !!"));
+                        "RTL819X Not boot from eeprom, check it !!\n");
                return;
        }
        rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMER_ID];
@@ -1802,16 +1798,15 @@ static void _rtl92de_read_adapter_info(struct ieee80211_hw *hw)
        rtlefuse->eeprom_did = *(u16 *)&hwinfo[EEPROM_DID];
        rtlefuse->eeprom_svid = *(u16 *)&hwinfo[EEPROM_SVID];
        rtlefuse->eeprom_smid = *(u16 *)&hwinfo[EEPROM_SMID];
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROMId = 0x%4x\n", eeprom_id);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROMId = 0x%4x\n", eeprom_id));
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid));
+                "EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did));
+                "EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid));
+                "EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid));
+                "EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid);
 
        /* Read Permanent MAC address */
        if (rtlhal->interfaceindex == 0) {
@@ -1827,8 +1822,7 @@ static void _rtl92de_read_adapter_info(struct ieee80211_hw *hw)
        }
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR,
                                      rtlefuse->dev_addr);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("%pM\n", rtlefuse->dev_addr));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%pM\n", rtlefuse->dev_addr);
        _rtl92de_read_txpower_info(hw, rtlefuse->autoload_failflag, hwinfo);
 
        /* Read Channel Plan */
@@ -1849,7 +1843,7 @@ static void _rtl92de_read_adapter_info(struct ieee80211_hw *hw)
        rtlefuse->eeprom_version = *(u16 *)&hwinfo[EEPROM_VERSION];
        rtlefuse->txpwr_fromeprom = true;
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid));
+                "EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid);
 }
 
 void rtl92de_read_eeprom_info(struct ieee80211_hw *hw)
@@ -1863,19 +1857,19 @@ void rtl92de_read_eeprom_info(struct ieee80211_hw *hw)
        tmp_u1b = rtl_read_byte(rtlpriv, REG_9346CR);
        rtlefuse->autoload_status = tmp_u1b;
        if (tmp_u1b & BIT(4)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Boot from EEPROM\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EEPROM\n");
                rtlefuse->epromtype = EEPROM_93C46;
        } else {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Boot from EFUSE\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EFUSE\n");
                rtlefuse->epromtype = EEPROM_BOOT_EFUSE;
        }
        if (tmp_u1b & BIT(5)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
 
                rtlefuse->autoload_failflag = false;
                _rtl92de_read_adapter_info(hw);
        } else {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Autoload ERR!!\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Autoload ERR!!\n");
        }
        return;
 }
@@ -1958,8 +1952,8 @@ static void rtl92de_update_hal_rate_table(struct ieee80211_hw *hw,
                    (shortgi_rate << 4) | (shortgi_rate);
        }
        rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value);
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
-                ("%x\n", rtl_read_dword(rtlpriv, REG_ARFR0)));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, "%x\n",
+                rtl_read_dword(rtlpriv, REG_ARFR0));
 }
 
 static void rtl92de_update_hal_rate_mask(struct ieee80211_hw *hw,
@@ -2092,8 +2086,8 @@ static void rtl92de_update_hal_rate_mask(struct ieee80211_hw *hw,
        value[0] = (ratr_bitmap & 0x0fffffff) | (ratr_index << 28);
        value[1] = macid | (shortgi ? 0x20 : 0x00) | 0x80;
        RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
-                ("ratr_bitmap :%x value0:%x value1:%x\n",
-                 ratr_bitmap, value[0], value[1]));
+                "ratr_bitmap :%x value0:%x value1:%x\n",
+                ratr_bitmap, value[0], value[1]);
        rtl92d_fill_h2c_cmd(hw, H2C_RA_MASK, 5, (u8 *) value);
        if (macid != 0)
                sta_entry->ratr_index = ratr_index;
@@ -2153,14 +2147,14 @@ bool rtl92de_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid)
        e_rfpowerstate_toset = (u1tmp & BIT(3)) ? ERFON : ERFOFF;
        if (ppsc->hwradiooff && (e_rfpowerstate_toset == ERFON)) {
                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                        ("GPIOChangeRF  - HW Radio ON, RF ON\n"));
+                        "GPIOChangeRF  - HW Radio ON, RF ON\n");
                e_rfpowerstate_toset = ERFON;
                ppsc->hwradiooff = false;
                actuallyset = true;
        } else if ((ppsc->hwradiooff == false)
                && (e_rfpowerstate_toset == ERFOFF)) {
                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                        ("GPIOChangeRF  - HW Radio OFF, RF OFF\n"));
+                        "GPIOChangeRF  - HW Radio OFF, RF OFF\n");
                e_rfpowerstate_toset = ERFOFF;
                ppsc->hwradiooff = true;
                actuallyset = true;
@@ -2204,7 +2198,7 @@ void rtl92de_set_key(struct ieee80211_hw *hw, u32 key_index,
                u8 idx;
                u8 cam_offset = 0;
                u8 clear_number = 5;
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("clear_all\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "clear_all\n");
                for (idx = 0; idx < clear_number; idx++) {
                        rtl_cam_mark_invalid(hw, cam_offset + idx);
                        rtl_cam_empty_entry(hw, cam_offset + idx);
@@ -2230,8 +2224,8 @@ void rtl92de_set_key(struct ieee80211_hw *hw, u32 key_index,
                        enc_algo = CAM_AES;
                        break;
                default:
-                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("switch case "
-                                               "not process\n"));
+                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                                "switch case not processed\n");
                        enc_algo = CAM_TKIP;
                        break;
                }
@@ -2248,9 +2242,8 @@ void rtl92de_set_key(struct ieee80211_hw *hw, u32 key_index,
                                                                 p_macaddr);
                                        if (entry_id >=  TOTAL_CAM_ENTRY) {
                                                RT_TRACE(rtlpriv, COMP_SEC,
-                                                        DBG_EMERG, ("Can not "
-                                                        "find free hw security"
-                                                        " cam entry\n"));
+                                                        DBG_EMERG,
+                                                        "Can not find free hw security cam entry\n");
                                                return;
                                        }
                                } else {
@@ -2262,29 +2255,29 @@ void rtl92de_set_key(struct ieee80211_hw *hw, u32 key_index,
                }
                if (rtlpriv->sec.key_len[key_index] == 0) {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("delete one entry, entry_id is %d\n",
-                                entry_id));
+                                "delete one entry, entry_id is %d\n",
+                                entry_id);
                        if (mac->opmode == NL80211_IFTYPE_AP)
                                rtl_cam_del_entry(hw, p_macaddr);
                        rtl_cam_delete_one_entry(hw, p_macaddr, entry_id);
                } else {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY length is %d\n",
-                                 rtlpriv->sec.key_len[PAIRWISE_KEYIDX]));
+                                "The insert KEY length is %d\n",
+                                rtlpriv->sec.key_len[PAIRWISE_KEYIDX]);
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY  is %x %x\n",
-                                 rtlpriv->sec.key_buf[0][0],
-                                 rtlpriv->sec.key_buf[0][1]));
+                                "The insert KEY is %x %x\n",
+                                rtlpriv->sec.key_buf[0][0],
+                                rtlpriv->sec.key_buf[0][1]);
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("add one entry\n"));
+                                "add one entry\n");
                        if (is_pairwise) {
                                RT_PRINT_DATA(rtlpriv, COMP_SEC, DBG_LOUD,
-                                             "Pairwiase Key content :",
+                                             "Pairwise Key content",
                                              rtlpriv->sec.pairwise_key,
                                              rtlpriv->
                                              sec.key_len[PAIRWISE_KEYIDX]);
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set Pairwiase key\n"));
+                                        "set Pairwise key\n");
                                rtl_cam_add_one_entry(hw, macaddr, key_index,
                                                      entry_id, enc_algo,
                                                      CAM_CONFIG_NO_USEDK,
@@ -2292,7 +2285,7 @@ void rtl92de_set_key(struct ieee80211_hw *hw, u32 key_index,
                                                      sec.key_buf[key_index]);
                        } else {
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set group key\n"));
+                                        "set group key\n");
                                if (mac->opmode == NL80211_IFTYPE_ADHOC) {
                                        rtl_cam_add_one_entry(hw,
                                                rtlefuse->dev_addr,
index ad44ffa520e619aa5f99556d51eca3d5e4b0e241..7c9f7a2f1e427d2bac52cfacdea38c949f390a2e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index f1552f4df65805aea48848d402c6d71e2188395a..76a57ae4af3eb77a24a44d17f44c38da106e2312 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -45,8 +45,8 @@ void rtl92de_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
        u8 ledcfg;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                REG_LEDCFG2, pled->ledpin);
 
        switch (pled->ledpin) {
        case LED_PIN_GPIO0:
@@ -71,7 +71,7 @@ void rtl92de_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = true;
@@ -83,8 +83,8 @@ void rtl92de_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
        struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
        u8 ledcfg;
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                REG_LEDCFG2, pled->ledpin);
 
        ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2);
 
@@ -106,7 +106,7 @@ void rtl92de_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = false;
@@ -153,7 +153,7 @@ void rtl92de_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction)
             ledaction == LED_CTL_POWER_ON)) {
                return;
        }
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, ("ledaction %d,\n", ledaction));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "ledaction %d,\n", ledaction);
 
        _rtl92ce_sw_led_control(hw, ledaction);
 }
index 57f4a3c583d43c83ebc50702e9e773ee9ac5f827..a29df30c30255414bfa522ce61ebe469cfc9fae0 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 0883349e1c8371f9828deee3bb78ac04ccf0c4d9..9581a19c2548cb523ccb7e3a4f06e184e348a592 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -204,8 +204,8 @@ u32 rtl92d_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask)
        u32 returnvalue, originalvalue, bitshift;
        u8 dbi_direct;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-               "bitmask(%#x)\n", regaddr, bitmask));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "regaddr(%#x), bitmask(%#x)\n",
+                regaddr, bitmask);
        if (rtlhal->during_mac1init_radioa || rtlhal->during_mac0init_radiob) {
                /* mac1 use phy0 read radio_b. */
                /* mac0 use phy1 read radio_b. */
@@ -220,8 +220,9 @@ u32 rtl92d_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask)
        }
        bitshift = _rtl92d_phy_calculate_bit_shift(bitmask);
        returnvalue = (originalvalue & bitmask) >> bitshift;
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("BBR MASK=0x%x "
-               "Addr[0x%x]=0x%x\n", bitmask, regaddr, originalvalue));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "BBR MASK=0x%x Addr[0x%x]=0x%x\n",
+                bitmask, regaddr, originalvalue);
        return returnvalue;
 }
 
@@ -233,8 +234,9 @@ void rtl92d_phy_set_bb_reg(struct ieee80211_hw *hw,
        u8 dbi_direct = 0;
        u32 originalvalue, bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x),"
-               " data(%#x)\n", regaddr, bitmask, data));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x)\n",
+                regaddr, bitmask, data);
        if (rtlhal->during_mac1init_radioa)
                dbi_direct = BIT(3);
        else if (rtlhal->during_mac0init_radiob)
@@ -255,8 +257,9 @@ void rtl92d_phy_set_bb_reg(struct ieee80211_hw *hw,
                rtl92de_write_dword_dbi(hw, (u16) regaddr, data, dbi_direct);
        else
                rtl_write_dword(rtlpriv, regaddr, data);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x),"
-                " data(%#x)\n", regaddr, bitmask, data));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x)\n",
+                regaddr, bitmask, data);
 }
 
 static u32 _rtl92d_phy_rf_serial_read(struct ieee80211_hw *hw,
@@ -300,8 +303,8 @@ static u32 _rtl92d_phy_rf_serial_read(struct ieee80211_hw *hw,
        else
                retvalue = rtl_get_bbreg(hw, pphyreg->rflssi_readback,
                        BLSSIREADBACKDATA);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("RFR-%d Addr[0x%x] = 0x%x\n",
-                rfpath, pphyreg->rflssi_readback, retvalue));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFR-%d Addr[0x%x] = 0x%x\n",
+                rfpath, pphyreg->rflssi_readback, retvalue);
        return retvalue;
 }
 
@@ -319,8 +322,8 @@ static void _rtl92d_phy_rf_serial_write(struct ieee80211_hw *hw,
        /* T65 RF */
        data_and_addr = ((newoffset << 20) | (data & 0x000fffff)) & 0x0fffffff;
        rtl_set_bbreg(hw, pphyreg->rf3wire_offset, BMASKDWORD, data_and_addr);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("RFW-%d Addr[0x%x]=0x%x\n",
-               rfpath, pphyreg->rf3wire_offset, data_and_addr));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFW-%d Addr[0x%x]=0x%x\n",
+                rfpath, pphyreg->rf3wire_offset, data_and_addr);
 }
 
 u32 rtl92d_phy_query_rf_reg(struct ieee80211_hw *hw,
@@ -330,17 +333,17 @@ u32 rtl92d_phy_query_rf_reg(struct ieee80211_hw *hw,
        u32 original_value, readback_value, bitshift;
        unsigned long flags;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-               "rfpath(%#x), bitmask(%#x)\n",
-               regaddr, rfpath, bitmask));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x)\n",
+                regaddr, rfpath, bitmask);
        spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags);
        original_value = _rtl92d_phy_rf_serial_read(hw, rfpath, regaddr);
        bitshift = _rtl92d_phy_calculate_bit_shift(bitmask);
        readback_value = (original_value & bitmask) >> bitshift;
        spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), rfpath(%#x), "
-               "bitmask(%#x), original_value(%#x)\n",
-               regaddr, rfpath, bitmask, original_value));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x), original_value(%#x)\n",
+                regaddr, rfpath, bitmask, original_value);
        return readback_value;
 }
 
@@ -353,8 +356,8 @@ void rtl92d_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
        unsigned long flags;
 
        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-               ("regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
-               regaddr, bitmask, data, rfpath));
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
        if (bitmask == 0)
                return;
        spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags);
@@ -369,9 +372,9 @@ void rtl92d_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
                _rtl92d_phy_rf_serial_write(hw, rfpath, regaddr, data);
        }
        spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), "
-               "bitmask(%#x), data(%#x), rfpath(%#x)\n",
-               regaddr, bitmask, data, rfpath));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
 }
 
 bool rtl92d_phy_mac_config(struct ieee80211_hw *hw)
@@ -381,10 +384,10 @@ bool rtl92d_phy_mac_config(struct ieee80211_hw *hw)
        u32 arraylength;
        u32 *ptrarray;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Read Rtl819XMACPHY_Array\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Read Rtl819XMACPHY_Array\n");
        arraylength = MAC_2T_ARRAYLENGTH;
        ptrarray = rtl8192de_mac_2tarray;
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Img:Rtl819XMAC_Array\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Img:Rtl819XMAC_Array\n");
        for (i = 0; i < arraylength; i = i + 2)
                rtl_write_byte(rtlpriv, ptrarray[i], (u8) ptrarray[i + 1]);
        if (rtlpriv->rtlhal.macphymode == SINGLEMAC_SINGLEPHY) {
@@ -561,25 +564,25 @@ static bool _rtl92d_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                agctab_arraylen = AGCTAB_ARRAYLENGTH;
                agctab_array_table = rtl8192de_agctab_array;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        (" ===> phy:MAC0, Rtl819XAGCTAB_Array\n"));
+                        " ===> phy:MAC0, Rtl819XAGCTAB_Array\n");
        } else {
                if (rtlhal->current_bandtype == BAND_ON_2_4G) {
                        agctab_arraylen = AGCTAB_2G_ARRAYLENGTH;
                        agctab_array_table = rtl8192de_agctab_2garray;
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                                (" ===> phy:MAC1, Rtl819XAGCTAB_2GArray\n"));
+                                " ===> phy:MAC1, Rtl819XAGCTAB_2GArray\n");
                } else {
                        agctab_5garraylen = AGCTAB_5G_ARRAYLENGTH;
                        agctab_5garray_table = rtl8192de_agctab_5garray;
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                                (" ===> phy:MAC1, Rtl819XAGCTAB_5GArray\n"));
+                                " ===> phy:MAC1, Rtl819XAGCTAB_5GArray\n");
 
                }
        }
        phy_reg_arraylen = PHY_REG_2T_ARRAYLENGTH;
        phy_regarray_table = rtl8192de_phy_reg_2tarray;
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                (" ===> phy:Rtl819XPHY_REG_Array_PG\n"));
+                " ===> phy:Rtl819XPHY_REG_Array_PG\n");
        if (configtype == BASEBAND_CONFIG_PHY_REG) {
                for (i = 0; i < phy_reg_arraylen; i = i + 2) {
                        if (phy_regarray_table[i] == 0xfe)
@@ -598,10 +601,9 @@ static bool _rtl92d_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                      phy_regarray_table[i + 1]);
                        udelay(1);
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                ("The phy_regarray_table[0] is %x"
-                                 " Rtl819XPHY_REGArray[1] is %x\n",
-                                 phy_regarray_table[i],
-                                 phy_regarray_table[i + 1]));
+                                "The phy_regarray_table[0] is %x Rtl819XPHY_REGArray[1] is %x\n",
+                                phy_regarray_table[i],
+                                phy_regarray_table[i + 1]);
                }
        } else if (configtype == BASEBAND_CONFIG_AGC_TAB) {
                if (rtlhal->interfaceindex == 0) {
@@ -613,15 +615,12 @@ static bool _rtl92d_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                 * setting. */
                                udelay(1);
                                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                        ("The Rtl819XAGCTAB_Array_"
-                                        "Table[0] is %ul "
-                                        "Rtl819XPHY_REGArray[1] is %ul\n",
+                                        "The Rtl819XAGCTAB_Array_Table[0] is %ul Rtl819XPHY_REGArray[1] is %ul\n",
                                         agctab_array_table[i],
-                                        agctab_array_table[i + 1]));
+                                        agctab_array_table[i + 1]);
                        }
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                                ("Normal Chip, MAC0, load "
-                                "Rtl819XAGCTAB_Array\n"));
+                                "Normal Chip, MAC0, load Rtl819XAGCTAB_Array\n");
                } else {
                        if (rtlhal->current_bandtype == BAND_ON_2_4G) {
                                for (i = 0; i < agctab_arraylen; i = i + 2) {
@@ -632,14 +631,12 @@ static bool _rtl92d_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                         * setting. */
                                        udelay(1);
                                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                                ("The Rtl819XAGCTAB_Array_"
-                                                "Table[0] is %ul Rtl819XPHY_"
-                                                "REGArray[1] is %ul\n",
+                                                "The Rtl819XAGCTAB_Array_Table[0] is %ul Rtl819XPHY_REGArray[1] is %ul\n",
                                                 agctab_array_table[i],
-                                                agctab_array_table[i + 1]));
+                                                agctab_array_table[i + 1]);
                                }
                                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                                        ("Load Rtl819XAGCTAB_2GArray\n"));
+                                        "Load Rtl819XAGCTAB_2GArray\n");
                        } else {
                                for (i = 0; i < agctab_5garraylen; i = i + 2) {
                                        rtl_set_bbreg(hw,
@@ -650,14 +647,12 @@ static bool _rtl92d_phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
                                         * setting. */
                                        udelay(1);
                                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                                                ("The Rtl819XAGCTAB_5GArray_"
-                                                "Table[0] is %ul Rtl819XPHY_"
-                                                "REGArray[1] is %ul\n",
+                                                "The Rtl819XAGCTAB_5GArray_Table[0] is %ul Rtl819XPHY_REGArray[1] is %ul\n",
                                                 agctab_5garray_table[i],
-                                                agctab_5garray_table[i + 1]));
+                                                agctab_5garray_table[i + 1]);
                                }
                                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                                       ("Load Rtl819XAGCTAB_5GArray\n"));
+                                        "Load Rtl819XAGCTAB_5GArray\n");
                        }
                }
        }
@@ -675,145 +670,145 @@ static void _rtl92d_store_pwrindex_diffrate_offset(struct ieee80211_hw *hw,
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][0] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][0] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][0] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][0]));
+                        [rtlphy->pwrgroup_cnt][0]);
        }
        if (regaddr == RTXAGC_A_RATE54_24) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][1] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][1] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][1] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][1]));
+                        [rtlphy->pwrgroup_cnt][1]);
        }
        if (regaddr == RTXAGC_A_CCK1_MCS32) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][6] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][6] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][6] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][6]));
+                        [rtlphy->pwrgroup_cnt][6]);
        }
        if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0xffffff00) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][7] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][7] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][7] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][7]));
+                        [rtlphy->pwrgroup_cnt][7]);
        }
        if (regaddr == RTXAGC_A_MCS03_MCS00) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][2] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][2] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][2] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][2]));
+                        [rtlphy->pwrgroup_cnt][2]);
        }
        if (regaddr == RTXAGC_A_MCS07_MCS04) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][3] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][3] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][3] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][3]));
+                        [rtlphy->pwrgroup_cnt][3]);
        }
        if (regaddr == RTXAGC_A_MCS11_MCS08) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][4] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][4] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][4] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][4]));
+                        [rtlphy->pwrgroup_cnt][4]);
        }
        if (regaddr == RTXAGC_A_MCS15_MCS12) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][5] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][5] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][5] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][5]));
+                        [rtlphy->pwrgroup_cnt][5]);
        }
        if (regaddr == RTXAGC_B_RATE18_06) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][8] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][8] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][8] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][8]));
+                        [rtlphy->pwrgroup_cnt][8]);
        }
        if (regaddr == RTXAGC_B_RATE54_24) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][9] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][9] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][9] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][9]));
+                        [rtlphy->pwrgroup_cnt][9]);
        }
        if (regaddr == RTXAGC_B_CCK1_55_MCS32) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][14] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][14] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][14] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][14]));
+                        [rtlphy->pwrgroup_cnt][14]);
        }
        if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0x000000ff) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][15] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][15] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][15] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][15]));
+                        [rtlphy->pwrgroup_cnt][15]);
        }
        if (regaddr == RTXAGC_B_MCS03_MCS00) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][10] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][10] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][10] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][10]));
+                        [rtlphy->pwrgroup_cnt][10]);
        }
        if (regaddr == RTXAGC_B_MCS07_MCS04) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][11] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][11] = 0x%ulx\n",
+                        "MCSTxPowerLevelOriginalOffset[%d][11] = 0x%ulx\n",
                         rtlphy->pwrgroup_cnt,
                         rtlphy->mcs_txpwrlevel_origoffset
-                        [rtlphy->pwrgroup_cnt][11]));
+                        [rtlphy->pwrgroup_cnt][11]);
        }
        if (regaddr == RTXAGC_B_MCS11_MCS08) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][12] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][12] = 0x%ulx\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->mcs_txpwrlevel_origoffset
-                                       [rtlphy->pwrgroup_cnt][12]));
+                        "MCSTxPowerLevelOriginalOffset[%d][12] = 0x%ulx\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->mcs_txpwrlevel_origoffset
+                        [rtlphy->pwrgroup_cnt][12]);
        }
        if (regaddr == RTXAGC_B_MCS15_MCS12) {
                rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][13] =
                                                                         data;
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("MCSTxPowerLevelOriginalOffset[%d][13] = 0x%ulx\n",
-                         rtlphy->pwrgroup_cnt,
-                         rtlphy->mcs_txpwrlevel_origoffset
-                                       [rtlphy->pwrgroup_cnt][13]));
+                        "MCSTxPowerLevelOriginalOffset[%d][13] = 0x%ulx\n",
+                        rtlphy->pwrgroup_cnt,
+                        rtlphy->mcs_txpwrlevel_origoffset
+                        [rtlphy->pwrgroup_cnt][13]);
                rtlphy->pwrgroup_cnt++;
        }
 }
@@ -849,7 +844,7 @@ static bool _rtl92d_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw,
                }
        } else {
                RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-                        ("configtype != BaseBand_Config_PHY_REG\n"));
+                        "configtype != BaseBand_Config_PHY_REG\n");
        }
        return true;
 }
@@ -861,17 +856,17 @@ static bool _rtl92d_phy_bb_config(struct ieee80211_hw *hw)
        struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
        bool rtstatus = true;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("==>\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "==>\n");
        rtstatus = _rtl92d_phy_config_bb_with_headerfile(hw,
                BASEBAND_CONFIG_PHY_REG);
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Write BB Reg Fail!!"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Write BB Reg Fail!!\n");
                return false;
        }
 
        /* if (rtlphy->rf_type == RF_1T2R) {
         *      _rtl92c_phy_bb_config_1t(hw);
-        *     RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Config to 1T!!\n"));
+        *     RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Config to 1T!!\n");
         *} */
 
        if (rtlefuse->autoload_failflag == false) {
@@ -880,13 +875,13 @@ static bool _rtl92d_phy_bb_config(struct ieee80211_hw *hw)
                        BASEBAND_CONFIG_PHY_REG);
        }
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("BB_PG Reg Fail!!"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "BB_PG Reg Fail!!\n");
                return false;
        }
        rtstatus = _rtl92d_phy_config_bb_with_headerfile(hw,
                BASEBAND_CONFIG_AGC_TAB);
        if (rtstatus != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("AGC Table Fail\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "AGC Table Fail\n");
                return false;
        }
        rtlphy->cck_high_power = (bool) (rtl_get_bbreg(hw,
@@ -951,19 +946,17 @@ bool rtl92d_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
                radiob_array_table = rtl8192de_radiob_2t_int_paarray;
        }
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("PHY_ConfigRFWithHeaderFile() "
-                "Radio_A:Rtl819XRadioA_1TArray\n"));
+                "PHY_ConfigRFWithHeaderFile() Radio_A:Rtl819XRadioA_1TArray\n");
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("PHY_ConfigRFWithHeaderFile() "
-                "Radio_B:Rtl819XRadioB_1TArray\n"));
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("Radio No %x\n", rfpath));
+                "PHY_ConfigRFWithHeaderFile() Radio_B:Rtl819XRadioB_1TArray\n");
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Radio No %x\n", rfpath);
 
        /* this only happens when DMDP, mac0 start on 2.4G,
         * mac1 start on 5G, mac 0 has to set phy0&phy1
         * pathA or mac1 has to set phy0&phy1 pathA */
        if ((content == radiob_txt) && (rfpath == RF90_PATH_A)) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        (" ===> althougth Path A, we load radiob.txt\n"));
+                        " ===> althougth Path A, we load radiob.txt\n");
                radioa_arraylen = radiob_arraylen;
                radioa_array_table = radiob_array_table;
        }
@@ -1022,11 +1015,11 @@ bool rtl92d_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
                break;
        case RF90_PATH_C:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        case RF90_PATH_D:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        return true;
@@ -1046,19 +1039,18 @@ void rtl92d_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw)
        rtlphy->default_initialgain[3] =
            (u8) rtl_get_bbreg(hw, ROFDM0_XDAGCCORE1, BMASKBYTE0);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Default initial gain (c50=0x%x, "
-                 "c58=0x%x, c60=0x%x, c68=0x%x\n",
-                 rtlphy->default_initialgain[0],
-                 rtlphy->default_initialgain[1],
-                 rtlphy->default_initialgain[2],
-                 rtlphy->default_initialgain[3]));
+                "Default initial gain (c50=0x%x, c58=0x%x, c60=0x%x, c68=0x%x\n",
+                rtlphy->default_initialgain[0],
+                rtlphy->default_initialgain[1],
+                rtlphy->default_initialgain[2],
+                rtlphy->default_initialgain[3]);
        rtlphy->framesync = (u8)rtl_get_bbreg(hw, ROFDM0_RXDETECTOR3,
                                              BMASKBYTE0);
        rtlphy->framesync_c34 = rtl_get_bbreg(hw, ROFDM0_RXDETECTOR2,
                                              BMASKDWORD);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                ("Default framesync (0x%x) = 0x%x\n",
-                 ROFDM0_RXDETECTOR3, rtlphy->framesync));
+                "Default framesync (0x%x) = 0x%x\n",
+                ROFDM0_RXDETECTOR3, rtlphy->framesync);
 }
 
 static void _rtl92d_get_txpower_index(struct ieee80211_hw *hw, u8 channel,
@@ -1172,7 +1164,7 @@ void rtl92d_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation)
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Unknown Scan Backup operation.\n"));
+                                "Unknown Scan Backup operation\n");
                        break;
                }
        }
@@ -1193,14 +1185,13 @@ void rtl92d_phy_set_bw_mode(struct ieee80211_hw *hw,
                return;
        if ((is_hal_stop(rtlhal)) || (RT_CANNOT_IO(hw))) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("FALSE driver sleep or unload\n"));
+                        "FALSE driver sleep or unload\n");
                return;
        }
        rtlphy->set_bwmode_inprogress = true;
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
-                ("Switch to %s bandwidth\n",
-                 rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
-                 "20MHz" : "40MHz"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "Switch to %s bandwidth\n",
+                rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
+                "20MHz" : "40MHz");
        reg_bw_opmode = rtl_read_byte(rtlpriv, REG_BWOPMODE);
        reg_prsr_rsc = rtl_read_byte(rtlpriv, REG_RRSR + 2);
        switch (rtlphy->current_chan_bw) {
@@ -1218,7 +1209,7 @@ void rtl92d_phy_set_bw_mode(struct ieee80211_hw *hw,
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
        }
        switch (rtlphy->current_chan_bw) {
@@ -1250,13 +1241,13 @@ void rtl92d_phy_set_bw_mode(struct ieee80211_hw *hw,
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
 
        }
        rtl92d_phy_rf6052_set_bandwidth(hw, rtlphy->current_chan_bw);
        rtlphy->set_bwmode_inprogress = false;
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "<==\n");
 }
 
 static void _rtl92d_phy_stop_trx_before_changeband(struct ieee80211_hw *hw)
@@ -1273,7 +1264,7 @@ static void rtl92d_phy_switch_wirelessband(struct ieee80211_hw *hw, u8 band)
        struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
        u8 value8;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("==>\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "==>\n");
        rtlhal->bandset = band;
        rtlhal->current_bandtype = band;
        if (IS_92D_SINGLEPHY(rtlhal->version))
@@ -1283,13 +1274,13 @@ static void rtl92d_phy_switch_wirelessband(struct ieee80211_hw *hw, u8 band)
        /* reconfig BB/RF according to wireless mode */
        if (rtlhal->current_bandtype == BAND_ON_2_4G) {
                /* BB & RF Config */
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, ("====>2.4G\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "====>2.4G\n");
                if (rtlhal->interfaceindex == 1)
                        _rtl92d_phy_config_bb_with_headerfile(hw,
                                BASEBAND_CONFIG_AGC_TAB);
        } else {
                /* 5G band */
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, ("====>5G\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "====>5G\n");
                if (rtlhal->interfaceindex == 1)
                        _rtl92d_phy_config_bb_with_headerfile(hw,
                                BASEBAND_CONFIG_AGC_TAB);
@@ -1317,7 +1308,7 @@ static void rtl92d_phy_switch_wirelessband(struct ieee80211_hw *hw, u8 band)
                        0 ? REG_MAC0 : REG_MAC1), value8);
        }
        mdelay(1);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("<==Switch Band OK.\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "<==Switch Band OK\n");
 }
 
 static void _rtl92d_phy_reload_imr_setting(struct ieee80211_hw *hw,
@@ -1329,9 +1320,9 @@ static void _rtl92d_phy_reload_imr_setting(struct ieee80211_hw *hw,
        u8 group, i;
        unsigned long flag = 0;
 
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("====>path %d\n", rfpath));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "====>path %d\n", rfpath);
        if (rtlpriv->rtlhal.current_bandtype == BAND_ON_5G) {
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("====>5G\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "====>5G\n");
                rtl_set_bbreg(hw, RFPGA0_RFMOD, BIT(25) | BIT(24), 0);
                rtl_set_bbreg(hw, RFPGA0_ANALOGPARAMETER4, 0x00f00000, 0xf);
                /* fc area 0xd2c */
@@ -1353,14 +1344,13 @@ static void _rtl92d_phy_reload_imr_setting(struct ieee80211_hw *hw,
        } else {
                /* G band. */
                RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD,
-                        ("Load RF IMR parameters for G band. IMR already "
-                        "setting %d\n",
-                         rtlpriv->rtlhal.load_imrandiqk_setting_for2g));
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("====>2.4G\n"));
+                        "Load RF IMR parameters for G band. IMR already setting %d\n",
+                        rtlpriv->rtlhal.load_imrandiqk_setting_for2g);
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "====>2.4G\n");
                if (!rtlpriv->rtlhal.load_imrandiqk_setting_for2g) {
                        RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD,
-                               ("Load RF IMR parameters "
-                               "for G band. %d\n", rfpath));
+                                "Load RF IMR parameters for G band. %d\n",
+                                rfpath);
                        rtl92d_acquire_cckandrw_pagea_ctl(hw, &flag);
                        rtl_set_bbreg(hw, RFPGA0_RFMOD, BIT(25) | BIT(24), 0);
                        rtl_set_bbreg(hw, RFPGA0_ANALOGPARAMETER4,
@@ -1378,7 +1368,7 @@ static void _rtl92d_phy_reload_imr_setting(struct ieee80211_hw *hw,
                        rtl92d_release_cckandrw_pagea_ctl(hw, &flag);
                }
        }
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("<====\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "<====\n");
 }
 
 static void _rtl92d_phy_enable_rf_env(struct ieee80211_hw *hw,
@@ -1388,7 +1378,7 @@ static void _rtl92d_phy_enable_rf_env(struct ieee80211_hw *hw,
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
        struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath];
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("====>\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "====>\n");
        /*----Store original RFENV control type----*/
        switch (rfpath) {
        case RF90_PATH_A:
@@ -1414,7 +1404,7 @@ static void _rtl92d_phy_enable_rf_env(struct ieee80211_hw *hw,
        /*Set 0 to 12 bits for 8255 */
        rtl_set_bbreg(hw, pphyreg->rfhssi_para2, B3WIREDATALENGTH, 0x0);
        udelay(1);
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("<====\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "<====\n");
 }
 
 static void _rtl92d_phy_restore_rf_env(struct ieee80211_hw *hw, u8 rfpath,
@@ -1424,7 +1414,7 @@ static void _rtl92d_phy_restore_rf_env(struct ieee80211_hw *hw, u8 rfpath,
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
        struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath];
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("=====>\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "=====>\n");
        /*----Restore RFENV control type----*/ ;
        switch (rfpath) {
        case RF90_PATH_A:
@@ -1437,7 +1427,7 @@ static void _rtl92d_phy_restore_rf_env(struct ieee80211_hw *hw, u8 rfpath,
                              *pu4_regval);
                break;
        }
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("<=====\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "<=====\n");
 }
 
 static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
@@ -1451,13 +1441,13 @@ static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
        bool need_pwr_down = false, internal_pa = false;
        u32 u4regvalue, mask = 0x1C000, value = 0, u4tmp, u4tmp2;
 
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("====>\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "====>\n");
        /* config path A for 5G */
        if (rtlhal->current_bandtype == BAND_ON_5G) {
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("====>5G\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "====>5G\n");
                u4tmp = curveindex_5g[channel - 1];
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("ver 1 set RF-A, 5G, "
-                       "0x28 = 0x%x !!\n", u4tmp));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,
+                       "ver 1 set RF-A, 5G, 0x28 = 0x%x !!\n", u4tmp);
                for (i = 0; i < RF_CHNL_NUM_5G; i++) {
                        if (channel == rf_chnl_5g[i] && channel <= 140)
                                index = 0;
@@ -1503,12 +1493,13 @@ static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
                                              rf_reg_pram_c_5g[index][i]);
                        }
                        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                               ("offset 0x%x value 0x%x "
-                               "path %d index %d readback 0x%x\n",
-                               rf_reg_for_c_cut_5g[i],
-                               rf_reg_pram_c_5g[index][i], path,
-                               index, rtl_get_rfreg(hw, (enum radio_path)path,
-                               rf_reg_for_c_cut_5g[i], BRFREGOFFSETMASK)));
+                                "offset 0x%x value 0x%x path %d index %d readback 0x%x\n",
+                                rf_reg_for_c_cut_5g[i],
+                                rf_reg_pram_c_5g[index][i],
+                                path, index,
+                                rtl_get_rfreg(hw, (enum radio_path)path,
+                                              rf_reg_for_c_cut_5g[i],
+                                              BRFREGOFFSETMASK));
                }
                if (need_pwr_down)
                        _rtl92d_phy_restore_rf_env(hw, path, &u4regvalue);
@@ -1541,11 +1532,10 @@ static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
                                                BRFREGOFFSETMASK,
                                                rf_pram_c_5g_int_pa[index][i]);
                                        RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD,
-                                                ("offset 0x%x value 0x%x "
-                                                "path %d index %d\n",
+                                                "offset 0x%x value 0x%x path %d index %d\n",
                                                 rf_for_c_cut_5g_internal_pa[i],
                                                 rf_pram_c_5g_int_pa[index][i],
-                                                rfpath, index));
+                                                rfpath, index);
                                }
                        } else {
                                rtl_set_rfreg(hw, (enum radio_path)rfpath, 0x0B,
@@ -1553,10 +1543,10 @@ static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
                        }
                }
        } else if (rtlhal->current_bandtype == BAND_ON_2_4G) {
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("====>2.4G\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "====>2.4G\n");
                u4tmp = curveindex_2g[channel - 1];
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("ver 3 set RF-B, 2G, "
-                       "0x28 = 0x%x !!\n", u4tmp));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,
+                       "ver 3 set RF-B, 2G, 0x28 = 0x%x !!\n", u4tmp);
                if (channel == 1 || channel == 2 || channel == 4 || channel == 9
                    || channel == 10 || channel == 11 || channel == 12)
                        index = 0;
@@ -1590,18 +1580,17 @@ static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
                                              rf_reg_param_for_c_cut_2g
                                              [index][i]);
                        RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                               ("offset 0x%x value 0x%x mak 0x%x path %d "
-                               "index %d readback 0x%x\n",
-                               rf_reg_for_c_cut_2g[i],
-                               rf_reg_param_for_c_cut_2g[index][i],
-                               rf_reg_mask_for_c_cut_2g[i], path, index,
-                               rtl_get_rfreg(hw, (enum radio_path)path,
-                               rf_reg_for_c_cut_2g[i],
-                               BRFREGOFFSETMASK)));
+                                "offset 0x%x value 0x%x mak 0x%x path %d index %d readback 0x%x\n",
+                                rf_reg_for_c_cut_2g[i],
+                                rf_reg_param_for_c_cut_2g[index][i],
+                                rf_reg_mask_for_c_cut_2g[i], path, index,
+                                rtl_get_rfreg(hw, (enum radio_path)path,
+                                              rf_reg_for_c_cut_2g[i],
+                                              BRFREGOFFSETMASK));
                }
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("cosa ver 3 set RF-B, 2G, 0x28 = 0x%x !!\n",
-                       rf_syn_g4_for_c_cut_2g | (u4tmp << 11)));
+                       "cosa ver 3 set RF-B, 2G, 0x28 = 0x%x !!\n",
+                       rf_syn_g4_for_c_cut_2g | (u4tmp << 11));
 
                rtl_set_rfreg(hw, (enum radio_path)path, RF_SYN_G4,
                              BRFREGOFFSETMASK,
@@ -1611,7 +1600,7 @@ static void _rtl92d_phy_switch_rf_setting(struct ieee80211_hw *hw, u8 channel)
                if (rtlhal->during_mac0init_radiob)
                        rtl92d_phy_powerdown_anotherphy(hw, true);
        }
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("<====\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "<====\n");
 }
 
 u8 rtl92d_get_rightchnlplace_for_iqk(u8 chnl)
@@ -1648,9 +1637,9 @@ static u8 _rtl92d_phy_patha_iqk(struct ieee80211_hw *hw, bool configpathb)
        u32 regeac, rege94, rege9c, regea4;
        u8 result = 0;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path A IQK!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path A IQK!\n");
        /* path-A IQK setting */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path-A IQK setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path-A IQK setting!\n");
        if (rtlhal->interfaceindex == 0) {
                rtl_set_bbreg(hw, 0xe30, BMASKDWORD, 0x10008c1f);
                rtl_set_bbreg(hw, 0xe34, BMASKDWORD, 0x10008c1f);
@@ -1668,26 +1657,26 @@ static u8 _rtl92d_phy_patha_iqk(struct ieee80211_hw *hw, bool configpathb)
                rtl_set_bbreg(hw, 0xe5c, BMASKDWORD, 0x28160206);
        }
        /* LO calibration setting */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("LO calibration setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "LO calibration setting!\n");
        rtl_set_bbreg(hw, 0xe4c, BMASKDWORD, 0x00462911);
        /* One shot, path A LOK & IQK */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("One shot, path A LOK & IQK!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "One shot, path A LOK & IQK!\n");
        rtl_set_bbreg(hw, 0xe48, BMASKDWORD, 0xf9000000);
        rtl_set_bbreg(hw, 0xe48, BMASKDWORD, 0xf8000000);
        /* delay x ms */
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("Delay %d ms for One shot, path A LOK & IQK.\n",
-               IQK_DELAY_TIME));
+               "Delay %d ms for One shot, path A LOK & IQK\n",
+               IQK_DELAY_TIME);
        mdelay(IQK_DELAY_TIME);
        /* Check failed */
        regeac = rtl_get_bbreg(hw, 0xeac, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xeac = 0x%x\n", regeac));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xeac = 0x%x\n", regeac);
        rege94 = rtl_get_bbreg(hw, 0xe94, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xe94 = 0x%x\n", rege94));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xe94 = 0x%x\n", rege94);
        rege9c = rtl_get_bbreg(hw, 0xe9c, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xe9c = 0x%x\n", rege9c));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xe9c = 0x%x\n", rege9c);
        regea4 = rtl_get_bbreg(hw, 0xea4, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xea4 = 0x%x\n", regea4));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xea4 = 0x%x\n", regea4);
        if (!(regeac & BIT(28)) && (((rege94 & 0x03FF0000) >> 16) != 0x142) &&
            (((rege9c & 0x03FF0000) >> 16) != 0x42))
                result |= 0x01;
@@ -1698,7 +1687,7 @@ static u8 _rtl92d_phy_patha_iqk(struct ieee80211_hw *hw, bool configpathb)
            (((regeac & 0x03FF0000) >> 16) != 0x36))
                result |= 0x02;
        else
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path A Rx IQK fail!!\n"));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path A Rx IQK fail!!\n");
        return result;
 }
 
@@ -1719,9 +1708,9 @@ static u8 _rtl92d_phy_patha_iqk_5g_normal(struct ieee80211_hw *hw,
                TxOKBit = BIT(31);
                RxOKBit = BIT(30);
        }
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path A IQK!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path A IQK!\n");
        /* path-A IQK setting */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path-A IQK setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path-A IQK setting!\n");
        rtl_set_bbreg(hw, 0xe30, BMASKDWORD, 0x18008c1f);
        rtl_set_bbreg(hw, 0xe34, BMASKDWORD, 0x18008c1f);
        rtl_set_bbreg(hw, 0xe38, BMASKDWORD, 0x82140307);
@@ -1734,7 +1723,7 @@ static u8 _rtl92d_phy_patha_iqk_5g_normal(struct ieee80211_hw *hw,
                rtl_set_bbreg(hw, 0xe5c, BMASKDWORD, 0x68110000);
        }
        /* LO calibration setting */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("LO calibration setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "LO calibration setting!\n");
        rtl_set_bbreg(hw, 0xe4c, BMASKDWORD, 0x00462911);
        /* path-A PA on */
        rtl_set_bbreg(hw, RFPGA0_XAB_RFINTERFACESW, BMASKDWORD, 0x07000f60);
@@ -1742,29 +1731,29 @@ static u8 _rtl92d_phy_patha_iqk_5g_normal(struct ieee80211_hw *hw,
        for (i = 0; i < retrycount; i++) {
                /* One shot, path A LOK & IQK */
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("One shot, path A LOK & IQK!\n"));
+                       "One shot, path A LOK & IQK!\n");
                rtl_set_bbreg(hw, 0xe48, BMASKDWORD, 0xf9000000);
                rtl_set_bbreg(hw, 0xe48, BMASKDWORD, 0xf8000000);
                /* delay x ms */
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("Delay %d ms for One shot, path A LOK & IQK.\n",
-                       IQK_DELAY_TIME));
+                       "Delay %d ms for One shot, path A LOK & IQK.\n",
+                       IQK_DELAY_TIME);
                mdelay(IQK_DELAY_TIME * 10);
                /* Check failed */
                regeac = rtl_get_bbreg(hw, 0xeac, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xeac = 0x%x\n", regeac));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xeac = 0x%x\n", regeac);
                rege94 = rtl_get_bbreg(hw, 0xe94, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xe94 = 0x%x\n", rege94));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xe94 = 0x%x\n", rege94);
                rege9c = rtl_get_bbreg(hw, 0xe9c, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xe9c = 0x%x\n", rege9c));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xe9c = 0x%x\n", rege9c);
                regea4 = rtl_get_bbreg(hw, 0xea4, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xea4 = 0x%x\n", regea4));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xea4 = 0x%x\n", regea4);
                if (!(regeac & TxOKBit) &&
                     (((rege94 & 0x03FF0000) >> 16) != 0x142)) {
                        result |= 0x01;
                } else { /* if Tx not OK, ignore Rx */
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path A Tx IQK fail!!\n"));
+                               "Path A Tx IQK fail!!\n");
                        continue;
                }
 
@@ -1775,7 +1764,7 @@ static u8 _rtl92d_phy_patha_iqk_5g_normal(struct ieee80211_hw *hw,
                        break;
                } else {
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path A Rx IQK fail!!\n"));
+                               "Path A Rx IQK fail!!\n");
                }
        }
        /* path A PA off */
@@ -1793,27 +1782,26 @@ static u8 _rtl92d_phy_pathb_iqk(struct ieee80211_hw *hw)
        u32 regeac, regeb4, regebc, regec4, regecc;
        u8 result = 0;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path B IQK!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path B IQK!\n");
        /* One shot, path B LOK & IQK */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("One shot, path A LOK & IQK!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "One shot, path A LOK & IQK!\n");
        rtl_set_bbreg(hw, 0xe60, BMASKDWORD, 0x00000002);
        rtl_set_bbreg(hw, 0xe60, BMASKDWORD, 0x00000000);
        /* delay x ms  */
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("Delay %d ms for One shot, path B LOK & IQK.\n",
-               IQK_DELAY_TIME));
+               "Delay %d ms for One shot, path B LOK & IQK\n", IQK_DELAY_TIME);
        mdelay(IQK_DELAY_TIME);
        /* Check failed */
        regeac = rtl_get_bbreg(hw, 0xeac, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xeac = 0x%x\n", regeac));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xeac = 0x%x\n", regeac);
        regeb4 = rtl_get_bbreg(hw, 0xeb4, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xeb4 = 0x%x\n", regeb4));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xeb4 = 0x%x\n", regeb4);
        regebc = rtl_get_bbreg(hw, 0xebc, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xebc = 0x%x\n", regebc));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xebc = 0x%x\n", regebc);
        regec4 = rtl_get_bbreg(hw, 0xec4, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xec4 = 0x%x\n", regec4));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xec4 = 0x%x\n", regec4);
        regecc = rtl_get_bbreg(hw, 0xecc, BMASKDWORD);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xecc = 0x%x\n", regecc));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xecc = 0x%x\n", regecc);
        if (!(regeac & BIT(31)) && (((regeb4 & 0x03FF0000) >> 16) != 0x142) &&
            (((regebc & 0x03FF0000) >> 16) != 0x42))
                result |= 0x01;
@@ -1823,7 +1811,7 @@ static u8 _rtl92d_phy_pathb_iqk(struct ieee80211_hw *hw)
            (((regecc & 0x03FF0000) >> 16) != 0x36))
                result |= 0x02;
        else
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path B Rx IQK fail!!\n"));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path B Rx IQK fail!!\n");
        return result;
 }
 
@@ -1837,9 +1825,9 @@ static u8 _rtl92d_phy_pathb_iqk_5g_normal(struct ieee80211_hw *hw)
        u8 i;
        u8 retrycount = 2;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path B IQK!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path B IQK!\n");
        /* path-A IQK setting */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path-A IQK setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path-A IQK setting!\n");
        rtl_set_bbreg(hw, 0xe30, BMASKDWORD, 0x18008c1f);
        rtl_set_bbreg(hw, 0xe34, BMASKDWORD, 0x18008c1f);
        rtl_set_bbreg(hw, 0xe38, BMASKDWORD, 0x82110000);
@@ -1852,7 +1840,7 @@ static u8 _rtl92d_phy_pathb_iqk_5g_normal(struct ieee80211_hw *hw)
        rtl_set_bbreg(hw, 0xe5c, BMASKDWORD, 0x68160960);
 
        /* LO calibration setting */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("LO calibration setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "LO calibration setting!\n");
        rtl_set_bbreg(hw, 0xe4c, BMASKDWORD, 0x00462911);
 
        /* path-B PA on */
@@ -1862,26 +1850,26 @@ static u8 _rtl92d_phy_pathb_iqk_5g_normal(struct ieee80211_hw *hw)
        for (i = 0; i < retrycount; i++) {
                /* One shot, path B LOK & IQK */
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("One shot, path A LOK & IQK!\n"));
+                       "One shot, path A LOK & IQK!\n");
                rtl_set_bbreg(hw, 0xe48, BMASKDWORD, 0xfa000000);
                rtl_set_bbreg(hw, 0xe48, BMASKDWORD, 0xf8000000);
 
                /* delay x ms */
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("Delay %d ms for One shot, path B LOK & IQK.\n", 10));
+                       "Delay %d ms for One shot, path B LOK & IQK.\n", 10);
                mdelay(IQK_DELAY_TIME * 10);
 
                /* Check failed */
                regeac = rtl_get_bbreg(hw, 0xeac, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xeac = 0x%x\n", regeac));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xeac = 0x%x\n", regeac);
                regeb4 = rtl_get_bbreg(hw, 0xeb4, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xeb4 = 0x%x\n", regeb4));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xeb4 = 0x%x\n", regeb4);
                regebc = rtl_get_bbreg(hw, 0xebc, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xebc = 0x%x\n", regebc));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xebc = 0x%x\n", regebc);
                regec4 = rtl_get_bbreg(hw, 0xec4, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xec4 = 0x%x\n", regec4));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xec4 = 0x%x\n", regec4);
                regecc = rtl_get_bbreg(hw, 0xecc, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xecc = 0x%x\n", regecc));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "0xecc = 0x%x\n", regecc);
                if (!(regeac & BIT(31)) &&
                    (((regeb4 & 0x03FF0000) >> 16) != 0x142))
                        result |= 0x01;
@@ -1893,7 +1881,7 @@ static u8 _rtl92d_phy_pathb_iqk_5g_normal(struct ieee80211_hw *hw)
                        break;
                } else {
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path B Rx IQK fail!!\n"));
+                               "Path B Rx IQK fail!!\n");
                }
        }
 
@@ -1912,7 +1900,7 @@ static void _rtl92d_phy_save_adda_registers(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 i;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Save ADDA parameters.\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Save ADDA parameters.\n");
        for (i = 0; i < regnum; i++)
                adda_backup[i] = rtl_get_bbreg(hw, adda_reg[i], BMASKDWORD);
 }
@@ -1923,7 +1911,7 @@ static void _rtl92d_phy_save_mac_registers(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 i;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Save MAC parameters.\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Save MAC parameters.\n");
        for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++)
                macbackup[i] = rtl_read_byte(rtlpriv, macreg[i]);
        macbackup[i] = rtl_read_dword(rtlpriv, macreg[i]);
@@ -1937,7 +1925,7 @@ static void _rtl92d_phy_reload_adda_registers(struct ieee80211_hw *hw,
        u32 i;
 
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("Reload ADDA power saving parameters !\n"));
+               "Reload ADDA power saving parameters !\n");
        for (i = 0; i < regnum; i++)
                rtl_set_bbreg(hw, adda_reg[i], BMASKDWORD, adda_backup[i]);
 }
@@ -1948,7 +1936,7 @@ static void _rtl92d_phy_reload_mac_registers(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 i;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Reload MAC parameters !\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Reload MAC parameters !\n");
        for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++)
                rtl_write_byte(rtlpriv, macreg[i], (u8) macbackup[i]);
        rtl_write_byte(rtlpriv, macreg[i], macbackup[i]);
@@ -1961,7 +1949,7 @@ static void _rtl92d_phy_path_adda_on(struct ieee80211_hw *hw,
        u32 pathon;
        u32 i;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("ADDA ON.\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "ADDA ON.\n");
        pathon = patha_on ? 0x04db25a4 : 0x0b1b25a4;
        if (patha_on)
                pathon = rtlpriv->rtlhal.interfaceindex == 0 ?
@@ -1976,7 +1964,7 @@ static void _rtl92d_phy_mac_setting_calibration(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 i;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("MAC settings for Calibration.\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "MAC settings for Calibration.\n");
        rtl_write_byte(rtlpriv, macreg[0], 0x3F);
 
        for (i = 1; i < (IQK_MAC_REG_NUM - 1); i++)
@@ -1988,7 +1976,7 @@ static void _rtl92d_phy_mac_setting_calibration(struct ieee80211_hw *hw,
 static void _rtl92d_phy_patha_standby(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path-A standby mode!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path-A standby mode!\n");
 
        rtl_set_bbreg(hw, 0xe28, BMASKDWORD, 0x0);
        rtl_set_bbreg(hw, RFPGA0_XA_LSSIPARAMETER, BMASKDWORD, 0x00010000);
@@ -2001,7 +1989,7 @@ static void _rtl92d_phy_pimode_switch(struct ieee80211_hw *hw, bool pi_mode)
        u32 mode;
 
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("BB Switch to %s mode!\n", (pi_mode ? "PI" : "SI")));
+               "BB Switch to %s mode!\n", pi_mode ? "PI" : "SI");
        mode = pi_mode ? 0x01000100 : 0x01000000;
        rtl_set_bbreg(hw, 0x820, BMASKDWORD, mode);
        rtl_set_bbreg(hw, 0x828, BMASKDWORD, mode);
@@ -2033,12 +2021,12 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
        const u32 retrycount = 2;
        u32 bbvalue;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("IQK for 2.4G :Start!!!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "IQK for 2.4G :Start!!!\n");
        if (t == 0) {
                bbvalue = rtl_get_bbreg(hw, RFPGA0_RFMOD, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("==>0x%08x\n", bbvalue));
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("IQ Calibration for %s\n",
-                       (is2t ? "2T2R" : "1T1R")));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "==>0x%08x\n", bbvalue);
+               RTPRINT(rtlpriv, FINIT, INIT_IQK, "IQ Calibration for %s\n",
+                       is2t ? "2T2R" : "1T1R");
 
                /*  Save ADDA parameters, turn Path A ADDA on */
                _rtl92d_phy_save_adda_registers(hw, adda_reg,
@@ -2076,7 +2064,7 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
        if (is2t)
                rtl_set_bbreg(hw, 0xb6c, BMASKDWORD, 0x0f600000);
        /* IQ calibration setting */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("IQK setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "IQK setting!\n");
        rtl_set_bbreg(hw, 0xe28, BMASKDWORD, 0x80800000);
        rtl_set_bbreg(hw, 0xe40, BMASKDWORD, 0x01007c00);
        rtl_set_bbreg(hw, 0xe44, BMASKDWORD, 0x01004800);
@@ -2084,7 +2072,7 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
                patha_ok = _rtl92d_phy_patha_iqk(hw, is2t);
                if (patha_ok == 0x03) {
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path A IQK Success!!\n"));
+                               "Path A IQK Success!!\n");
                        result[t][0] = (rtl_get_bbreg(hw, 0xe94, BMASKDWORD) &
                                        0x3FF0000) >> 16;
                        result[t][1] = (rtl_get_bbreg(hw, 0xe9c, BMASKDWORD) &
@@ -2097,7 +2085,7 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
                } else if (i == (retrycount - 1) && patha_ok == 0x01) {
                        /* Tx IQK OK */
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path A IQK Only  Tx Success!!\n"));
+                               "Path A IQK Only  Tx Success!!\n");
 
                        result[t][0] = (rtl_get_bbreg(hw, 0xe94, BMASKDWORD) &
                                        0x3FF0000) >> 16;
@@ -2106,7 +2094,7 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
                }
        }
        if (0x00 == patha_ok)
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path A IQK failed!!\n"));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path A IQK failed!!\n");
        if (is2t) {
                _rtl92d_phy_patha_standby(hw);
                /* Turn Path B ADDA on */
@@ -2115,7 +2103,7 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
                        pathb_ok = _rtl92d_phy_pathb_iqk(hw);
                        if (pathb_ok == 0x03) {
                                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                                       ("Path B IQK Success!!\n"));
+                                       "Path B IQK Success!!\n");
                                result[t][4] = (rtl_get_bbreg(hw, 0xeb4,
                                               BMASKDWORD) & 0x3FF0000) >> 16;
                                result[t][5] = (rtl_get_bbreg(hw, 0xebc,
@@ -2128,7 +2116,7 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
                        } else if (i == (retrycount - 1) && pathb_ok == 0x01) {
                                /* Tx IQK OK */
                                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                                       ("Path B Only Tx IQK Success!!\n"));
+                                       "Path B Only Tx IQK Success!!\n");
                                result[t][4] = (rtl_get_bbreg(hw, 0xeb4,
                                               BMASKDWORD) & 0x3FF0000) >> 16;
                                result[t][5] = (rtl_get_bbreg(hw, 0xebc,
@@ -2137,12 +2125,12 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
                }
                if (0x00 == pathb_ok)
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path B IQK failed!!\n"));
+                               "Path B IQK failed!!\n");
        }
 
        /* Back to BB mode, load original value */
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("IQK:Back to BB mode, load original value!\n"));
+               "IQK:Back to BB mode, load original value!\n");
 
        rtl_set_bbreg(hw, 0xe28, BMASKDWORD, 0);
        if (t != 0) {
@@ -2167,7 +2155,7 @@ static void _rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw, long result[][8],
                rtl_set_bbreg(hw, 0xe30, BMASKDWORD, 0x01008c00);
                rtl_set_bbreg(hw, 0xe34, BMASKDWORD, 0x01008c00);
        }
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("<==\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "<==\n");
 }
 
 static void _rtl92d_phy_iq_calibrate_5g_normal(struct ieee80211_hw *hw,
@@ -2199,13 +2187,13 @@ static void _rtl92d_phy_iq_calibrate_5g_normal(struct ieee80211_hw *hw,
        /* Note: IQ calibration must be performed after loading
         * PHY_REG.txt , and radio_a, radio_b.txt */
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("IQK for 5G NORMAL:Start!!!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "IQK for 5G NORMAL:Start!!!\n");
        mdelay(IQK_DELAY_TIME * 20);
        if (t == 0) {
                bbvalue = rtl_get_bbreg(hw, RFPGA0_RFMOD, BMASKDWORD);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("==>0x%08x\n", bbvalue));
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("IQ Calibration for %s\n",
-                       (is2t ? "2T2R" : "1T1R")));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "==>0x%08x\n", bbvalue);
+               RTPRINT(rtlpriv, FINIT, INIT_IQK, "IQ Calibration for %s\n",
+                       is2t ? "2T2R" : "1T1R");
                /* Save ADDA parameters, turn Path A ADDA on */
                _rtl92d_phy_save_adda_registers(hw, adda_reg,
                                                rtlphy->adda_backup,
@@ -2242,13 +2230,13 @@ static void _rtl92d_phy_iq_calibrate_5g_normal(struct ieee80211_hw *hw,
        if (is2t)
                rtl_set_bbreg(hw, 0xb6c, BMASKDWORD, 0x0f600000);
        /* IQ calibration setting  */
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("IQK setting!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "IQK setting!\n");
        rtl_set_bbreg(hw, 0xe28, BMASKDWORD, 0x80800000);
        rtl_set_bbreg(hw, 0xe40, BMASKDWORD, 0x10007c00);
        rtl_set_bbreg(hw, 0xe44, BMASKDWORD, 0x01004800);
        patha_ok = _rtl92d_phy_patha_iqk_5g_normal(hw, is2t);
        if (patha_ok == 0x03) {
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path A IQK Success!!\n"));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path A IQK Success!!\n");
                result[t][0] = (rtl_get_bbreg(hw, 0xe94, BMASKDWORD) &
                                0x3FF0000) >> 16;
                result[t][1] = (rtl_get_bbreg(hw, 0xe9c, BMASKDWORD) &
@@ -2259,14 +2247,14 @@ static void _rtl92d_phy_iq_calibrate_5g_normal(struct ieee80211_hw *hw,
                                0x3FF0000) >> 16;
        } else if (patha_ok == 0x01) {  /* Tx IQK OK */
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("Path A IQK Only  Tx Success!!\n"));
+                       "Path A IQK Only  Tx Success!!\n");
 
                result[t][0] = (rtl_get_bbreg(hw, 0xe94, BMASKDWORD) &
                                0x3FF0000) >> 16;
                result[t][1] = (rtl_get_bbreg(hw, 0xe9c, BMASKDWORD) &
                                0x3FF0000) >> 16;
        } else {
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path A IQK Fail!!\n"));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "Path A IQK Fail!!\n");
        }
        if (is2t) {
                /* _rtl92d_phy_patha_standby(hw); */
@@ -2275,7 +2263,7 @@ static void _rtl92d_phy_iq_calibrate_5g_normal(struct ieee80211_hw *hw,
                pathb_ok = _rtl92d_phy_pathb_iqk_5g_normal(hw);
                if (pathb_ok == 0x03) {
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path B IQK Success!!\n"));
+                               "Path B IQK Success!!\n");
                        result[t][4] = (rtl_get_bbreg(hw, 0xeb4, BMASKDWORD) &
                             0x3FF0000) >> 16;
                        result[t][5] = (rtl_get_bbreg(hw, 0xebc, BMASKDWORD) &
@@ -2286,20 +2274,20 @@ static void _rtl92d_phy_iq_calibrate_5g_normal(struct ieee80211_hw *hw,
                             0x3FF0000) >> 16;
                } else if (pathb_ok == 0x01) { /* Tx IQK OK */
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path B Only Tx IQK Success!!\n"));
+                               "Path B Only Tx IQK Success!!\n");
                        result[t][4] = (rtl_get_bbreg(hw, 0xeb4, BMASKDWORD) &
                             0x3FF0000) >> 16;
                        result[t][5] = (rtl_get_bbreg(hw, 0xebc, BMASKDWORD) &
                             0x3FF0000) >> 16;
                } else {
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("Path B IQK failed!!\n"));
+                               "Path B IQK failed!!\n");
                }
        }
 
        /* Back to BB mode, load original value */
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("IQK:Back to BB mode, load original value!\n"));
+               "IQK:Back to BB mode, load original value!\n");
        rtl_set_bbreg(hw, 0xe28, BMASKDWORD, 0);
        if (t != 0) {
                if (is2t)
@@ -2321,7 +2309,7 @@ static void _rtl92d_phy_iq_calibrate_5g_normal(struct ieee80211_hw *hw,
                                                  rtlphy->adda_backup,
                                                  IQK_ADDA_REG_NUM);
        }
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("<==\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "<==\n");
 }
 
 static bool _rtl92d_phy_simularity_compare(struct ieee80211_hw *hw,
@@ -2395,8 +2383,7 @@ static void _rtl92d_phy_patha_fill_iqk_matrix(struct ieee80211_hw *hw,
            rtlhal->macphymode == DUALMAC_DUALPHY;
 
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("Path A IQ Calibration %s !\n",
-               (iqk_ok) ? "Success" : "Failed"));
+               "Path A IQ Calibration %s !\n", iqk_ok ? "Success" : "Failed");
        if (final_candidate == 0xFF) {
                return;
        } else if (iqk_ok) {
@@ -2406,8 +2393,9 @@ static void _rtl92d_phy_patha_fill_iqk_matrix(struct ieee80211_hw *hw,
                if ((val_x & 0x00000200) != 0)
                        val_x = val_x | 0xFFFFFC00;
                tx0_a = (val_x * oldval_0) >> 8;
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("X = 0x%x, tx0_a = 0x%x,"
-                       " oldval_0 0x%x\n",     val_x, tx0_a, oldval_0));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,
+                       "X = 0x%x, tx0_a = 0x%x, oldval_0 0x%x\n",
+                       val_x, tx0_a, oldval_0);
                rtl_set_bbreg(hw, ROFDM0_XATxIQIMBALANCE, 0x3FF, tx0_a);
                rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(24),
                              ((val_x * oldval_0 >> 7) & 0x1));
@@ -2419,8 +2407,9 @@ static void _rtl92d_phy_patha_fill_iqk_matrix(struct ieee80211_hw *hw,
                        rtlhal->current_bandtype == BAND_ON_5G)
                        val_y += 3;
                tx0_c = (val_y * oldval_0) >> 8;
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Y = 0x%lx, tx0_c = 0x%lx\n",
-                       val_y, tx0_c));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,
+                       "Y = 0x%lx, tx0_c = 0x%lx\n",
+                       val_y, tx0_c);
                rtl_set_bbreg(hw, ROFDM0_XCTxAFE, 0xF0000000,
                              ((tx0_c & 0x3C0) >> 6));
                rtl_set_bbreg(hw, ROFDM0_XATxIQIMBALANCE, 0x003F0000,
@@ -2428,11 +2417,11 @@ static void _rtl92d_phy_patha_fill_iqk_matrix(struct ieee80211_hw *hw,
                if (is2t)
                        rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(26),
                                      ((val_y * oldval_0 >> 7) & 0x1));
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("0xC80 = 0x%x\n",
-                        rtl_get_bbreg(hw, ROFDM0_XATxIQIMBALANCE,
-                                      BMASKDWORD)));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK, "0xC80 = 0x%x\n",
+                       rtl_get_bbreg(hw, ROFDM0_XATxIQIMBALANCE,
+                                     BMASKDWORD));
                if (txonly) {
-                       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("only Tx OK\n"));
+                       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "only Tx OK\n");
                        return;
                }
                reg = result[final_candidate][2];
@@ -2452,8 +2441,8 @@ static void _rtl92d_phy_pathb_fill_iqk_matrix(struct ieee80211_hw *hw,
        u32 oldval_1, val_x, tx1_a, reg;
        long val_y, tx1_c;
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Path B IQ Calibration %s !\n",
-                (iqk_ok) ? "Success" : "Failed"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK, "Path B IQ Calibration %s !\n",
+               iqk_ok ? "Success" : "Failed");
        if (final_candidate == 0xFF) {
                return;
        } else if (iqk_ok) {
@@ -2463,8 +2452,8 @@ static void _rtl92d_phy_pathb_fill_iqk_matrix(struct ieee80211_hw *hw,
                if ((val_x & 0x00000200) != 0)
                        val_x = val_x | 0xFFFFFC00;
                tx1_a = (val_x * oldval_1) >> 8;
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("X = 0x%x, tx1_a = 0x%x\n",
-                       val_x, tx1_a));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK, "X = 0x%x, tx1_a = 0x%x\n",
+                       val_x, tx1_a);
                rtl_set_bbreg(hw, ROFDM0_XBTxIQIMBALANCE, 0x3FF, tx1_a);
                rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(28),
                              ((val_x * oldval_1 >> 7) & 0x1));
@@ -2474,8 +2463,8 @@ static void _rtl92d_phy_pathb_fill_iqk_matrix(struct ieee80211_hw *hw,
                if (rtlhal->current_bandtype == BAND_ON_5G)
                        val_y += 3;
                tx1_c = (val_y * oldval_1) >> 8;
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("Y = 0x%lx, tx1_c = 0x%lx\n",
-                       val_y, tx1_c));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK, "Y = 0x%lx, tx1_c = 0x%lx\n",
+                       val_y, tx1_c);
                rtl_set_bbreg(hw, ROFDM0_XDTxAFE, 0xF0000000,
                              ((tx1_c & 0x3C0) >> 6));
                rtl_set_bbreg(hw, ROFDM0_XBTxIQIMBALANCE, 0x003F0000,
@@ -2507,7 +2496,7 @@ void rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw)
        unsigned long flag = 0;
 
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("IQK:Start!!!channel %d\n", rtlphy->current_channel));
+               "IQK:Start!!!channel %d\n", rtlphy->current_channel);
        for (i = 0; i < 8; i++) {
                result[0][i] = 0;
                result[1][i] = 0;
@@ -2521,7 +2510,7 @@ void rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw)
        is23simular = false;
        is13simular = false;
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("IQK !!!currentband %d\n", rtlhal->current_bandtype));
+               "IQK !!!currentband %d\n", rtlhal->current_bandtype);
        rtl92d_acquire_cckandrw_pagea_ctl(hw, &flag);
        for (i = 0; i < 3; i++) {
                if (rtlhal->current_bandtype == BAND_ON_5G) {
@@ -2573,10 +2562,9 @@ void rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw)
                regec4 = result[i][6];
                regecc = result[i][7];
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("IQK: rege94=%lx rege9c=%lx regea4=%lx regeac=%lx "
-                       "regeb4=%lx regebc=%lx regec4=%lx regecc=%lx\n ",
+                       "IQK: rege94=%lx rege9c=%lx regea4=%lx regeac=%lx regeb4=%lx regebc=%lx regec4=%lx regecc=%lx\n",
                        rege94, rege9c, regea4, regeac, regeb4, regebc, regec4,
-                       regecc));
+                       regecc);
        }
        if (final_candidate != 0xff) {
                rtlphy->reg_e94 = rege94 = result[final_candidate][0];
@@ -2588,12 +2576,11 @@ void rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw)
                regec4 = result[final_candidate][6];
                regecc = result[final_candidate][7];
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("IQK: final_candidate is %x\n", final_candidate));
+                       "IQK: final_candidate is %x\n", final_candidate);
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("IQK: rege94=%lx rege9c=%lx regea4=%lx regeac=%lx "
-                       "regeb4=%lx regebc=%lx regec4=%lx regecc=%lx\n ",
+                       "IQK: rege94=%lx rege9c=%lx regea4=%lx regeac=%lx regeb4=%lx regebc=%lx regec4=%lx regecc=%lx\n",
                        rege94, rege9c, regea4, regeac, regeb4, regebc, regec4,
-                       regecc));
+                       regecc);
                patha_ok = pathb_ok = true;
        } else {
                rtlphy->reg_e94 = rtlphy->reg_eb4 = 0x100; /* X default value */
@@ -2618,7 +2605,7 @@ void rtl92d_phy_iq_calibrate(struct ieee80211_hw *hw)
                        true;
 
                RT_TRACE(rtlpriv, COMP_SCAN | COMP_MLME, DBG_LOUD,
-                        ("\nIQK OK indexforchannel %d.\n", indexforchannel));
+                        "IQK OK indexforchannel %d\n", indexforchannel);
        }
 }
 
@@ -2629,17 +2616,17 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel)
        struct rtl_hal *rtlhal = &(rtlpriv->rtlhal);
        u8 indexforchannel;
 
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("channel %d\n", channel));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "channel %d\n", channel);
        /*------Do IQK for normal chip and test chip 5G band------- */
        indexforchannel = rtl92d_get_rightchnlplace_for_iqk(channel);
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-               ("indexforchannel %d done %d\n", indexforchannel,
-               rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "indexforchannel %d done %d\n",
+                indexforchannel,
+                rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done);
        if (0 && !rtlphy->iqk_matrix_regsetting[indexforchannel].iqk_done &&
                rtlphy->need_iqk) {
                /* Re Do IQK. */
                RT_TRACE(rtlpriv, COMP_SCAN | COMP_INIT, DBG_LOUD,
-                        ("Do IQK Matrix reg for channel:%d....\n", channel));
+                        "Do IQK Matrix reg for channel:%d....\n", channel);
                rtl92d_phy_iq_calibrate(hw);
        } else {
                /* Just load the value. */
@@ -2647,8 +2634,8 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel)
                if (((!rtlhal->load_imrandiqk_setting_for2g) &&
                    indexforchannel == 0) || indexforchannel > 0) {
                        RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD,
-                                ("Just Read IQK Matrix reg for channel:%d"
-                                "....\n", channel));
+                                "Just Read IQK Matrix reg for channel:%d....\n",
+                                channel);
                        if ((rtlphy->iqk_matrix_regsetting[indexforchannel].
                             value[0] != NULL)
                                /*&&(regea4 != 0) */)
@@ -2672,7 +2659,7 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel)
                }
        }
        rtlphy->need_iqk = false;
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("<====\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "<====\n");
 }
 
 static u32 _rtl92d_phy_get_abs(u32 val1, u32 val2)
@@ -2727,8 +2714,8 @@ static void _rtl92d_phy_calc_curvindex(struct ieee80211_hw *hw,
                        }
                }
                smallest_abs_val = 0xffffffff;
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("curveindex[%d] = %x\n", i,
-                       curveindex[i]));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK, "curveindex[%d] = %x\n",
+                       i, curveindex[i]);
        }
 }
 
@@ -2743,14 +2730,14 @@ static void _rtl92d_phy_reload_lck_setting(struct ieee80211_hw *hw,
        u32 u4tmp = 0, u4regvalue = 0;
        bool bneed_powerdown_radio = false;
 
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("path %d\n", erfpath));
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("band type = %d\n",
-               rtlpriv->rtlhal.current_bandtype));
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("channel = %d\n", channel));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "path %d\n", erfpath);
+       RTPRINT(rtlpriv, FINIT, INIT_IQK, "band type = %d\n",
+               rtlpriv->rtlhal.current_bandtype);
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "channel = %d\n", channel);
        if (rtlpriv->rtlhal.current_bandtype == BAND_ON_5G) {/* Path-A for 5G */
                u4tmp = curveindex_5g[channel-1];
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("ver 1 set RF-A, 5G,   0x28 = 0x%ulx !!\n", u4tmp));
+                       "ver 1 set RF-A, 5G,    0x28 = 0x%ulx !!\n", u4tmp);
                if (rtlpriv->rtlhal.macphymode == DUALMAC_DUALPHY &&
                        rtlpriv->rtlhal.interfaceindex == 1) {
                        bneed_powerdown_radio =
@@ -2769,7 +2756,7 @@ static void _rtl92d_phy_reload_lck_setting(struct ieee80211_hw *hw,
        } else if (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G) {
                u4tmp = curveindex_2g[channel-1];
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("ver 3 set RF-B, 2G, 0x28 = 0x%ulx !!\n", u4tmp));
+                       "ver 3 set RF-B, 2G, 0x28 = 0x%ulx !!\n", u4tmp);
                if (rtlpriv->rtlhal.macphymode == DUALMAC_DUALPHY &&
                        rtlpriv->rtlhal.interfaceindex == 0) {
                        bneed_powerdown_radio =
@@ -2781,14 +2768,14 @@ static void _rtl92d_phy_reload_lck_setting(struct ieee80211_hw *hw,
                }
                rtl_set_rfreg(hw, erfpath, RF_SYN_G4, 0x3f800, u4tmp);
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("ver 3 set RF-B, 2G, 0x28 = 0x%ulx !!\n",
-                       rtl_get_rfreg(hw,  erfpath, RF_SYN_G4, 0x3f800)));
+                       "ver 3 set RF-B, 2G, 0x28 = 0x%ulx !!\n",
+                       rtl_get_rfreg(hw,  erfpath, RF_SYN_G4, 0x3f800));
                if (bneed_powerdown_radio)
                        _rtl92d_phy_restore_rf_env(hw, erfpath, &u4regvalue);
                if (rtlpriv->rtlhal.during_mac0init_radiob)
                        rtl92d_phy_powerdown_anotherphy(hw, true);
        }
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("<====\n"));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "<====\n");
 }
 
 static void _rtl92d_phy_lc_calibrate_sw(struct ieee80211_hw *hw, bool is2t)
@@ -2836,20 +2823,20 @@ static void _rtl92d_phy_lc_calibrate_sw(struct ieee80211_hw *hw, bool is2t)
                                              RF_SYN_G6, BRFREGOFFSETMASK);
                }
                RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                       ("PHY_LCK finish delay for %d ms=2\n", timecount));
+                       "PHY_LCK finish delay for %d ms=2\n", timecount);
                u4tmp = rtl_get_rfreg(hw, index, RF_SYN_G4, BRFREGOFFSETMASK);
                if (index == 0 && rtlhal->interfaceindex == 0) {
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("path-A / 5G LCK\n"));
+                               "path-A / 5G LCK\n");
                } else {
                        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-                               ("path-B / 2.4G LCK\n"));
+                               "path-B / 2.4G LCK\n");
                }
                memset(&curvecount_val[0], 0, CV_CURVE_CNT * 2);
                /* Set LC calibration off */
                rtl_set_rfreg(hw, (enum radio_path)index, RF_CHNLBW,
                              0x08000, 0x0);
-               RTPRINT(rtlpriv, FINIT, INIT_IQK, ("set RF 0x18[15] = 0\n"));
+               RTPRINT(rtlpriv, FINIT, INIT_IQK,  "set RF 0x18[15] = 0\n");
                /* save Curve-counting number */
                for (i = 0; i < CV_CURVE_CNT; i++) {
                        u32 readval = 0, readval2 = 0;
@@ -2899,7 +2886,7 @@ static void _rtl92d_phy_lc_calibrate(struct ieee80211_hw *hw, bool is2t)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("cosa PHY_LCK ver=2\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "cosa PHY_LCK ver=2\n");
        _rtl92d_phy_lc_calibrate_sw(hw, is2t);
 }
 
@@ -2917,8 +2904,8 @@ void rtl92d_phy_lc_calibrate(struct ieee80211_hw *hw)
 
        rtlphy->lck_inprogress = true;
        RTPRINT(rtlpriv, FINIT, INIT_IQK,
-               ("LCK:Start!!! currentband %x delay %d ms\n",
-                rtlhal->current_bandtype, timecount));
+               "LCK:Start!!! currentband %x delay %d ms\n",
+               rtlhal->current_bandtype, timecount);
        if (IS_92D_SINGLEPHY(rtlhal->version)) {
                _rtl92d_phy_lc_calibrate(hw, true);
        } else {
@@ -2926,7 +2913,7 @@ void rtl92d_phy_lc_calibrate(struct ieee80211_hw *hw)
                _rtl92d_phy_lc_calibrate(hw, false);
        }
        rtlphy->lck_inprogress = false;
-       RTPRINT(rtlpriv, FINIT, INIT_IQK, ("LCK:Finish!!!\n"));
+       RTPRINT(rtlpriv, FINIT, INIT_IQK,  "LCK:Finish!!!\n");
 }
 
 void rtl92d_phy_ap_calibrate(struct ieee80211_hw *hw, char delta)
@@ -2941,7 +2928,7 @@ static bool _rtl92d_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable,
        struct swchnlcmd *pcmd;
 
        if (cmdtable == NULL) {
-               RT_ASSERT(false, ("cmdtable cannot be NULL.\n"));
+               RT_ASSERT(false, "cmdtable cannot be NULL\n");
                return false;
        }
        if (cmdtableidx >= cmdtablesz)
@@ -2962,10 +2949,10 @@ void rtl92d_phy_reset_iqk_result(struct ieee80211_hw *hw)
        u8 i;
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                       ("settings regs %d default regs %d\n",
-                       (int)(sizeof(rtlphy->iqk_matrix_regsetting) /
-                       sizeof(struct iqk_matrix_regs)),
-                       IQK_MATRIX_REG_NUM));
+                "settings regs %d default regs %d\n",
+                (int)(sizeof(rtlphy->iqk_matrix_regsetting) /
+                      sizeof(struct iqk_matrix_regs)),
+                IQK_MATRIX_REG_NUM);
        /* 0xe94, 0xe9c, 0xea4, 0xeac, 0xeb4, 0xebc, 0xec4, 0xecc */
        for (i = 0; i < IQK_MATRIX_SETTINGS_NUM; i++) {
                rtlphy->iqk_matrix_regsetting[i].value[0][0] = 0x100;
@@ -3084,7 +3071,7 @@ static bool _rtl92d_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
                break;
@@ -3111,7 +3098,7 @@ u8 rtl92d_phy_sw_chnl(struct ieee80211_hw *hw)
 
        if ((is_hal_stop(rtlhal)) || (RT_CANNOT_IO(hw))) {
                RT_TRACE(rtlpriv, COMP_CHAN, DBG_LOUD,
-                        ("sw_chnl_inprogress false driver sleep or unload\n"));
+                        "sw_chnl_inprogress false driver sleep or unload\n");
                return 0;
        }
        while (rtlphy->lck_inprogress && timecount < timeout) {
@@ -3133,19 +3120,18 @@ u8 rtl92d_phy_sw_chnl(struct ieee80211_hw *hw)
                 * 5G and 2.4G band. */
                if (channel <= 14)
                        return 0;
-               RT_ASSERT((channel > 14), ("5G but channel<=14"));
+               RT_ASSERT((channel > 14), "5G but channel<=14\n");
                break;
        case BAND_ON_2_4G:
                /* Get first channel error when change between
                 * 5G and 2.4G band. */
                if (channel > 14)
                        return 0;
-               RT_ASSERT((channel <= 14), ("2G but channel>14"));
+               RT_ASSERT((channel <= 14), "2G but channel>14\n");
                break;
        default:
-               RT_ASSERT(false,
-                         ("Invalid WirelessMode(%#x)!!\n",
-                          rtlpriv->mac80211.mode));
+               RT_ASSERT(false, "Invalid WirelessMode(%#x)!!\n",
+                         rtlpriv->mac80211.mode);
                break;
        }
        rtlphy->sw_chnl_inprogress = true;
@@ -3154,7 +3140,7 @@ u8 rtl92d_phy_sw_chnl(struct ieee80211_hw *hw)
        rtlphy->sw_chnl_stage = 0;
        rtlphy->sw_chnl_step = 0;
        RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
-                ("switch to channel%d\n", rtlphy->current_channel));
+                "switch to channel%d\n", rtlphy->current_channel);
 
        do {
                if (!rtlphy->sw_chnl_inprogress)
@@ -3171,7 +3157,7 @@ u8 rtl92d_phy_sw_chnl(struct ieee80211_hw *hw)
                }
                break;
        } while (true);
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "<==\n");
        rtlphy->sw_chnl_inprogress = false;
        return 1;
 }
@@ -3182,8 +3168,8 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
 
        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                ("--->Cmd(%#x), set_io_inprogress(%d)\n",
-                rtlphy->current_io_type, rtlphy->set_io_inprogress));
+                "--->Cmd(%#x), set_io_inprogress(%d)\n",
+                rtlphy->current_io_type, rtlphy->set_io_inprogress);
        switch (rtlphy->current_io_type) {
        case IO_CMD_RESUME_DM_BY_SCAN:
                de_digtable.cur_igvalue = rtlphy->initgain_backup.xaagccore1;
@@ -3197,12 +3183,12 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        rtlphy->set_io_inprogress = false;
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                ("<---(%#x)\n", rtlphy->current_io_type));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, "<---(%#x)\n",
+                rtlphy->current_io_type);
 }
 
 bool rtl92d_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
@@ -3212,23 +3198,23 @@ bool rtl92d_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
        bool postprocessing = false;
 
        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                ("-->IO Cmd(%#x), set_io_inprogress(%d)\n",
-                iotype, rtlphy->set_io_inprogress));
+                "-->IO Cmd(%#x), set_io_inprogress(%d)\n",
+                iotype, rtlphy->set_io_inprogress);
        do {
                switch (iotype) {
                case IO_CMD_RESUME_DM_BY_SCAN:
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                                ("[IO CMD] Resume DM after scan.\n"));
+                                "[IO CMD] Resume DM after scan\n");
                        postprocessing = true;
                        break;
                case IO_CMD_PAUSE_DM_BY_SCAN:
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE,
-                                ("[IO CMD] Pause DM before scan.\n"));
+                                "[IO CMD] Pause DM before scan\n");
                        postprocessing = true;
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
        } while (false);
@@ -3239,7 +3225,7 @@ bool rtl92d_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
                return false;
        }
        rtl92d_phy_set_io(hw);
-       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, ("<--IO Type(%#x)\n", iotype));
+       RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, "<--IO Type(%#x)\n", iotype);
        return true;
 }
 
@@ -3297,7 +3283,7 @@ static void _rtl92d_phy_set_rfsleep(struct ieee80211_hw *hw)
                rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3);
                rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00);
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                       ("Fail !!! Switch RF timeout.\n"));
+                        "Fail !!! Switch RF timeout\n");
                return;
        }
        /* e.   For PCIE: SYS_FUNC_EN 0x02[7:0] = 0xE2 reset BB TRX function */
@@ -3332,7 +3318,7 @@ bool rtl92d_phy_set_rf_power_state(struct ieee80211_hw *hw,
                        do {
                                InitializeCount++;
                                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                        ("IPS Set eRf nic enable\n"));
+                                        "IPS Set eRf nic enable\n");
                                rtstatus = rtl_ps_enable_nic(hw);
                        } while ((rtstatus != true) &&
                                 (InitializeCount < 10));
@@ -3341,11 +3327,10 @@ bool rtl92d_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                          RT_RF_OFF_LEVL_HALT_NIC);
                } else {
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                                ("awake, sleeped:%d ms state_"
-                                "inap:%x\n",
+                                "awake, sleeped:%d ms state_inap:%x\n",
                                 jiffies_to_msecs(jiffies -
-                                ppsc->last_sleep_jiffies),
-                                rtlpriv->psc.state_inap));
+                                                 ppsc->last_sleep_jiffies),
+                                rtlpriv->psc.state_inap);
                        ppsc->last_awake_jiffies = jiffies;
                        _rtl92d_phy_set_rfon(hw);
                }
@@ -3360,7 +3345,7 @@ bool rtl92d_phy_set_rf_power_state(struct ieee80211_hw *hw,
        case ERFOFF:
                if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) {
                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                ("IPS Set eRf nic disable\n"));
+                                "IPS Set eRf nic disable\n");
                        rtl_ps_disable_nic(hw);
                        RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
                } else {
@@ -3385,41 +3370,40 @@ bool rtl92d_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                continue;
                        } else if (rtlpci->pdev->current_state != PCI_D0) {
                                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                        ("eRf Off/Sleep: %d times TcbBusyQueu"
-                                        "e[%d] !=0 but lower power state!\n",
-                                        (i + 1), queue_id));
+                                        "eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 but lower power state!\n",
+                                        i + 1, queue_id);
                                break;
                        } else {
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("eRf Off/Sleep: %d times TcbBusyQueu"
-                                        "e[%d] =%d "
-                                        "before doze!\n", (i + 1), queue_id,
-                                         skb_queue_len(&ring->queue)));
+                                        "eRf Off/Sleep: %d times TcbBusyQueue[%d] =%d before doze!\n",
+                                        i + 1, queue_id,
+                                        skb_queue_len(&ring->queue));
                                udelay(10);
                                i++;
                        }
 
                        if (i >= MAX_DOZE_WAITING_TIMES_9x) {
                                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                        ("\nERFOFF: %d times TcbBusyQueue[%d] "
-                                        "= %d !\n",
-                                         MAX_DOZE_WAITING_TIMES_9x, queue_id,
-                                         skb_queue_len(&ring->queue)));
+                                        "ERFOFF: %d times TcbBusyQueue[%d] = %d !\n",
+                                        MAX_DOZE_WAITING_TIMES_9x, queue_id,
+                                        skb_queue_len(&ring->queue));
                                break;
                        }
                }
                RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                        ("Set rfsleep awaked:%d ms\n",
-                        jiffies_to_msecs(jiffies - ppsc->last_awake_jiffies)));
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG, ("sleep awaked:%d ms "
-                        "state_inap:%x\n", jiffies_to_msecs(jiffies -
-                        ppsc->last_awake_jiffies), rtlpriv->psc.state_inap));
+                        "Set rfsleep awaked:%d ms\n",
+                        jiffies_to_msecs(jiffies - ppsc->last_awake_jiffies));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
+                        "sleep awaked:%d ms state_inap:%x\n",
+                        jiffies_to_msecs(jiffies -
+                                         ppsc->last_awake_jiffies),
+                        rtlpriv->psc.state_inap);
                ppsc->last_sleep_jiffies = jiffies;
                _rtl92d_phy_set_rfsleep(hw);
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                bresult = false;
                break;
        }
@@ -3437,17 +3421,17 @@ void rtl92d_phy_config_macphymode(struct ieee80211_hw *hw)
        switch (rtlhal->macphymode) {
        case DUALMAC_DUALPHY:
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("MacPhyMode: DUALMAC_DUALPHY\n"));
+                        "MacPhyMode: DUALMAC_DUALPHY\n");
                rtl_write_byte(rtlpriv, offset, 0xF3);
                break;
        case SINGLEMAC_SINGLEPHY:
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("MacPhyMode: SINGLEMAC_SINGLEPHY\n"));
+                        "MacPhyMode: SINGLEMAC_SINGLEPHY\n");
                rtl_write_byte(rtlpriv, offset, 0xF4);
                break;
        case DUALMAC_SINGLEPHY:
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("MacPhyMode: DUALMAC_SINGLEPHY\n"));
+                        "MacPhyMode: DUALMAC_SINGLEPHY\n");
                rtl_write_byte(rtlpriv, offset, 0xF1);
                break;
        }
@@ -3578,7 +3562,7 @@ void rtl92d_phy_set_poweron(struct ieee80211_hw *hw)
                        }
                }
                if (i == 200)
-                       RT_ASSERT(false, ("Another mac power off over time\n"));
+                       RT_ASSERT(false, "Another mac power off over time\n");
        }
 }
 
@@ -3615,7 +3599,7 @@ void rtl92d_update_bbrf_configuration(struct ieee80211_hw *hw)
        struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
        u8 rfpath, i;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("==>\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "==>\n");
        /* r_select_5G for path_A/B 0 for 2.4G, 1 for 5G */
        if (rtlhal->current_bandtype == BAND_ON_2_4G) {
                /* r_select_5G for path_A/B,0x878 */
@@ -3764,7 +3748,7 @@ void rtl92d_update_bbrf_configuration(struct ieee80211_hw *hw)
                } else {
                        rtl92d_phy_enable_anotherphy(hw, false);
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                                ("MAC1 use DBI to update 0x888"));
+                                "MAC1 use DBI to update 0x888\n");
                        /* 0x888 */
                        rtl92de_write_dword_dbi(hw, RFPGA0_ADDALLOCKEN,
                                                rtl92de_read_dword_dbi(hw,
@@ -3789,9 +3773,9 @@ void rtl92d_update_bbrf_configuration(struct ieee80211_hw *hw)
                        BRFREGOFFSETMASK);
        }
        for (i = 0; i < 2; i++)
-               RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("RF 0x18 = 0x%x\n",
-                         rtlphy->rfreg_chnlval[i]));
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("<==\n"));
+               RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "RF 0x18 = 0x%x\n",
+                        rtlphy->rfreg_chnlval[i]);
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "<==\n");
 
 }
 
index a52c824b41e32e1d09cc29d451339316cd53dfe2..f074952bf25c53c3fcd6dbf6ae22f0a1f8de9316 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 131acc306fcc07ea2d1eec4bb32193f83a74eefd..9bc4623310784f6ebb60be727043670ba2bb05c7 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index db27cebaac2c80052a0479992c88ebfa25017896..ff34d2dd39b894cd50eafea97af01121bb6a1521 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -50,8 +50,8 @@ void rtl92d_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth)
                                      BIT(11), 0x01);
 
                        RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD,
-                                ("20M RF 0x18 = 0x%x\n",
-                                rtlphy->rfreg_chnlval[rfpath]));
+                                "20M RF 0x18 = 0x%x\n",
+                                rtlphy->rfreg_chnlval[rfpath]);
                }
 
                break;
@@ -62,13 +62,13 @@ void rtl92d_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth)
                        rtl_set_rfreg(hw, rfpath, RF_CHNLBW, BIT(10) | BIT(11),
                                      0x00);
                        RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD,
-                                ("40M RF 0x18 = 0x%x\n",
-                                rtlphy->rfreg_chnlval[rfpath]));
+                                "40M RF 0x18 = 0x%x\n",
+                                rtlphy->rfreg_chnlval[rfpath]);
                }
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", bandwidth));
+                        "unknown bandwidth: %#X\n", bandwidth);
                break;
        }
 }
@@ -127,23 +127,23 @@ void rtl92d_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw,
        tmpval = tx_agc[RF90_PATH_A] & 0xff;
        rtl_set_bbreg(hw, RTXAGC_A_CCK1_MCS32, BMASKBYTE1, tmpval);
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 1M (rf-A) = 0x%x (reg 0x%x)\n", tmpval,
-               RTXAGC_A_CCK1_MCS32));
+               "CCK PWR 1M (rf-A) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_A_CCK1_MCS32);
        tmpval = tx_agc[RF90_PATH_A] >> 8;
        rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, 0xffffff00, tmpval);
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 2~11M (rf-A) = 0x%x (reg 0x%x)\n", tmpval,
-               RTXAGC_B_CCK11_A_CCK2_11));
+               "CCK PWR 2~11M (rf-A) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK11_A_CCK2_11);
        tmpval = tx_agc[RF90_PATH_B] >> 24;
        rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, BMASKBYTE0, tmpval);
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n", tmpval,
-               RTXAGC_B_CCK11_A_CCK2_11));
+               "CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK11_A_CCK2_11);
        tmpval = tx_agc[RF90_PATH_B] & 0x00ffffff;
        rtl_set_bbreg(hw, RTXAGC_B_CCK1_55_MCS32, 0xffffff00, tmpval);
        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-               ("CCK PWR 1~5.5M (rf-B) = 0x%x (reg 0x%x)\n", tmpval,
-               RTXAGC_B_CCK1_55_MCS32));
+               "CCK PWR 1~5.5M (rf-B) = 0x%x (reg 0x%x)\n",
+               tmpval, RTXAGC_B_CCK1_55_MCS32);
 }
 
 static void _rtl92d_phy_get_power_base(struct ieee80211_hw *hw,
@@ -165,8 +165,8 @@ static void _rtl92d_phy_get_power_base(struct ieee80211_hw *hw,
                    (powerbase0 << 8) | powerbase0;
                *(ofdmbase + i) = powerbase0;
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       (" [OFDM power base index rf(%c) = 0x%x]\n",
-                       ((i == 0) ? 'A' : 'B'), *(ofdmbase + i)));
+                       " [OFDM power base index rf(%c) = 0x%x]\n",
+                       i == 0 ? 'A' : 'B', *(ofdmbase + i));
        }
 
        for (i = 0; i < 2; i++) {
@@ -179,8 +179,8 @@ static void _rtl92d_phy_get_power_base(struct ieee80211_hw *hw,
                             (powerbase1 << 8) | powerbase1;
                *(mcsbase + i) = powerbase1;
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       (" [MCS power base index rf(%c) = 0x%x]\n",
-                       ((i == 0) ? 'A' : 'B'), *(mcsbase + i)));
+                       " [MCS power base index rf(%c) = 0x%x]\n",
+                       i == 0 ? 'A' : 'B', *(mcsbase + i));
        }
 }
 
@@ -232,9 +232,9 @@ static void _rtl92d_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                                        (rf ? 8 : 0)] + ((index < 2) ?
                                        powerbase0[rf] :
                                        powerbase1[rf]);
-                       RTPRINT(rtlpriv, FPHY, PHY_TXPWR, ("RTK better "
-                               "performance, writeval(%c) = 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), writeval));
+                       RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
+                               "RTK better performance, writeval(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeval);
                        break;
                case 1:
                        if (rtlphy->pwrgroup_cnt == 1)
@@ -253,33 +253,31 @@ static void _rtl92d_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                                                powerbase0[rf] :
                                                powerbase1[rf]);
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("Realtek regulatory, "
-                                       "20MHz, writeval(%c) = 0x%x\n",
-                                       ((rf == 0) ? 'A' : 'B'),
-                                       writeval));
+                                       "Realtek regulatory, 20MHz, writeval(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B', writeval);
                        }
                        break;
                case 2:
                        writeval = ((index < 2) ? powerbase0[rf] :
                                   powerbase1[rf]);
-                       RTPRINT(rtlpriv, FPHY, PHY_TXPWR, ("Better regulatory, "
-                               "writeval(%c) = 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), writeval));
+                       RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
+                               "Better regulatory, writeval(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeval);
                        break;
                case 3:
                        chnlgroup = 0;
                        if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("customer's limit, 40MHz rf(%c) = "
-                                       "0x%x\n", ((rf == 0) ? 'A' : 'B'),
+                                       "customer's limit, 40MHz rf(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B',
                                        rtlefuse->pwrgroup_ht40[rf]
-                                       [channel - 1]));
+                                       [channel - 1]);
                        } else {
                                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                                       ("customer's limit, 20MHz rf(%c) = "
-                                       "0x%x\n", ((rf == 0) ? 'A' : 'B'),
+                                       "customer's limit, 20MHz rf(%c) = 0x%x\n",
+                                       rf == 0 ? 'A' : 'B',
                                        rtlefuse->pwrgroup_ht20[rf]
-                                       [channel - 1]));
+                                       [channel - 1]);
                        }
                        for (i = 0; i < 4; i++) {
                                pwr_diff_limit[i] =
@@ -308,13 +306,13 @@ static void _rtl92d_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                                         (pwr_diff_limit[1] << 8) |
                                         (pwr_diff_limit[0]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Customer's limit rf(%c) = 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), customer_limit));
+                               "Customer's limit rf(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', customer_limit);
                        writeval = customer_limit + ((index < 2) ?
                                   powerbase0[rf] : powerbase1[rf]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("Customer, writeval rf(%c)= 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), writeval));
+                               "Customer, writeval rf(%c)= 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeval);
                        break;
                default:
                        chnlgroup = 0;
@@ -323,9 +321,8 @@ static void _rtl92d_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw,
                                   (rf ? 8 : 0)] + ((index < 2) ?
                                   powerbase0[rf] : powerbase1[rf]);
                        RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                               ("RTK better performance, writeval "
-                               "rf(%c) = 0x%x\n",
-                               ((rf == 0) ? 'A' : 'B'), writeval));
+                               "RTK better performance, writeval rf(%c) = 0x%x\n",
+                               rf == 0 ? 'A' : 'B', writeval);
                        break;
                }
                *(p_outwriteval + rf) = writeval;
@@ -367,7 +364,7 @@ static void _rtl92d_write_ofdm_power_reg(struct ieee80211_hw *hw,
                        regoffset = regoffset_b[index];
                rtl_set_bbreg(hw, regoffset, BMASKDWORD, writeval);
                RTPRINT(rtlpriv, FPHY, PHY_TXPWR,
-                       ("Set 0x%x = %08x\n", regoffset, writeval));
+                       "Set 0x%x = %08x\n", regoffset, writeval);
                if (((get_rf_type(rtlphy) == RF_2T2R) &&
                    (regoffset == RTXAGC_A_MCS15_MCS12 ||
                    regoffset == RTXAGC_B_MCS15_MCS12)) ||
@@ -423,11 +420,11 @@ bool rtl92d_phy_enable_anotherphy(struct ieee80211_hw *hw, bool bmac0)
 
        rtlhal->during_mac0init_radiob = false;
        rtlhal->during_mac1init_radioa = false;
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("===>\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "===>\n");
        /* MAC0 Need PHY1 load radio_b.txt . Driver use DBI to write. */
        u1btmp = rtl_read_byte(rtlpriv, mac_reg);
        if (!(u1btmp & mac_on_bit)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("enable BB & RF\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "enable BB & RF\n");
                /* Enable BB and RF power */
                rtl92de_write_dword_dbi(hw, REG_SYS_ISO_CTRL,
                        rtl92de_read_dword_dbi(hw, REG_SYS_ISO_CTRL, direct) |
@@ -437,7 +434,7 @@ bool rtl92d_phy_enable_anotherphy(struct ieee80211_hw *hw, bool bmac0)
                 * and radio_b.txt has been load. */
                bresult = false;
        }
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("<===\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "<===\n");
        return bresult;
 
 }
@@ -453,17 +450,17 @@ void rtl92d_phy_powerdown_anotherphy(struct ieee80211_hw *hw, bool bmac0)
 
        rtlhal->during_mac0init_radiob = false;
        rtlhal->during_mac1init_radioa = false;
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("====>\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "====>\n");
        /* check MAC0 enable or not again now, if
         * enabled, not power down radio A. */
        u1btmp = rtl_read_byte(rtlpriv, mac_reg);
        if (!(u1btmp & mac_on_bit)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("power down\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "power down\n");
                /* power down RF radio A according to YuNan's advice. */
                rtl92de_write_dword_dbi(hw, RFPGA0_XA_LSSIPARAMETER,
                                        0x00000000, direct);
        }
-       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, ("<====\n"));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_LOUD, "<====\n");
 }
 
 bool rtl92d_phy_rf6052_config(struct ieee80211_hw *hw)
@@ -606,7 +603,7 @@ bool rtl92d_phy_rf6052_config(struct ieee80211_hw *hw)
                }
                if (rtstatus != true) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                               ("Radio[%d] Fail!!", rfpath));
+                                "Radio[%d] Fail!!", rfpath);
                        goto phy_rf_cfg_fail;
                }
 
@@ -620,7 +617,7 @@ bool rtl92d_phy_rf6052_config(struct ieee80211_hw *hw)
                rtl92d_phy_powerdown_anotherphy(hw, false);
        else if (need_pwrdown_radiob)
                rtl92d_phy_powerdown_anotherphy(hw, true);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, ("<---\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "<---\n");
        return rtstatus;
 
 phy_rf_cfg_fail:
index 74b9cfc39a83ba9bfca24d39bf5d7317de170e23..0fe1a48593e8b90dd797335efed9fd9e38598ef6 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 7911c9c870859ab11c5e03e3bb7cdede5eb0bb54..4898c502974db606bf725ed0664318f0655ab7f8 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/vmalloc.h>
-#include <linux/module.h>
-
 #include "../wifi.h"
 #include "../core.h"
 #include "../pci.h"
@@ -44,6 +39,8 @@
 #include "trx.h"
 #include "led.h"
 
+#include <linux/module.h>
+
 static void rtl92d_init_aspm_vars(struct ieee80211_hw *hw)
 {
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
@@ -94,7 +91,6 @@ static int rtl92d_init_sw_vars(struct ieee80211_hw *hw)
        u8 tid;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-       const struct firmware *firmware;
        static int header_print;
 
        rtlpriv->dm.dm_initialgain_enable = true;
@@ -154,9 +150,9 @@ static int rtl92d_init_sw_vars(struct ieee80211_hw *hw)
        rtlpriv->psc.swctrl_lps = rtlpriv->cfg->mod_params->swctrl_lps;
        rtlpriv->psc.fwctrl_lps = rtlpriv->cfg->mod_params->fwctrl_lps;
        if (!rtlpriv->psc.inactiveps)
-               pr_info("rtl8192ce: Power Save off (module option)\n");
+               pr_info("Power Save off (module option)\n");
        if (!rtlpriv->psc.fwctrl_lps)
-               pr_info("rtl8192ce: FW Power Save off (module option)\n");
+               pr_info("FW Power Save off (module option)\n");
        rtlpriv->psc.reg_fwctrl_lps = 3;
        rtlpriv->psc.reg_max_lps_awakeintvl = 5;
        /* for ASPM, you can close aspm through
@@ -170,41 +166,38 @@ static int rtl92d_init_sw_vars(struct ieee80211_hw *hw)
        else if (rtlpriv->psc.reg_fwctrl_lps == 3)
                rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE;
 
+       /* for early mode */
+       rtlpriv->rtlhal.earlymode_enable = true;
+       for (tid = 0; tid < 8; tid++)
+               skb_queue_head_init(&rtlpriv->mac80211.skb_waitq[tid]);
+
+       /* Only load firmware for first MAC */
+       if (header_print)
+               return 0;
+
        /* for firmware buf */
        rtlpriv->rtlhal.pfirmware = vzalloc(0x8000);
        if (!rtlpriv->rtlhal.pfirmware) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't alloc buffer for fw.\n"));
+                        "Can't alloc buffer for fw\n");
                return 1;
        }
 
-       if (!header_print) {
-               pr_info("Driver for Realtek RTL8192DE WLAN interface\n");
-               pr_info("Loading firmware file %s\n", rtlpriv->cfg->fw_name);
-               header_print++;
-       }
+       rtlpriv->max_fw_size = 0x8000;
+       pr_info("Driver for Realtek RTL8192DE WLAN interface\n");
+       pr_info("Loading firmware file %s\n", rtlpriv->cfg->fw_name);
+       header_print++;
+
        /* request fw */
-       err = request_firmware(&firmware, rtlpriv->cfg->fw_name,
-                              rtlpriv->io.dev);
+       err = request_firmware_nowait(THIS_MODULE, 1, rtlpriv->cfg->fw_name,
+                                     rtlpriv->io.dev, GFP_KERNEL, hw,
+                                     rtl_fw_cb);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Failed to request firmware!\n"));
-               return 1;
-       }
-       if (firmware->size > 0x8000) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Firmware is too big!\n"));
-               release_firmware(firmware);
+                        "Failed to request firmware!\n");
                return 1;
        }
-       memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size);
-       rtlpriv->rtlhal.fwsize = firmware->size;
-       release_firmware(firmware);
 
-       /* for early mode */
-       rtlpriv->rtlhal.earlymode_enable = true;
-       for (tid = 0; tid < 8; tid++)
-               skb_queue_head_init(&rtlpriv->mac80211.skb_waitq[tid]);
        return 0;
 }
 
@@ -424,7 +417,7 @@ static int __init rtl92de_module_init(void)
 
        ret = pci_register_driver(&rtl92de_driver);
        if (ret)
-               RT_ASSERT(false, (": No device found\n"));
+               RT_ASSERT(false, "No device found\n");
        return ret;
 }
 
index c95e47de13461ed2269629dd71acac312319547a..0e6035b8fd86faec14d07dd64f22b0acd4037356 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index bad7f9449ecf597f6f3aae0635d5219260d675dd..8ea6f528dfa6d72c4b460ce8bcf60b8555cd8c3e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 93f30ca62d8fcfd9d37938f02657f1f8d992e8a9..8b724a86117a5f1130d0d7e83fe87e466182676f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 3637c0c3352513b2dab6a6c964feb61b0f2085ad..a7f6126e2f861f970c0e0f1c63a27021b649be36 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -602,8 +602,8 @@ void rtl92de_tx_fill_desc(struct ieee80211_hw *hw,
                                           EM_HDR_LEN);
                        if (ptcb_desc->empkt_num) {
                                RT_TRACE(rtlpriv, COMP_SEND, DBG_LOUD,
-                                        ("Insert 8 byte.pTcb->EMPktNum:%d\n",
-                                         ptcb_desc->empkt_num));
+                                        "Insert 8 byte.pTcb->EMPktNum:%d\n",
+                                        ptcb_desc->empkt_num);
                                _rtl92de_insert_emcontent(ptcb_desc,
                                                          (u8 *)(skb->data));
                        }
@@ -700,7 +700,7 @@ void rtl92de_tx_fill_desc(struct ieee80211_hw *hw,
                if (ieee80211_is_data_qos(fc)) {
                        if (mac->rdg_en) {
                                RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
-                                       ("Enable RDG function.\n"));
+                                        "Enable RDG function\n");
                                SET_TX_DESC_RDG_ENABLE(pdesc, 1);
                                SET_TX_DESC_HTC(pdesc, 1);
                        }
@@ -726,7 +726,7 @@ void rtl92de_tx_fill_desc(struct ieee80211_hw *hw,
                SET_TX_DESC_PKT_ID(pdesc, 8);
        }
        SET_TX_DESC_MORE_FRAG(pdesc, (lastseg ? 0 : 1));
-       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, ("\n"));
+       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
 }
 
 void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw,
@@ -776,7 +776,7 @@ void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw,
        }
 
        RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
-                     "H2C Tx Cmd Content\n", pdesc, TX_DESC_SIZE);
+                     "H2C Tx Cmd Content", pdesc, TX_DESC_SIZE);
        wmb();
        SET_TX_DESC_OWN(pdesc, 1);
 }
@@ -793,8 +793,8 @@ void rtl92de_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
                        SET_TX_DESC_NEXT_DESC_ADDRESS(pdesc, *(u32 *) val);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR txdesc :%d"
-                                         " not process\n", desc_name));
+                       RT_ASSERT(false, "ERR txdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        } else {
@@ -813,8 +813,8 @@ void rtl92de_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
                        SET_RX_DESC_EOR(pdesc, 1);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR rxdesc :%d "
-                                         "not process\n", desc_name));
+                       RT_ASSERT(false, "ERR rxdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        }
@@ -833,8 +833,8 @@ u32 rtl92de_get_desc(u8 *p_desc, bool istx, u8 desc_name)
                        ret = GET_TX_DESC_TX_BUFFER_ADDRESS(p_desc);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR txdesc :%d "
-                                         "not process\n", desc_name));
+                       RT_ASSERT(false, "ERR txdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        } else {
@@ -847,8 +847,8 @@ u32 rtl92de_get_desc(u8 *p_desc, bool istx, u8 desc_name)
                        ret = GET_RX_DESC_PKT_LEN(pdesc);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR rxdesc :%d "
-                                         "not process\n", desc_name));
+                       RT_ASSERT(false, "ERR rxdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        }
index 4d55d0b6816dca21b1b4322b46be14f1e87cf7b7..0dc736c2723b827661f973a8a9999fbd1e8f366f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index c6c044816d39e585a4cf9e0625675aaf1a1d7574..d1b0a1e1497181220146ce9eb82e7a321252ac07 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 4203a8531ca0b0569774ad0b72e53c2af07a9d36..fbabae17259e6e6f6e021d754c6a36094f3e2ac2 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -170,9 +170,9 @@ static void _rtl92s_dm_txpowertracking_callback_thermalmeter(
        thermalvalue = (u8)rtl_get_rfreg(hw, RF90_PATH_A, RF_T_METER, 0x1f);
 
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
-                ("Readback Thermal Meter = 0x%x pre thermal meter 0x%x "
-                 "eeprom_thermalmeter 0x%x\n", thermalvalue,
-                 rtlpriv->dm.thermalvalue, rtlefuse->eeprom_thermalmeter));
+                "Readback Thermal Meter = 0x%x pre thermal meter 0x%x eeprom_thermal meter 0x%x\n",
+                thermalvalue,
+                rtlpriv->dm.thermalvalue, rtlefuse->eeprom_thermalmeter);
 
        if (thermalvalue) {
                rtlpriv->dm.thermalvalue = thermalvalue;
@@ -282,11 +282,11 @@ static void _rtl92s_dm_refresh_rateadaptive_mask(struct ieee80211_hw *hw)
                }
 
                if (ra->pre_ratr_state != ra->ratr_state) {
-                       RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, ("RSSI = %ld "
-                               "RSSI_LEVEL = %d PreState = %d, CurState = %d\n",
-                               rtlpriv->dm.undecorated_smoothed_pwdb,
-                               ra->ratr_state,
-                               ra->pre_ratr_state, ra->ratr_state));
+                       RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD,
+                                "RSSI = %ld RSSI_LEVEL = %d PreState = %d, CurState = %d\n",
+                                rtlpriv->dm.undecorated_smoothed_pwdb,
+                                ra->ratr_state,
+                                ra->pre_ratr_state, ra->ratr_state);
 
                        rtlpriv->cfg->ops->update_rate_tbl(hw, sta,
                                                           ra->ratr_state);
@@ -586,7 +586,7 @@ static void _rtl92s_dm_dynamic_txpower(struct ieee80211_hw *hw)
        if ((mac->link_state < MAC80211_LINKED) &&
            (rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb == 0)) {
                RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
-                        ("Not connected to any\n"));
+                        "Not connected to any\n");
 
                rtlpriv->dm.dynamic_txhighpower_lvl = TX_HIGHPWR_LEVEL_NORMAL;
 
@@ -599,22 +599,22 @@ static void _rtl92s_dm_dynamic_txpower(struct ieee80211_hw *hw)
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("AP Client PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "AP Client PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                } else {
                        undecorated_smoothed_pwdb =
                            rtlpriv->dm.undecorated_smoothed_pwdb;
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("STA Default Port PWDB = 0x%lx\n",
-                                 undecorated_smoothed_pwdb));
+                                "STA Default Port PWDB = 0x%lx\n",
+                                undecorated_smoothed_pwdb);
                }
        } else {
                undecorated_smoothed_pwdb =
                    rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb;
 
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("AP Ext Port PWDB = 0x%lx\n",
-                         undecorated_smoothed_pwdb));
+                        "AP Ext Port PWDB = 0x%lx\n",
+                        undecorated_smoothed_pwdb);
        }
 
        txpwr_threshold_lv2 = TX_POWER_NEAR_FIELD_THRESH_LVL2;
index 9051a556acc4f0ded17763cc7a6247f346f5c7ca..e1b19a64176584731f018ff6c926588872d44c7b 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 3fda6b1dcf465ee3fcda52a5807d78dedb50c760..0d8bf565700881e22e1b5a0c3c652ad9c1366834 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -66,7 +66,7 @@ static bool _rtl92s_firmware_enable_cpu(struct ieee80211_hw *hw)
                cpustatus = rtl_read_byte(rtlpriv, TCR);
                if (cpustatus & IMEM_RDY) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                               ("IMEM Ready after CPU has refilled.\n"));
+                                "IMEM Ready after CPU has refilled\n");
                        break;
                }
 
@@ -120,9 +120,8 @@ static u8 _rtl92s_firmware_header_map_rftype(struct ieee80211_hw *hw)
                return 0x22;
                break;
        default:
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                        ("Unknown RF type(%x)\n",
-                        rtlphy->rf_type));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, "Unknown RF type(%x)\n",
+                        rtlphy->rf_type);
                break;
        }
        return 0x22;
@@ -177,7 +176,7 @@ static bool _rtl92s_firmware_downloadcode(struct ieee80211_hw *hw,
 
        if (buffer_len >= MAX_FIRMWARE_CODE_SIZE) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                       ("Size over FIRMWARE_CODE_SIZE!\n"));
+                        "Size over FIRMWARE_CODE_SIZE!\n");
 
                return false;
        }
@@ -231,8 +230,8 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
        short pollingcnt = 1000;
        bool rtstatus = true;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("LoadStaus(%d)\n",
-                loadfw_status));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                "LoadStaus(%d)\n", loadfw_status);
 
        firmware->fwstatus = (enum fw_status)loadfw_status;
 
@@ -248,8 +247,8 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
 
                if (!(cpustatus & IMEM_CHK_RPT) || (pollingcnt <= 0)) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("FW_STATUS_LOAD_IMEM"
-                                " FAIL CPU, Status=%x\r\n", cpustatus));
+                                "FW_STATUS_LOAD_IMEM FAIL CPU, Status=%x\n",
+                                cpustatus);
                        goto status_check_fail;
                }
                break;
@@ -266,8 +265,8 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
 
                if (!(cpustatus & EMEM_CHK_RPT) || (pollingcnt <= 0)) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("FW_STATUS_LOAD_EMEM"
-                                " FAIL CPU, Status=%x\r\n", cpustatus));
+                                "FW_STATUS_LOAD_EMEM FAIL CPU, Status=%x\n",
+                                cpustatus);
                        goto status_check_fail;
                }
 
@@ -275,7 +274,7 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
                rtstatus = _rtl92s_firmware_enable_cpu(hw);
                if (rtstatus != true) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Enable CPU fail!\n"));
+                                "Enable CPU fail!\n");
                        goto status_check_fail;
                }
                break;
@@ -291,14 +290,14 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
 
                if (!(cpustatus & DMEM_CODE_DONE) || (pollingcnt <= 0)) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Polling  DMEM code done"
-                                " fail ! cpustatus(%#x)\n", cpustatus));
+                                "Polling DMEM code done fail ! cpustatus(%#x)\n",
+                                cpustatus);
                        goto status_check_fail;
                }
 
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("DMEM code download success,"
-                       " cpustatus(%#x)\n", cpustatus));
+                        "DMEM code download success, cpustatus(%#x)\n",
+                        cpustatus);
 
                /* Prevent Delay too much and being scheduled out */
                /* Polling Load Firmware ready */
@@ -311,14 +310,14 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
                } while (pollingcnt--);
 
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("Polling Load Firmware ready,"
-                       " cpustatus(%x)\n",     cpustatus));
+                        "Polling Load Firmware ready, cpustatus(%x)\n",
+                        cpustatus);
 
                if (((cpustatus & LOAD_FW_READY) != LOAD_FW_READY) ||
                    (pollingcnt <= 0)) {
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Polling Load Firmware"
-                               " ready fail ! cpustatus(%x)\n", cpustatus));
+                                "Polling Load Firmware ready fail ! cpustatus(%x)\n",
+                                cpustatus);
                        goto status_check_fail;
                }
 
@@ -332,7 +331,7 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
                                RCR_APP_ICV | RCR_APP_MIC));
 
                RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                        ("Current RCR settings(%#x)\n", tmpu4b));
+                        "Current RCR settings(%#x)\n", tmpu4b);
 
                /* Set to normal mode. */
                rtl_write_byte(rtlpriv, LBKMD_SEL, LBK_NORMAL);
@@ -340,14 +339,15 @@ static bool _rtl92s_firmware_checkready(struct ieee80211_hw *hw,
 
        default:
                RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                        ("Unknown status check!\n"));
+                        "Unknown status check!\n");
                rtstatus = false;
                break;
        }
 
 status_check_fail:
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("loadfw_status(%d), "
-                "rtstatus(%x)\n", loadfw_status, rtstatus));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                "loadfw_status(%d), rtstatus(%x)\n",
+                loadfw_status, rtstatus);
        return rtstatus;
 }
 
@@ -364,7 +364,7 @@ int rtl92s_download_fw(struct ieee80211_hw *hw)
        u8 fwstatus = FW_STATUS_INIT;
        bool rtstatus = true;
 
-       if (!rtlhal->pfirmware)
+       if (rtlpriv->max_fw_size == 0 || !rtlhal->pfirmware)
                return 1;
 
        firmware = (struct rt_firmware *)rtlhal->pfirmware;
@@ -378,17 +378,17 @@ int rtl92s_download_fw(struct ieee80211_hw *hw)
        firmware->firmwareversion =  byte(pfwheader->version, 0);
        firmware->pfwheader->fwpriv.hci_sel = 1;/* pcie */
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("signature:%x, version:"
-                "%x, size:%x,"
-                "imemsize:%x, sram size:%x\n", pfwheader->signature,
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                "signature:%x, version:%x, size:%x, imemsize:%x, sram size:%x\n",
+                pfwheader->signature,
                 pfwheader->version, pfwheader->dmem_size,
-                pfwheader->img_imem_size, pfwheader->img_sram_size));
+                pfwheader->img_imem_size, pfwheader->img_sram_size);
 
        /* 2. Retrieve IMEM image. */
        if ((pfwheader->img_imem_size == 0) || (pfwheader->img_imem_size >
            sizeof(firmware->fw_imem))) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                       ("memory for data image is less than IMEM required\n"));
+                        "memory for data image is less than IMEM required\n");
                goto fail;
        } else {
                puc_mappedfile += fwhdr_size;
@@ -401,7 +401,7 @@ int rtl92s_download_fw(struct ieee80211_hw *hw)
        /* 3. Retriecve EMEM image. */
        if (pfwheader->img_sram_size > sizeof(firmware->fw_emem)) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                       ("memory for data image is less than EMEM required\n"));
+                        "memory for data image is less than EMEM required\n");
                goto fail;
        } else {
                puc_mappedfile += firmware->fw_imem_len;
@@ -436,7 +436,7 @@ int rtl92s_download_fw(struct ieee80211_hw *hw)
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                       ("Unexpected Download step!!\n"));
+                                "Unexpected Download step!!\n");
                        goto fail;
                        break;
                }
@@ -446,14 +446,14 @@ int rtl92s_download_fw(struct ieee80211_hw *hw)
                                ul_filelength);
 
                if (rtstatus != true) {
-                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("fail!\n"));
+                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "fail!\n");
                        goto fail;
                }
 
                /* <3> Check whether load FW process is ready */
                rtstatus = _rtl92s_firmware_checkready(hw, fwstatus);
                if (rtstatus != true) {
-                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("fail!\n"));
+                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "fail!\n");
                        goto fail;
                }
 
index 74cc503efe8a8474eed867f84b44ed3d7e7f4d66..babe85d4b6941704ad9e0c914f570bcced141c10 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index c474486e391157d1d2be8c4ff40c4ca82db91ce1..22098c2f38f13682056cfa541d86a932ebb6bbf4 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -27,8 +27,6 @@
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
 #include "../wifi.h"
 #include "../efuse.h"
 #include "../base.h"
@@ -80,8 +78,8 @@ void rtl92se_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        break;
                }
        default: {
-                       RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                        "switch case not processed\n");
                        break;
                }
        }
@@ -140,7 +138,7 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        u8 e_aci;
 
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("HW_VAR_SLOT_TIME %x\n", val[0]));
+                                "HW_VAR_SLOT_TIME %x\n", val[0]);
 
                        rtl_write_byte(rtlpriv, SLOT_TIME, val[0]);
 
@@ -185,8 +183,8 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                *val = min_spacing_to_set;
 
                                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                        ("Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
-                                         mac->min_space_cfg));
+                                        "Set HW_VAR_AMPDU_MIN_SPACE: %#x\n",
+                                        mac->min_space_cfg);
 
                                rtl_write_byte(rtlpriv, AMPDU_MIN_SPACE,
                                               mac->min_space_cfg);
@@ -201,8 +199,8 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                        mac->min_space_cfg |= (density_to_set << 3);
 
                        RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                ("Set HW_VAR_SHORTGI_DENSITY: %#x\n",
-                                 mac->min_space_cfg));
+                                "Set HW_VAR_SHORTGI_DENSITY: %#x\n",
+                                mac->min_space_cfg);
 
                        rtl_write_byte(rtlpriv, AMPDU_MIN_SPACE,
                                       mac->min_space_cfg);
@@ -244,8 +242,8 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                rtl_write_byte(rtlpriv, AGGLEN_LMT_H, regtoset);
 
                                RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD,
-                                        ("Set HW_VAR_AMPDU_FACTOR: %#x\n",
-                                         factor_toset));
+                                        "Set HW_VAR_AMPDU_FACTOR: %#x\n",
+                                        factor_toset);
                        }
                        break;
                }
@@ -282,8 +280,8 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                        break;
                                default:
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                                ("HW_VAR_ACM_CTRL acm set "
-                                                 "failed: eACI is %d\n", acm));
+                                                "HW_VAR_ACM_CTRL acm set failed: eACI is %d\n",
+                                                acm);
                                        break;
                                }
                        } else {
@@ -299,13 +297,13 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                                        break;
                                default:
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                                ("switch case not process\n"));
+                                                "switch case not processed\n");
                                        break;
                                }
                        }
 
                        RT_TRACE(rtlpriv, COMP_QOS, DBG_TRACE,
-                                ("HW_VAR_ACM_CTRL Write 0x%X\n", acm_ctrl));
+                                "HW_VAR_ACM_CTRL Write 0x%X\n", acm_ctrl);
                        rtl_write_byte(rtlpriv, AcmHwCtrl, acm_ctrl);
                        break;
                }
@@ -404,7 +402,7 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
                }
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
 
@@ -415,14 +413,14 @@ void rtl92se_enable_hw_security_config(struct ieee80211_hw *hw)
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u8 sec_reg_value = 0x0;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("PairwiseEncAlgorithm = %d "
-                "GroupEncAlgorithm = %d\n",
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                "PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n",
                 rtlpriv->sec.pairwise_enc_algorithm,
-                rtlpriv->sec.group_enc_algorithm));
+                rtlpriv->sec.group_enc_algorithm);
 
        if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                        ("not open hw encryption\n"));
+                        "not open hw encryption\n");
                return;
        }
 
@@ -433,8 +431,8 @@ void rtl92se_enable_hw_security_config(struct ieee80211_hw *hw)
                sec_reg_value |= SCR_RXUSEDK;
        }
 
-       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, ("The SECR-value %x\n",
-                       sec_reg_value));
+       RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD, "The SECR-value %x\n",
+                sec_reg_value);
 
        rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_WPA_CONFIG, &sec_reg_value);
 
@@ -718,8 +716,8 @@ static void _rtl92se_macconfig_before_fwdownload(struct ieee80211_hw *hw)
 
        if (pollingcnt <= 0) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Polling TXDMA_INIT_VALUE "
-                        "timeout!! Current TCR(%#x)\n", tmpu1b));
+                        "Polling TXDMA_INIT_VALUE timeout!! Current TCR(%#x)\n",
+                        tmpu1b);
                tmpu1b = rtl_read_byte(rtlpriv, CMDR);
                rtl_write_byte(rtlpriv, CMDR, tmpu1b & (~TXDMA_EN));
                udelay(2);
@@ -870,10 +868,10 @@ static void _rtl92se_macconfig_after_fwdownload(struct ieee80211_hw *hw)
 
                /* Change Program timing */
                rtl_write_byte(rtlpriv, REG_EFUSE_CTRL + 3, 0x72);
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("EFUSE CONFIG OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "EFUSE CONFIG OK\n");
        }
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("OK\n"));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "OK\n");
 
 }
 
@@ -951,12 +949,9 @@ int rtl92se_hw_init(struct ieee80211_hw *hw)
        rtstatus = rtl92s_download_fw(hw);
        if (!rtstatus) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("Failed to download FW. "
-                        "Init HW without FW now.., Please copy FW into"
-                        "/lib/firmware/rtlwifi\n"));
-               rtlhal->fw_ready = false;
-       } else {
-               rtlhal->fw_ready = true;
+                        "Failed to download FW. Init HW without FW now... "
+                        "Please copy FW into /lib/firmware/rtlwifi\n");
+               return 1;
        }
 
        /* After FW download, we have to reset MAC register */
@@ -968,7 +963,7 @@ int rtl92se_hw_init(struct ieee80211_hw *hw)
 
        /* 3. Initialize MAC/PHY Config by MACPHY_reg.txt */
        if (rtl92s_phy_mac_config(hw) != true) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("MAC Config failed\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "MAC Config failed\n");
                return rtstatus;
        }
 
@@ -978,7 +973,7 @@ int rtl92se_hw_init(struct ieee80211_hw *hw)
 
        /* 4. Initialize BB After MAC Config PHY_reg.txt, AGC_Tab.txt */
        if (rtl92s_phy_bb_config(hw) != true) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, ("BB Config failed\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, "BB Config failed\n");
                return rtstatus;
        }
 
@@ -1014,7 +1009,7 @@ int rtl92se_hw_init(struct ieee80211_hw *hw)
                rtl_write_byte(rtlpriv, RF_CTRL, 0x07);
 
        if (rtl92s_phy_rf_config(hw) != true) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("RF Config failed\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "RF Config failed\n");
                return rtstatus;
        }
 
@@ -1129,26 +1124,26 @@ static int _rtl92se_set_media_status(struct ieee80211_hw *hw,
        case NL80211_IFTYPE_UNSPECIFIED:
                bt_msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT);
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to NO LINK!\n"));
+                        "Set Network type to NO LINK!\n");
                break;
        case NL80211_IFTYPE_ADHOC:
                bt_msr |= (MSR_LINK_ADHOC << MSR_LINK_SHIFT);
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to Ad Hoc!\n"));
+                        "Set Network type to Ad Hoc!\n");
                break;
        case NL80211_IFTYPE_STATION:
                bt_msr |= (MSR_LINK_MANAGED << MSR_LINK_SHIFT);
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to STA!\n"));
+                        "Set Network type to STA!\n");
                break;
        case NL80211_IFTYPE_AP:
                bt_msr |= (MSR_LINK_MASTER << MSR_LINK_SHIFT);
                RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
-                        ("Set Network type to AP!\n"));
+                        "Set Network type to AP!\n");
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Network type %d not support!\n", type));
+                        "Network type %d not supported!\n", type);
                return 1;
                break;
 
@@ -1202,7 +1197,7 @@ void rtl92se_set_qos(struct ieee80211_hw *hw, int aci)
                rtl_write_dword(rtlpriv, EDCAPARA_VO, 0x2f3222);
                break;
        default:
-               RT_ASSERT(false, ("invalid aci: %d !\n", aci));
+               RT_ASSERT(false, "invalid aci: %d !\n", aci);
                break;
        }
 }
@@ -1219,9 +1214,14 @@ void rtl92se_enable_interrupt(struct ieee80211_hw *hw)
 
 void rtl92se_disable_interrupt(struct ieee80211_hw *hw)
 {
-       struct rtl_priv *rtlpriv = rtl_priv(hw);
-       struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
+       struct rtl_priv *rtlpriv;
+       struct rtl_pci *rtlpci;
 
+       rtlpriv = rtl_priv(hw);
+       /* if firmware not available, no interrupts */
+       if (!rtlpriv || !rtlpriv->max_fw_size)
+               return;
+       rtlpci = rtl_pcidev(rtl_pcipriv(hw));
        rtl_write_dword(rtlpriv, INTA_MASK, 0);
        rtl_write_dword(rtlpriv, INTA_MASK + 4, 0);
 
@@ -1583,8 +1583,8 @@ void rtl92se_update_interrupt_mask(struct ieee80211_hw *hw,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
 
-       RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD,
-                ("add_msr:%x, rm_msr:%x\n", add_msr, rm_msr));
+       RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD, "add_msr:%x, rm_msr:%x\n",
+                add_msr, rm_msr);
 
        if (add_msr)
                rtlpci->irq_mask[0] |= add_msr;
@@ -1627,7 +1627,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
 
        if (rtlefuse->epromtype == EEPROM_93C46) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("RTL819X Not boot from eeprom, check it !!"));
+                        "RTL819X Not boot from eeprom, check it !!\n");
        } else if (rtlefuse->epromtype == EEPROM_BOOT_EFUSE) {
                rtl_efuse_shadow_map_update(hw);
 
@@ -1636,16 +1636,16 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
                        HWSET_MAX_SIZE_92S);
        }
 
-       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP\n"),
+       RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, "MAP",
                      hwinfo, HWSET_MAX_SIZE_92S);
 
        eeprom_id = *((u16 *)&hwinfo[0]);
        if (eeprom_id != RTL8190_EEPROM_ID) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                        ("EEPROM ID(%#x) is invalid!!\n", eeprom_id));
+                        "EEPROM ID(%#x) is invalid!!\n", eeprom_id);
                rtlefuse->autoload_failflag = true;
        } else {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
                rtlefuse->autoload_failflag = false;
        }
 
@@ -1663,15 +1663,15 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
        rtlefuse->eeprom_version = *(u16 *)&hwinfo[EEPROM_VERSION];
 
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                       ("EEPROMId = 0x%4x\n", eeprom_id));
+                "EEPROMId = 0x%4x\n", eeprom_id);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                       ("EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid));
+                "EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                       ("EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did));
+                "EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                       ("EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid));
+                "EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                       ("EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid));
+                "EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid);
 
        for (i = 0; i < 6; i += 2) {
                usvalue = *(u16 *)&hwinfo[EEPROM_MAC_ADDR + i];
@@ -1681,8 +1681,7 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
        for (i = 0; i < 6; i++)
                rtl_write_byte(rtlpriv, MACIDR0 + i, rtlefuse->dev_addr[i]);
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                ("%pM\n", rtlefuse->dev_addr));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%pM\n", rtlefuse->dev_addr);
 
        /* Get Tx Power Level by Channel */
        /* Read Tx power of Channel 1 ~ 14 from EEPROM. */
@@ -1707,23 +1706,24 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM CCK Area(%d) = 0x%x\n", rf_path,
-                               i, rtlefuse->eeprom_chnlarea_txpwr_cck
-                                       [rf_path][i]));
+                               "RF(%d) EEPROM CCK Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->eeprom_chnlarea_txpwr_cck
+                               [rf_path][i]);
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM HT40 1S Area(%d) = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->eeprom_chnlarea_txpwr_ht40_1s
-                                               [rf_path][i]));
+                               "RF(%d) EEPROM HT40 1S Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->eeprom_chnlarea_txpwr_ht40_1s
+                               [rf_path][i]);
        for (rf_path = 0; rf_path < 2; rf_path++)
                for (i = 0; i < 3; i++)
                        RTPRINT(rtlpriv, FINIT, INIT_EEPROM,
-                               ("RF(%d) EEPROM HT40 2S Diff Area(%d) = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->eeprom_chnlarea_txpwr_ht40_2sdiif
-                                       [rf_path][i]));
+                               "RF(%d) EEPROM HT40 2S Diff Area(%d) = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->eeprom_chnlarea_txpwr_ht40_2sdiif
+                               [rf_path][i]);
 
        for (rf_path = 0; rf_path < 2; rf_path++) {
 
@@ -1754,11 +1754,11 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
 
                for (i = 0; i < 14; i++) {
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = "
-                                "[0x%x / 0x%x / 0x%x]\n", rf_path, i,
-                                rtlefuse->txpwrlevel_cck[rf_path][i],
-                                rtlefuse->txpwrlevel_ht40_1s[rf_path][i],
-                                rtlefuse->txpwrlevel_ht40_2s[rf_path][i]));
+                               "RF(%d)-Ch(%d) [CCK / HT40_1S / HT40_2S] = [0x%x / 0x%x / 0x%x]\n",
+                               rf_path, i,
+                               rtlefuse->txpwrlevel_cck[rf_path][i],
+                               rtlefuse->txpwrlevel_ht40_1s[rf_path][i],
+                               rtlefuse->txpwrlevel_ht40_2s[rf_path][i]);
                }
        }
 
@@ -1791,13 +1791,13 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
                                0xf0) >> 4);
 
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF-%d pwrgroup_ht20[%d] = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->pwrgroup_ht20[rf_path][i]));
+                               "RF-%d pwrgroup_ht20[%d] = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->pwrgroup_ht20[rf_path][i]);
                        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                               ("RF-%d pwrgroup_ht40[%d] = 0x%x\n",
-                                rf_path, i,
-                                rtlefuse->pwrgroup_ht40[rf_path][i]));
+                               "RF-%d pwrgroup_ht40[%d] = 0x%x\n",
+                               rf_path, i,
+                               rtlefuse->pwrgroup_ht40[rf_path][i]);
                        }
        }
 
@@ -1852,27 +1852,27 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
                                 (hwinfo[EEPROM_REGULATORY] & 0x1);
        }
        RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-               ("eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory));
+               "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory);
 
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]));
+                       "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_ht20diff[RF90_PATH_A][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]));
+                       "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]));
+                       "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_ht20diff[RF90_PATH_B][i]);
        for (i = 0; i < 14; i++)
                RTPRINT(rtlpriv, FINIT, INIT_TxPower,
-                       ("RF-B Legacy to HT40 Diff[%d] = 0x%x\n", i,
-                        rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]));
+                       "RF-B Legacy to HT40 Diff[%d] = 0x%x\n",
+                       i, rtlefuse->txpwr_legacyhtdiff[RF90_PATH_B][i]);
 
-       RTPRINT(rtlpriv, FINIT, INIT_TxPower, ("TxPwrSafetyFlag = %d\n",
-               rtlefuse->txpwr_safetyflag));
+       RTPRINT(rtlpriv, FINIT, INIT_TxPower,
+               "TxPwrSafetyFlag = %d\n", rtlefuse->txpwr_safetyflag);
 
        /* Read RF-indication and Tx Power gain
         * index diff of legacy to HT OFDM rate. */
@@ -1881,8 +1881,8 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
        rtlefuse->legacy_httxpowerdiff =
                rtlefuse->txpwr_legacyhtdiff[RF90_PATH_A][0];
 
-       RTPRINT(rtlpriv, FINIT, INIT_TxPower, ("TxPowerDiff = %#x\n",
-               rtlefuse->eeprom_txpowerdiff));
+       RTPRINT(rtlpriv, FINIT, INIT_TxPower,
+               "TxPowerDiff = %#x\n", rtlefuse->eeprom_txpowerdiff);
 
        /* Get TSSI value for each path. */
        usvalue = *(u16 *)&hwinfo[EEPROM_TSSI_A];
@@ -1890,16 +1890,16 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
        usvalue = *(u8 *)&hwinfo[EEPROM_TSSI_B];
        rtlefuse->eeprom_tssi[RF90_PATH_B] = (u8)(usvalue & 0xff);
 
-       RTPRINT(rtlpriv, FINIT, INIT_TxPower, ("TSSI_A = 0x%x, TSSI_B = 0x%x\n",
-                rtlefuse->eeprom_tssi[RF90_PATH_A],
-                rtlefuse->eeprom_tssi[RF90_PATH_B]));
+       RTPRINT(rtlpriv, FINIT, INIT_TxPower, "TSSI_A = 0x%x, TSSI_B = 0x%x\n",
+               rtlefuse->eeprom_tssi[RF90_PATH_A],
+               rtlefuse->eeprom_tssi[RF90_PATH_B]);
 
        /* Read antenna tx power offset of B/C/D to A  from EEPROM */
        /* and read ThermalMeter from EEPROM */
        tempval = *(u8 *)&hwinfo[EEPROM_THERMALMETER];
        rtlefuse->eeprom_thermalmeter = tempval;
-       RTPRINT(rtlpriv, FINIT, INIT_TxPower, ("thermalmeter = 0x%x\n",
-               rtlefuse->eeprom_thermalmeter));
+       RTPRINT(rtlpriv, FINIT, INIT_TxPower,
+               "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter);
 
        /* ThermalMeter, BIT(0)~3 for RFIC1, BIT(4)~7 for RFIC2 */
        rtlefuse->thermalmeter[0] = (rtlefuse->eeprom_thermalmeter & 0x1f);
@@ -1915,8 +1915,8 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
        /* Version ID, Channel plan */
        rtlefuse->eeprom_channelplan = *(u8 *)&hwinfo[EEPROM_CHANNELPLAN];
        rtlefuse->txpwr_fromeprom = true;
-       RTPRINT(rtlpriv, FINIT, INIT_TxPower, ("EEPROM ChannelPlan = 0x%4x\n",
-               rtlefuse->eeprom_channelplan));
+       RTPRINT(rtlpriv, FINIT, INIT_TxPower,
+               "EEPROM ChannelPlan = 0x%4x\n", rtlefuse->eeprom_channelplan);
 
        /* Read Customer ID or Board Type!!! */
        tempval = *(u8 *)&hwinfo[EEPROM_BOARDTYPE];
@@ -1937,14 +1937,14 @@ static void _rtl92se_read_adapter_info(struct ieee80211_hw *hw)
                if (!(tempval & BIT(0))) {
                        rtlefuse->b1x1_recvcombine = true;
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                               ("RF_TYPE=1T2R but only 1SS\n"));
+                                "RF_TYPE=1T2R but only 1SS\n");
                }
        }
        rtlefuse->b1ss_support = rtlefuse->b1x1_recvcombine;
        rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMID];
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("EEPROM Customer ID: 0x%2x",
-                       rtlefuse->eeprom_oemid));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "EEPROM Customer ID: 0x%2x",
+                rtlefuse->eeprom_oemid);
 
        /* set channel paln to world wide 13 */
        rtlefuse->channel_plan = COUNTRY_CODE_WORLD_WIDE_13;
@@ -1959,19 +1959,19 @@ void rtl92se_read_eeprom_info(struct ieee80211_hw *hw)
        tmp_u1b = rtl_read_byte(rtlpriv, EPROM_CMD);
 
        if (tmp_u1b & BIT(4)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Boot from EEPROM\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EEPROM\n");
                rtlefuse->epromtype = EEPROM_93C46;
        } else {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("Boot from EFUSE\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EFUSE\n");
                rtlefuse->epromtype = EEPROM_BOOT_EFUSE;
        }
 
        if (tmp_u1b & BIT(5)) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Autoload OK\n"));
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n");
                rtlefuse->autoload_failflag = false;
                _rtl92se_read_adapter_info(hw);
        } else {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Autoload ERR!!\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Autoload ERR!!\n");
                rtlefuse->autoload_failflag = true;
        }
 }
@@ -2071,8 +2071,8 @@ static void rtl92se_update_hal_rate_table(struct ieee80211_hw *hw,
        else
                rtl92s_phy_set_fw_cmd(hw, FW_CMD_RA_REFRESH_BG);
 
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
-                ("%x\n", rtl_read_dword(rtlpriv, ARFR0)));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, "%x\n",
+                rtl_read_dword(rtlpriv, ARFR0));
 }
 
 static void rtl92se_update_hal_rate_mask(struct ieee80211_hw *hw,
@@ -2224,8 +2224,8 @@ static void rtl92se_update_hal_rate_mask(struct ieee80211_hw *hw,
 
        mask |= (bmulticast ? 1 : 0) << 9 | (macid & 0x1f) << 4 | (band & 0xf);
 
-       RT_TRACE(rtlpriv, COMP_RATR, DBG_TRACE, ("mask = %x, bitmap = %x\n",
-                       mask, ratr_bitmap));
+       RT_TRACE(rtlpriv, COMP_RATR, DBG_TRACE, "mask = %x, bitmap = %x\n",
+                mask, ratr_bitmap);
        rtl_write_dword(rtlpriv, 0x2c4, ratr_bitmap);
        rtl_write_dword(rtlpriv, WFM5, (FW_RA_UPDATE_MASK | (mask << 8)));
 
@@ -2301,14 +2301,14 @@ bool rtl92se_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid)
 
        if ((ppsc->hwradiooff) && (rfpwr_toset == ERFON)) {
                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                        ("RFKILL-HW Radio ON, RF ON\n"));
+                        "RFKILL-HW Radio ON, RF ON\n");
 
                rfpwr_toset = ERFON;
                ppsc->hwradiooff = false;
                actuallyset = true;
        } else if ((ppsc->hwradiooff == false) && (rfpwr_toset == ERFOFF)) {
-               RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                        ("RFKILL-HW Radio OFF, RF OFF\n"));
+               RT_TRACE(rtlpriv, COMP_RF,
+                        DBG_DMESG, "RFKILL-HW Radio OFF, RF OFF\n");
 
                rfpwr_toset = ERFOFF;
                ppsc->hwradiooff = true;
@@ -2372,7 +2372,7 @@ void rtl92se_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
                u8 cam_offset = 0;
                u8 clear_number = 5;
 
-               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, ("clear_all\n"));
+               RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "clear_all\n");
 
                for (idx = 0; idx < clear_number; idx++) {
                        rtl_cam_mark_invalid(hw, cam_offset + idx);
@@ -2401,7 +2401,7 @@ void rtl92se_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                       ("switch case not process\n"));
+                                "switch case not processed\n");
                        enc_algo = CAM_TKIP;
                        break;
                }
@@ -2419,9 +2419,8 @@ void rtl92se_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
                                                                 p_macaddr);
                                        if (entry_id >=  TOTAL_CAM_ENTRY) {
                                                RT_TRACE(rtlpriv,
-                                                  COMP_SEC, DBG_EMERG,
-                                                  ("Can not find free hw"
-                                                  " security cam entry\n"));
+                                                        COMP_SEC, DBG_EMERG,
+                                                        "Can not find free hw security cam entry\n");
                                                return;
                                        }
                                } else {
@@ -2435,30 +2434,31 @@ void rtl92se_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
 
                if (rtlpriv->sec.key_len[key_index] == 0) {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("delete one entry, entry_id is %d\n",
-                                entry_id));
+                                "delete one entry, entry_id is %d\n",
+                                entry_id);
                        if (mac->opmode == NL80211_IFTYPE_AP)
                                rtl_cam_del_entry(hw, p_macaddr);
                        rtl_cam_delete_one_entry(hw, p_macaddr, entry_id);
                } else {
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY length is %d\n",
-                                 rtlpriv->sec.key_len[PAIRWISE_KEYIDX]));
+                                "The insert KEY length is %d\n",
+                                rtlpriv->sec.key_len[PAIRWISE_KEYIDX]);
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_LOUD,
-                                ("The insert KEY  is %x %x\n",
-                                 rtlpriv->sec.key_buf[0][0],
-                                 rtlpriv->sec.key_buf[0][1]));
+                                "The insert KEY is %x %x\n",
+                                rtlpriv->sec.key_buf[0][0],
+                                rtlpriv->sec.key_buf[0][1]);
 
                        RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                ("add one entry\n"));
+                                "add one entry\n");
                        if (is_pairwise) {
                                RT_PRINT_DATA(rtlpriv, COMP_SEC, DBG_LOUD,
-                                     "Pairwiase Key content :",
-                                      rtlpriv->sec.pairwise_key,
-                                      rtlpriv->sec.key_len[PAIRWISE_KEYIDX]);
+                                             "Pairwise Key content",
+                                             rtlpriv->sec.pairwise_key,
+                                             rtlpriv->sec.
+                                             key_len[PAIRWISE_KEYIDX]);
 
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set Pairwiase key\n"));
+                                        "set Pairwise key\n");
 
                                rtl_cam_add_one_entry(hw, macaddr, key_index,
                                        entry_id, enc_algo,
@@ -2466,7 +2466,7 @@ void rtl92se_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
                                        rtlpriv->sec.key_buf[key_index]);
                        } else {
                                RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
-                                        ("set group key\n"));
+                                        "set group key\n");
 
                                if (mac->opmode == NL80211_IFTYPE_ADHOC) {
                                        rtl_cam_add_one_entry(hw,
index 6160a9bfe98a563e168f5e6c37b518c1fb55b4c9..1886c2644a26104d37c99e38709c2dc9a58c8350 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index e3fe7c90ebf4ea661c0c0a52b75d258f01dfd981..44949b5cbb872e9ccbdc3416486b1d45d214c094 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -52,8 +52,8 @@ void rtl92se_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
        u8 ledcfg;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", LEDCFG, pled->ledpin));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                LEDCFG, pled->ledpin);
 
        ledcfg = rtl_read_byte(rtlpriv, LEDCFG);
 
@@ -68,7 +68,7 @@ void rtl92se_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = true;
@@ -76,12 +76,15 @@ void rtl92se_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
 
 void rtl92se_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
 {
-       struct rtl_priv *rtlpriv = rtl_priv(hw);
+       struct rtl_priv *rtlpriv;
        struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
        u8 ledcfg;
 
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD,
-                ("LedAddr:%X ledpin=%d\n", LEDCFG, pled->ledpin));
+       rtlpriv = rtl_priv(hw);
+       if (!rtlpriv || rtlpriv->max_fw_size)
+               return;
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "LedAddr:%X ledpin=%d\n",
+                LEDCFG, pled->ledpin);
 
        ledcfg = rtl_read_byte(rtlpriv, LEDCFG);
 
@@ -101,7 +104,7 @@ void rtl92se_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                break;
        }
        pled->ledon = false;
@@ -141,8 +144,7 @@ void rtl92se_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction)
            ledaction == LED_CTL_POWER_ON)) {
                return;
        }
-       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, ("ledaction %d,\n",
-                ledaction));
+       RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "ledaction %d\n", ledaction);
 
        _rtl92se_sw_led_control(hw, ledaction);
 }
index 8cce3870af3c88fabf0f5d9ded8a15023e3e2d42..2182dbeb5f32b56b8b2e64824f19159d4a63ce32 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index f10ac1ad9087e594747d9e4c71b29863fe623da8..05b4e2790e994cc44640aafef15162a81bf0cae2 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -27,8 +27,6 @@
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
 #include "../wifi.h"
 #include "../pci.h"
 #include "../ps.h"
@@ -58,16 +56,15 @@ u32 rtl92s_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask)
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 returnvalue = 0, originalvalue, bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x)\n",
-                       regaddr, bitmask));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "regaddr(%#x), bitmask(%#x)\n",
+                regaddr, bitmask);
 
        originalvalue = rtl_read_dword(rtlpriv, regaddr);
        bitshift = _rtl92s_phy_calculate_bit_shift(bitmask);
        returnvalue = (originalvalue & bitmask) >> bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
-                ("BBR MASK=0x%x Addr[0x%x]=0x%x\n",
-                bitmask, regaddr, originalvalue));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "BBR MASK=0x%x Addr[0x%x]=0x%x\n",
+                bitmask, regaddr, originalvalue);
 
        return returnvalue;
 
@@ -79,8 +76,9 @@ void rtl92s_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 originalvalue, bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x),"
-                       " data(%#x)\n", regaddr, bitmask, data));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x)\n",
+                regaddr, bitmask, data);
 
        if (bitmask != MASKDWORD) {
                originalvalue = rtl_read_dword(rtlpriv, regaddr);
@@ -90,8 +88,9 @@ void rtl92s_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask,
 
        rtl_write_dword(rtlpriv, regaddr, data);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x),"
-                       " data(%#x)\n", regaddr, bitmask, data));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x)\n",
+                regaddr, bitmask, data);
 
 }
 
@@ -149,8 +148,8 @@ static u32 _rtl92s_phy_rf_serial_read(struct ieee80211_hw *hw,
        retvalue = rtl_get_bbreg(hw, pphyreg->rflssi_readback,
                                 BLSSI_READBACK_DATA);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("RFR-%d Addr[0x%x]=0x%x\n",
-                rfpath, pphyreg->rflssi_readback, retvalue));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFR-%d Addr[0x%x]=0x%x\n",
+                rfpath, pphyreg->rflssi_readback, retvalue);
 
        return retvalue;
 
@@ -172,8 +171,8 @@ static void _rtl92s_phy_rf_serial_write(struct ieee80211_hw *hw,
        data_and_addr = ((newoffset << 20) | (data & 0x000fffff)) & 0x0fffffff;
        rtl_set_bbreg(hw, pphyreg->rf3wire_offset, MASKDWORD, data_and_addr);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("RFW-%d Addr[0x%x]=0x%x\n",
-                rfpath, pphyreg->rf3wire_offset, data_and_addr));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFW-%d Addr[0x%x]=0x%x\n",
+                rfpath, pphyreg->rf3wire_offset, data_and_addr);
 }
 
 
@@ -183,8 +182,9 @@ u32 rtl92s_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        u32 original_value, readback_value, bitshift;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), rfpath(%#x), "
-                "bitmask(%#x)\n", regaddr, rfpath, bitmask));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x)\n",
+                regaddr, rfpath, bitmask);
 
        spin_lock(&rtlpriv->locks.rf_lock);
 
@@ -195,9 +195,9 @@ u32 rtl92s_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
 
        spin_unlock(&rtlpriv->locks.rf_lock);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), rfpath(%#x), "
-                "bitmask(%#x), original_value(%#x)\n", regaddr, rfpath,
-                bitmask, original_value));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), rfpath(%#x), bitmask(%#x), original_value(%#x)\n",
+                regaddr, rfpath, bitmask, original_value);
 
        return readback_value;
 }
@@ -212,8 +212,9 @@ void rtl92s_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
        if (!((rtlphy->rf_pathmap >> rfpath) & 0x1))
                return;
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x),"
-                " data(%#x), rfpath(%#x)\n", regaddr, bitmask, data, rfpath));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
 
        spin_lock(&rtlpriv->locks.rf_lock);
 
@@ -228,8 +229,9 @@ void rtl92s_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,
 
        spin_unlock(&rtlpriv->locks.rf_lock);
 
-       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x), "
-                "data(%#x), rfpath(%#x)\n", regaddr, bitmask, data, rfpath));
+       RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
+                "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n",
+                regaddr, bitmask, data, rfpath);
 
 }
 
@@ -249,7 +251,7 @@ void rtl92s_phy_scan_operation_backup(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("Unknown operation.\n"));
+                                "Unknown operation\n");
                        break;
                }
        }
@@ -264,9 +266,9 @@ void rtl92s_phy_set_bw_mode(struct ieee80211_hw *hw,
        struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
        u8 reg_bw_opmode;
 
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("Switch to %s bandwidth\n",
-                 rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
-                 "20MHz" : "40MHz"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "Switch to %s bandwidth\n",
+                rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
+                "20MHz" : "40MHz");
 
        if (rtlphy->set_bwmode_inprogress)
                return;
@@ -290,8 +292,7 @@ void rtl92s_phy_set_bw_mode(struct ieee80211_hw *hw,
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n",
-                        rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
        }
 
@@ -316,13 +317,13 @@ void rtl92s_phy_set_bw_mode(struct ieee80211_hw *hw,
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
+                        "unknown bandwidth: %#X\n", rtlphy->current_chan_bw);
                break;
        }
 
        rtl92s_phy_rf6052_set_bandwidth(hw, rtlphy->current_chan_bw);
        rtlphy->set_bwmode_inprogress = false;
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "<==\n");
 }
 
 static bool _rtl92s_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable,
@@ -332,7 +333,7 @@ static bool _rtl92s_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable,
        struct swchnlcmd *pcmd;
 
        if (cmdtable == NULL) {
-               RT_ASSERT(false, ("cmdtable cannot be NULL.\n"));
+               RT_ASSERT(false, "cmdtable cannot be NULL\n");
                return false;
        }
 
@@ -377,7 +378,7 @@ static bool _rtl92s_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
        rfdependcmdcnt = 0;
 
        RT_ASSERT((channel >= 1 && channel <= 14),
-                 ("illegal channel for Zebra: %d\n", channel));
+                 "invalid channel for Zebra: %d\n", channel);
 
        _rtl92s_phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++,
                                         MAX_RFDEPENDCMD_CNT, CMDID_RF_WRITEREG,
@@ -438,7 +439,7 @@ static bool _rtl92s_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
                        break;
                default:
                        RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                                ("switch case not process\n"));
+                                "switch case not processed\n");
                        break;
                }
 
@@ -458,9 +459,8 @@ u8 rtl92s_phy_sw_chnl(struct ieee80211_hw *hw)
        u32 delay;
        bool ret;
 
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
-                ("switch to channel%d\n",
-                rtlphy->current_channel));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "switch to channel%d\n",
+                rtlphy->current_channel);
 
        if (rtlphy->sw_chnl_inprogress)
                return 0;
@@ -496,7 +496,7 @@ u8 rtl92s_phy_sw_chnl(struct ieee80211_hw *hw)
 
        rtlphy->sw_chnl_inprogress = false;
 
-       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
+       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "<==\n");
 
        return 1;
 }
@@ -556,7 +556,7 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                do {
                                        InitializeCount++;
                                        RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                                ("IPS Set eRf nic enable\n"));
+                                                "IPS Set eRf nic enable\n");
                                        rtstatus = rtl_ps_enable_nic(hw);
                                } while ((rtstatus != true) &&
                                         (InitializeCount < 10));
@@ -565,11 +565,11 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                                  RT_RF_OFF_LEVL_HALT_NIC);
                        } else {
                                RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                                        ("awake, sleeped:%d ms "
-                                       "state_inap:%x\n",
-                                       jiffies_to_msecs(jiffies -
-                                       ppsc->last_sleep_jiffies),
-                                       rtlpriv->psc.state_inap));
+                                        "awake, sleeped:%d ms state_inap:%x\n",
+                                        jiffies_to_msecs(jiffies -
+                                                         ppsc->
+                                                         last_sleep_jiffies),
+                                        rtlpriv->psc.state_inap);
                                ppsc->last_awake_jiffies = jiffies;
                                rtl_write_word(rtlpriv, CMDR, 0x37FC);
                                rtl_write_byte(rtlpriv, TXPAUSE, 0x00);
@@ -587,7 +587,7 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
        case ERFOFF:{
                        if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) {
                                RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
-                                        ("IPS Set eRf nic disable\n"));
+                                        "IPS Set eRf nic disable\n");
                                rtl_ps_disable_nic(hw);
                                RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
                        } else {
@@ -613,11 +613,9 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
                                        continue;
                                } else {
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                                ("eRf Off/Sleep: "
-                                                "%d times TcbBusyQueue[%d] = "
-                                                "%d before doze!\n",
-                                                (i + 1), queue_id,
-                                                skb_queue_len(&ring->queue)));
+                                                "eRf Off/Sleep: %d times TcbBusyQueue[%d] = %d before doze!\n",
+                                                i + 1, queue_id,
+                                                skb_queue_len(&ring->queue));
 
                                        udelay(10);
                                        i++;
@@ -625,31 +623,30 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
 
                                if (i >= MAX_DOZE_WAITING_TIMES_9x) {
                                        RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
-                                                ("\nERFOFF: %d times"
-                                                "TcbBusyQueue[%d] = %d !\n",
+                                                "ERFOFF: %d times TcbBusyQueue[%d] = %d !\n",
                                                 MAX_DOZE_WAITING_TIMES_9x,
                                                 queue_id,
-                                                skb_queue_len(&ring->queue)));
+                                                skb_queue_len(&ring->queue));
                                        break;
                                }
                        }
 
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                                ("Set ERFSLEEP awaked:%d ms\n",
+                                "Set ERFSLEEP awaked:%d ms\n",
                                 jiffies_to_msecs(jiffies -
-                                ppsc->last_awake_jiffies)));
+                                                 ppsc->last_awake_jiffies));
 
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG,
-                                ("sleep awaked:%d ms "
-                               "state_inap:%x\n", jiffies_to_msecs(jiffies -
-                               ppsc->last_awake_jiffies),
-                               rtlpriv->psc.state_inap));
+                                "sleep awaked:%d ms state_inap:%x\n",
+                                jiffies_to_msecs(jiffies -
+                                                 ppsc->last_awake_jiffies),
+                                rtlpriv->psc.state_inap);
                        ppsc->last_sleep_jiffies = jiffies;
                        _rtl92se_phy_set_rf_sleep(hw);
            break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("switch case not process\n"));
+                        "switch case not processed\n");
                bresult = false;
                break;
        }
@@ -995,7 +992,7 @@ static bool _rtl92s_phy_bb_config_parafile(struct ieee80211_hw *hw)
 
        if (rtstatus != true) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                        ("Write BB Reg Fail!!"));
+                        "Write BB Reg Fail!!\n");
                goto phy_BB8190_Config_ParaFile_Fail;
        }
 
@@ -1009,8 +1006,7 @@ static bool _rtl92s_phy_bb_config_parafile(struct ieee80211_hw *hw)
        }
        if (rtstatus != true) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                        ("_rtl92s_phy_bb_config_parafile(): "
-                        "BB_PG Reg Fail!!"));
+                        "_rtl92s_phy_bb_config_parafile(): BB_PG Reg Fail!!\n");
                goto phy_BB8190_Config_ParaFile_Fail;
        }
 
@@ -1053,7 +1049,7 @@ u8 rtl92s_phy_config_rf(struct ieee80211_hw *hw, enum radio_path rfpath)
                radio_b_tblen = RADIOB_ARRAYLENGTH;
        }
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Radio No %x\n", rfpath));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Radio No %x\n", rfpath);
        rtstatus = true;
 
        switch (rfpath) {
@@ -1175,11 +1171,11 @@ bool rtl92s_phy_bb_config(struct ieee80211_hw *hw)
            (rtlphy->rf_type == RF_2T2R && rf_num != 2) ||
            (rtlphy->rf_type == RF_2T2R_GREEN && rf_num != 2)) {
                RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                        ("RF_Type(%x) does not match "
-                        "RF_Num(%x)!!\n", rtlphy->rf_type, rf_num));
+                        "RF_Type(%x) does not match RF_Num(%x)!!\n",
+                        rtlphy->rf_type, rf_num);
                RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                        ("path1 0x%x, path2 0x%x, pathmap "
-                         "0x%x\n", path1, path2, pathmap));
+                        "path1 0x%x, path2 0x%x, pathmap 0x%x\n",
+                        path1, path2, pathmap);
        }
 
        return rtstatus;
@@ -1214,20 +1210,20 @@ void rtl92s_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw)
                        ROFDM0_XCAGCCORE1, MASKBYTE0);
        rtlphy->default_initialgain[3] = rtl_get_bbreg(hw,
                        ROFDM0_XDAGCCORE1, MASKBYTE0);
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, ("Default initial gain "
-                "(c50=0x%x, c58=0x%x, c60=0x%x, c68=0x%x)\n",
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                "Default initial gain (c50=0x%x, c58=0x%x, c60=0x%x, c68=0x%x)\n",
                 rtlphy->default_initialgain[0],
                 rtlphy->default_initialgain[1],
                 rtlphy->default_initialgain[2],
-                rtlphy->default_initialgain[3]));
+                rtlphy->default_initialgain[3]);
 
        /* read framesync */
        rtlphy->framesync = rtl_get_bbreg(hw, ROFDM0_RXDETECTOR3, MASKBYTE0);
        rtlphy->framesync_c34 = rtl_get_bbreg(hw, ROFDM0_RXDETECTOR2,
                                              MASKDWORD);
        RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
-                ("Default framesync (0x%x) = 0x%x\n",
-                ROFDM0_RXDETECTOR3, rtlphy->framesync));
+                "Default framesync (0x%x) = 0x%x\n",
+                ROFDM0_RXDETECTOR3, rtlphy->framesync);
 
 }
 
@@ -1287,10 +1283,9 @@ void rtl92s_phy_set_txpower(struct ieee80211_hw *hw, u8  channel)
                        &ofdmpowerLevel[0]);
 
        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                       ("Channel-%d, cckPowerLevel (A / B) = "
-                       "0x%x / 0x%x,   ofdmPowerLevel (A / B) = 0x%x / 0x%x\n",
-                       channel, cckpowerlevel[0], cckpowerlevel[1],
-                       ofdmpowerLevel[0], ofdmpowerLevel[1]));
+                "Channel-%d, cckPowerLevel (A / B) = 0x%x / 0x%x, ofdmPowerLevel (A / B) = 0x%x / 0x%x\n",
+                channel, cckpowerlevel[0], cckpowerlevel[1],
+                ofdmpowerLevel[0], ofdmpowerLevel[1]);
 
        _rtl92s_phy_ccxpower_indexcheck(hw, channel, &cckpowerlevel[0],
                        &ofdmpowerLevel[0]);
@@ -1316,7 +1311,7 @@ void rtl92s_phy_chk_fwcmd_iodone(struct ieee80211_hw *hw)
        } while (--pollingcnt);
 
        if (pollingcnt == 0)
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, ("Set FW Cmd fail!!\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Set FW Cmd fail!!\n");
 }
 
 
@@ -1345,20 +1340,17 @@ static void _rtl92s_phy_set_fwcmd_io(struct ieee80211_hw *hw)
 
        switch (rtlhal->current_fwcmd_io) {
        case FW_CMD_RA_RESET:
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_RA_RESET\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "FW_CMD_RA_RESET\n");
                rtl_write_dword(rtlpriv, WFM5, FW_RA_RESET);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
        case FW_CMD_RA_ACTIVE:
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_RA_ACTIVE\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "FW_CMD_RA_ACTIVE\n");
                rtl_write_dword(rtlpriv, WFM5, FW_RA_ACTIVE);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
        case FW_CMD_RA_REFRESH_N:
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_RA_REFRESH_N\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "FW_CMD_RA_REFRESH_N\n");
                input = FW_RA_REFRESH;
                rtl_write_dword(rtlpriv, WFM5, input);
                rtl92s_phy_chk_fwcmd_iodone(hw);
@@ -1367,7 +1359,7 @@ static void _rtl92s_phy_set_fwcmd_io(struct ieee80211_hw *hw)
                break;
        case FW_CMD_RA_REFRESH_BG:
                RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_RA_REFRESH_BG\n"));
+                        "FW_CMD_RA_REFRESH_BG\n");
                rtl_write_dword(rtlpriv, WFM5, FW_RA_REFRESH);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                rtl_write_dword(rtlpriv, WFM5, FW_RA_DISABLE_RSSI_MASK);
@@ -1375,21 +1367,20 @@ static void _rtl92s_phy_set_fwcmd_io(struct ieee80211_hw *hw)
                break;
        case FW_CMD_RA_REFRESH_N_COMB:
                RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_RA_REFRESH_N_COMB\n"));
+                        "FW_CMD_RA_REFRESH_N_COMB\n");
                input = FW_RA_IOT_N_COMB;
                rtl_write_dword(rtlpriv, WFM5, input);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
        case FW_CMD_RA_REFRESH_BG_COMB:
                RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_RA_REFRESH_BG_COMB\n"));
+                        "FW_CMD_RA_REFRESH_BG_COMB\n");
                input = FW_RA_IOT_BG_COMB;
                rtl_write_dword(rtlpriv, WFM5, input);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
        case FW_CMD_IQK_ENABLE:
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_IQK_ENABLE\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "FW_CMD_IQK_ENABLE\n");
                rtl_write_dword(rtlpriv, WFM5, FW_IQK_ENABLE);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
@@ -1424,8 +1415,7 @@ static void _rtl92s_phy_set_fwcmd_io(struct ieee80211_hw *hw)
                rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, 0xcd);
                break;
        case FW_CMD_LPS_ENTER:
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_LPS_ENTER\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "FW_CMD_LPS_ENTER\n");
                current_aid = rtlpriv->mac80211.assoc_id;
                rtl_write_dword(rtlpriv, WFM5, (FW_LPS_ENTER |
                                ((current_aid | 0xc000) << 8)));
@@ -1434,20 +1424,18 @@ static void _rtl92s_phy_set_fwcmd_io(struct ieee80211_hw *hw)
                 * turbo mode until driver leave LPS */
                break;
        case FW_CMD_LPS_LEAVE:
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_LPS_LEAVE\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "FW_CMD_LPS_LEAVE\n");
                rtl_write_dword(rtlpriv, WFM5, FW_LPS_LEAVE);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
        case FW_CMD_ADD_A2_ENTRY:
-               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG,
-                        ("FW_CMD_ADD_A2_ENTRY\n"));
+               RT_TRACE(rtlpriv, COMP_CMD, DBG_DMESG, "FW_CMD_ADD_A2_ENTRY\n");
                rtl_write_dword(rtlpriv, WFM5, FW_ADD_A2_ENTRY);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
        case FW_CMD_CTRL_DM_BY_DRIVER:
                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                        ("FW_CMD_CTRL_DM_BY_DRIVER\n"));
+                        "FW_CMD_CTRL_DM_BY_DRIVER\n");
                rtl_write_dword(rtlpriv, WFM5, FW_CTRL_DM_BY_DRIVER);
                rtl92s_phy_chk_fwcmd_iodone(hw);
                break;
@@ -1472,8 +1460,8 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
        bool bPostProcessing = false;
 
        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                       ("Set FW Cmd(%#x), set_fwcmd_inprogress(%d)\n",
-                       fw_cmdio, rtlhal->set_fwcmd_inprogress));
+                "Set FW Cmd(%#x), set_fwcmd_inprogress(%d)\n",
+                fw_cmdio, rtlhal->set_fwcmd_inprogress);
 
        do {
                /* We re-map to combined FW CMD ones if firmware version */
@@ -1501,7 +1489,7 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
                 * DM map table in the future. */
                switch (fw_cmdio) {
                case FW_CMD_RA_INIT:
-                       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, ("RA init!!\n"));
+                       RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "RA init!!\n");
                        fw_cmdmap |= FW_RA_INIT_CTL;
                        FW_CMD_IO_SET(rtlpriv, fw_cmdmap);
                        /* Clear control flag to sync with FW. */
@@ -1509,7 +1497,7 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
                        break;
                case FW_CMD_DIG_DISABLE:
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("Set DIG disable!!\n"));
+                                "Set DIG disable!!\n");
                        fw_cmdmap &= ~FW_DIG_ENABLE_CTL;
                        FW_CMD_IO_SET(rtlpriv, fw_cmdmap);
                        break;
@@ -1517,14 +1505,14 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
                case FW_CMD_DIG_RESUME:
                        if (!(rtlpriv->dm.dm_flag & HAL_DM_DIG_DISABLE)) {
                                RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                       ("Set DIG enable or resume!!\n"));
+                                        "Set DIG enable or resume!!\n");
                                fw_cmdmap |= (FW_DIG_ENABLE_CTL | FW_SS_CTL);
                                FW_CMD_IO_SET(rtlpriv, fw_cmdmap);
                        }
                        break;
                case FW_CMD_DIG_HALT:
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("Set DIG halt!!\n"));
+                                "Set DIG halt!!\n");
                        fw_cmdmap &= ~(FW_DIG_ENABLE_CTL | FW_SS_CTL);
                        FW_CMD_IO_SET(rtlpriv, fw_cmdmap);
                        break;
@@ -1540,9 +1528,8 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
                                     (rtlefuse->thermalmeter[0] << 16));
 
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("Set TxPwr tracking!! "
-                                "FwCmdMap(%#x), FwParam(%#x)\n",
-                                fw_cmdmap, fw_param));
+                                "Set TxPwr tracking!! FwCmdMap(%#x), FwParam(%#x)\n",
+                                fw_cmdmap, fw_param);
 
                        FW_CMD_PARA_SET(rtlpriv, fw_param);
                        FW_CMD_IO_SET(rtlpriv, fw_cmdmap);
@@ -1563,9 +1550,8 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
                        fw_param &= FW_RA_PARAM_CLR;
 
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("[FW CMD] [New Version] "
-                                "Set RA/IOT Comb in n mode!! FwCmdMap(%#x), "
-                                "FwParam(%#x)\n", fw_cmdmap, fw_param));
+                                "[FW CMD] [New Version] Set RA/IOT Comb in n mode!! FwCmdMap(%#x), FwParam(%#x)\n",
+                                fw_cmdmap, fw_param);
 
                        FW_CMD_PARA_SET(rtlpriv, fw_param);
                        FW_CMD_IO_SET(rtlpriv, fw_cmdmap);
@@ -1652,7 +1638,7 @@ bool rtl92s_phy_set_fw_cmd(struct ieee80211_hw *hw, enum fwcmd_iotype fw_cmdio)
                        break;
                case FW_CMD_PAPE_CONTROL:
                        RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD,
-                                ("[FW CMD] Set PAPE Control\n"));
+                                "[FW CMD] Set PAPE Control\n");
                        fw_cmdmap &= ~FW_PAPE_CTL_BY_SW_HW;
 
                        FW_CMD_IO_SET(rtlpriv, fw_cmdmap);
index 37e504af6446215a9cfe15a1ea7dc09b0bbdab12..ac0387770630dfedb9dc7d682b898d2d2e78690c 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 11f125c030ce0f923dab24d1b0a55dcfec64f2b2..84d1181795b8aeba6ff9d3d0d0245f75e596933f 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 0ad50fe44aa288f3783f9d4b966ea4fbb08296ed..ad51906124db25195de7dd8b39716067f219bcd2 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -27,8 +27,6 @@
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
 #include "../wifi.h"
 #include "reg.h"
 #include "def.h"
@@ -123,13 +121,13 @@ static void _rtl92s_get_powerbase(struct ieee80211_hw *hw, u8 *p_pwrlevel,
        }
 
        if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("40MHz finalpwr_idx "
-                       "(A / B) = 0x%x / 0x%x\n", p_final_pwridx[0],
-                       p_final_pwridx[1]));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
+                        "40MHz finalpwr_idx (A / B) = 0x%x / 0x%x\n",
+                        p_final_pwridx[0], p_final_pwridx[1]);
        } else {
-               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, ("20MHz finalpwr_idx "
-                       "(A / B) = 0x%x / 0x%x\n", p_final_pwridx[0],
-                        p_final_pwridx[1]));
+               RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
+                        "20MHz finalpwr_idx (A / B) = 0x%x / 0x%x\n",
+                        p_final_pwridx[0], p_final_pwridx[1]);
        }
 }
 
@@ -153,9 +151,8 @@ static void _rtl92s_set_antennadiff(struct ieee80211_hw *hw,
                        ant_pwr_diff = -8;
 
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("Antenna Diff from RF-B "
-                       "to RF-A = %d (0x%x)\n", ant_pwr_diff,
-                        ant_pwr_diff & 0xf));
+                        "Antenna Diff from RF-B to RF-A = %d (0x%x)\n",
+                        ant_pwr_diff, ant_pwr_diff & 0xf);
 
                ant_pwr_diff &= 0xf;
        }
@@ -172,9 +169,8 @@ static void _rtl92s_set_antennadiff(struct ieee80211_hw *hw,
        rtl_set_bbreg(hw, RFPGA0_TXGAINSTAGE, (BXBTXAGC | BXCTXAGC | BXDTXAGC),
                      u4reg_val);
 
-       RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                ("Write BCD-Diff(0x%x) = 0x%x\n",
-                RFPGA0_TXGAINSTAGE, u4reg_val));
+       RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "Write BCD-Diff(0x%x) = 0x%x\n",
+                RFPGA0_TXGAINSTAGE, u4reg_val);
 }
 
 static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
@@ -201,8 +197,7 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
                                ((index < 2) ? pwrbase0 : pwrbase1);
 
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("RTK better performance, "
-                        "writeval = 0x%x\n", writeval));
+                        "RTK better performance, writeval = 0x%x\n", writeval);
                break;
        case 1:
                /* Realtek regulatory increase power diff defined
@@ -211,8 +206,8 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
                        writeval = ((index < 2) ? pwrbase0 : pwrbase1);
 
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("Realtek regulatory, "
-                                "40MHz, writeval = 0x%x\n", writeval));
+                                "Realtek regulatory, 40MHz, writeval = 0x%x\n",
+                                writeval);
                } else {
                        if (rtlphy->pwrgroup_cnt == 1)
                                chnlgroup = 0;
@@ -234,16 +229,15 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
                                        pwrbase0 : pwrbase1);
 
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                                ("Realtek regulatory, "
-                                "20MHz, writeval = 0x%x\n", writeval));
+                                "Realtek regulatory, 20MHz, writeval = 0x%x\n",
+                                writeval);
                }
                break;
        case 2:
                /* Better regulatory don't increase any power diff */
                writeval = ((index < 2) ? pwrbase0 : pwrbase1);
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("Better regulatory, "
-                        "writeval = 0x%x\n", writeval));
+                        "Better regulatory, writeval = 0x%x\n", writeval);
                break;
        case 3:
                /* Customer defined power diff. increase power diff
@@ -252,14 +246,14 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
 
                if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) {
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                               ("customer's limit, 40MHz = 0x%x\n",
-                               rtlefuse->pwrgroup_ht40
-                               [RF90_PATH_A][chnl - 1]));
+                                "customer's limit, 40MHz = 0x%x\n",
+                                rtlefuse->pwrgroup_ht40
+                                [RF90_PATH_A][chnl - 1]);
                } else {
                        RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                               ("customer's limit, 20MHz = 0x%x\n",
-                               rtlefuse->pwrgroup_ht20
-                               [RF90_PATH_A][chnl - 1]));
+                                "customer's limit, 20MHz = 0x%x\n",
+                                rtlefuse->pwrgroup_ht20
+                                [RF90_PATH_A][chnl - 1]);
                }
 
                for (i = 0; i < 4; i++) {
@@ -293,22 +287,19 @@ static void _rtl92s_get_txpower_writeval_byregulatory(struct ieee80211_hw *hw,
                                (pwrdiff_limit[1] << 8) |
                                (pwrdiff_limit[0]);
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("Customer's limit = 0x%x\n",
-                        customer_limit));
+                        "Customer's limit = 0x%x\n", customer_limit);
 
                writeval = customer_limit + ((index < 2) ?
                                             pwrbase0 : pwrbase1);
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("Customer, writeval = "
-                        "0x%x\n", writeval));
+                        "Customer, writeval = 0x%x\n", writeval);
                break;
        default:
                chnlgroup = 0;
                writeval = rtlphy->mcs_txpwrlevel_origoffset[chnlgroup][index] +
                                ((index < 2) ? pwrbase0 : pwrbase1);
                RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
-                        ("RTK better performance, "
-                        "writeval = 0x%x\n", writeval));
+                        "RTK better performance, writeval = 0x%x\n", writeval);
                break;
        }
 
@@ -541,8 +532,7 @@ void rtl92s_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth)
                break;
        default:
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("unknown bandwidth: %#X\n",
-                        bandwidth));
+                        "unknown bandwidth: %#X\n", bandwidth);
                break;
        }
 }
index 3843baa1a87411213385d43a43504718f21b290d..8a29eb94ab174dbfef5a2cac60c1f61f2a206437 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 36140ccf2abdb5a26451d28cf76868070ba60c94..eda30b9d0f15b90724a23c43d3afb001cdddc118 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/vmalloc.h>
-#include <linux/module.h>
-
 #include "../wifi.h"
 #include "../core.h"
 #include "../pci.h"
+#include "../base.h"
+#include "../pci.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
@@ -45,6 +42,8 @@
 #include "trx.h"
 #include "led.h"
 
+#include <linux/module.h>
+
 static void rtl92s_init_aspm_vars(struct ieee80211_hw *hw)
 {
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
@@ -89,12 +88,53 @@ static void rtl92s_init_aspm_vars(struct ieee80211_hw *hw)
        rtlpci->const_support_pciaspm = 2;
 }
 
+static void rtl92se_fw_cb(const struct firmware *firmware, void *context)
+{
+       struct ieee80211_hw *hw = context;
+       struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw);
+       struct rtl_priv *rtlpriv = rtl_priv(hw);
+       struct rtl_pci *rtlpci = rtl_pcidev(pcipriv);
+       struct rt_firmware *pfirmware = NULL;
+       int err;
+
+       RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
+                        "Firmware callback routine entered!\n");
+       complete(&rtlpriv->firmware_loading_complete);
+       if (!firmware) {
+               pr_err("Firmware %s not available\n", rtlpriv->cfg->fw_name);
+               rtlpriv->max_fw_size = 0;
+               return;
+       }
+       if (firmware->size > rtlpriv->max_fw_size) {
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                        "Firmware is too big!\n");
+               release_firmware(firmware);
+               return;
+       }
+       pfirmware = (struct rt_firmware *)rtlpriv->rtlhal.pfirmware;
+       memcpy(pfirmware->sz_fw_tmpbuffer, firmware->data, firmware->size);
+       pfirmware->sz_fw_tmpbufferlen = firmware->size;
+       release_firmware(firmware);
+
+       err = ieee80211_register_hw(hw);
+       if (err) {
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
+                        "Can't register mac80211 hw\n");
+               return;
+       } else {
+               rtlpriv->mac80211.mac80211_registered = 1;
+       }
+       rtlpci->irq_alloc = 1;
+       set_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
+
+       /*init rfkill */
+       rtl_init_rfkill(hw);
+}
+
 static int rtl92s_init_sw_vars(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-       const struct firmware *firmware;
-       struct rt_firmware *pfirmware = NULL;
        int err = 0;
        u16 earlyrxthreshold = 7;
 
@@ -168,9 +208,9 @@ static int rtl92s_init_sw_vars(struct ieee80211_hw *hw)
        rtlpriv->psc.swctrl_lps = rtlpriv->cfg->mod_params->swctrl_lps;
        rtlpriv->psc.fwctrl_lps = rtlpriv->cfg->mod_params->fwctrl_lps;
        if (!rtlpriv->psc.inactiveps)
-               pr_info("rtl8192ce: Power Save off (module option)\n");
+               pr_info("Power Save off (module option)\n");
        if (!rtlpriv->psc.fwctrl_lps)
-               pr_info("rtl8192ce: FW Power Save off (module option)\n");
+               pr_info("FW Power Save off (module option)\n");
        rtlpriv->psc.reg_fwctrl_lps = 3;
        rtlpriv->psc.reg_max_lps_awakeintvl = 5;
        /* for ASPM, you can close aspm through
@@ -189,27 +229,19 @@ static int rtl92s_init_sw_vars(struct ieee80211_hw *hw)
        if (!rtlpriv->rtlhal.pfirmware)
                return 1;
 
+       rtlpriv->max_fw_size = sizeof(struct rt_firmware);
+
        pr_info("Driver for Realtek RTL8192SE/RTL8191SE\n"
                "Loading firmware %s\n", rtlpriv->cfg->fw_name);
        /* request fw */
-       err = request_firmware(&firmware, rtlpriv->cfg->fw_name,
-                       rtlpriv->io.dev);
+       err = request_firmware_nowait(THIS_MODULE, 1, rtlpriv->cfg->fw_name,
+                                     rtlpriv->io.dev, GFP_KERNEL, hw,
+                                     rtl92se_fw_cb);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Failed to request firmware!\n"));
+                        "Failed to request firmware!\n");
                return 1;
        }
-       if (firmware->size > sizeof(struct rt_firmware)) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Firmware is too big!\n"));
-               release_firmware(firmware);
-               return 1;
-       }
-
-       pfirmware = (struct rt_firmware *)rtlpriv->rtlhal.pfirmware;
-       memcpy(pfirmware->sz_fw_tmpbuffer, firmware->data, firmware->size);
-       pfirmware->sz_fw_tmpbufferlen = firmware->size;
-       release_firmware(firmware);
 
        return err;
 }
@@ -423,7 +455,7 @@ static int __init rtl92se_module_init(void)
 
        ret = pci_register_driver(&rtl92se_driver);
        if (ret)
-               RT_ASSERT(false, (": No device found\n"));
+               RT_ASSERT(false, "No device found\n");
 
        return ret;
 }
index fc4eb285a0acad21204676126974e6e41fc78574..2eb88862ebe462e701ea4c33ccad756e7be190b8 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index 154185b3969d3bbeabea010ac270086fd04a0f96..f1a73f75127eb0dc76086976a9357faf02636412 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index b4ed6d951ebb3de99387be537d5f41770d311f31..2feb73b71a4f6d1e560c7a06a487839dcd1ae6a9 100644 (file)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ * Copyright(c) 2008 - 2012 Realtek Corporation. All rights reserved.
  *
  * This program is distributed in the hope that it will be useful, but WITHOUT
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
index fbebe3ea0a22b95cedd432b0ca663d871915112c..2fd3d13b7ced311fd1607f5c4bc437cdc98029f5 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -756,7 +756,7 @@ void rtl92se_tx_fill_desc(struct ieee80211_hw *hw,
        /* DOWRD 8 */
        SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, cpu_to_le32(mapping));
 
-       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, ("\n"));
+       RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
 }
 
 void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
@@ -823,8 +823,8 @@ void rtl92se_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
                        SET_TX_DESC_NEXT_DESC_ADDRESS(pdesc, *(u32 *) val);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR txdesc :%d not process\n",
-                                 desc_name));
+                       RT_ASSERT(false, "ERR txdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        } else {
@@ -843,8 +843,8 @@ void rtl92se_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val)
                        SET_RX_STATUS_DESC_EOR(pdesc, 1);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR rxdesc :%d not process\n",
-                                 desc_name));
+                       RT_ASSERT(false, "ERR rxdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        }
@@ -863,8 +863,8 @@ u32 rtl92se_get_desc(u8 *desc, bool istx, u8 desc_name)
                        ret = GET_TX_DESC_TX_BUFFER_ADDRESS(desc);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR txdesc :%d not process\n",
-                                 desc_name));
+                       RT_ASSERT(false, "ERR txdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        } else {
@@ -876,8 +876,8 @@ u32 rtl92se_get_desc(u8 *desc, bool istx, u8 desc_name)
                        ret = GET_RX_STATUS_DESC_PKT_LEN(desc);
                        break;
                default:
-                       RT_ASSERT(false, ("ERR rxdesc :%d not process\n",
-                                 desc_name));
+                       RT_ASSERT(false, "ERR rxdesc :%d not process\n",
+                                 desc_name);
                        break;
                }
        }
index 05862c51b861a1ce4be8f8a48d1030b927a41bec..011e7b0695f24f0a00bdd322a82e961cb69faa28 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
index e956fa71d040756952868e423d497b8a329aff2b..ffcf89fe45e4045f457b02d95c2ffc22c54151d5 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2011  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  *
  *****************************************************************************/
 
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/usb.h>
-#include <linux/export.h>
-#include "core.h"
 #include "wifi.h"
+#include "core.h"
 #include "usb.h"
 #include "base.h"
 #include "ps.h"
 #include "rtl8192c/fw_common.h"
+#include <linux/export.h>
 
 #define        REALTEK_USB_VENQT_READ                  0xC0
 #define        REALTEK_USB_VENQT_WRITE                 0x40
@@ -276,14 +273,14 @@ static int _rtl_usb_init_tx(struct ieee80211_hw *hw)
                                                    ? USB_HIGH_SPEED_BULK_SIZE
                                                    : USB_FULL_SPEED_BULK_SIZE;
 
-       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, ("USB Max Bulk-out Size=%d\n",
-                rtlusb->max_bulk_out_size));
+       RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "USB Max Bulk-out Size=%d\n",
+                rtlusb->max_bulk_out_size);
 
        for (i = 0; i < __RTL_TXQ_NUM; i++) {
                u32 ep_num = rtlusb->ep_map.ep_mapping[i];
                if (!ep_num) {
                        RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                                ("Invalid endpoint map setting!\n"));
+                                "Invalid endpoint map setting!\n");
                        return -EINVAL;
                }
        }
@@ -345,9 +342,9 @@ static int _rtl_usb_init(struct ieee80211_hw *hw)
                        rtlusb->out_ep_nums++;
 
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
-                        ("USB EP(0x%02x), MaxPacketSize=%d ,Interval=%d.\n",
+                        "USB EP(0x%02x), MaxPacketSize=%d, Interval=%d\n",
                         pep_desc->bEndpointAddress, pep_desc->wMaxPacketSize,
-                        pep_desc->bInterval));
+                        pep_desc->bInterval);
        }
        if (rtlusb->in_ep_nums <  rtlpriv->cfg->usb_interface_cfg->in_ep_num)
                return -EINVAL ;
@@ -414,7 +411,7 @@ static struct sk_buff *_rtl_prep_rx_urb(struct ieee80211_hw *hw,
                               gfp_mask);
        if (!skb) {
                RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                        ("Failed to __dev_alloc_skb!!\n"))
+                        "Failed to __dev_alloc_skb!!\n");
                return ERR_PTR(-ENOMEM);
        }
 
@@ -520,12 +517,14 @@ static void _rtl_usb_rx_process_noagg(struct ieee80211_hw *hw,
                        u8 *pdata;
 
                        uskb = dev_alloc_skb(skb->len + 128);
-                       memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status,
-                              sizeof(rx_status));
-                       pdata = (u8 *)skb_put(uskb, skb->len);
-                       memcpy(pdata, skb->data, skb->len);
+                       if (uskb) {     /* drop packet on allocation failure */
+                               memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status,
+                                      sizeof(rx_status));
+                               pdata = (u8 *)skb_put(uskb, skb->len);
+                               memcpy(pdata, skb->data, skb->len);
+                               ieee80211_rx_irqsafe(hw, uskb);
+                       }
                        dev_kfree_skb_any(skb);
-                       ieee80211_rx_irqsafe(hw, uskb);
                } else {
                        dev_kfree_skb_any(skb);
                }
@@ -575,7 +574,7 @@ static void _rtl_rx_completed(struct urb *_urb)
                        if (IS_ERR(_skb)) {
                                err = PTR_ERR(_skb);
                                RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                                       ("Can't allocate skb for bulk IN!\n"));
+                                        "Can't allocate skb for bulk IN!\n");
                                return;
                        }
                        skb = _skb;
@@ -632,14 +631,14 @@ static int _rtl_usb_receive(struct ieee80211_hw *hw)
                urb = usb_alloc_urb(0, GFP_KERNEL);
                if (!urb) {
                        RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                                ("Failed to alloc URB!!\n"))
+                                "Failed to alloc URB!!\n");
                        goto err_out;
                }
 
                skb = _rtl_prep_rx_urb(hw, rtlusb, urb, GFP_KERNEL);
                if (IS_ERR(skb)) {
                        RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                                ("Failed to prep_rx_urb!!\n"))
+                                "Failed to prep_rx_urb!!\n");
                        err = PTR_ERR(skb);
                        goto err_out;
                }
@@ -665,15 +664,17 @@ static int rtl_usb_start(struct ieee80211_hw *hw)
        struct rtl_usb *rtlusb = rtl_usbdev(rtl_usbpriv(hw));
 
        err = rtlpriv->cfg->ops->hw_init(hw);
-       rtl_init_rx_config(hw);
+       if (!err) {
+               rtl_init_rx_config(hw);
 
-       /* Enable software */
-       SET_USB_START(rtlusb);
-       /* should after adapter start and interrupt enable. */
-       set_hal_start(rtlhal);
+               /* Enable software */
+               SET_USB_START(rtlusb);
+               /* should after adapter start and interrupt enable. */
+               set_hal_start(rtlhal);
 
-       /* Start bulk IN */
-       _rtl_usb_receive(hw);
+               /* Start bulk IN */
+               _rtl_usb_receive(hw);
+       }
 
        return err;
 }
@@ -745,7 +746,7 @@ static void _rtl_submit_tx_urb(struct ieee80211_hw *hw, struct urb *_urb)
                struct sk_buff *skb;
 
                RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                        ("Failed to submit urb.\n"));
+                        "Failed to submit urb\n");
                usb_unanchor_urb(_urb);
                skb = (struct sk_buff *)_urb->context;
                kfree_skb(skb);
@@ -768,7 +769,7 @@ static int _usb_tx_post(struct ieee80211_hw *hw, struct urb *urb,
 
        if (urb->status) {
                RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                        ("Urb has error status 0x%X\n", urb->status));
+                        "Urb has error status 0x%X\n", urb->status);
                goto out;
        }
        /*  TODO:       statistics */
@@ -805,7 +806,7 @@ static struct urb *_rtl_usb_tx_urb_setup(struct ieee80211_hw *hw,
        _urb = usb_alloc_urb(0, GFP_ATOMIC);
        if (!_urb) {
                RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                        ("Can't allocate URB for bulk out!\n"));
+                        "Can't allocate URB for bulk out!\n");
                kfree_skb(skb);
                return NULL;
        }
@@ -830,7 +831,7 @@ static void _rtl_usb_transmit(struct ieee80211_hw *hw, struct sk_buff *skb,
        WARN_ON(NULL == rtlusb->usb_tx_aggregate_hdl);
        if (unlikely(IS_USB_STOP(rtlusb))) {
                RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
-                        ("USB device is stopping...\n"));
+                        "USB device is stopping...\n");
                kfree_skb(skb);
                return;
        }
@@ -840,7 +841,7 @@ static void _rtl_usb_transmit(struct ieee80211_hw *hw, struct sk_buff *skb,
        _urb = _rtl_usb_tx_urb_setup(hw, _skb, ep_num);
        if (unlikely(!_urb)) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't allocate urb. Drop skb!\n"));
+                        "Can't allocate urb. Drop skb!\n");
                return;
        }
        urb_list = &rtlusb->tx_pending[ep_num];
@@ -865,7 +866,7 @@ static void _rtl_usb_tx_preprocess(struct ieee80211_hw *hw, struct sk_buff *skb,
 
        memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
        if (ieee80211_is_auth(fc)) {
-               RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, ("MAC80211_LINKING\n"));
+               RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "MAC80211_LINKING\n");
                rtl_ips_nic_on(hw);
        }
 
@@ -946,10 +947,11 @@ int __devinit rtl_usb_probe(struct usb_interface *intf,
        hw = ieee80211_alloc_hw(sizeof(struct rtl_priv) +
                                sizeof(struct rtl_usb_priv), &rtl_ops);
        if (!hw) {
-               RT_ASSERT(false, ("%s : ieee80211 alloc failed\n", __func__));
+               RT_ASSERT(false, "ieee80211 alloc failed\n");
                return -ENOMEM;
        }
        rtlpriv = hw->priv;
+       init_completion(&rtlpriv->firmware_loading_complete);
        SET_IEEE80211_DEV(hw, &intf->dev);
        udev = interface_to_usbdev(intf);
        usb_get_dev(udev);
@@ -969,8 +971,7 @@ int __devinit rtl_usb_probe(struct usb_interface *intf,
        /*like read eeprom and so on */
        rtlpriv->cfg->ops->read_eeprom_info(hw);
        if (rtlpriv->cfg->ops->init_sw_vars(hw)) {
-               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't init_sw_vars.\n"));
+               RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Can't init_sw_vars\n");
                goto error_out;
        }
        rtlpriv->cfg->ops->init_sw_leds(hw);
@@ -980,28 +981,16 @@ int __devinit rtl_usb_probe(struct usb_interface *intf,
        err = rtl_init_core(hw);
        if (err) {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
-                        ("Can't allocate sw for mac80211.\n"));
+                        "Can't allocate sw for mac80211\n");
                goto error_out;
        }
 
-       /*init rfkill */
-       /* rtl_init_rfkill(hw); */
-
-       err = ieee80211_register_hw(hw);
-       if (err) {
-               RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG,
-                        ("Can't register mac80211 hw.\n"));
-               goto error_out;
-       } else {
-               rtlpriv->mac80211.mac80211_registered = 1;
-       }
-       set_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status);
        return 0;
 error_out:
        rtl_deinit_core(hw);
        _rtl_usb_io_handler_release(hw);
-       ieee80211_free_hw(hw);
        usb_put_dev(udev);
+       complete(&rtlpriv->firmware_loading_complete);
        return -ENODEV;
 }
 EXPORT_SYMBOL(rtl_usb_probe);
@@ -1015,6 +1004,9 @@ void rtl_usb_disconnect(struct usb_interface *intf)
 
        if (unlikely(!rtlpriv))
                return;
+
+       /* just in case driver is removed before firmware callback */
+       wait_for_completion(&rtlpriv->firmware_loading_complete);
        /*ieee80211_unregister_hw will call ops_stop */
        if (rtlmac->mac80211_registered == 1) {
                ieee80211_unregister_hw(hw);
index d2a63fb3e1e60ca61598dfdf73aea13b4da3f002..43846b329153195fbe123b884d84e365483aa97e 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2011  Realtek Corporation. All rights reserved.
+ * Copyright(c) 2009-2012  Realtek Corporation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
@@ -28,7 +28,6 @@
 #ifndef __RTL_USB_H__
 #define __RTL_USB_H__
 
-#include <linux/usb.h>
 #include <linux/skbuff.h>
 
 #define RTL_RX_DESC_SIZE               24
index cdaf1429fa0b30b6322f31d21f48f5216e51f7d3..b591614c3b9bb79c7b6e00ec6fe48cb8b06c480b 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  *
- * Copyright(c) 2009-2010  Realtek Corporation.
+ * Copyright(c) 2009-2012  Realtek Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
 #ifndef __RTL_WIFI_H__
 #define __RTL_WIFI_H__
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/sched.h>
 #include <linux/firmware.h>
 #include <linux/etherdevice.h>
 #include <linux/vmalloc.h>
 #include <linux/usb.h>
 #include <net/mac80211.h>
+#include <linux/completion.h>
 #include "debug.h"
 
 #define RF_CHANGE_BY_INIT                      0
@@ -1045,7 +1048,6 @@ struct rtl_hal {
        u16 fw_subversion;
        bool h2c_setinprogress;
        u8 last_hmeboxnum;
-       bool fw_ready;
        /*Reserve page start offset except beacon in TxQ. */
        u8 fw_rsvdpage_startoffset;
        u8 h2c_txcmd_seq;
@@ -1591,6 +1593,7 @@ struct rtl_debug {
 };
 
 struct rtl_priv {
+       struct completion firmware_loading_complete;
        struct rtl_locks locks;
        struct rtl_works works;
        struct rtl_mac mac80211;
@@ -1612,6 +1615,7 @@ struct rtl_priv {
        struct rtl_rate_priv *rate_priv;
 
        struct rtl_debug dbg;
+       int max_fw_size;
 
        /*
         *hal_cfg : for diff cards
index ba3268ea81fe57563c9f0f95a293773c21f68ffe..41302c7b1ad0089480a495a26dac4da2552eecf2 100644 (file)
@@ -514,6 +514,9 @@ static int wl1251_op_add_interface(struct ieee80211_hw *hw,
        struct wl1251 *wl = hw->priv;
        int ret = 0;
 
+       vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER |
+                            IEEE80211_VIF_SUPPORTS_CQM_RSSI;
+
        wl1251_debug(DEBUG_MAC80211, "mac80211 add interface type %d mac %pM",
                     vif->type, vif->addr);
 
@@ -1338,9 +1341,7 @@ int wl1251_init_ieee80211(struct wl1251 *wl)
 
        wl->hw->flags = IEEE80211_HW_SIGNAL_DBM |
                IEEE80211_HW_SUPPORTS_PS |
-               IEEE80211_HW_BEACON_FILTER |
-               IEEE80211_HW_SUPPORTS_UAPSD |
-               IEEE80211_HW_SUPPORTS_CQM_RSSI;
+               IEEE80211_HW_SUPPORTS_UAPSD;
 
        wl->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
                                         BIT(NL80211_IFTYPE_ADHOC);
index d5f55a149de5e43216ad46c7ebf0d4825e9d0628..f8748cedbae19bfb4753ec579cec9c9040030fdf 100644 (file)
@@ -2060,6 +2060,9 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
        u8 role_type;
        bool booted = false;
 
+       vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER |
+                            IEEE80211_VIF_SUPPORTS_CQM_RSSI;
+
        wl1271_debug(DEBUG_MAC80211, "mac80211 add interface type %d mac %pM",
                     ieee80211_vif_type_p2p(vif), vif->addr);
 
@@ -4898,12 +4901,10 @@ static int wl1271_init_ieee80211(struct wl1271 *wl)
        wl->hw->max_listen_interval = wl->conf.conn.max_listen_interval;
 
        wl->hw->flags = IEEE80211_HW_SIGNAL_DBM |
-               IEEE80211_HW_BEACON_FILTER |
                IEEE80211_HW_SUPPORTS_PS |
                IEEE80211_HW_SUPPORTS_UAPSD |
                IEEE80211_HW_HAS_RATE_CONTROL |
                IEEE80211_HW_CONNECTION_MONITOR |
-               IEEE80211_HW_SUPPORTS_CQM_RSSI |
                IEEE80211_HW_REPORTS_TX_ACK_STATUS |
                IEEE80211_HW_SPECTRUM_MGMT |
                IEEE80211_HW_AP_LINK_PS |
index 06c3642e5bdb0f1525c6bde54bf2c73058e1b26e..1f74a77d040df4c5b9b93589cf786c4deea12c4d 100644 (file)
@@ -28,6 +28,8 @@
  */
 #include <linux/platform_device.h>
 #include <linux/module.h>
+#include <linux/types.h>
+#include <linux/firmware.h>
 #include <linux/nfc.h>
 #include <net/nfc/nci.h>
 #include <net/nfc/nci_core.h>
 #define NFCWILINK_OFFSET_LEN_IN_HDR    1
 #define NFCWILINK_LEN_SIZE             2
 #define NFCWILINK_REGISTER_TIMEOUT     8000    /* 8 sec */
+#define NFCWILINK_CMD_TIMEOUT          5000    /* 5 sec */
+
+#define BTS_FILE_NAME_MAX_SIZE         40
+#define BTS_FILE_HDR_MAGIC             0x42535442
+#define BTS_FILE_CMD_MAX_LEN           0xff
+#define BTS_FILE_ACTION_TYPE_SEND_CMD  1
+
+#define NCI_VS_NFCC_INFO_CMD_GID       0x2f
+#define NCI_VS_NFCC_INFO_CMD_OID       0x12
+#define NCI_VS_NFCC_INFO_RSP_GID       0x4f
+#define NCI_VS_NFCC_INFO_RSP_OID       0x12
 
 struct nfcwilink_hdr {
-       u8 chnl;
-       u8 opcode;
-       u16 len;
+       __u8 chnl;
+       __u8 opcode;
+       __le16 len;
+} __packed;
+
+struct nci_vs_nfcc_info_cmd {
+       __u8 gid;
+       __u8 oid;
+       __u8 plen;
+} __packed;
+
+struct nci_vs_nfcc_info_rsp {
+       __u8 gid;
+       __u8 oid;
+       __u8 plen;
+       __u8 status;
+       __u8 hw_id;
+       __u8 sw_ver_x;
+       __u8 sw_ver_z;
+       __u8 patch_id;
+} __packed;
+
+struct bts_file_hdr {
+       __le32 magic;
+       __le32 ver;
+       __u8 rfu[24];
+       __u8 actions[0];
+} __packed;
+
+struct bts_file_action {
+       __le16 type;
+       __le16 len;
+       __u8 data[0];
 } __packed;
 
 struct nfcwilink {
@@ -54,14 +97,241 @@ struct nfcwilink {
 
        char                            st_register_cb_status;
        long                            (*st_write) (struct sk_buff *);
-       struct completion               st_register_completed;
+
+       struct completion               completed;
+
+       struct nci_vs_nfcc_info_rsp     nfcc_info;
 };
 
 /* NFCWILINK driver flags */
 enum {
        NFCWILINK_RUNNING,
+       NFCWILINK_FW_DOWNLOAD,
 };
 
+static int nfcwilink_send(struct sk_buff *skb);
+
+static inline struct sk_buff *nfcwilink_skb_alloc(unsigned int len, gfp_t how)
+{
+       struct sk_buff *skb;
+
+       skb = alloc_skb(len + NFCWILINK_HDR_LEN, how);
+       if (skb)
+               skb_reserve(skb, NFCWILINK_HDR_LEN);
+
+       return skb;
+}
+
+static void nfcwilink_fw_download_receive(struct nfcwilink *drv,
+                                               struct sk_buff *skb)
+{
+       struct nci_vs_nfcc_info_rsp *rsp = (void *)skb->data;
+
+       /* Detect NCI_VS_NFCC_INFO_RSP and store the result */
+       if ((skb->len > 3) && (rsp->gid == NCI_VS_NFCC_INFO_RSP_GID) &&
+               (rsp->oid == NCI_VS_NFCC_INFO_RSP_OID)) {
+               memcpy(&drv->nfcc_info, rsp,
+                       sizeof(struct nci_vs_nfcc_info_rsp));
+       }
+
+       kfree_skb(skb);
+
+       complete(&drv->completed);
+}
+
+static int nfcwilink_get_bts_file_name(struct nfcwilink *drv, char *file_name)
+{
+       struct nci_vs_nfcc_info_cmd *cmd;
+       struct sk_buff *skb;
+       unsigned long comp_ret;
+       int rc;
+
+       nfc_dev_dbg(&drv->pdev->dev, "get_bts_file_name entry");
+
+       skb = nfcwilink_skb_alloc(sizeof(struct nci_vs_nfcc_info_cmd),
+                                       GFP_KERNEL);
+       if (!skb) {
+               nfc_dev_err(&drv->pdev->dev,
+                               "no memory for nci_vs_nfcc_info_cmd");
+               return -ENOMEM;
+       }
+
+       skb->dev = (void *)drv->ndev;
+
+       cmd = (struct nci_vs_nfcc_info_cmd *)
+                       skb_put(skb, sizeof(struct nci_vs_nfcc_info_cmd));
+       cmd->gid = NCI_VS_NFCC_INFO_CMD_GID;
+       cmd->oid = NCI_VS_NFCC_INFO_CMD_OID;
+       cmd->plen = 0;
+
+       drv->nfcc_info.plen = 0;
+
+       rc = nfcwilink_send(skb);
+       if (rc)
+               return rc;
+
+       comp_ret = wait_for_completion_timeout(&drv->completed,
+                               msecs_to_jiffies(NFCWILINK_CMD_TIMEOUT));
+       nfc_dev_dbg(&drv->pdev->dev, "wait_for_completion_timeout returned %ld",
+                       comp_ret);
+       if (comp_ret == 0) {
+               nfc_dev_err(&drv->pdev->dev,
+                               "timeout on wait_for_completion_timeout");
+               return -ETIMEDOUT;
+       }
+
+       nfc_dev_dbg(&drv->pdev->dev, "nci_vs_nfcc_info_rsp: plen %d, status %d",
+                       drv->nfcc_info.plen,
+                       drv->nfcc_info.status);
+
+       if ((drv->nfcc_info.plen != 5) || (drv->nfcc_info.status != 0)) {
+               nfc_dev_err(&drv->pdev->dev,
+                               "invalid nci_vs_nfcc_info_rsp");
+               return -EINVAL;
+       }
+
+       snprintf(file_name, BTS_FILE_NAME_MAX_SIZE,
+                       "TINfcInit_%d.%d.%d.%d.bts",
+                       drv->nfcc_info.hw_id,
+                       drv->nfcc_info.sw_ver_x,
+                       drv->nfcc_info.sw_ver_z,
+                       drv->nfcc_info.patch_id);
+
+       nfc_dev_info(&drv->pdev->dev, "nfcwilink FW file name: %s", file_name);
+
+       return 0;
+}
+
+static int nfcwilink_send_bts_cmd(struct nfcwilink *drv, __u8 *data, int len)
+{
+       struct nfcwilink_hdr *hdr = (struct nfcwilink_hdr *)data;
+       struct sk_buff *skb;
+       unsigned long comp_ret;
+       int rc;
+
+       nfc_dev_dbg(&drv->pdev->dev, "send_bts_cmd entry");
+
+       /* verify valid cmd for the NFC channel */
+       if ((len <= sizeof(struct nfcwilink_hdr)) ||
+               (len > BTS_FILE_CMD_MAX_LEN) ||
+               (hdr->chnl != NFCWILINK_CHNL) ||
+               (hdr->opcode != NFCWILINK_OPCODE)) {
+               nfc_dev_err(&drv->pdev->dev,
+                       "ignoring invalid bts cmd, len %d, chnl %d, opcode %d",
+                       len, hdr->chnl, hdr->opcode);
+               return 0;
+       }
+
+       /* remove the ST header */
+       len -= sizeof(struct nfcwilink_hdr);
+       data += sizeof(struct nfcwilink_hdr);
+
+       skb = nfcwilink_skb_alloc(len, GFP_KERNEL);
+       if (!skb) {
+               nfc_dev_err(&drv->pdev->dev, "no memory for bts cmd");
+               return -ENOMEM;
+       }
+
+       skb->dev = (void *)drv->ndev;
+
+       memcpy(skb_put(skb, len), data, len);
+
+       rc = nfcwilink_send(skb);
+       if (rc)
+               return rc;
+
+       comp_ret = wait_for_completion_timeout(&drv->completed,
+                               msecs_to_jiffies(NFCWILINK_CMD_TIMEOUT));
+       nfc_dev_dbg(&drv->pdev->dev, "wait_for_completion_timeout returned %ld",
+                       comp_ret);
+       if (comp_ret == 0) {
+               nfc_dev_err(&drv->pdev->dev,
+                               "timeout on wait_for_completion_timeout");
+               return -ETIMEDOUT;
+       }
+
+       return 0;
+}
+
+static int nfcwilink_download_fw(struct nfcwilink *drv)
+{
+       unsigned char file_name[BTS_FILE_NAME_MAX_SIZE];
+       const struct firmware *fw;
+       __u16 action_type, action_len;
+       __u8 *ptr;
+       int len, rc;
+
+       nfc_dev_dbg(&drv->pdev->dev, "download_fw entry");
+
+       set_bit(NFCWILINK_FW_DOWNLOAD, &drv->flags);
+
+       rc = nfcwilink_get_bts_file_name(drv, file_name);
+       if (rc)
+               goto exit;
+
+       rc = request_firmware(&fw, file_name, &drv->pdev->dev);
+       if (rc) {
+               nfc_dev_err(&drv->pdev->dev, "request_firmware failed %d", rc);
+
+               /* if the file is not found, don't exit with failure */
+               if (rc == -ENOENT)
+                       rc = 0;
+
+               goto exit;
+       }
+
+       len = fw->size;
+       ptr = (__u8 *)fw->data;
+
+       if ((len == 0) || (ptr == NULL)) {
+               nfc_dev_dbg(&drv->pdev->dev,
+                               "request_firmware returned size %d", len);
+               goto release_fw;
+       }
+
+       if (__le32_to_cpu(((struct bts_file_hdr *)ptr)->magic) !=
+                       BTS_FILE_HDR_MAGIC) {
+               nfc_dev_err(&drv->pdev->dev, "wrong bts magic number");
+               rc = -EINVAL;
+               goto release_fw;
+       }
+
+       /* remove the BTS header */
+       len -= sizeof(struct bts_file_hdr);
+       ptr += sizeof(struct bts_file_hdr);
+
+       while (len > 0) {
+               action_type =
+                       __le16_to_cpu(((struct bts_file_action *)ptr)->type);
+               action_len =
+                       __le16_to_cpu(((struct bts_file_action *)ptr)->len);
+
+               nfc_dev_dbg(&drv->pdev->dev, "bts_file_action type %d, len %d",
+                               action_type, action_len);
+
+               switch (action_type) {
+               case BTS_FILE_ACTION_TYPE_SEND_CMD:
+                       rc = nfcwilink_send_bts_cmd(drv,
+                                       ((struct bts_file_action *)ptr)->data,
+                                       action_len);
+                       if (rc)
+                               goto release_fw;
+                       break;
+               }
+
+               /* advance to the next action */
+               len -= (sizeof(struct bts_file_action) + action_len);
+               ptr += (sizeof(struct bts_file_action) + action_len);
+       }
+
+release_fw:
+       release_firmware(fw);
+
+exit:
+       clear_bit(NFCWILINK_FW_DOWNLOAD, &drv->flags);
+       return rc;
+}
+
 /* Called by ST when registration is complete */
 static void nfcwilink_register_complete(void *priv_data, char data)
 {
@@ -73,7 +343,7 @@ static void nfcwilink_register_complete(void *priv_data, char data)
        drv->st_register_cb_status = data;
 
        /* complete the wait in nfc_st_open() */
-       complete(&drv->st_register_completed);
+       complete(&drv->completed);
 }
 
 /* Called by ST when receive data is available */
@@ -96,6 +366,11 @@ static long nfcwilink_receive(void *priv_data, struct sk_buff *skb)
        (apart for the chnl byte, which is not received in the hdr) */
        skb_pull(skb, (NFCWILINK_HDR_LEN-1));
 
+       if (test_bit(NFCWILINK_FW_DOWNLOAD, &drv->flags)) {
+               nfcwilink_fw_download_receive(drv, skb);
+               return 0;
+       }
+
        skb->dev = (void *) drv->ndev;
 
        /* Forward skb to NCI core layer */
@@ -136,14 +411,14 @@ static int nfcwilink_open(struct nci_dev *ndev)
 
        nfcwilink_proto.priv_data = drv;
 
-       init_completion(&drv->st_register_completed);
+       init_completion(&drv->completed);
        drv->st_register_cb_status = -EINPROGRESS;
 
        rc = st_register(&nfcwilink_proto);
        if (rc < 0) {
                if (rc == -EINPROGRESS) {
                        comp_ret = wait_for_completion_timeout(
-                       &drv->st_register_completed,
+                       &drv->completed,
                        msecs_to_jiffies(NFCWILINK_REGISTER_TIMEOUT));
 
                        nfc_dev_dbg(&drv->pdev->dev,
@@ -171,6 +446,12 @@ static int nfcwilink_open(struct nci_dev *ndev)
        BUG_ON(nfcwilink_proto.write == NULL);
        drv->st_write = nfcwilink_proto.write;
 
+       if (nfcwilink_download_fw(drv)) {
+               nfc_dev_err(&drv->pdev->dev, "nfcwilink_download_fw failed %d",
+                               rc);
+               /* open should succeed, even if the FW download failed */
+       }
+
        goto exit;
 
 clear_exit:
@@ -208,11 +489,13 @@ static int nfcwilink_send(struct sk_buff *skb)
 
        nfc_dev_dbg(&drv->pdev->dev, "send entry, len %d", skb->len);
 
-       if (!test_bit(NFCWILINK_RUNNING, &drv->flags))
-               return -EBUSY;
+       if (!test_bit(NFCWILINK_RUNNING, &drv->flags)) {
+               kfree_skb(skb);
+               return -EINVAL;
+       }
 
        /* add the ST hdr to the start of the buffer */
-       hdr.len = skb->len;
+       hdr.len = cpu_to_le16(skb->len);
        memcpy(skb_push(skb, NFCWILINK_HDR_LEN), &hdr, NFCWILINK_HDR_LEN);
 
        /* Insert skb to shared transport layer's transmit queue.
@@ -239,7 +522,7 @@ static int nfcwilink_probe(struct platform_device *pdev)
 {
        static struct nfcwilink *drv;
        int rc;
-       u32 protocols;
+       __u32 protocols;
 
        nfc_dev_dbg(&pdev->dev, "probe entry");
 
index 973223f5de8ebbeee690da524d0cf94c2593ce85..befa89eac6f3c9319d913744eb2ffd4b29a12ced 100644 (file)
@@ -523,7 +523,13 @@ static void sprom_extract_r45(struct ssb_sprom *out, const u16 *in)
 static void sprom_extract_r8(struct ssb_sprom *out, const u16 *in)
 {
        int i;
-       u16 v;
+       u16 v, o;
+       u16 pwr_info_offset[] = {
+               SSB_SROM8_PWR_INFO_CORE0, SSB_SROM8_PWR_INFO_CORE1,
+               SSB_SROM8_PWR_INFO_CORE2, SSB_SROM8_PWR_INFO_CORE3
+       };
+       BUILD_BUG_ON(ARRAY_SIZE(pwr_info_offset) !=
+                       ARRAY_SIZE(out->core_pwr_info));
 
        /* extract the MAC address */
        for (i = 0; i < 3; i++) {
@@ -607,6 +613,38 @@ static void sprom_extract_r8(struct ssb_sprom *out, const u16 *in)
        memcpy(&out->antenna_gain.ghz5, &out->antenna_gain.ghz24,
               sizeof(out->antenna_gain.ghz5));
 
+       /* Extract cores power info info */
+       for (i = 0; i < ARRAY_SIZE(pwr_info_offset); i++) {
+               o = pwr_info_offset[i];
+               SPEX(core_pwr_info[i].itssi_2g, o + SSB_SROM8_2G_MAXP_ITSSI,
+                       SSB_SPROM8_2G_ITSSI, SSB_SPROM8_2G_ITSSI_SHIFT);
+               SPEX(core_pwr_info[i].maxpwr_2g, o + SSB_SROM8_2G_MAXP_ITSSI,
+                       SSB_SPROM8_2G_MAXP, 0);
+
+               SPEX(core_pwr_info[i].pa_2g[0], o + SSB_SROM8_2G_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_2g[1], o + SSB_SROM8_2G_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_2g[2], o + SSB_SROM8_2G_PA_2, ~0, 0);
+
+               SPEX(core_pwr_info[i].itssi_5g, o + SSB_SROM8_5G_MAXP_ITSSI,
+                       SSB_SPROM8_5G_ITSSI, SSB_SPROM8_5G_ITSSI_SHIFT);
+               SPEX(core_pwr_info[i].maxpwr_5g, o + SSB_SROM8_5G_MAXP_ITSSI,
+                       SSB_SPROM8_5G_MAXP, 0);
+               SPEX(core_pwr_info[i].maxpwr_5gh, o + SSB_SPROM8_5GHL_MAXP,
+                       SSB_SPROM8_5GH_MAXP, 0);
+               SPEX(core_pwr_info[i].maxpwr_5gl, o + SSB_SPROM8_5GHL_MAXP,
+                       SSB_SPROM8_5GL_MAXP, SSB_SPROM8_5GL_MAXP_SHIFT);
+
+               SPEX(core_pwr_info[i].pa_5gl[0], o + SSB_SROM8_5GL_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gl[1], o + SSB_SROM8_5GL_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gl[2], o + SSB_SROM8_5GL_PA_2, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5g[0], o + SSB_SROM8_5G_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5g[1], o + SSB_SROM8_5G_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5g[2], o + SSB_SROM8_5G_PA_2, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gh[0], o + SSB_SROM8_5GH_PA_0, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gh[1], o + SSB_SROM8_5GH_PA_1, ~0, 0);
+               SPEX(core_pwr_info[i].pa_5gh[2], o + SSB_SROM8_5GH_PA_2, ~0, 0);
+       }
+
        /* Extract FEM info */
        SPEX(fem.ghz2.tssipos, SSB_SPROM8_FEM2G,
                SSB_SROM8_FEM_TSSIPOS, SSB_SROM8_FEM_TSSIPOS_SHIFT);
index 01d4e5d60325bd58f51c12876a25e2bfc13550d9..b4999abcb2a240f28b1e1afa659ac9cb4ff78ee2 100644 (file)
@@ -89,6 +89,8 @@ enum nfc_commands {
  * @NFC_ATTR_TARGET_SEL_RES: NFC-A targets extra information (useful if the
  *     target is not NFC-Forum compliant)
  * @NFC_ATTR_TARGET_NFCID1: NFC-A targets identifier, max 10 bytes
+ * @NFC_ATTR_TARGET_SENSB_RES: NFC-B targets extra information, max 12 bytes
+ * @NFC_ATTR_TARGET_SENSF_RES: NFC-F targets extra information, max 18 bytes
  * @NFC_ATTR_COMM_MODE: Passive or active mode
  * @NFC_ATTR_RF_MODE: Initiator or target
  */
@@ -101,6 +103,8 @@ enum nfc_attrs {
        NFC_ATTR_TARGET_SENS_RES,
        NFC_ATTR_TARGET_SEL_RES,
        NFC_ATTR_TARGET_NFCID1,
+       NFC_ATTR_TARGET_SENSB_RES,
+       NFC_ATTR_TARGET_SENSF_RES,
        NFC_ATTR_COMM_MODE,
        NFC_ATTR_RF_MODE,
 /* private: internal use only */
@@ -109,6 +113,9 @@ enum nfc_attrs {
 #define NFC_ATTR_MAX (__NFC_ATTR_AFTER_LAST - 1)
 
 #define NFC_DEVICE_NAME_MAXSIZE 8
+#define NFC_NFCID1_MAXSIZE 10
+#define NFC_SENSB_RES_MAXSIZE 12
+#define NFC_SENSF_RES_MAXSIZE 18
 
 /* NFC protocols */
 #define NFC_PROTO_JEWEL                1
index 0f5ff37398206d0cb30f866244879be020b99ed5..ad56e21a9f10c0dfbb9b272b183a33dd90e0c1ca 100644 (file)
@@ -1475,6 +1475,7 @@ enum nl80211_attrs {
 #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
 
 #define NL80211_MAX_SUPP_RATES                 32
+#define NL80211_MAX_SUPP_HT_RATES              77
 #define NL80211_MAX_SUPP_REG_RULES             32
 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY      0
 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY    16
@@ -2104,6 +2105,9 @@ enum nl80211_mntr_flags {
  * TUs) during which a mesh STA can send only one Action frame containing a
  * PERR element.
  *
+ * @NL80211_MESHCONF_FORWARDING: set Mesh STA as forwarding or non-forwarding
+ * or forwarding entity (default is TRUE - forwarding entity)
+ *
  * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute
  *
  * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
@@ -2128,6 +2132,7 @@ enum nl80211_meshconf_params {
        NL80211_MESHCONF_HWMP_RANN_INTERVAL,
        NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
        NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
+       NL80211_MESHCONF_FORWARDING,
 
        /* keep last */
        __NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -2401,12 +2406,15 @@ enum nl80211_key_attributes {
  *     in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
  *     1 = 500 kbps) but without the IE length restriction (at most
  *     %NL80211_MAX_SUPP_RATES in a single array).
+ * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection
+ *     in an array of MCS numbers.
  * @__NL80211_TXRATE_AFTER_LAST: internal
  * @NL80211_TXRATE_MAX: highest TX rate attribute
  */
 enum nl80211_tx_rate_attributes {
        __NL80211_TXRATE_INVALID,
        NL80211_TXRATE_LEGACY,
+       NL80211_TXRATE_MCS,
 
        /* keep last */
        __NL80211_TXRATE_AFTER_LAST,
index dcf35b0f303aabef3698b0f7b06d4568748b87fb..bbc2612cb64a83b75dc03484eb8c345e4bac98de 100644 (file)
@@ -16,6 +16,12 @@ struct pcmcia_device;
 struct ssb_bus;
 struct ssb_driver;
 
+struct ssb_sprom_core_pwr_info {
+       u8 itssi_2g, itssi_5g;
+       u8 maxpwr_2g, maxpwr_5gl, maxpwr_5g, maxpwr_5gh;
+       u16 pa_2g[3], pa_5gl[3], pa_5g[3], pa_5gh[3];
+};
+
 struct ssb_sprom {
        u8 revision;
        u8 il0mac[6];           /* MAC address for 802.11b/g */
@@ -82,6 +88,8 @@ struct ssb_sprom {
        u16 boardflags2_hi;     /* Board flags (bits 48-63) */
        /* TODO store board flags in a single u64 */
 
+       struct ssb_sprom_core_pwr_info core_pwr_info[4];
+
        /* Antenna gain values for up to 4 antennas
         * on each band. Values in dBm/4 (Q5.2). Negative gain means the
         * loss in the connectors is bigger than the gain. */
index c814ae6eeb2292df3cb8080b0a10bf04726418fd..40b1ef8595ee9518bda1325765e01a0b3bc355e8 100644 (file)
 #define SSB_SPROM8_TS_SLP_OPT_CORRX    0x00B6
 #define SSB_SPROM8_FOC_HWIQ_IQSWP      0x00B8
 #define SSB_SPROM8_PHYCAL_TEMPDELTA    0x00BA
+
+/* There are 4 blocks with power info sharing the same layout */
+#define SSB_SROM8_PWR_INFO_CORE0       0x00C0
+#define SSB_SROM8_PWR_INFO_CORE1       0x00E0
+#define SSB_SROM8_PWR_INFO_CORE2       0x0100
+#define SSB_SROM8_PWR_INFO_CORE3       0x0120
+
+#define SSB_SROM8_2G_MAXP_ITSSI                0x00
+#define  SSB_SPROM8_2G_MAXP            0x00FF
+#define  SSB_SPROM8_2G_ITSSI           0xFF00
+#define  SSB_SPROM8_2G_ITSSI_SHIFT     8
+#define SSB_SROM8_2G_PA_0              0x02    /* 2GHz power amp settings */
+#define SSB_SROM8_2G_PA_1              0x04
+#define SSB_SROM8_2G_PA_2              0x06
+#define SSB_SROM8_5G_MAXP_ITSSI                0x08    /* 5GHz ITSSI and 5.3GHz Max Power */
+#define  SSB_SPROM8_5G_MAXP            0x00FF
+#define  SSB_SPROM8_5G_ITSSI           0xFF00
+#define  SSB_SPROM8_5G_ITSSI_SHIFT     8
+#define SSB_SPROM8_5GHL_MAXP           0x0A    /* 5.2GHz and 5.8GHz Max Power */
+#define  SSB_SPROM8_5GH_MAXP           0x00FF
+#define  SSB_SPROM8_5GL_MAXP           0xFF00
+#define  SSB_SPROM8_5GL_MAXP_SHIFT     8
+#define SSB_SROM8_5G_PA_0              0x0C    /* 5.3GHz power amp settings */
+#define SSB_SROM8_5G_PA_1              0x0E
+#define SSB_SROM8_5G_PA_2              0x10
+#define SSB_SROM8_5GL_PA_0             0x12    /* 5.2GHz power amp settings */
+#define SSB_SROM8_5GL_PA_1             0x14
+#define SSB_SROM8_5GL_PA_2             0x16
+#define SSB_SROM8_5GH_PA_0             0x18    /* 5.8GHz power amp settings */
+#define SSB_SROM8_5GH_PA_1             0x1A
+#define SSB_SROM8_5GH_PA_2             0x1C
+
+/* TODO: Make it deprecated */
 #define SSB_SPROM8_MAXP_BG             0x00C0  /* Max Power 2GHz in path 1 */
 #define  SSB_SPROM8_MAXP_BG_MASK       0x00FF  /* Mask for Max Power 2GHz */
 #define  SSB_SPROM8_ITSSI_BG           0xFF00  /* Mask for path 1 itssi_bg */
 #define SSB_SPROM8_PA1HIB0             0x00D8  /* 5.8GHz power amp settings */
 #define SSB_SPROM8_PA1HIB1             0x00DA
 #define SSB_SPROM8_PA1HIB2             0x00DC
+
 #define SSB_SPROM8_CCK2GPO             0x0140  /* CCK power offset */
 #define SSB_SPROM8_OFDM2GPO            0x0142  /* 2.4GHz OFDM power offset */
 #define SSB_SPROM8_OFDM5GPO            0x0146  /* 5.3GHz OFDM power offset */
index a067d30ce73e88fa86dce220e3f2002cac5be878..2964205332f42ba1f7677443a2ddd90a7d59a9d1 100644 (file)
@@ -120,6 +120,7 @@ enum ieee80211_channel_flags {
  * @band: band this channel belongs to.
  * @max_antenna_gain: maximum antenna gain in dBi
  * @max_power: maximum transmission power (in dBm)
+ * @max_reg_power: maximum regulatory transmission power (in dBm)
  * @beacon_found: helper to regulatory code to indicate when a beacon
  *     has been found on this channel. Use regulatory_hint_found_beacon()
  *     to enable this, this is useful only on 5 GHz band.
@@ -133,6 +134,7 @@ struct ieee80211_channel {
        u32 flags;
        int max_antenna_gain;
        int max_power;
+       int max_reg_power;
        bool beacon_found;
        u32 orig_flags;
        int orig_mag, orig_mpwr;
@@ -796,6 +798,7 @@ struct mesh_config {
         * mesh gate, but not necessarily using the gate announcement protocol.
         * Still keeping the same nomenclature to be in sync with the spec. */
        bool  dot11MeshGateAnnouncementProtocol;
+       bool dot11MeshForwarding;
 };
 
 /**
@@ -1229,8 +1232,7 @@ enum wiphy_params_flags {
 struct cfg80211_bitrate_mask {
        struct {
                u32 legacy;
-               /* TODO: add support for masking MCS rates; e.g.: */
-               /* u8 mcs[IEEE80211_HT_MCS_MASK_LEN]; */
+               u8 mcs[IEEE80211_HT_MCS_MASK_LEN];
        } control[IEEE80211_NUM_BANDS];
 };
 /**
index d49928ba5d09fa379fd5db91ea173cfe08d57475..520eb4c5e5a2827464988d9658cb6da22ee4cd05 100644 (file)
@@ -851,6 +851,21 @@ struct ieee80211_channel_switch {
        u8 count;
 };
 
+/**
+ * enum ieee80211_vif_flags - virtual interface flags
+ *
+ * @IEEE80211_VIF_BEACON_FILTER: the device performs beacon filtering
+ *     on this virtual interface to avoid unnecessary CPU wakeups
+ * @IEEE80211_VIF_SUPPORTS_CQM_RSSI: the device can do connection quality
+ *     monitoring on this virtual interface -- i.e. it can monitor
+ *     connection quality related parameters, such as the RSSI level and
+ *     provide notifications if configured trigger levels are reached.
+ */
+enum ieee80211_vif_flags {
+       IEEE80211_VIF_BEACON_FILTER             = BIT(0),
+       IEEE80211_VIF_SUPPORTS_CQM_RSSI         = BIT(1),
+};
+
 /**
  * struct ieee80211_vif - per-interface data
  *
@@ -863,6 +878,10 @@ struct ieee80211_channel_switch {
  * @addr: address of this interface
  * @p2p: indicates whether this AP or STA interface is a p2p
  *     interface, i.e. a GO or p2p-sta respectively
+ * @driver_flags: flags/capabilities the driver has for this interface,
+ *     these need to be set (or cleared) when the interface is added
+ *     or, if supported by the driver, the interface type is changed
+ *     at runtime, mac80211 will never touch this field
  * @drv_priv: data area for driver use, will always be aligned to
  *     sizeof(void *).
  */
@@ -871,6 +890,7 @@ struct ieee80211_vif {
        struct ieee80211_bss_conf bss_conf;
        u8 addr[ETH_ALEN];
        bool p2p;
+       u32 driver_flags;
        /* must be last */
        u8 drv_priv[0] __attribute__((__aligned__(sizeof(void *))));
 };
@@ -1079,10 +1099,6 @@ enum sta_notify_cmd {
  * @IEEE80211_HW_MFP_CAPABLE:
  *     Hardware supports management frame protection (MFP, IEEE 802.11w).
  *
- * @IEEE80211_HW_BEACON_FILTER:
- *     Hardware supports dropping of irrelevant beacon frames to
- *     avoid waking up cpu.
- *
  * @IEEE80211_HW_SUPPORTS_STATIC_SMPS:
  *     Hardware supports static spatial multiplexing powersave,
  *     ie. can turn off all but one chain even on HT connections
@@ -1108,11 +1124,6 @@ enum sta_notify_cmd {
  *      When this flag is set, signaling beacon-loss will cause an immediate
  *      change to disassociated state.
  *
- * @IEEE80211_HW_SUPPORTS_CQM_RSSI:
- *     Hardware can do connection quality monitoring - i.e. it can monitor
- *     connection quality related parameters, such as the RSSI level and
- *     provide notifications if configured trigger levels are reached.
- *
  * @IEEE80211_HW_NEED_DTIM_PERIOD:
  *     This device needs to know the DTIM period for the BSS before
  *     associating.
@@ -1150,13 +1161,13 @@ enum ieee80211_hw_flags {
        IEEE80211_HW_PS_NULLFUNC_STACK                  = 1<<11,
        IEEE80211_HW_SUPPORTS_DYNAMIC_PS                = 1<<12,
        IEEE80211_HW_MFP_CAPABLE                        = 1<<13,
-       IEEE80211_HW_BEACON_FILTER                      = 1<<14,
+       /* reuse bit 14 */
        IEEE80211_HW_SUPPORTS_STATIC_SMPS               = 1<<15,
        IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS              = 1<<16,
        IEEE80211_HW_SUPPORTS_UAPSD                     = 1<<17,
        IEEE80211_HW_REPORTS_TX_ACK_STATUS              = 1<<18,
        IEEE80211_HW_CONNECTION_MONITOR                 = 1<<19,
-       IEEE80211_HW_SUPPORTS_CQM_RSSI                  = 1<<20,
+       /* reuse bit 20 */
        IEEE80211_HW_SUPPORTS_PER_STA_GTK               = 1<<21,
        IEEE80211_HW_AP_LINK_PS                         = 1<<22,
        IEEE80211_HW_TX_AMPDU_SETUP_IN_HW               = 1<<23,
@@ -1446,8 +1457,8 @@ void ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb);
  * way the host will only receive beacons where some relevant information
  * (for example ERP protection or WMM settings) have changed.
  *
- * Beacon filter support is advertised with the %IEEE80211_HW_BEACON_FILTER
- * hardware capability. The driver needs to enable beacon filter support
+ * Beacon filter support is advertised with the %IEEE80211_VIF_BEACON_FILTER
+ * interface capability. The driver needs to enable beacon filter support
  * whenever power save is enabled, that is %IEEE80211_CONF_PS is set. When
  * power save is enabled, the stack will not check for beacon loss and the
  * driver needs to notify about loss of beacons with ieee80211_beacon_loss().
@@ -3316,7 +3327,7 @@ struct sk_buff *ieee80211_ap_probereq_get(struct ieee80211_hw *hw,
  *
  * @vif: &struct ieee80211_vif pointer from the add_interface callback.
  *
- * When beacon filtering is enabled with %IEEE80211_HW_BEACON_FILTER and
+ * When beacon filtering is enabled with %IEEE80211_VIF_BEACON_FILTER and
  * %IEEE80211_CONF_PS is set, the driver needs to inform whenever the
  * hardware is not receiving beacons with this function.
  */
@@ -3327,7 +3338,7 @@ void ieee80211_beacon_loss(struct ieee80211_vif *vif);
  *
  * @vif: &struct ieee80211_vif pointer from the add_interface callback.
  *
- * When beacon filtering is enabled with %IEEE80211_HW_BEACON_FILTER, and
+ * When beacon filtering is enabled with %IEEE80211_VIF_BEACON_FILTER, and
  * %IEEE80211_CONF_PS and %IEEE80211_HW_CONNECTION_MONITOR are set, the driver
  * needs to inform if the connection to the AP has been lost.
  *
@@ -3397,7 +3408,7 @@ void ieee80211_enable_dyn_ps(struct ieee80211_vif *vif);
  * @rssi_event: the RSSI trigger event type
  * @gfp: context flags
  *
- * When the %IEEE80211_HW_SUPPORTS_CQM_RSSI is set, and a connection quality
+ * When the %IEEE80211_VIF_SUPPORTS_CQM_RSSI is set, and a connection quality
  * monitoring is configured with an rssi threshold, the driver will inform
  * whenever the rssi level reaches the threshold.
  */
@@ -3540,6 +3551,7 @@ struct ieee80211_tx_rate_control {
        bool rts, short_preamble;
        u8 max_rate_idx;
        u32 rate_idx_mask;
+       u8 rate_idx_mcs_mask[IEEE80211_HT_MCS_MASK_LEN];
        bool bss;
 };
 
index 2be95e2626c0a364f7c7a8858503971be5428aff..276094b91d7ced880477730fd487f162cf5b4a6e 100644 (file)
 #define NCI_DISC_MAP_MODE_POLL                                 0x01
 #define NCI_DISC_MAP_MODE_LISTEN                               0x02
 
+/* NCI Discover Notification Type */
+#define NCI_DISCOVER_NTF_TYPE_LAST                             0x00
+#define NCI_DISCOVER_NTF_TYPE_LAST_NFCC                                0x01
+#define NCI_DISCOVER_NTF_TYPE_MORE                             0x02
+
 /* NCI Deactivation Type */
 #define NCI_DEACTIVATE_TYPE_IDLE_MODE                          0x00
 #define NCI_DEACTIVATE_TYPE_SLEEP_MODE                         0x01
@@ -207,6 +212,13 @@ struct nci_rf_disc_cmd {
        struct disc_config              disc_configs[NCI_MAX_NUM_RF_CONFIGS];
 } __packed;
 
+#define NCI_OP_RF_DISCOVER_SELECT_CMD  nci_opcode_pack(NCI_GID_RF_MGMT, 0x04)
+struct nci_rf_discover_select_cmd {
+       __u8    rf_discovery_id;
+       __u8    rf_protocol;
+       __u8    rf_interface;
+} __packed;
+
 #define NCI_OP_RF_DEACTIVATE_CMD       nci_opcode_pack(NCI_GID_RF_MGMT, 0x06)
 struct nci_rf_deactivate_cmd {
        __u8    type;
@@ -244,6 +256,8 @@ struct nci_core_init_rsp_2 {
 
 #define NCI_OP_RF_DISCOVER_RSP         nci_opcode_pack(NCI_GID_RF_MGMT, 0x03)
 
+#define NCI_OP_RF_DISCOVER_SELECT_RSP  nci_opcode_pack(NCI_GID_RF_MGMT, 0x04)
+
 #define NCI_OP_RF_DEACTIVATE_RSP       nci_opcode_pack(NCI_GID_RF_MGMT, 0x06)
 
 /* --------------------------- */
@@ -260,13 +274,15 @@ struct nci_core_conn_credit_ntf {
        struct conn_credit_entry        conn_entries[NCI_MAX_NUM_CONN];
 } __packed;
 
+#define NCI_OP_CORE_GENERIC_ERROR_NTF  nci_opcode_pack(NCI_GID_CORE, 0x07)
+
 #define NCI_OP_CORE_INTF_ERROR_NTF     nci_opcode_pack(NCI_GID_CORE, 0x08)
 struct nci_core_intf_error_ntf {
        __u8    status;
        __u8    conn_id;
 } __packed;
 
-#define NCI_OP_RF_INTF_ACTIVATED_NTF   nci_opcode_pack(NCI_GID_RF_MGMT, 0x05)
+#define NCI_OP_RF_DISCOVER_NTF         nci_opcode_pack(NCI_GID_RF_MGMT, 0x03)
 struct rf_tech_specific_params_nfca_poll {
        __u16   sens_res;
        __u8    nfcid1_len;     /* 0, 4, 7, or 10 Bytes */
@@ -275,11 +291,43 @@ struct rf_tech_specific_params_nfca_poll {
        __u8    sel_res;
 } __packed;
 
+struct rf_tech_specific_params_nfcb_poll {
+       __u8    sensb_res_len;
+       __u8    sensb_res[12];  /* 11 or 12 Bytes */
+} __packed;
+
+struct rf_tech_specific_params_nfcf_poll {
+       __u8    bit_rate;
+       __u8    sensf_res_len;
+       __u8    sensf_res[18];  /* 16 or 18 Bytes */
+} __packed;
+
+struct nci_rf_discover_ntf {
+       __u8    rf_discovery_id;
+       __u8    rf_protocol;
+       __u8    rf_tech_and_mode;
+       __u8    rf_tech_specific_params_len;
+
+       union {
+               struct rf_tech_specific_params_nfca_poll nfca_poll;
+               struct rf_tech_specific_params_nfcb_poll nfcb_poll;
+               struct rf_tech_specific_params_nfcf_poll nfcf_poll;
+       } rf_tech_specific_params;
+
+       __u8    ntf_type;
+} __packed;
+
+#define NCI_OP_RF_INTF_ACTIVATED_NTF   nci_opcode_pack(NCI_GID_RF_MGMT, 0x05)
 struct activation_params_nfca_poll_iso_dep {
        __u8    rats_res_len;
        __u8    rats_res[20];
 };
 
+struct activation_params_nfcb_poll_iso_dep {
+       __u8    attrib_res_len;
+       __u8    attrib_res[50];
+};
+
 struct nci_rf_intf_activated_ntf {
        __u8    rf_discovery_id;
        __u8    rf_interface;
@@ -291,6 +339,8 @@ struct nci_rf_intf_activated_ntf {
 
        union {
                struct rf_tech_specific_params_nfca_poll nfca_poll;
+               struct rf_tech_specific_params_nfcb_poll nfcb_poll;
+               struct rf_tech_specific_params_nfcf_poll nfcf_poll;
        } rf_tech_specific_params;
 
        __u8    data_exch_rf_tech_and_mode;
@@ -300,6 +350,7 @@ struct nci_rf_intf_activated_ntf {
 
        union {
                struct activation_params_nfca_poll_iso_dep nfca_poll_iso_dep;
+               struct activation_params_nfcb_poll_iso_dep nfcb_poll_iso_dep;
        } activation_params;
 
 } __packed;
index bccd89e9d4c2702851895f4ce9f1ff14729f2ed5..86fee8b5c65c54f05471ad07969596710758487c 100644 (file)
 #include <net/nfc/nfc.h>
 #include <net/nfc/nci.h>
 
-/* NCI device state */
-enum {
+/* NCI device flags */
+enum nci_flag {
        NCI_INIT,
        NCI_UP,
+       NCI_DATA_EXCHANGE,
+       NCI_DATA_EXCHANGE_TO,
+};
+
+/* NCI device states */
+enum nci_state {
+       NCI_IDLE,
        NCI_DISCOVERY,
+       NCI_W4_ALL_DISCOVERIES,
+       NCI_W4_HOST_SELECT,
        NCI_POLL_ACTIVE,
-       NCI_DATA_EXCHANGE,
 };
 
 /* NCI timeouts */
 #define NCI_RESET_TIMEOUT                      5000
 #define NCI_INIT_TIMEOUT                       5000
 #define NCI_RF_DISC_TIMEOUT                    5000
-#define NCI_RF_DEACTIVATE_TIMEOUT              5000
+#define NCI_RF_DISC_SELECT_TIMEOUT             5000
+#define NCI_RF_DEACTIVATE_TIMEOUT              30000
 #define NCI_CMD_TIMEOUT                                5000
+#define NCI_DATA_TIMEOUT                       700
 
 struct nci_dev;
 
@@ -59,6 +69,7 @@ struct nci_ops {
 };
 
 #define NCI_MAX_SUPPORTED_RF_INTERFACES                4
+#define NCI_MAX_DISCOVERED_TARGETS             10
 
 /* NCI Core structures */
 struct nci_dev {
@@ -68,12 +79,14 @@ struct nci_dev {
        int                     tx_headroom;
        int                     tx_tailroom;
 
+       atomic_t                state;
        unsigned long           flags;
 
        atomic_t                cmd_cnt;
        atomic_t                credits_cnt;
 
        struct timer_list       cmd_timer;
+       struct timer_list       data_timer;
 
        struct workqueue_struct *cmd_wq;
        struct work_struct      cmd_work;
@@ -96,9 +109,11 @@ struct nci_dev {
        void                    *driver_data;
 
        __u32                   poll_prots;
-       __u32                   target_available_prots;
        __u32                   target_active_prot;
 
+       struct nfc_target       targets[NCI_MAX_DISCOVERED_TARGETS];
+       int                     n_targets;
+
        /* received during NCI_OP_CORE_RESET_RSP */
        __u8                    nci_ver;
 
@@ -169,6 +184,7 @@ int nci_send_cmd(struct nci_dev *ndev, __u16 opcode, __u8 plen, void *payload);
 int nci_send_data(struct nci_dev *ndev, __u8 conn_id, struct sk_buff *skb);
 void nci_data_exchange_complete(struct nci_dev *ndev, struct sk_buff *skb,
                                int err);
+void nci_clear_target_list(struct nci_dev *ndev);
 
 /* ----- NCI requests ----- */
 #define NCI_REQ_DONE           0
index 8696b773a6951c881cd202738a6cfbbcc7919714..d253278e5a96e9af9ca8775b446f8811c807770d 100644 (file)
@@ -24,6 +24,7 @@
 #ifndef __NET_NFC_H
 #define __NET_NFC_H
 
+#include <linux/nfc.h>
 #include <linux/device.h>
 #include <linux/skbuff.h>
 
@@ -65,7 +66,6 @@ struct nfc_ops {
 
 #define NFC_TARGET_IDX_ANY -1
 #define NFC_MAX_GT_LEN 48
-#define NFC_MAX_NFCID1_LEN 10
 
 struct nfc_target {
        u32 idx;
@@ -73,7 +73,11 @@ struct nfc_target {
        u16 sens_res;
        u8 sel_res;
        u8 nfcid1_len;
-       u8 nfcid1[NFC_MAX_NFCID1_LEN];
+       u8 nfcid1[NFC_NFCID1_MAXSIZE];
+       u8 sensb_res_len;
+       u8 sensb_res[NFC_SENSB_RES_MAXSIZE];
+       u8 sensf_res_len;
+       u8 sensf_res[NFC_SENSF_RES_MAXSIZE];
 };
 
 struct nfc_genl_data {
@@ -83,7 +87,6 @@ struct nfc_genl_data {
 
 struct nfc_dev {
        unsigned idx;
-       unsigned target_idx;
        struct nfc_target *targets;
        int n_targets;
        int targets_generation;
index 296620d6ca0c0c2388f05ffaffd9c5d832eb3cbd..d15ba0d0de9437ee5911775081f29834582fb0a4 100644 (file)
@@ -776,12 +776,10 @@ static int sta_apply_parameters(struct ieee80211_local *local,
 
                if (set & BIT(NL80211_STA_FLAG_AUTHENTICATED) &&
                    !test_sta_flag(sta, WLAN_STA_AUTH)) {
-                       ret = sta_info_move_state_checked(sta,
-                                       IEEE80211_STA_AUTH);
+                       ret = sta_info_move_state(sta, IEEE80211_STA_AUTH);
                        if (ret)
                                return ret;
-                       ret = sta_info_move_state_checked(sta,
-                                       IEEE80211_STA_ASSOC);
+                       ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC);
                        if (ret)
                                return ret;
                }
@@ -789,11 +787,9 @@ static int sta_apply_parameters(struct ieee80211_local *local,
 
        if (mask & BIT(NL80211_STA_FLAG_AUTHORIZED)) {
                if (set & BIT(NL80211_STA_FLAG_AUTHORIZED))
-                       ret = sta_info_move_state_checked(sta,
-                                       IEEE80211_STA_AUTHORIZED);
+                       ret = sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED);
                else if (test_sta_flag(sta, WLAN_STA_AUTHORIZED))
-                       ret = sta_info_move_state_checked(sta,
-                                       IEEE80211_STA_ASSOC);
+                       ret = sta_info_move_state(sta, IEEE80211_STA_ASSOC);
                if (ret)
                        return ret;
        }
@@ -805,12 +801,10 @@ static int sta_apply_parameters(struct ieee80211_local *local,
 
                if (!(set & BIT(NL80211_STA_FLAG_AUTHENTICATED)) &&
                    test_sta_flag(sta, WLAN_STA_AUTH)) {
-                       ret = sta_info_move_state_checked(sta,
-                                       IEEE80211_STA_AUTH);
+                       ret = sta_info_move_state(sta, IEEE80211_STA_AUTH);
                        if (ret)
                                return ret;
-                       ret = sta_info_move_state_checked(sta,
-                                       IEEE80211_STA_NONE);
+                       ret = sta_info_move_state(sta, IEEE80211_STA_NONE);
                        if (ret)
                                return ret;
                }
@@ -944,8 +938,8 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev,
        if (!sta)
                return -ENOMEM;
 
-       sta_info_move_state(sta, IEEE80211_STA_AUTH);
-       sta_info_move_state(sta, IEEE80211_STA_ASSOC);
+       sta_info_pre_move_state(sta, IEEE80211_STA_AUTH);
+       sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC);
 
        err = sta_apply_parameters(local, sta, params);
        if (err) {
@@ -1001,6 +995,7 @@ static int ieee80211_change_station(struct wiphy *wiphy,
        struct ieee80211_local *local = wiphy_priv(wiphy);
        struct sta_info *sta;
        struct ieee80211_sub_if_data *vlansdata;
+       int err;
 
        mutex_lock(&local->sta_mtx);
 
@@ -1040,7 +1035,11 @@ static int ieee80211_change_station(struct wiphy *wiphy,
                ieee80211_send_layer2_update(sta);
        }
 
-       sta_apply_parameters(local, sta, params);
+       err = sta_apply_parameters(local, sta, params);
+       if (err) {
+               mutex_unlock(&local->sta_mtx);
+               return err;
+       }
 
        if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && params->supported_rates)
                rate_control_rate_init(sta);
@@ -1341,6 +1340,8 @@ static int ieee80211_update_mesh_config(struct wiphy *wiphy,
                conf->dot11MeshHWMPRannInterval =
                        nconf->dot11MeshHWMPRannInterval;
        }
+       if (_chg_mesh_attr(NL80211_MESHCONF_FORWARDING, mask))
+               conf->dot11MeshForwarding = nconf->dot11MeshForwarding;
        return 0;
 }
 
@@ -1868,7 +1869,6 @@ static int ieee80211_set_cqm_rssi_config(struct wiphy *wiphy,
                                         s32 rssi_thold, u32 rssi_hyst)
 {
        struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
-       struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
        struct ieee80211_vif *vif = &sdata->vif;
        struct ieee80211_bss_conf *bss_conf = &vif->bss_conf;
 
@@ -1879,14 +1879,9 @@ static int ieee80211_set_cqm_rssi_config(struct wiphy *wiphy,
        bss_conf->cqm_rssi_thold = rssi_thold;
        bss_conf->cqm_rssi_hyst = rssi_hyst;
 
-       if (!(local->hw.flags & IEEE80211_HW_SUPPORTS_CQM_RSSI)) {
-               if (sdata->vif.type != NL80211_IFTYPE_STATION)
-                       return -EOPNOTSUPP;
-               return 0;
-       }
-
        /* tell the driver upon association, unless already associated */
-       if (sdata->u.mgd.associated)
+       if (sdata->u.mgd.associated &&
+           sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI)
                ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_CQM);
 
        return 0;
@@ -1907,8 +1902,11 @@ static int ieee80211_set_bitrate_mask(struct wiphy *wiphy,
                        return ret;
        }
 
-       for (i = 0; i < IEEE80211_NUM_BANDS; i++)
+       for (i = 0; i < IEEE80211_NUM_BANDS; i++) {
                sdata->rc_rateidx_mask[i] = mask->control[i].legacy;
+               memcpy(sdata->rc_rateidx_mcs_mask[i], mask->control[i].mcs,
+                      sizeof(mask->control[i].mcs));
+       }
 
        return 0;
 }
index 889c3e93e0f4a9df2a1a2007799f2a2f13e8a496..d1f7abddb182e1fe1f780af0d19e1948ca3c70e6 100644 (file)
@@ -20,23 +20,29 @@ __ieee80211_get_channel_mode(struct ieee80211_local *local,
                if (!ieee80211_sdata_running(sdata))
                        continue;
 
-               if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
+               switch (sdata->vif.type) {
+               case NL80211_IFTYPE_MONITOR:
                        continue;
-
-               if (sdata->vif.type == NL80211_IFTYPE_STATION &&
-                   !sdata->u.mgd.associated)
-                       continue;
-
-               if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
+               case NL80211_IFTYPE_STATION:
+                       if (!sdata->u.mgd.associated)
+                               continue;
+                       break;
+               case NL80211_IFTYPE_ADHOC:
                        if (!sdata->u.ibss.ssid_len)
                                continue;
                        if (!sdata->u.ibss.fixed_channel)
                                return CHAN_MODE_HOPPING;
-               }
-
-               if (sdata->vif.type == NL80211_IFTYPE_AP &&
-                   !sdata->u.ap.beacon)
+                       break;
+               case NL80211_IFTYPE_AP_VLAN:
+                       /* will also have _AP interface */
                        continue;
+               case NL80211_IFTYPE_AP:
+                       if (!sdata->u.ap.beacon)
+                               continue;
+                       break;
+               default:
+                       break;
+               }
 
                return CHAN_MODE_FIXED;
        }
index 90baea53e7c56572df7562d201237fed48ef49e9..affe64be909211b124c3f9c232517838bc32f816 100644 (file)
@@ -247,8 +247,6 @@ static ssize_t hwflags_read(struct file *file, char __user *user_buf,
                sf += snprintf(buf + sf, mxln - sf, "SUPPORTS_DYNAMIC_PS\n");
        if (local->hw.flags & IEEE80211_HW_MFP_CAPABLE)
                sf += snprintf(buf + sf, mxln - sf, "MFP_CAPABLE\n");
-       if (local->hw.flags & IEEE80211_HW_BEACON_FILTER)
-               sf += snprintf(buf + sf, mxln - sf, "BEACON_FILTER\n");
        if (local->hw.flags & IEEE80211_HW_SUPPORTS_STATIC_SMPS)
                sf += snprintf(buf + sf, mxln - sf, "SUPPORTS_STATIC_SMPS\n");
        if (local->hw.flags & IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS)
@@ -259,8 +257,6 @@ static ssize_t hwflags_read(struct file *file, char __user *user_buf,
                sf += snprintf(buf + sf, mxln - sf, "REPORTS_TX_ACK_STATUS\n");
        if (local->hw.flags & IEEE80211_HW_CONNECTION_MONITOR)
                sf += snprintf(buf + sf, mxln - sf, "CONNECTION_MONITOR\n");
-       if (local->hw.flags & IEEE80211_HW_SUPPORTS_CQM_RSSI)
-               sf += snprintf(buf + sf, mxln - sf, "SUPPORTS_CQM_RSSI\n");
        if (local->hw.flags & IEEE80211_HW_SUPPORTS_PER_STA_GTK)
                sf += snprintf(buf + sf, mxln - sf, "SUPPORTS_PER_STA_GTK\n");
        if (local->hw.flags & IEEE80211_HW_AP_LINK_PS)
index 176c08ffb13c50e5f5fa8c212175a8367f09bb97..510ed1dab3c7eb1d9b179451f7f7c68a58a91272 100644 (file)
@@ -87,6 +87,21 @@ static ssize_t ieee80211_if_fmt_##name(                                      \
 #define IEEE80211_IF_FMT_SIZE(name, field)                             \
                IEEE80211_IF_FMT(name, field, "%zd\n")
 
+#define IEEE80211_IF_FMT_HEXARRAY(name, field)                         \
+static ssize_t ieee80211_if_fmt_##name(                                        \
+       const struct ieee80211_sub_if_data *sdata,                      \
+       char *buf, int buflen)                                          \
+{                                                                      \
+       char *p = buf;                                                  \
+       int i;                                                          \
+       for (i = 0; i < sizeof(sdata->field); i++) {                    \
+               p += scnprintf(p, buflen + buf - p, "%.2x ",            \
+                                sdata->field[i]);                      \
+       }                                                               \
+       p += scnprintf(p, buflen + buf - p, "\n");                      \
+       return p - buf;                                                 \
+}
+
 #define IEEE80211_IF_FMT_ATOMIC(name, field)                           \
 static ssize_t ieee80211_if_fmt_##name(                                        \
        const struct ieee80211_sub_if_data *sdata,                      \
@@ -148,6 +163,11 @@ IEEE80211_IF_FILE(rc_rateidx_mask_2ghz, rc_rateidx_mask[IEEE80211_BAND_2GHZ],
                  HEX);
 IEEE80211_IF_FILE(rc_rateidx_mask_5ghz, rc_rateidx_mask[IEEE80211_BAND_5GHZ],
                  HEX);
+IEEE80211_IF_FILE(rc_rateidx_mcs_mask_2ghz,
+                 rc_rateidx_mcs_mask[IEEE80211_BAND_2GHZ], HEXARRAY);
+IEEE80211_IF_FILE(rc_rateidx_mcs_mask_5ghz,
+                 rc_rateidx_mcs_mask[IEEE80211_BAND_5GHZ], HEXARRAY);
+
 IEEE80211_IF_FILE(flags, flags, HEX);
 IEEE80211_IF_FILE(state, state, LHEX);
 IEEE80211_IF_FILE(channel_type, vif.bss_conf.channel_type, DEC);
@@ -422,6 +442,7 @@ IEEE80211_IF_FILE(dot11MeshGateAnnouncementProtocol,
                u.mesh.mshcfg.dot11MeshGateAnnouncementProtocol, DEC);
 IEEE80211_IF_FILE(dot11MeshHWMPRannInterval,
                u.mesh.mshcfg.dot11MeshHWMPRannInterval, DEC);
+IEEE80211_IF_FILE(dot11MeshForwarding, u.mesh.mshcfg.dot11MeshForwarding, DEC);
 #endif
 
 
@@ -441,6 +462,8 @@ static void add_sta_files(struct ieee80211_sub_if_data *sdata)
        DEBUGFS_ADD(channel_type);
        DEBUGFS_ADD(rc_rateidx_mask_2ghz);
        DEBUGFS_ADD(rc_rateidx_mask_5ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz);
 
        DEBUGFS_ADD(bssid);
        DEBUGFS_ADD(aid);
@@ -458,6 +481,8 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata)
        DEBUGFS_ADD(channel_type);
        DEBUGFS_ADD(rc_rateidx_mask_2ghz);
        DEBUGFS_ADD(rc_rateidx_mask_5ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz);
 
        DEBUGFS_ADD(num_sta_authorized);
        DEBUGFS_ADD(num_sta_ps);
@@ -468,6 +493,12 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata)
 
 static void add_ibss_files(struct ieee80211_sub_if_data *sdata)
 {
+       DEBUGFS_ADD(channel_type);
+       DEBUGFS_ADD(rc_rateidx_mask_2ghz);
+       DEBUGFS_ADD(rc_rateidx_mask_5ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz);
+
        DEBUGFS_ADD_MODE(tsf, 0600);
 }
 
@@ -479,6 +510,8 @@ static void add_wds_files(struct ieee80211_sub_if_data *sdata)
        DEBUGFS_ADD(channel_type);
        DEBUGFS_ADD(rc_rateidx_mask_2ghz);
        DEBUGFS_ADD(rc_rateidx_mask_5ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz);
 
        DEBUGFS_ADD(peer);
 }
@@ -491,6 +524,8 @@ static void add_vlan_files(struct ieee80211_sub_if_data *sdata)
        DEBUGFS_ADD(channel_type);
        DEBUGFS_ADD(rc_rateidx_mask_2ghz);
        DEBUGFS_ADD(rc_rateidx_mask_5ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz);
+       DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz);
 }
 
 static void add_monitor_files(struct ieee80211_sub_if_data *sdata)
index 2406b3e7393fb042d8ec82b417c7e985a0801fa2..c8383712fdeca6f679944184cea5b42c58c44acb 100644 (file)
@@ -63,14 +63,15 @@ static ssize_t sta_flags_read(struct file *file, char __user *userbuf,
        test_sta_flag(sta, WLAN_STA_##flg) ? #flg "\n" : ""
 
        int res = scnprintf(buf, sizeof(buf),
-                           "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+                           "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
                            TEST(AUTH), TEST(ASSOC), TEST(PS_STA),
                            TEST(PS_DRIVER), TEST(AUTHORIZED),
                            TEST(SHORT_PREAMBLE),
                            TEST(WME), TEST(WDS), TEST(CLEAR_PS_FILT),
                            TEST(MFP), TEST(BLOCK_BA), TEST(PSPOLL),
                            TEST(UAPSD), TEST(SP), TEST(TDLS_PEER),
-                           TEST(TDLS_PEER_AUTH));
+                           TEST(TDLS_PEER_AUTH), TEST(4ADDR_EVENT),
+                           TEST(INSERTED));
 #undef TEST
        return simple_read_from_buffer(userbuf, count, ppos, buf, res);
 }
index a4643969a13b22524a7f90f0304c18d917f025be..7b3a0b0aa246cf5ad9f57fea7fc196959c2e9ef3 100644 (file)
 #define IEEE80211_IBSS_MAX_STA_ENTRIES 128
 
 
-static void ieee80211_rx_mgmt_auth_ibss(struct ieee80211_sub_if_data *sdata,
-                                       struct ieee80211_mgmt *mgmt,
-                                       size_t len)
-{
-       u16 auth_alg, auth_transaction;
-
-       lockdep_assert_held(&sdata->u.ibss.mtx);
-
-       if (len < 24 + 6)
-               return;
-
-       auth_alg = le16_to_cpu(mgmt->u.auth.auth_alg);
-       auth_transaction = le16_to_cpu(mgmt->u.auth.auth_transaction);
-
-       /*
-        * IEEE 802.11 standard does not require authentication in IBSS
-        * networks and most implementations do not seem to use it.
-        * However, try to reply to authentication attempts if someone
-        * has actually implemented this.
-        */
-       if (auth_alg == WLAN_AUTH_OPEN && auth_transaction == 1)
-               ieee80211_send_auth(sdata, 2, WLAN_AUTH_OPEN, NULL, 0,
-                                   sdata->u.ibss.bssid, NULL, 0, 0);
-}
-
 static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
                                      const u8 *bssid, const int beacon_int,
                                      struct ieee80211_channel *chan,
@@ -276,7 +251,8 @@ static void ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
                                  cbss->tsf);
 }
 
-static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta)
+static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta,
+                                                 bool auth)
        __acquires(RCU)
 {
        struct ieee80211_sub_if_data *sdata = sta->sdata;
@@ -290,22 +266,31 @@ static struct sta_info *ieee80211_ibss_finish_sta(struct sta_info *sta)
                    addr, sdata->name);
 #endif
 
-       sta_info_move_state(sta, IEEE80211_STA_AUTH);
-       sta_info_move_state(sta, IEEE80211_STA_ASSOC);
-       sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED);
+       sta_info_pre_move_state(sta, IEEE80211_STA_AUTH);
+       sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC);
+       sta_info_pre_move_state(sta, IEEE80211_STA_AUTHORIZED);
 
        rate_control_rate_init(sta);
 
        /* If it fails, maybe we raced another insertion? */
        if (sta_info_insert_rcu(sta))
                return sta_info_get(sdata, addr);
+       if (auth) {
+#ifdef CONFIG_MAC80211_IBSS_DEBUG
+               printk(KERN_DEBUG "TX Auth SA=%pM DA=%pM BSSID=%pM"
+                      "(auth_transaction=1)\n", sdata->vif.addr,
+                      sdata->u.ibss.bssid, addr);
+#endif
+               ieee80211_send_auth(sdata, 1, WLAN_AUTH_OPEN, NULL, 0,
+                                   addr, sdata->u.ibss.bssid, NULL, 0, 0);
+       }
        return sta;
 }
 
 static struct sta_info *
 ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,
                       const u8 *bssid, const u8 *addr,
-                      u32 supp_rates)
+                      u32 supp_rates, bool auth)
        __acquires(RCU)
 {
        struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
@@ -347,7 +332,42 @@ ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,
        sta->sta.supp_rates[band] = supp_rates |
                        ieee80211_mandatory_rates(local, band);
 
-       return ieee80211_ibss_finish_sta(sta);
+       return ieee80211_ibss_finish_sta(sta, auth);
+}
+
+static void ieee80211_rx_mgmt_auth_ibss(struct ieee80211_sub_if_data *sdata,
+                                       struct ieee80211_mgmt *mgmt,
+                                       size_t len)
+{
+       u16 auth_alg, auth_transaction;
+
+       lockdep_assert_held(&sdata->u.ibss.mtx);
+
+       if (len < 24 + 6)
+               return;
+
+       auth_alg = le16_to_cpu(mgmt->u.auth.auth_alg);
+       auth_transaction = le16_to_cpu(mgmt->u.auth.auth_transaction);
+
+       if (auth_alg != WLAN_AUTH_OPEN || auth_transaction != 1)
+               return;
+#ifdef CONFIG_MAC80211_IBSS_DEBUG
+       printk(KERN_DEBUG "%s: RX Auth SA=%pM DA=%pM BSSID=%pM."
+              "(auth_transaction=%d)\n",
+              sdata->name, mgmt->sa, mgmt->da, mgmt->bssid, auth_transaction);
+#endif
+       sta_info_destroy_addr(sdata, mgmt->sa);
+       ieee80211_ibss_add_sta(sdata, mgmt->bssid, mgmt->sa, 0, false);
+       rcu_read_unlock();
+
+       /*
+        * IEEE 802.11 standard does not require authentication in IBSS
+        * networks and most implementations do not seem to use it.
+        * However, try to reply to authentication attempts if someone
+        * has actually implemented this.
+        */
+       ieee80211_send_auth(sdata, 2, WLAN_AUTH_OPEN, NULL, 0,
+                           mgmt->sa, sdata->u.ibss.bssid, NULL, 0, 0);
 }
 
 static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
@@ -412,7 +432,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
                        } else {
                                rcu_read_unlock();
                                sta = ieee80211_ibss_add_sta(sdata, mgmt->bssid,
-                                               mgmt->sa, supp_rates);
+                                               mgmt->sa, supp_rates, true);
                        }
                }
 
@@ -540,7 +560,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
                ieee80211_sta_join_ibss(sdata, bss);
                supp_rates = ieee80211_sta_get_rates(local, elems, band);
                ieee80211_ibss_add_sta(sdata, mgmt->bssid, mgmt->sa,
-                                      supp_rates);
+                                      supp_rates, true);
                rcu_read_unlock();
        }
 
@@ -643,8 +663,7 @@ static void ieee80211_sta_merge_ibss(struct ieee80211_sub_if_data *sdata)
               "IBSS networks with same SSID (merge)\n", sdata->name);
 
        ieee80211_request_internal_scan(sdata,
-                       ifibss->ssid, ifibss->ssid_len,
-                       ifibss->fixed_channel ? ifibss->channel : NULL);
+                       ifibss->ssid, ifibss->ssid_len, NULL);
 }
 
 static void ieee80211_sta_create_ibss(struct ieee80211_sub_if_data *sdata)
@@ -855,9 +874,6 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
        size_t baselen;
        struct ieee802_11_elems elems;
 
-       if (memcmp(mgmt->da, sdata->vif.addr, ETH_ALEN))
-               return; /* ignore ProbeResp to foreign address */
-
        baselen = (u8 *) mgmt->u.probe_resp.variable - (u8 *) mgmt;
        if (baselen > len)
                return;
@@ -945,7 +961,7 @@ void ieee80211_ibss_work(struct ieee80211_sub_if_data *sdata)
                list_del(&sta->list);
                spin_unlock_bh(&ifibss->incomplete_lock);
 
-               ieee80211_ibss_finish_sta(sta);
+               ieee80211_ibss_finish_sta(sta, true);
                rcu_read_unlock();
                spin_lock_bh(&ifibss->incomplete_lock);
        }
index 2f0642d9e154672da4959bfe4c3e3d828fc3cdac..d47e8c110b16d07eef2211661504ec294278c0d8 100644 (file)
@@ -646,6 +646,7 @@ struct ieee80211_sub_if_data {
 
        /* bitmap of allowed (non-MCS) rate indexes for rate control */
        u32 rc_rateidx_mask[IEEE80211_NUM_BANDS];
+       u8  rc_rateidx_mcs_mask[IEEE80211_NUM_BANDS][IEEE80211_HT_MCS_MASK_LEN];
 
        union {
                struct ieee80211_if_ap ap;
@@ -1396,7 +1397,7 @@ void ieee80211_add_pending_skbs_fn(struct ieee80211_local *local,
 void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
                         u16 transaction, u16 auth_alg,
                         u8 *extra, size_t extra_len, const u8 *bssid,
-                        const u8 *key, u8 key_len, u8 key_idx);
+                        const u8 *da, const u8 *key, u8 key_len, u8 key_idx);
 int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer,
                             const u8 *ie, size_t ie_len,
                             enum ieee80211_band band, u32 rate_mask,
index 01a21c2f6ab37df336f5f69c55f33de4e0a698f3..2efd595b2f7afd66e2930a44d9c61f5340b98131 100644 (file)
@@ -318,9 +318,9 @@ static int ieee80211_do_open(struct net_device *dev, bool coming_up)
                        goto err_del_interface;
                }
 
-               sta_info_move_state(sta, IEEE80211_STA_AUTH);
-               sta_info_move_state(sta, IEEE80211_STA_ASSOC);
-               sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED);
+               sta_info_pre_move_state(sta, IEEE80211_STA_AUTH);
+               sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC);
+               sta_info_pre_move_state(sta, IEEE80211_STA_AUTHORIZED);
 
                res = sta_info_insert(sta);
                if (res) {
@@ -1181,6 +1181,13 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name,
                sband = local->hw.wiphy->bands[i];
                sdata->rc_rateidx_mask[i] =
                        sband ? (1 << sband->n_bitrates) - 1 : 0;
+               if (sband)
+                       memcpy(sdata->rc_rateidx_mcs_mask[i],
+                              sband->ht_cap.mcs.rx_mask,
+                              sizeof(sdata->rc_rateidx_mcs_mask[i]));
+               else
+                       memset(sdata->rc_rateidx_mcs_mask[i], 0,
+                              sizeof(sdata->rc_rateidx_mcs_mask[i]));
        }
 
        /* setup type-dependent data */
index 0a0d94ad9b08374fe90e0f653da4d4b352e8f6c9..6192caadfab99689f5eb3886bf2032adcf14a2f6 100644 (file)
@@ -155,7 +155,8 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
                power = chan->max_power;
        else
                power = local->power_constr_level ?
-                       (chan->max_power - local->power_constr_level) :
+                       min(chan->max_power,
+                               (chan->max_reg_power  - local->power_constr_level)) :
                        chan->max_power;
 
        if (local->user_power_level >= 0)
index 54df1b2bafd2882454bc71b3a018161f0f83e5e3..c27dec904963ceccf94b37d488cdae8d2e875c10 100644 (file)
@@ -575,7 +575,7 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
                        ifmsh->mshstats.dropped_frames_ttl++;
        }
 
-       if (forward) {
+       if (forward && ifmsh->mshcfg.dot11MeshForwarding) {
                u32 preq_id;
                u8 hopcount, flags;
 
index a17251730b9e603097ca8763f3301452168444a7..8806e5ef8ffecebb799504a16c338a2f496991a0 100644 (file)
@@ -96,9 +96,9 @@ static struct sta_info *mesh_plink_alloc(struct ieee80211_sub_if_data *sdata,
        if (!sta)
                return NULL;
 
-       sta_info_move_state(sta, IEEE80211_STA_AUTH);
-       sta_info_move_state(sta, IEEE80211_STA_ASSOC);
-       sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED);
+       sta_info_pre_move_state(sta, IEEE80211_STA_AUTH);
+       sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC);
+       sta_info_pre_move_state(sta, IEEE80211_STA_AUTHORIZED);
 
        set_sta_flag(sta, WLAN_STA_WME);
 
index 295be92f7c7747238ae1ae9204982db8fd264d77..49fd1acd5d15986e1f029a05a55671d11b6d4e23 100644 (file)
@@ -127,7 +127,7 @@ static void run_again(struct ieee80211_if_managed *ifmgd,
 
 void ieee80211_sta_reset_beacon_monitor(struct ieee80211_sub_if_data *sdata)
 {
-       if (sdata->local->hw.flags & IEEE80211_HW_BEACON_FILTER)
+       if (sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER)
                return;
 
        mod_timer(&sdata->u.mgd.bcn_mon_timer,
@@ -547,7 +547,7 @@ static void ieee80211_handle_pwr_constr(struct ieee80211_sub_if_data *sdata,
        if (pwr_constr_elem_len != 1)
                return;
 
-       if ((*pwr_constr_elem <= conf->channel->max_power) &&
+       if ((*pwr_constr_elem <= conf->channel->max_reg_power) &&
            (*pwr_constr_elem != sdata->local->power_constr_level)) {
                sdata->local->power_constr_level = *pwr_constr_elem;
                ieee80211_hw_config(sdata->local, 0);
@@ -1043,7 +1043,7 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata,
        bss_info_changed |= BSS_CHANGED_BSSID;
 
        /* Tell the driver to monitor connection quality (if supported) */
-       if ((local->hw.flags & IEEE80211_HW_SUPPORTS_CQM_RSSI) &&
+       if (sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI &&
            bss_conf->cqm_rssi_thold)
                bss_info_changed |= BSS_CHANGED_CQM;
 
@@ -1587,10 +1587,19 @@ static bool ieee80211_assoc_success(struct ieee80211_work *wk,
                return false;
        }
 
-       sta_info_move_state(sta, IEEE80211_STA_AUTH);
-       sta_info_move_state(sta, IEEE80211_STA_ASSOC);
-       if (!(ifmgd->flags & IEEE80211_STA_CONTROL_PORT))
-               sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED);
+       err = sta_info_move_state(sta, IEEE80211_STA_AUTH);
+       if (!err)
+               err = sta_info_move_state(sta, IEEE80211_STA_ASSOC);
+       if (!err && !(ifmgd->flags & IEEE80211_STA_CONTROL_PORT))
+               err = sta_info_move_state(sta, IEEE80211_STA_AUTHORIZED);
+       if (err) {
+               printk(KERN_DEBUG
+                      "%s: failed to move station %pM to desired state\n",
+                      sdata->name, sta->sta.addr);
+               WARN_ON(__sta_info_destroy(sta));
+               mutex_unlock(&sdata->local->sta_mtx);
+               return false;
+       }
 
        rates = 0;
        basic_rates = 0;
@@ -1882,7 +1891,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
 
        if (bss_conf->cqm_rssi_thold &&
            ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT &&
-           !(local->hw.flags & IEEE80211_HW_SUPPORTS_CQM_RSSI)) {
+           !(sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_CQM_RSSI)) {
                int sig = ifmgd->ave_beacon_signal / 16;
                int last_event = ifmgd->last_cqm_event_signal;
                int thold = bss_conf->cqm_rssi_thold;
index 5a5a7767d541c2a952aecbeefca79125dfe17052..3fef26d8898abd3953e8c0b3fcddfba87436bca2 100644 (file)
@@ -159,7 +159,6 @@ static struct rate_control_ref *rate_control_alloc(const char *name,
        ref = kmalloc(sizeof(struct rate_control_ref), GFP_KERNEL);
        if (!ref)
                goto fail_ref;
-       kref_init(&ref->kref);
        ref->local = local;
        ref->ops = ieee80211_rate_control_ops_get(name);
        if (!ref->ops)
@@ -184,11 +183,8 @@ fail_ref:
        return NULL;
 }
 
-static void rate_control_release(struct kref *kref)
+static void rate_control_free(struct rate_control_ref *ctrl_ref)
 {
-       struct rate_control_ref *ctrl_ref;
-
-       ctrl_ref = container_of(kref, struct rate_control_ref, kref);
        ctrl_ref->ops->free(ctrl_ref->priv);
 
 #ifdef CONFIG_MAC80211_DEBUGFS
@@ -293,8 +289,8 @@ bool rate_control_send_low(struct ieee80211_sta *sta,
 }
 EXPORT_SYMBOL(rate_control_send_low);
 
-static void rate_idx_match_mask(struct ieee80211_tx_rate *rate,
-                               int n_bitrates, u32 mask)
+static bool rate_idx_match_legacy_mask(struct ieee80211_tx_rate *rate,
+                                      int n_bitrates, u32 mask)
 {
        int j;
 
@@ -303,7 +299,7 @@ static void rate_idx_match_mask(struct ieee80211_tx_rate *rate,
                if (mask & (1 << j)) {
                        /* Okay, found a suitable rate. Use it. */
                        rate->idx = j;
-                       return;
+                       return true;
                }
        }
 
@@ -312,6 +308,112 @@ static void rate_idx_match_mask(struct ieee80211_tx_rate *rate,
                if (mask & (1 << j)) {
                        /* Okay, found a suitable rate. Use it. */
                        rate->idx = j;
+                       return true;
+               }
+       }
+       return false;
+}
+
+static bool rate_idx_match_mcs_mask(struct ieee80211_tx_rate *rate,
+                                   u8 mcs_mask[IEEE80211_HT_MCS_MASK_LEN])
+{
+       int i, j;
+       int ridx, rbit;
+
+       ridx = rate->idx / 8;
+       rbit = rate->idx % 8;
+
+       /* sanity check */
+       if (ridx < 0 || ridx > IEEE80211_HT_MCS_MASK_LEN)
+               return false;
+
+       /* See whether the selected rate or anything below it is allowed. */
+       for (i = ridx; i >= 0; i--) {
+               for (j = rbit; j >= 0; j--)
+                       if (mcs_mask[i] & BIT(j)) {
+                               rate->idx = i * 8 + j;
+                               return true;
+                       }
+               rbit = 7;
+       }
+
+       /* Try to find a higher rate that would be allowed */
+       ridx = (rate->idx + 1) / 8;
+       rbit = (rate->idx + 1) % 8;
+
+       for (i = ridx; i < IEEE80211_HT_MCS_MASK_LEN; i++) {
+               for (j = rbit; j < 8; j++)
+                       if (mcs_mask[i] & BIT(j)) {
+                               rate->idx = i * 8 + j;
+                               return true;
+                       }
+               rbit = 0;
+       }
+       return false;
+}
+
+
+
+static void rate_idx_match_mask(struct ieee80211_tx_rate *rate,
+                               struct ieee80211_tx_rate_control *txrc,
+                               u32 mask,
+                               u8 mcs_mask[IEEE80211_HT_MCS_MASK_LEN])
+{
+       struct ieee80211_tx_rate alt_rate;
+
+       /* handle HT rates */
+       if (rate->flags & IEEE80211_TX_RC_MCS) {
+               if (rate_idx_match_mcs_mask(rate, mcs_mask))
+                       return;
+
+               /* also try the legacy rates. */
+               alt_rate.idx = 0;
+               /* keep protection flags */
+               alt_rate.flags = rate->flags &
+                                (IEEE80211_TX_RC_USE_RTS_CTS |
+                                 IEEE80211_TX_RC_USE_CTS_PROTECT |
+                                 IEEE80211_TX_RC_USE_SHORT_PREAMBLE);
+               alt_rate.count = rate->count;
+               if (rate_idx_match_legacy_mask(&alt_rate,
+                                              txrc->sband->n_bitrates,
+                                              mask)) {
+                       *rate = alt_rate;
+                       return;
+               }
+       } else {
+               struct sk_buff *skb = txrc->skb;
+               struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
+               __le16 fc;
+
+               /* handle legacy rates */
+               if (rate_idx_match_legacy_mask(rate, txrc->sband->n_bitrates,
+                                              mask))
+                       return;
+
+               /* if HT BSS, and we handle a data frame, also try HT rates */
+               if (txrc->bss_conf->channel_type == NL80211_CHAN_NO_HT)
+                       return;
+
+               fc = hdr->frame_control;
+               if (!ieee80211_is_data(fc))
+                       return;
+
+               alt_rate.idx = 0;
+               /* keep protection flags */
+               alt_rate.flags = rate->flags &
+                                (IEEE80211_TX_RC_USE_RTS_CTS |
+                                 IEEE80211_TX_RC_USE_CTS_PROTECT |
+                                 IEEE80211_TX_RC_USE_SHORT_PREAMBLE);
+               alt_rate.count = rate->count;
+
+               alt_rate.flags |= IEEE80211_TX_RC_MCS;
+
+               if ((txrc->bss_conf->channel_type == NL80211_CHAN_HT40MINUS) ||
+                   (txrc->bss_conf->channel_type == NL80211_CHAN_HT40PLUS))
+                       alt_rate.flags |= IEEE80211_TX_RC_40_MHZ_WIDTH;
+
+               if (rate_idx_match_mcs_mask(&alt_rate, mcs_mask)) {
+                       *rate = alt_rate;
                        return;
                }
        }
@@ -335,6 +437,7 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(txrc->skb);
        int i;
        u32 mask;
+       u8 mcs_mask[IEEE80211_HT_MCS_MASK_LEN];
 
        if (sta) {
                ista = &sta->sta;
@@ -358,10 +461,14 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
         * the common case.
         */
        mask = sdata->rc_rateidx_mask[info->band];
+       memcpy(mcs_mask, sdata->rc_rateidx_mcs_mask[info->band],
+              sizeof(mcs_mask));
        if (mask != (1 << txrc->sband->n_bitrates) - 1) {
                if (sta) {
                        /* Filter out rates that the STA does not support */
                        mask &= sta->sta.supp_rates[info->band];
+                       for (i = 0; i < sizeof(mcs_mask); i++)
+                               mcs_mask[i] &= sta->sta.ht_cap.mcs.rx_mask[i];
                }
                /*
                 * Make sure the rate index selected for each TX rate is
@@ -372,32 +479,18 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
                        /* Skip invalid rates */
                        if (info->control.rates[i].idx < 0)
                                break;
-                       /* Rate masking supports only legacy rates for now */
-                       if (info->control.rates[i].flags & IEEE80211_TX_RC_MCS)
-                               continue;
-                       rate_idx_match_mask(&info->control.rates[i],
-                                           txrc->sband->n_bitrates, mask);
+                       rate_idx_match_mask(&info->control.rates[i], txrc,
+                                           mask, mcs_mask);
                }
        }
 
        BUG_ON(info->control.rates[0].idx < 0);
 }
 
-struct rate_control_ref *rate_control_get(struct rate_control_ref *ref)
-{
-       kref_get(&ref->kref);
-       return ref;
-}
-
-void rate_control_put(struct rate_control_ref *ref)
-{
-       kref_put(&ref->kref, rate_control_release);
-}
-
 int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
                                 const char *name)
 {
-       struct rate_control_ref *ref, *old;
+       struct rate_control_ref *ref;
 
        ASSERT_RTNL();
 
@@ -417,12 +510,8 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
                return -ENOENT;
        }
 
-       old = local->rate_ctrl;
+       WARN_ON(local->rate_ctrl);
        local->rate_ctrl = ref;
-       if (old) {
-               rate_control_put(old);
-               sta_info_flush(local, NULL);
-       }
 
        wiphy_debug(local->hw.wiphy, "Selected rate control algorithm '%s'\n",
                    ref->ops->name);
@@ -440,6 +529,6 @@ void rate_control_deinitialize(struct ieee80211_local *local)
                return;
 
        local->rate_ctrl = NULL;
-       rate_control_put(ref);
+       rate_control_free(ref);
 }
 
index 168427b0ffdc97fca6147118518f4593b79770f6..8268457bd143ea376804c8183df963547fa50327 100644 (file)
@@ -14,7 +14,6 @@
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>
 #include <linux/types.h>
-#include <linux/kref.h>
 #include <net/mac80211.h>
 #include "ieee80211_i.h"
 #include "sta_info.h"
@@ -23,14 +22,11 @@ struct rate_control_ref {
        struct ieee80211_local *local;
        struct rate_control_ops *ops;
        void *priv;
-       struct kref kref;
 };
 
 void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
                           struct sta_info *sta,
                           struct ieee80211_tx_rate_control *txrc);
-struct rate_control_ref *rate_control_get(struct rate_control_ref *ref);
-void rate_control_put(struct rate_control_ref *ref);
 
 static inline void rate_control_tx_status(struct ieee80211_local *local,
                                          struct ieee80211_supported_band *sband,
index 5a5e504a8ffbc9cbf1d22bf8e35949311990406e..b5ee0847a7e156e22c4e48a6fb3ec562da76e620 100644 (file)
@@ -1145,19 +1145,15 @@ static void ap_sta_ps_start(struct sta_info *sta)
 
 static void ap_sta_ps_end(struct sta_info *sta)
 {
-       struct ieee80211_sub_if_data *sdata = sta->sdata;
-
-       atomic_dec(&sdata->bss->num_sta_ps);
-
 #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG
        printk(KERN_DEBUG "%s: STA %pM aid %d exits power save mode\n",
-              sdata->name, sta->sta.addr, sta->sta.aid);
+              sta->sdata->name, sta->sta.addr, sta->sta.aid);
 #endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */
 
        if (test_sta_flag(sta, WLAN_STA_PS_DRIVER)) {
 #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG
                printk(KERN_DEBUG "%s: STA %pM aid %d driver-ps-blocked\n",
-                      sdata->name, sta->sta.addr, sta->sta.aid);
+                      sta->sdata->name, sta->sta.addr, sta->sta.aid);
 #endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */
                return;
        }
@@ -2180,9 +2176,6 @@ ieee80211_rx_h_mgmt_check(struct ieee80211_rx_data *rx)
        if (rx->sdata->vif.type == NL80211_IFTYPE_AP &&
            ieee80211_is_beacon(mgmt->frame_control) &&
            !(rx->flags & IEEE80211_RX_BEACON_REPORTED)) {
-               struct ieee80211_rx_status *status;
-
-               status = IEEE80211_SKB_RXCB(rx->skb);
                cfg80211_report_obss_beacon(rx->local->hw.wiphy,
                                            rx->skb->data, rx->skb->len,
                                            status->freq, GFP_ATOMIC);
index ff11f6bf8266dc1a01b1b16330b416a054d702de..fa0823892b2da16e7d4f8cc89a141eccd2a16d3e 100644 (file)
@@ -208,10 +208,8 @@ struct sta_info *sta_info_get_by_idx(struct ieee80211_sub_if_data *sdata,
  */
 void sta_info_free(struct ieee80211_local *local, struct sta_info *sta)
 {
-       if (sta->rate_ctrl) {
+       if (sta->rate_ctrl)
                rate_control_free_sta(sta);
-               rate_control_put(sta->rate_ctrl);
-       }
 
 #ifdef CONFIG_MAC80211_VERBOSE_DEBUG
        wiphy_debug(local->hw.wiphy, "Destroyed STA %pM\n", sta->sta.addr);
@@ -264,13 +262,11 @@ static int sta_prepare_rate_control(struct ieee80211_local *local,
        if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL)
                return 0;
 
-       sta->rate_ctrl = rate_control_get(local->rate_ctrl);
+       sta->rate_ctrl = local->rate_ctrl;
        sta->rate_ctrl_priv = rate_control_alloc_sta(sta->rate_ctrl,
                                                     &sta->sta, gfp);
-       if (!sta->rate_ctrl_priv) {
-               rate_control_put(sta->rate_ctrl);
+       if (!sta->rate_ctrl_priv)
                return -ENOMEM;
-       }
 
        return 0;
 }
@@ -407,6 +403,8 @@ static int sta_info_insert_finish(struct sta_info *sta) __acquires(RCU)
                sta_info_hash_add(local, sta);
 
                list_add(&sta->list, &local->sta_list);
+
+               set_sta_flag(sta, WLAN_STA_INSERTED);
        } else {
                sta->dummy = false;
        }
@@ -711,7 +709,7 @@ static bool sta_info_cleanup_expire_buffered(struct ieee80211_local *local,
        return have_buffered;
 }
 
-static int __must_check __sta_info_destroy(struct sta_info *sta)
+int __must_check __sta_info_destroy(struct sta_info *sta)
 {
        struct ieee80211_local *local;
        struct ieee80211_sub_if_data *sdata;
@@ -726,6 +724,8 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
        local = sta->local;
        sdata = sta->sdata;
 
+       lockdep_assert_held(&local->sta_mtx);
+
        /*
         * Before removing the station from the driver and
         * rate control, it might still start new aggregation
@@ -750,25 +750,19 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
 
        sta->dead = true;
 
-       if (test_sta_flag(sta, WLAN_STA_PS_STA) ||
-           test_sta_flag(sta, WLAN_STA_PS_DRIVER)) {
-               BUG_ON(!sdata->bss);
-
-               clear_sta_flag(sta, WLAN_STA_PS_STA);
-               clear_sta_flag(sta, WLAN_STA_PS_DRIVER);
-
-               atomic_dec(&sdata->bss->num_sta_ps);
-               sta_info_recalc_tim(sta);
-       }
-
        local->num_sta--;
        local->sta_generation++;
 
        if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
                RCU_INIT_POINTER(sdata->u.vlan.sta, NULL);
 
-       while (sta->sta_state > IEEE80211_STA_NONE)
-               sta_info_move_state(sta, sta->sta_state - 1);
+       while (sta->sta_state > IEEE80211_STA_NONE) {
+               int err = sta_info_move_state(sta, sta->sta_state - 1);
+               if (err) {
+                       WARN_ON_ONCE(1);
+                       break;
+               }
+       }
 
        if (sta->uploaded) {
                if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
@@ -787,6 +781,15 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
         */
        synchronize_rcu();
 
+       if (test_sta_flag(sta, WLAN_STA_PS_STA)) {
+               BUG_ON(!sdata->bss);
+
+               clear_sta_flag(sta, WLAN_STA_PS_STA);
+
+               atomic_dec(&sdata->bss->num_sta_ps);
+               sta_info_recalc_tim(sta);
+       }
+
        for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
                local->total_ps_buffered -= skb_queue_len(&sta->ps_tx_buf[ac]);
                __skb_queue_purge(&sta->ps_tx_buf[ac]);
@@ -815,35 +818,20 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
        }
 #endif
 
-       /* There could be some memory leaks because of ampdu tx pending queue
-        * not being freed before destroying the station info.
-        *
-        * Make sure that such queues are purged before freeing the station
-        * info.
-        * TODO: We have to somehow postpone the full destruction
-        * until the aggregation stop completes. Refer
-        * http://thread.gmane.org/gmane.linux.kernel.wireless.general/81936
+       /*
+        * Destroy aggregation state here. It would be nice to wait for the
+        * driver to finish aggregation stop and then clean up, but for now
+        * drivers have to handle aggregation stop being requested, followed
+        * directly by station destruction.
         */
-
-       mutex_lock(&sta->ampdu_mlme.mtx);
-
        for (i = 0; i < STA_TID_NUM; i++) {
-               tid_tx = rcu_dereference_protected_tid_tx(sta, i);
+               tid_tx = rcu_dereference_raw(sta->ampdu_mlme.tid_tx[i]);
                if (!tid_tx)
                        continue;
-               if (skb_queue_len(&tid_tx->pending)) {
-#ifdef CONFIG_MAC80211_HT_DEBUG
-                       wiphy_debug(local->hw.wiphy, "TX A-MPDU  purging %d "
-                               "packets for tid=%d\n",
-                               skb_queue_len(&tid_tx->pending), i);
-#endif /* CONFIG_MAC80211_HT_DEBUG */
-                       __skb_queue_purge(&tid_tx->pending);
-               }
-               kfree_rcu(tid_tx, rcu_head);
+               __skb_queue_purge(&tid_tx->pending);
+               kfree(tid_tx);
        }
 
-       mutex_unlock(&sta->ampdu_mlme.mtx);
-
        sta_info_free(local, sta);
 
        return 0;
@@ -1009,9 +997,11 @@ EXPORT_SYMBOL(ieee80211_find_sta);
 static void clear_sta_ps_flags(void *_sta)
 {
        struct sta_info *sta = _sta;
+       struct ieee80211_sub_if_data *sdata = sta->sdata;
 
        clear_sta_flag(sta, WLAN_STA_PS_DRIVER);
-       clear_sta_flag(sta, WLAN_STA_PS_STA);
+       if (test_and_clear_sta_flag(sta, WLAN_STA_PS_STA))
+               atomic_dec(&sdata->bss->num_sta_ps);
 }
 
 /* powersave support code */
@@ -1410,8 +1400,8 @@ void ieee80211_sta_set_buffered(struct ieee80211_sta *pubsta,
 }
 EXPORT_SYMBOL(ieee80211_sta_set_buffered);
 
-int sta_info_move_state_checked(struct sta_info *sta,
-                               enum ieee80211_sta_state new_state)
+int sta_info_move_state(struct sta_info *sta,
+                       enum ieee80211_sta_state new_state)
 {
        might_sleep();
 
index 6f77f12dc3fc313410964a91f318e48f1319d86c..381de37d2478bbc55518f4b2aec008e59279c92b 100644 (file)
@@ -52,6 +52,7 @@
  * @WLAN_STA_SP: Station is in a service period, so don't try to
  *     reply to other uAPSD trigger frames or PS-Poll.
  * @WLAN_STA_4ADDR_EVENT: 4-addr event was already sent for this frame.
+ * @WLAN_STA_INSERTED: This station is inserted into the hash table.
  */
 enum ieee80211_sta_info_flags {
        WLAN_STA_AUTH,
@@ -71,6 +72,7 @@ enum ieee80211_sta_info_flags {
        WLAN_STA_UAPSD,
        WLAN_STA_SP,
        WLAN_STA_4ADDR_EVENT,
+       WLAN_STA_INSERTED,
 };
 
 enum ieee80211_sta_state {
@@ -427,13 +429,17 @@ static inline int test_and_set_sta_flag(struct sta_info *sta,
        return test_and_set_bit(flag, &sta->_flags);
 }
 
-int sta_info_move_state_checked(struct sta_info *sta,
-                               enum ieee80211_sta_state new_state);
+int sta_info_move_state(struct sta_info *sta,
+                       enum ieee80211_sta_state new_state);
 
-static inline void sta_info_move_state(struct sta_info *sta,
-                                      enum ieee80211_sta_state new_state)
+static inline void sta_info_pre_move_state(struct sta_info *sta,
+                                          enum ieee80211_sta_state new_state)
 {
-       int ret = sta_info_move_state_checked(sta, new_state);
+       int ret;
+
+       WARN_ON_ONCE(test_sta_flag(sta, WLAN_STA_INSERTED));
+
+       ret = sta_info_move_state(sta, new_state);
        WARN_ON_ONCE(ret);
 }
 
@@ -544,6 +550,7 @@ int sta_info_insert(struct sta_info *sta);
 int sta_info_insert_rcu(struct sta_info *sta) __acquires(RCU);
 int sta_info_reinsert(struct sta_info *sta);
 
+int __must_check __sta_info_destroy(struct sta_info *sta);
 int sta_info_destroy_addr(struct ieee80211_sub_if_data *sdata,
                          const u8 *addr);
 int sta_info_destroy_addr_bss(struct ieee80211_sub_if_data *sdata,
index 30c265c98f73ccb190a0d642977f33d53298650f..d67f0b967f8abcfd3a5b8dac8b0504a7d41b0a63 100644 (file)
@@ -350,7 +350,6 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
        bool send_to_cooked;
        bool acked;
        struct ieee80211_bar *bar;
-       u16 tid;
        int rtap_len;
 
        for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
@@ -412,7 +411,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
                }
 
                if (!acked && ieee80211_is_back_req(fc)) {
-                       u16 control;
+                       u16 tid, control;
 
                        /*
                         * BAR failed, store the last SSN and retry sending
@@ -516,7 +515,8 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
 
                if (ieee80211_is_nullfunc(hdr->frame_control) ||
                    ieee80211_is_qos_nullfunc(hdr->frame_control)) {
-                       bool acked = info->flags & IEEE80211_TX_STAT_ACK;
+                       acked = info->flags & IEEE80211_TX_STAT_ACK;
+
                        cfg80211_probe_status(skb->dev, hdr->addr1,
                                              cookie, acked, GFP_ATOMIC);
                } else {
index e05667cd5e766057c22770670834e6f2b19e3301..1be0ca2b5936d1430e9a74164834ccf6aa74de2f 100644 (file)
@@ -635,6 +635,9 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx)
                txrc.max_rate_idx = -1;
        else
                txrc.max_rate_idx = fls(txrc.rate_idx_mask) - 1;
+       memcpy(txrc.rate_idx_mcs_mask,
+              tx->sdata->rc_rateidx_mcs_mask[tx->channel->band],
+              sizeof(txrc.rate_idx_mcs_mask));
        txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
                    tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
                    tx->sdata->vif.type == NL80211_IFTYPE_ADHOC);
@@ -2431,6 +2434,8 @@ struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw,
                txrc.max_rate_idx = -1;
        else
                txrc.max_rate_idx = fls(txrc.rate_idx_mask) - 1;
+       memcpy(txrc.rate_idx_mcs_mask, sdata->rc_rateidx_mcs_mask[band],
+              sizeof(txrc.rate_idx_mcs_mask));
        txrc.bss = true;
        rate_control_get_rate(sdata, NULL, &txrc);
 
index 9919892575f45a94f55e34c474f3f93736755237..d82d886d0867975ec19ffbe3b2615da3e07d37f6 100644 (file)
@@ -862,8 +862,8 @@ u32 ieee80211_mandatory_rates(struct ieee80211_local *local,
 
 void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
                         u16 transaction, u16 auth_alg,
-                        u8 *extra, size_t extra_len, const u8 *bssid,
-                        const u8 *key, u8 key_len, u8 key_idx)
+                        u8 *extra, size_t extra_len, const u8 *da,
+                        const u8 *bssid, const u8 *key, u8 key_len, u8 key_idx)
 {
        struct ieee80211_local *local = sdata->local;
        struct sk_buff *skb;
@@ -881,7 +881,7 @@ void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
        memset(mgmt, 0, 24 + 6);
        mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
                                          IEEE80211_STYPE_AUTH);
-       memcpy(mgmt->da, bssid, ETH_ALEN);
+       memcpy(mgmt->da, da, ETH_ALEN);
        memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
        memcpy(mgmt->bssid, bssid, ETH_ALEN);
        mgmt->u.auth.auth_alg = cpu_to_le16(auth_alg);
@@ -1271,6 +1271,21 @@ int ieee80211_reconfig(struct ieee80211_local *local)
 
        ieee80211_recalc_ps(local, -1);
 
+       /*
+        * The sta might be in psm against the ap (e.g. because
+        * this was the state before a hw restart), so we
+        * explicitly send a null packet in order to make sure
+        * it'll sync against the ap (and get out of psm).
+        */
+       if (!(local->hw.conf.flags & IEEE80211_CONF_PS)) {
+               list_for_each_entry(sdata, &local->interfaces, list) {
+                       if (sdata->vif.type != NL80211_IFTYPE_STATION)
+                               continue;
+
+                       ieee80211_send_nullfunc(local, sdata, 0);
+               }
+       }
+
        /*
         * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
         * sessions can be established after a resume.
index c6dd01a05291e25865bac897a67353785131a4fa..0a1a176fbe91b41386c7b6a718dd96b0c25b031e 100644 (file)
@@ -480,7 +480,8 @@ ieee80211_authenticate(struct ieee80211_work *wk)
               sdata->name, wk->filter_ta, wk->probe_auth.tries);
 
        ieee80211_send_auth(sdata, 1, wk->probe_auth.algorithm, wk->ie,
-                           wk->ie_len, wk->filter_ta, NULL, 0, 0);
+                           wk->ie_len, wk->filter_ta, wk->filter_ta, NULL, 0,
+                           0);
        wk->probe_auth.transaction = 2;
 
        wk->timeout = jiffies + IEEE80211_AUTH_TIMEOUT;
@@ -598,7 +599,7 @@ static void ieee80211_auth_challenge(struct ieee80211_work *wk,
                return;
        ieee80211_send_auth(sdata, 3, wk->probe_auth.algorithm,
                            elems.challenge - 2, elems.challenge_len + 2,
-                           wk->filter_ta, wk->probe_auth.key,
+                           wk->filter_ta, wk->filter_ta, wk->probe_auth.key,
                            wk->probe_auth.key_len, wk->probe_auth.key_idx);
        wk->probe_auth.transaction = 4;
 }
index 3ddf6e698df0569c2f8aafbb19cecd4fa15b9aa4..6089aca67b14de1b3396d3eea1d8baa83c676547 100644 (file)
@@ -431,15 +431,10 @@ EXPORT_SYMBOL(nfc_alloc_recv_skb);
 int nfc_targets_found(struct nfc_dev *dev, struct nfc_target *targets,
                                                        int n_targets)
 {
-       int i;
-
        pr_debug("dev_name=%s n_targets=%d\n", dev_name(&dev->dev), n_targets);
 
        dev->polling = false;
 
-       for (i = 0; i < n_targets; i++)
-               targets[i].idx = dev->target_idx++;
-
        spin_lock_bh(&dev->targets_lock);
 
        dev->targets_generation++;
index 7650139a1a0538da0a6857b21e4460e8f2f47a01..a47e90c7d9d139067439ecbc117e29a9a1a837ba 100644 (file)
@@ -216,6 +216,39 @@ static void nci_rf_discover_req(struct nci_dev *ndev, unsigned long opt)
                &cmd);
 }
 
+struct nci_rf_discover_select_param {
+       __u8    rf_discovery_id;
+       __u8    rf_protocol;
+};
+
+static void nci_rf_discover_select_req(struct nci_dev *ndev, unsigned long opt)
+{
+       struct nci_rf_discover_select_param *param =
+                               (struct nci_rf_discover_select_param *)opt;
+       struct nci_rf_discover_select_cmd cmd;
+
+       cmd.rf_discovery_id = param->rf_discovery_id;
+       cmd.rf_protocol = param->rf_protocol;
+
+       switch (cmd.rf_protocol) {
+       case NCI_RF_PROTOCOL_ISO_DEP:
+               cmd.rf_interface = NCI_RF_INTERFACE_ISO_DEP;
+               break;
+
+       case NCI_RF_PROTOCOL_NFC_DEP:
+               cmd.rf_interface = NCI_RF_INTERFACE_NFC_DEP;
+               break;
+
+       default:
+               cmd.rf_interface = NCI_RF_INTERFACE_FRAME;
+               break;
+       }
+
+       nci_send_cmd(ndev, NCI_OP_RF_DISCOVER_SELECT_CMD,
+                       sizeof(struct nci_rf_discover_select_cmd),
+                       &cmd);
+}
+
 static void nci_rf_deactivate_req(struct nci_dev *ndev, unsigned long opt)
 {
        struct nci_rf_deactivate_cmd cmd;
@@ -264,6 +297,8 @@ static int nci_open_device(struct nci_dev *ndev)
 
        if (!rc) {
                set_bit(NCI_UP, &ndev->flags);
+               nci_clear_target_list(ndev);
+               atomic_set(&ndev->state, NCI_IDLE);
        } else {
                /* Init failed, cleanup */
                skb_queue_purge(&ndev->cmd_q);
@@ -286,6 +321,7 @@ static int nci_close_device(struct nci_dev *ndev)
 
        if (!test_and_clear_bit(NCI_UP, &ndev->flags)) {
                del_timer_sync(&ndev->cmd_timer);
+               del_timer_sync(&ndev->data_timer);
                mutex_unlock(&ndev->req_lock);
                return 0;
        }
@@ -331,6 +367,15 @@ static void nci_cmd_timer(unsigned long arg)
        queue_work(ndev->cmd_wq, &ndev->cmd_work);
 }
 
+/* NCI data exchange timer function */
+static void nci_data_timer(unsigned long arg)
+{
+       struct nci_dev *ndev = (void *) arg;
+
+       set_bit(NCI_DATA_EXCHANGE_TO, &ndev->flags);
+       queue_work(ndev->rx_wq, &ndev->rx_work);
+}
+
 static int nci_dev_up(struct nfc_dev *nfc_dev)
 {
        struct nci_dev *ndev = nfc_get_drvdata(nfc_dev);
@@ -350,7 +395,8 @@ static int nci_start_poll(struct nfc_dev *nfc_dev, __u32 protocols)
        struct nci_dev *ndev = nfc_get_drvdata(nfc_dev);
        int rc;
 
-       if (test_bit(NCI_DISCOVERY, &ndev->flags)) {
+       if ((atomic_read(&ndev->state) == NCI_DISCOVERY) ||
+               (atomic_read(&ndev->state) == NCI_W4_ALL_DISCOVERIES)) {
                pr_err("unable to start poll, since poll is already active\n");
                return -EBUSY;
        }
@@ -360,8 +406,9 @@ static int nci_start_poll(struct nfc_dev *nfc_dev, __u32 protocols)
                return -EBUSY;
        }
 
-       if (test_bit(NCI_POLL_ACTIVE, &ndev->flags)) {
-               pr_debug("target is active, implicitly deactivate...\n");
+       if ((atomic_read(&ndev->state) == NCI_W4_HOST_SELECT) ||
+               (atomic_read(&ndev->state) == NCI_POLL_ACTIVE)) {
+               pr_debug("target active or w4 select, implicitly deactivate\n");
 
                rc = nci_request(ndev, nci_rf_deactivate_req, 0,
                        msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT));
@@ -382,7 +429,8 @@ static void nci_stop_poll(struct nfc_dev *nfc_dev)
 {
        struct nci_dev *ndev = nfc_get_drvdata(nfc_dev);
 
-       if (!test_bit(NCI_DISCOVERY, &ndev->flags)) {
+       if ((atomic_read(&ndev->state) != NCI_DISCOVERY) &&
+               (atomic_read(&ndev->state) != NCI_W4_ALL_DISCOVERIES)) {
                pr_err("unable to stop poll, since poll is not active\n");
                return;
        }
@@ -395,10 +443,15 @@ static int nci_activate_target(struct nfc_dev *nfc_dev, __u32 target_idx,
                                __u32 protocol)
 {
        struct nci_dev *ndev = nfc_get_drvdata(nfc_dev);
+       struct nci_rf_discover_select_param param;
+       struct nfc_target *target = NULL;
+       int i;
+       int rc = 0;
 
        pr_debug("target_idx %d, protocol 0x%x\n", target_idx, protocol);
 
-       if (!test_bit(NCI_POLL_ACTIVE, &ndev->flags)) {
+       if ((atomic_read(&ndev->state) != NCI_W4_HOST_SELECT) &&
+               (atomic_read(&ndev->state) != NCI_POLL_ACTIVE)) {
                pr_err("there is no available target to activate\n");
                return -EINVAL;
        }
@@ -408,16 +461,47 @@ static int nci_activate_target(struct nfc_dev *nfc_dev, __u32 target_idx,
                return -EBUSY;
        }
 
-       if (!(ndev->target_available_prots & (1 << protocol))) {
+       for (i = 0; i < ndev->n_targets; i++) {
+               if (ndev->targets[i].idx == target_idx) {
+                       target = &ndev->targets[i];
+                       break;
+               }
+       }
+
+       if (!target) {
+               pr_err("unable to find the selected target\n");
+               return -EINVAL;
+       }
+
+       if (!(target->supported_protocols & (1 << protocol))) {
                pr_err("target does not support the requested protocol 0x%x\n",
                       protocol);
                return -EINVAL;
        }
 
-       ndev->target_active_prot = protocol;
-       ndev->target_available_prots = 0;
+       if (atomic_read(&ndev->state) == NCI_W4_HOST_SELECT) {
+               param.rf_discovery_id = target->idx;
 
-       return 0;
+               if (protocol == NFC_PROTO_JEWEL)
+                       param.rf_protocol = NCI_RF_PROTOCOL_T1T;
+               else if (protocol == NFC_PROTO_MIFARE)
+                       param.rf_protocol = NCI_RF_PROTOCOL_T2T;
+               else if (protocol == NFC_PROTO_FELICA)
+                       param.rf_protocol = NCI_RF_PROTOCOL_T3T;
+               else if (protocol == NFC_PROTO_ISO14443)
+                       param.rf_protocol = NCI_RF_PROTOCOL_ISO_DEP;
+               else
+                       param.rf_protocol = NCI_RF_PROTOCOL_NFC_DEP;
+
+               rc = nci_request(ndev, nci_rf_discover_select_req,
+                               (unsigned long)&param,
+                               msecs_to_jiffies(NCI_RF_DISC_SELECT_TIMEOUT));
+       }
+
+       if (!rc)
+               ndev->target_active_prot = protocol;
+
+       return rc;
 }
 
 static void nci_deactivate_target(struct nfc_dev *nfc_dev, __u32 target_idx)
@@ -433,7 +517,7 @@ static void nci_deactivate_target(struct nfc_dev *nfc_dev, __u32 target_idx)
 
        ndev->target_active_prot = 0;
 
-       if (test_bit(NCI_POLL_ACTIVE, &ndev->flags)) {
+       if (atomic_read(&ndev->state) == NCI_POLL_ACTIVE) {
                nci_request(ndev, nci_rf_deactivate_req, 0,
                        msecs_to_jiffies(NCI_RF_DEACTIVATE_TIMEOUT));
        }
@@ -585,6 +669,8 @@ int nci_register_device(struct nci_dev *ndev)
 
        setup_timer(&ndev->cmd_timer, nci_cmd_timer,
                        (unsigned long) ndev);
+       setup_timer(&ndev->data_timer, nci_data_timer,
+                       (unsigned long) ndev);
 
        mutex_init(&ndev->req_lock);
 
@@ -722,6 +808,9 @@ static void nci_tx_work(struct work_struct *work)
                         nci_plen(skb->data));
 
                nci_send_frame(skb);
+
+               mod_timer(&ndev->data_timer,
+                       jiffies + msecs_to_jiffies(NCI_DATA_TIMEOUT));
        }
 }
 
@@ -753,6 +842,15 @@ static void nci_rx_work(struct work_struct *work)
                        break;
                }
        }
+
+       /* check if a data exchange timout has occurred */
+       if (test_bit(NCI_DATA_EXCHANGE_TO, &ndev->flags)) {
+               /* complete the data exchange transaction, if exists */
+               if (test_bit(NCI_DATA_EXCHANGE, &ndev->flags))
+                       nci_data_exchange_complete(ndev, NULL, -ETIMEDOUT);
+
+               clear_bit(NCI_DATA_EXCHANGE_TO, &ndev->flags);
+       }
 }
 
 /* ----- NCI TX CMD worker thread ----- */
index e5756b30e6025ff6e90a6419824c6e9c378131bd..7880ae924d5e623db609df4feaf260ad2406535a 100644 (file)
@@ -44,6 +44,10 @@ void nci_data_exchange_complete(struct nci_dev *ndev,
 
        pr_debug("len %d, err %d\n", skb ? skb->len : 0, err);
 
+       /* data exchange is complete, stop the data timer */
+       del_timer_sync(&ndev->data_timer);
+       clear_bit(NCI_DATA_EXCHANGE_TO, &ndev->flags);
+
        if (cb) {
                ndev->data_exchange_cb = NULL;
                ndev->data_exchange_cb_context = 0;
index b16a8dc2afbe7fcd457787791f887092985021e5..03e7b4626a3e05772b3b13405ffe9ebc4fde54a8 100644 (file)
@@ -71,6 +71,20 @@ static void nci_core_conn_credits_ntf_packet(struct nci_dev *ndev,
                queue_work(ndev->tx_wq, &ndev->tx_work);
 }
 
+static void nci_core_generic_error_ntf_packet(struct nci_dev *ndev,
+                                               struct sk_buff *skb)
+{
+       __u8 status = skb->data[0];
+
+       pr_debug("status 0x%x\n", status);
+
+       if (atomic_read(&ndev->state) == NCI_W4_HOST_SELECT) {
+               /* Activation failed, so complete the request
+               (the state remains the same) */
+               nci_req_complete(ndev, status);
+       }
+}
+
 static void nci_core_conn_intf_error_ntf_packet(struct nci_dev *ndev,
                                                struct sk_buff *skb)
 {
@@ -86,12 +100,9 @@ static void nci_core_conn_intf_error_ntf_packet(struct nci_dev *ndev,
 }
 
 static __u8 *nci_extract_rf_params_nfca_passive_poll(struct nci_dev *ndev,
-                       struct nci_rf_intf_activated_ntf *ntf, __u8 *data)
+                       struct rf_tech_specific_params_nfca_poll *nfca_poll,
+                       __u8 *data)
 {
-       struct rf_tech_specific_params_nfca_poll *nfca_poll;
-
-       nfca_poll = &ntf->rf_tech_specific_params.nfca_poll;
-
        nfca_poll->sens_res = __le16_to_cpu(*((__u16 *)data));
        data += 2;
 
@@ -115,15 +126,213 @@ static __u8 *nci_extract_rf_params_nfca_passive_poll(struct nci_dev *ndev,
        return data;
 }
 
+static __u8 *nci_extract_rf_params_nfcb_passive_poll(struct nci_dev *ndev,
+                       struct rf_tech_specific_params_nfcb_poll *nfcb_poll,
+                       __u8 *data)
+{
+       nfcb_poll->sensb_res_len = *data++;
+
+       pr_debug("sensb_res_len %d\n", nfcb_poll->sensb_res_len);
+
+       memcpy(nfcb_poll->sensb_res, data, nfcb_poll->sensb_res_len);
+       data += nfcb_poll->sensb_res_len;
+
+       return data;
+}
+
+static __u8 *nci_extract_rf_params_nfcf_passive_poll(struct nci_dev *ndev,
+                       struct rf_tech_specific_params_nfcf_poll *nfcf_poll,
+                       __u8 *data)
+{
+       nfcf_poll->bit_rate = *data++;
+       nfcf_poll->sensf_res_len = *data++;
+
+       pr_debug("bit_rate %d, sensf_res_len %d\n",
+               nfcf_poll->bit_rate, nfcf_poll->sensf_res_len);
+
+       memcpy(nfcf_poll->sensf_res, data, nfcf_poll->sensf_res_len);
+       data += nfcf_poll->sensf_res_len;
+
+       return data;
+}
+
+static int nci_add_new_protocol(struct nci_dev *ndev,
+                               struct nfc_target *target,
+                               __u8 rf_protocol,
+                               __u8 rf_tech_and_mode,
+                               void *params)
+{
+       struct rf_tech_specific_params_nfca_poll *nfca_poll;
+       struct rf_tech_specific_params_nfcb_poll *nfcb_poll;
+       struct rf_tech_specific_params_nfcf_poll *nfcf_poll;
+       __u32 protocol;
+
+       if (rf_protocol == NCI_RF_PROTOCOL_T2T)
+               protocol = NFC_PROTO_MIFARE_MASK;
+       else if (rf_protocol == NCI_RF_PROTOCOL_ISO_DEP)
+               protocol = NFC_PROTO_ISO14443_MASK;
+       else if (rf_protocol == NCI_RF_PROTOCOL_T3T)
+               protocol = NFC_PROTO_FELICA_MASK;
+       else
+               protocol = 0;
+
+       if (!(protocol & ndev->poll_prots)) {
+               pr_err("the target found does not have the desired protocol\n");
+               return -EPROTO;
+       }
+
+       if (rf_tech_and_mode == NCI_NFC_A_PASSIVE_POLL_MODE) {
+               nfca_poll = (struct rf_tech_specific_params_nfca_poll *)params;
+
+               target->sens_res = nfca_poll->sens_res;
+               target->sel_res = nfca_poll->sel_res;
+               target->nfcid1_len = nfca_poll->nfcid1_len;
+               if (target->nfcid1_len > 0) {
+                       memcpy(target->nfcid1, nfca_poll->nfcid1,
+                               target->nfcid1_len);
+               }
+       } else if (rf_tech_and_mode == NCI_NFC_B_PASSIVE_POLL_MODE) {
+               nfcb_poll = (struct rf_tech_specific_params_nfcb_poll *)params;
+
+               target->sensb_res_len = nfcb_poll->sensb_res_len;
+               if (target->sensb_res_len > 0) {
+                       memcpy(target->sensb_res, nfcb_poll->sensb_res,
+                               target->sensb_res_len);
+               }
+       } else if (rf_tech_and_mode == NCI_NFC_F_PASSIVE_POLL_MODE) {
+               nfcf_poll = (struct rf_tech_specific_params_nfcf_poll *)params;
+
+               target->sensf_res_len = nfcf_poll->sensf_res_len;
+               if (target->sensf_res_len > 0) {
+                       memcpy(target->sensf_res, nfcf_poll->sensf_res,
+                               target->sensf_res_len);
+               }
+       } else {
+               pr_err("unsupported rf_tech_and_mode 0x%x\n", rf_tech_and_mode);
+               return -EPROTO;
+       }
+
+       target->supported_protocols |= protocol;
+
+       pr_debug("protocol 0x%x\n", protocol);
+
+       return 0;
+}
+
+static void nci_add_new_target(struct nci_dev *ndev,
+                               struct nci_rf_discover_ntf *ntf)
+{
+       struct nfc_target *target;
+       int i, rc;
+
+       for (i = 0; i < ndev->n_targets; i++) {
+               target = &ndev->targets[i];
+               if (target->idx == ntf->rf_discovery_id) {
+                       /* This target already exists, add the new protocol */
+                       nci_add_new_protocol(ndev, target, ntf->rf_protocol,
+                                               ntf->rf_tech_and_mode,
+                                               &ntf->rf_tech_specific_params);
+                       return;
+               }
+       }
+
+       /* This is a new target, check if we've enough room */
+       if (ndev->n_targets == NCI_MAX_DISCOVERED_TARGETS) {
+               pr_debug("not enough room, ignoring new target...\n");
+               return;
+       }
+
+       target = &ndev->targets[ndev->n_targets];
+
+       rc = nci_add_new_protocol(ndev, target, ntf->rf_protocol,
+                                       ntf->rf_tech_and_mode,
+                                       &ntf->rf_tech_specific_params);
+       if (!rc) {
+               target->idx = ntf->rf_discovery_id;
+               ndev->n_targets++;
+
+               pr_debug("target_idx %d, n_targets %d\n", target->idx,
+                               ndev->n_targets);
+       }
+}
+
+void nci_clear_target_list(struct nci_dev *ndev)
+{
+       memset(ndev->targets, 0,
+               (sizeof(struct nfc_target)*NCI_MAX_DISCOVERED_TARGETS));
+
+       ndev->n_targets = 0;
+}
+
+static void nci_rf_discover_ntf_packet(struct nci_dev *ndev,
+                                       struct sk_buff *skb)
+{
+       struct nci_rf_discover_ntf ntf;
+       __u8 *data = skb->data;
+       bool add_target = true;
+
+       ntf.rf_discovery_id = *data++;
+       ntf.rf_protocol = *data++;
+       ntf.rf_tech_and_mode = *data++;
+       ntf.rf_tech_specific_params_len = *data++;
+
+       pr_debug("rf_discovery_id %d\n", ntf.rf_discovery_id);
+       pr_debug("rf_protocol 0x%x\n", ntf.rf_protocol);
+       pr_debug("rf_tech_and_mode 0x%x\n", ntf.rf_tech_and_mode);
+       pr_debug("rf_tech_specific_params_len %d\n",
+                       ntf.rf_tech_specific_params_len);
+
+       if (ntf.rf_tech_specific_params_len > 0) {
+               switch (ntf.rf_tech_and_mode) {
+               case NCI_NFC_A_PASSIVE_POLL_MODE:
+                       data = nci_extract_rf_params_nfca_passive_poll(ndev,
+                               &(ntf.rf_tech_specific_params.nfca_poll), data);
+                       break;
+
+               case NCI_NFC_B_PASSIVE_POLL_MODE:
+                       data = nci_extract_rf_params_nfcb_passive_poll(ndev,
+                               &(ntf.rf_tech_specific_params.nfcb_poll), data);
+                       break;
+
+               case NCI_NFC_F_PASSIVE_POLL_MODE:
+                       data = nci_extract_rf_params_nfcf_passive_poll(ndev,
+                               &(ntf.rf_tech_specific_params.nfcf_poll), data);
+                       break;
+
+               default:
+                       pr_err("unsupported rf_tech_and_mode 0x%x\n",
+                              ntf.rf_tech_and_mode);
+                       data += ntf.rf_tech_specific_params_len;
+                       add_target = false;
+               }
+       }
+
+       ntf.ntf_type = *data++;
+       pr_debug("ntf_type %d\n", ntf.ntf_type);
+
+       if (add_target == true)
+               nci_add_new_target(ndev, &ntf);
+
+       if (ntf.ntf_type == NCI_DISCOVER_NTF_TYPE_MORE) {
+               atomic_set(&ndev->state, NCI_W4_ALL_DISCOVERIES);
+       } else {
+               atomic_set(&ndev->state, NCI_W4_HOST_SELECT);
+               nfc_targets_found(ndev->nfc_dev, ndev->targets,
+                                       ndev->n_targets);
+       }
+}
+
 static int nci_extract_activation_params_iso_dep(struct nci_dev *ndev,
                        struct nci_rf_intf_activated_ntf *ntf, __u8 *data)
 {
        struct activation_params_nfca_poll_iso_dep *nfca_poll;
+       struct activation_params_nfcb_poll_iso_dep *nfcb_poll;
 
        switch (ntf->activation_rf_tech_and_mode) {
        case NCI_NFC_A_PASSIVE_POLL_MODE:
                nfca_poll = &ntf->activation_params.nfca_poll_iso_dep;
                nfca_poll->rats_res_len = *data++;
+               pr_debug("rats_res_len %d\n", nfca_poll->rats_res_len);
                if (nfca_poll->rats_res_len > 0) {
                        memcpy(nfca_poll->rats_res,
                                data,
@@ -131,52 +340,47 @@ static int nci_extract_activation_params_iso_dep(struct nci_dev *ndev,
                }
                break;
 
+       case NCI_NFC_B_PASSIVE_POLL_MODE:
+               nfcb_poll = &ntf->activation_params.nfcb_poll_iso_dep;
+               nfcb_poll->attrib_res_len = *data++;
+               pr_debug("attrib_res_len %d\n",
+                       nfcb_poll->attrib_res_len);
+               if (nfcb_poll->attrib_res_len > 0) {
+                       memcpy(nfcb_poll->attrib_res,
+                               data,
+                               nfcb_poll->attrib_res_len);
+               }
+               break;
+
        default:
                pr_err("unsupported activation_rf_tech_and_mode 0x%x\n",
                       ntf->activation_rf_tech_and_mode);
-               return -EPROTO;
+               return NCI_STATUS_RF_PROTOCOL_ERROR;
        }
 
-       return 0;
+       return NCI_STATUS_OK;
 }
 
-static void nci_target_found(struct nci_dev *ndev,
-                               struct nci_rf_intf_activated_ntf *ntf)
+static void nci_target_auto_activated(struct nci_dev *ndev,
+                                       struct nci_rf_intf_activated_ntf *ntf)
 {
-       struct nfc_target nfc_tgt;
+       struct nfc_target *target;
+       int rc;
 
-       if (ntf->rf_protocol == NCI_RF_PROTOCOL_T2T)    /* T2T MifareUL */
-               nfc_tgt.supported_protocols = NFC_PROTO_MIFARE_MASK;
-       else if (ntf->rf_protocol == NCI_RF_PROTOCOL_ISO_DEP)   /* 4A */
-               nfc_tgt.supported_protocols = NFC_PROTO_ISO14443_MASK;
-       else
-               nfc_tgt.supported_protocols = 0;
-
-       nfc_tgt.sens_res = ntf->rf_tech_specific_params.nfca_poll.sens_res;
-       nfc_tgt.sel_res = ntf->rf_tech_specific_params.nfca_poll.sel_res;
-       nfc_tgt.nfcid1_len = ntf->rf_tech_specific_params.nfca_poll.nfcid1_len;
-       if (nfc_tgt.nfcid1_len > 0) {
-               memcpy(nfc_tgt.nfcid1,
-                       ntf->rf_tech_specific_params.nfca_poll.nfcid1,
-                       nfc_tgt.nfcid1_len);
-       }
+       target = &ndev->targets[ndev->n_targets];
 
-       if (!(nfc_tgt.supported_protocols & ndev->poll_prots)) {
-               pr_debug("the target found does not have the desired protocol\n");
+       rc = nci_add_new_protocol(ndev, target, ntf->rf_protocol,
+                                       ntf->activation_rf_tech_and_mode,
+                                       &ntf->rf_tech_specific_params);
+       if (rc)
                return;
-       }
 
-       pr_debug("new target found,  supported_protocols 0x%x\n",
-                nfc_tgt.supported_protocols);
+       target->idx = ntf->rf_discovery_id;
+       ndev->n_targets++;
 
-       ndev->target_available_prots = nfc_tgt.supported_protocols;
-       ndev->max_data_pkt_payload_size = ntf->max_data_pkt_payload_size;
-       ndev->initial_num_credits = ntf->initial_num_credits;
+       pr_debug("target_idx %d, n_targets %d\n", target->idx, ndev->n_targets);
 
-       /* set the available credits to initial value */
-       atomic_set(&ndev->credits_cnt, ndev->initial_num_credits);
-
-       nfc_targets_found(ndev->nfc_dev, &nfc_tgt, 1);
+       nfc_targets_found(ndev->nfc_dev, ndev->targets, ndev->n_targets);
 }
 
 static void nci_rf_intf_activated_ntf_packet(struct nci_dev *ndev,
@@ -184,10 +388,7 @@ static void nci_rf_intf_activated_ntf_packet(struct nci_dev *ndev,
 {
        struct nci_rf_intf_activated_ntf ntf;
        __u8 *data = skb->data;
-       int err = 0;
-
-       clear_bit(NCI_DISCOVERY, &ndev->flags);
-       set_bit(NCI_POLL_ACTIVE, &ndev->flags);
+       int err = NCI_STATUS_OK;
 
        ntf.rf_discovery_id = *data++;
        ntf.rf_interface = *data++;
@@ -212,13 +413,24 @@ static void nci_rf_intf_activated_ntf_packet(struct nci_dev *ndev,
                switch (ntf.activation_rf_tech_and_mode) {
                case NCI_NFC_A_PASSIVE_POLL_MODE:
                        data = nci_extract_rf_params_nfca_passive_poll(ndev,
-                               &ntf, data);
+                               &(ntf.rf_tech_specific_params.nfca_poll), data);
+                       break;
+
+               case NCI_NFC_B_PASSIVE_POLL_MODE:
+                       data = nci_extract_rf_params_nfcb_passive_poll(ndev,
+                               &(ntf.rf_tech_specific_params.nfcb_poll), data);
+                       break;
+
+               case NCI_NFC_F_PASSIVE_POLL_MODE:
+                       data = nci_extract_rf_params_nfcf_passive_poll(ndev,
+                               &(ntf.rf_tech_specific_params.nfcf_poll), data);
                        break;
 
                default:
                        pr_err("unsupported activation_rf_tech_and_mode 0x%x\n",
                               ntf.activation_rf_tech_and_mode);
-                       return;
+                       err = NCI_STATUS_RF_PROTOCOL_ERROR;
+                       goto exit;
                }
        }
 
@@ -250,12 +462,30 @@ static void nci_rf_intf_activated_ntf_packet(struct nci_dev *ndev,
                default:
                        pr_err("unsupported rf_interface 0x%x\n",
                               ntf.rf_interface);
-                       return;
+                       err = NCI_STATUS_RF_PROTOCOL_ERROR;
+                       break;
                }
        }
 
-       if (!err)
-               nci_target_found(ndev, &ntf);
+exit:
+       if (err == NCI_STATUS_OK) {
+               ndev->max_data_pkt_payload_size = ntf.max_data_pkt_payload_size;
+               ndev->initial_num_credits = ntf.initial_num_credits;
+
+               /* set the available credits to initial value */
+               atomic_set(&ndev->credits_cnt, ndev->initial_num_credits);
+       }
+
+       if (atomic_read(&ndev->state) == NCI_DISCOVERY) {
+               /* A single target was found and activated automatically */
+               atomic_set(&ndev->state, NCI_POLL_ACTIVE);
+               if (err == NCI_STATUS_OK)
+                       nci_target_auto_activated(ndev, &ntf);
+       } else {        /* ndev->state == NCI_W4_HOST_SELECT */
+               /* A selected target was activated, so complete the request */
+               atomic_set(&ndev->state, NCI_POLL_ACTIVE);
+               nci_req_complete(ndev, err);
+       }
 }
 
 static void nci_rf_deactivate_ntf_packet(struct nci_dev *ndev,
@@ -265,9 +495,6 @@ static void nci_rf_deactivate_ntf_packet(struct nci_dev *ndev,
 
        pr_debug("entry, type 0x%x, reason 0x%x\n", ntf->type, ntf->reason);
 
-       clear_bit(NCI_POLL_ACTIVE, &ndev->flags);
-       ndev->target_active_prot = 0;
-
        /* drop tx data queue */
        skb_queue_purge(&ndev->tx_q);
 
@@ -280,6 +507,10 @@ static void nci_rf_deactivate_ntf_packet(struct nci_dev *ndev,
        /* complete the data exchange transaction, if exists */
        if (test_bit(NCI_DATA_EXCHANGE, &ndev->flags))
                nci_data_exchange_complete(ndev, NULL, -EIO);
+
+       nci_clear_target_list(ndev);
+       atomic_set(&ndev->state, NCI_IDLE);
+       nci_req_complete(ndev, NCI_STATUS_OK);
 }
 
 void nci_ntf_packet(struct nci_dev *ndev, struct sk_buff *skb)
@@ -300,10 +531,18 @@ void nci_ntf_packet(struct nci_dev *ndev, struct sk_buff *skb)
                nci_core_conn_credits_ntf_packet(ndev, skb);
                break;
 
+       case NCI_OP_CORE_GENERIC_ERROR_NTF:
+               nci_core_generic_error_ntf_packet(ndev, skb);
+               break;
+
        case NCI_OP_CORE_INTF_ERROR_NTF:
                nci_core_conn_intf_error_ntf_packet(ndev, skb);
                break;
 
+       case NCI_OP_RF_DISCOVER_NTF:
+               nci_rf_discover_ntf_packet(ndev, skb);
+               break;
+
        case NCI_OP_RF_INTF_ACTIVATED_NTF:
                nci_rf_intf_activated_ntf_packet(ndev, skb);
                break;
index 2840ae2f361527e278ae871a84f18f968d612057..aa63b1e99188672e799c428c814ac26a289118ad 100644 (file)
@@ -137,11 +137,23 @@ static void nci_rf_disc_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb)
        pr_debug("status 0x%x\n", status);
 
        if (status == NCI_STATUS_OK)
-               set_bit(NCI_DISCOVERY, &ndev->flags);
+               atomic_set(&ndev->state, NCI_DISCOVERY);
 
        nci_req_complete(ndev, status);
 }
 
+static void nci_rf_disc_select_rsp_packet(struct nci_dev *ndev,
+                                               struct sk_buff *skb)
+{
+       __u8 status = skb->data[0];
+
+       pr_debug("status 0x%x\n", status);
+
+       /* Complete the request on intf_activated_ntf or generic_error_ntf */
+       if (status != NCI_STATUS_OK)
+               nci_req_complete(ndev, status);
+}
+
 static void nci_rf_deactivate_rsp_packet(struct nci_dev *ndev,
                                        struct sk_buff *skb)
 {
@@ -149,9 +161,13 @@ static void nci_rf_deactivate_rsp_packet(struct nci_dev *ndev,
 
        pr_debug("status 0x%x\n", status);
 
-       clear_bit(NCI_DISCOVERY, &ndev->flags);
-
-       nci_req_complete(ndev, status);
+       /* If target was active, complete the request only in deactivate_ntf */
+       if ((status != NCI_STATUS_OK) ||
+               (atomic_read(&ndev->state) != NCI_POLL_ACTIVE)) {
+               nci_clear_target_list(ndev);
+               atomic_set(&ndev->state, NCI_IDLE);
+               nci_req_complete(ndev, status);
+       }
 }
 
 void nci_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb)
@@ -187,6 +203,10 @@ void nci_rsp_packet(struct nci_dev *ndev, struct sk_buff *skb)
                nci_rf_disc_rsp_packet(ndev, skb);
                break;
 
+       case NCI_OP_RF_DISCOVER_SELECT_RSP:
+               nci_rf_disc_select_rsp_packet(ndev, skb);
+               break;
+
        case NCI_OP_RF_DEACTIVATE_RSP:
                nci_rf_deactivate_rsp_packet(ndev, skb);
                break;
index 6989dfa28ee21d585d0f91fe8274e493a5f73c36..07f0348aabf564789b2c9a1cae2be7e07a3478c9 100644 (file)
@@ -70,6 +70,12 @@ static int nfc_genl_send_target(struct sk_buff *msg, struct nfc_target *target,
        if (target->nfcid1_len > 0)
                NLA_PUT(msg, NFC_ATTR_TARGET_NFCID1, target->nfcid1_len,
                                target->nfcid1);
+       if (target->sensb_res_len > 0)
+               NLA_PUT(msg, NFC_ATTR_TARGET_SENSB_RES, target->sensb_res_len,
+                               target->sensb_res);
+       if (target->sensf_res_len > 0)
+               NLA_PUT(msg, NFC_ATTR_TARGET_SENSF_RES, target->sensf_res_len,
+                               target->sensf_res);
 
        return genlmsg_end(msg, hdr);
 
index 2e2f8c6a61fe90579486c553032d14af2a7f0588..5325439b0c60872d4bd003074e2fbb8713f21157 100644 (file)
@@ -92,18 +92,6 @@ static int rawsock_connect(struct socket *sock, struct sockaddr *_addr,
                goto error;
        }
 
-       if (addr->target_idx > dev->target_idx - 1 ||
-               addr->target_idx < dev->target_idx - dev->n_targets) {
-               rc = -EINVAL;
-               goto error;
-       }
-
-       if (addr->target_idx > dev->target_idx - 1 ||
-               addr->target_idx < dev->target_idx - dev->n_targets) {
-               rc = -EINVAL;
-               goto error;
-       }
-
        rc = nfc_activate_target(dev, addr->target_idx, addr->nfc_protocol);
        if (rc)
                goto put_dev;
index 8c550df13037c7e0108c692cd080762fafd0ab38..9d3e3b6bfcf4c20f6a0e484dd097319a3a63eefa 100644 (file)
@@ -55,6 +55,7 @@ const struct mesh_config default_mesh_config = {
        .min_discovery_timeout = MESH_MIN_DISCOVERY_TIMEOUT,
        .dot11MeshHWMPRannInterval = MESH_RANN_INTERVAL,
        .dot11MeshGateAnnouncementProtocol = false,
+       .dot11MeshForwarding = true,
 };
 
 const struct mesh_setup default_mesh_setup = {
index afeea32e04ad9ea1a0caa1adeabe83b940bc0c42..c910b0750dc208e960225f8a9d42d927b94b6ba4 100644 (file)
@@ -427,10 +427,9 @@ static int nl80211_parse_key_new(struct nlattr *key, struct key_parse *k)
 
        if (tb[NL80211_KEY_DEFAULT_TYPES]) {
                struct nlattr *kdt[NUM_NL80211_KEY_DEFAULT_TYPES];
-               int err = nla_parse_nested(kdt,
-                                          NUM_NL80211_KEY_DEFAULT_TYPES - 1,
-                                          tb[NL80211_KEY_DEFAULT_TYPES],
-                                          nl80211_key_default_policy);
+               err = nla_parse_nested(kdt, NUM_NL80211_KEY_DEFAULT_TYPES - 1,
+                                      tb[NL80211_KEY_DEFAULT_TYPES],
+                                      nl80211_key_default_policy);
                if (err)
                        return err;
 
@@ -3259,6 +3258,8 @@ static int nl80211_get_mesh_config(struct sk_buff *skb,
                        cur_params.dot11MeshHWMPRannInterval);
        NLA_PUT_U8(msg, NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
                        cur_params.dot11MeshGateAnnouncementProtocol);
+       NLA_PUT_U8(msg, NL80211_MESHCONF_FORWARDING,
+                       cur_params.dot11MeshForwarding);
        nla_nest_end(msg, pinfoattr);
        genlmsg_end(msg, hdr);
        return genlmsg_reply(msg, info);
@@ -3290,6 +3291,7 @@ static const struct nla_policy nl80211_meshconf_params_policy[NL80211_MESHCONF_A
        [NL80211_MESHCONF_HWMP_ROOTMODE] = { .type = NLA_U8 },
        [NL80211_MESHCONF_HWMP_RANN_INTERVAL] = { .type = NLA_U16 },
        [NL80211_MESHCONF_GATE_ANNOUNCEMENTS] = { .type = NLA_U8 },
+       [NL80211_MESHCONF_FORWARDING] = { .type = NLA_U8 },
 };
 
 static const struct nla_policy
@@ -3379,6 +3381,8 @@ do {\
                        dot11MeshGateAnnouncementProtocol, mask,
                        NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
                        nla_get_u8);
+       FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshForwarding,
+                       mask, NL80211_MESHCONF_FORWARDING, nla_get_u8);
        if (mask_out)
                *mask_out = mask;
 
@@ -4781,7 +4785,6 @@ static int nl80211_join_ibss(struct sk_buff *skb, struct genl_info *info)
                        nla_len(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]);
                struct ieee80211_supported_band *sband =
                        wiphy->bands[ibss.channel->band];
-               int err;
 
                err = ieee80211_get_ratemask(sband, rates, n_rates,
                                             &ibss.basic_rates);
@@ -5390,9 +5393,39 @@ static u32 rateset_to_mask(struct ieee80211_supported_band *sband,
        return mask;
 }
 
+static bool ht_rateset_to_mask(struct ieee80211_supported_band *sband,
+                              u8 *rates, u8 rates_len,
+                              u8 mcs[IEEE80211_HT_MCS_MASK_LEN])
+{
+       u8 i;
+
+       memset(mcs, 0, IEEE80211_HT_MCS_MASK_LEN);
+
+       for (i = 0; i < rates_len; i++) {
+               int ridx, rbit;
+
+               ridx = rates[i] / 8;
+               rbit = BIT(rates[i] % 8);
+
+               /* check validity */
+               if ((ridx < 0) || (ridx > IEEE80211_HT_MCS_MASK_LEN))
+                       return false;
+
+               /* check availability */
+               if (sband->ht_cap.mcs.rx_mask[ridx] & rbit)
+                       mcs[ridx] |= rbit;
+               else
+                       return false;
+       }
+
+       return true;
+}
+
 static const struct nla_policy nl80211_txattr_policy[NL80211_TXRATE_MAX + 1] = {
        [NL80211_TXRATE_LEGACY] = { .type = NLA_BINARY,
                                    .len = NL80211_MAX_SUPP_RATES },
+       [NL80211_TXRATE_MCS] = { .type = NLA_BINARY,
+                                .len = NL80211_MAX_SUPP_HT_RATES },
 };
 
 static int nl80211_set_tx_bitrate_mask(struct sk_buff *skb,
@@ -5418,12 +5451,20 @@ static int nl80211_set_tx_bitrate_mask(struct sk_buff *skb,
                sband = rdev->wiphy.bands[i];
                mask.control[i].legacy =
                        sband ? (1 << sband->n_bitrates) - 1 : 0;
+               if (sband)
+                       memcpy(mask.control[i].mcs,
+                              sband->ht_cap.mcs.rx_mask,
+                              sizeof(mask.control[i].mcs));
+               else
+                       memset(mask.control[i].mcs, 0,
+                              sizeof(mask.control[i].mcs));
        }
 
        /*
         * The nested attribute uses enum nl80211_band as the index. This maps
         * directly to the enum ieee80211_band values used in cfg80211.
         */
+       BUILD_BUG_ON(NL80211_MAX_SUPP_HT_RATES > IEEE80211_HT_MCS_MASK_LEN * 8);
        nla_for_each_nested(tx_rates, info->attrs[NL80211_ATTR_TX_RATES], rem)
        {
                enum ieee80211_band band = nla_type(tx_rates);
@@ -5439,7 +5480,28 @@ static int nl80211_set_tx_bitrate_mask(struct sk_buff *skb,
                                sband,
                                nla_data(tb[NL80211_TXRATE_LEGACY]),
                                nla_len(tb[NL80211_TXRATE_LEGACY]));
-                       if (mask.control[band].legacy == 0)
+               }
+               if (tb[NL80211_TXRATE_MCS]) {
+                       if (!ht_rateset_to_mask(
+                                       sband,
+                                       nla_data(tb[NL80211_TXRATE_MCS]),
+                                       nla_len(tb[NL80211_TXRATE_MCS]),
+                                       mask.control[band].mcs))
+                               return -EINVAL;
+               }
+
+               if (mask.control[band].legacy == 0) {
+                       /* don't allow empty legacy rates if HT
+                        * is not even supported. */
+                       if (!rdev->wiphy.bands[band]->ht_cap.ht_supported)
+                               return -EINVAL;
+
+                       for (i = 0; i < IEEE80211_HT_MCS_MASK_LEN; i++)
+                               if (mask.control[band].mcs[i])
+                                       break;
+
+                       /* legacy and mcs rates may not be both empty */
+                       if (i == IEEE80211_HT_MCS_MASK_LEN)
                                return -EINVAL;
                }
        }
index f65feaad155f42a328460d03ee0c47c770b81981..e9a0ac83b84c2798961e59b1045a2e09d52b0a5d 100644 (file)
@@ -882,23 +882,8 @@ static void handle_channel(struct wiphy *wiphy,
        chan->flags = flags | bw_flags | map_regdom_flags(reg_rule->flags);
        chan->max_antenna_gain = min(chan->orig_mag,
                (int) MBI_TO_DBI(power_rule->max_antenna_gain));
-       if (chan->orig_mpwr) {
-               /*
-                * Devices that have their own custom regulatory domain
-                * but also use WIPHY_FLAG_STRICT_REGULATORY will follow the
-                * passed country IE power settings.
-                */
-               if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE &&
-                   wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY &&
-                   wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY) {
-                       chan->max_power =
-                               MBM_TO_DBM(power_rule->max_eirp);
-               } else {
-                       chan->max_power = min(chan->orig_mpwr,
-                               (int) MBM_TO_DBM(power_rule->max_eirp));
-               }
-       } else
-               chan->max_power = (int) MBM_TO_DBM(power_rule->max_eirp);
+       chan->max_reg_power = (int) MBM_TO_DBM(power_rule->max_eirp);
+       chan->max_power = min(chan->max_power, chan->max_reg_power);
 }
 
 static void handle_band(struct wiphy *wiphy,