iwlwifi: use writeb,writel,readl directly
authorStanislaw Gruszka <sgruszka@redhat.com>
Wed, 7 Mar 2012 17:52:26 +0000 (09:52 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 8 Mar 2012 18:59:51 +0000 (13:59 -0500)
That change will save us some CPU cycles at run time. Having port-based
I/O seems to be not possible for PCIe devices.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/Kconfig
drivers/net/wireless/iwlwifi/iwl-trans-pcie.c

index ae08498dfcad98a91311e128ab9569f0f7c9534b..5afd06ef0d8b86ea0113dbb580dfd4ee88ff6d27 100644 (file)
@@ -1,6 +1,6 @@
 config IWLWIFI
        tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) "
-       depends on PCI && MAC80211
+       depends on PCI && MAC80211 && HAS_IOMEM
        select FW_LOADER
        select NEW_LEDS
        select LEDS_CLASS
index ef76a3916189a91d0f4389a92614100cbcc76ed1..389f99e6a8eb97672c983d942f0dded8a573e60e 100644 (file)
@@ -1600,18 +1600,17 @@ static int iwl_trans_pcie_reclaim(struct iwl_trans *trans, int sta_id, int tid,
 
 static void iwl_trans_pcie_write8(struct iwl_trans *trans, u32 ofs, u8 val)
 {
-       iowrite8(val, IWL_TRANS_GET_PCIE_TRANS(trans)->hw_base + ofs);
+       writeb(val, IWL_TRANS_GET_PCIE_TRANS(trans)->hw_base + ofs);
 }
 
 static void iwl_trans_pcie_write32(struct iwl_trans *trans, u32 ofs, u32 val)
 {
-       iowrite32(val, IWL_TRANS_GET_PCIE_TRANS(trans)->hw_base + ofs);
+       writel(val, IWL_TRANS_GET_PCIE_TRANS(trans)->hw_base + ofs);
 }
 
 static u32 iwl_trans_pcie_read32(struct iwl_trans *trans, u32 ofs)
 {
-       u32 val = ioread32(IWL_TRANS_GET_PCIE_TRANS(trans)->hw_base + ofs);
-       return val;
+       return readl(IWL_TRANS_GET_PCIE_TRANS(trans)->hw_base + ofs);
 }
 
 static void iwl_trans_pcie_free(struct iwl_trans *trans)
@@ -1629,7 +1628,7 @@ static void iwl_trans_pcie_free(struct iwl_trans *trans)
        }
 
        pci_disable_msi(trans_pcie->pci_dev);
-       pci_iounmap(trans_pcie->pci_dev, trans_pcie->hw_base);
+       iounmap(trans_pcie->hw_base);
        pci_release_regions(trans_pcie->pci_dev);
        pci_disable_device(trans_pcie->pci_dev);
 
@@ -2258,9 +2257,9 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct iwl_shared *shrd,
                goto out_pci_disable_device;
        }
 
-       trans_pcie->hw_base = pci_iomap(pdev, 0, 0);
+       trans_pcie->hw_base = pci_ioremap_bar(pdev, 0);
        if (!trans_pcie->hw_base) {
-               dev_printk(KERN_ERR, &pdev->dev, "pci_iomap failed");
+               dev_printk(KERN_ERR, &pdev->dev, "pci_ioremap_bar failed");
                err = -ENODEV;
                goto out_pci_release_regions;
        }