diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/pci.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/pci.c | 39 | 
1 files changed, 8 insertions, 31 deletions
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c index 7ae73fbd913..0e0d3958383 100644 --- a/drivers/net/wireless/ath/ath9k/pci.c +++ b/drivers/net/wireless/ath/ath9k/pci.c @@ -147,7 +147,6 @@ static const struct ath_bus_ops ath_pci_bus_ops = {  static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)  { -	void __iomem *mem;  	struct ath_softc *sc;  	struct ieee80211_hw *hw;  	u8 csz; @@ -155,19 +154,19 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)  	int ret = 0;  	char hw_name[64]; -	if (pci_enable_device(pdev)) +	if (pcim_enable_device(pdev))  		return -EIO;  	ret =  pci_set_dma_mask(pdev, DMA_BIT_MASK(32));  	if (ret) {  		pr_err("32-bit DMA not available\n"); -		goto err_dma; +		return ret;  	}  	ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));  	if (ret) {  		pr_err("32-bit DMA consistent DMA enable failed\n"); -		goto err_dma; +		return ret;  	}  	/* @@ -203,25 +202,16 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)  	if ((val & 0x0000ff00) != 0)  		pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); -	ret = pci_request_region(pdev, 0, "ath9k"); +	ret = pcim_iomap_regions(pdev, BIT(0), "ath9k");  	if (ret) {  		dev_err(&pdev->dev, "PCI memory region reserve error\n"); -		ret = -ENODEV; -		goto err_region; -	} - -	mem = pci_iomap(pdev, 0, 0); -	if (!mem) { -		pr_err("PCI memory map error\n") ; -		ret = -EIO; -		goto err_iomap; +		return -ENODEV;  	}  	hw = ieee80211_alloc_hw(sizeof(struct ath_softc), &ath9k_ops);  	if (!hw) {  		dev_err(&pdev->dev, "No memory for ieee80211_hw\n"); -		ret = -ENOMEM; -		goto err_alloc_hw; +		return -ENOMEM;  	}  	SET_IEEE80211_DEV(hw, &pdev->dev); @@ -230,7 +220,7 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)  	sc = hw->priv;  	sc->hw = hw;  	sc->dev = &pdev->dev; -	sc->mem = mem; +	sc->mem = pcim_iomap_table(pdev)[0];  	/* Will be cleared in ath9k_start() */  	set_bit(SC_OP_INVALID, &sc->sc_flags); @@ -251,7 +241,7 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)  	ath9k_hw_name(sc->sc_ah, hw_name, sizeof(hw_name));  	wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n", -		   hw_name, (unsigned long)mem, pdev->irq); +		   hw_name, (unsigned long)sc->mem, pdev->irq);  	return 0; @@ -259,14 +249,6 @@ err_init:  	free_irq(sc->irq, sc);  err_irq:  	ieee80211_free_hw(hw); -err_alloc_hw: -	pci_iounmap(pdev, mem); -err_iomap: -	pci_release_region(pdev, 0); -err_region: -	/* Nothing */ -err_dma: -	pci_disable_device(pdev);  	return ret;  } @@ -274,17 +256,12 @@ static void ath_pci_remove(struct pci_dev *pdev)  {  	struct ieee80211_hw *hw = pci_get_drvdata(pdev);  	struct ath_softc *sc = hw->priv; -	void __iomem *mem = sc->mem;  	if (!is_ath9k_unloaded)  		sc->sc_ah->ah_flags |= AH_UNPLUGGED;  	ath9k_deinit_device(sc);  	free_irq(sc->irq, sc);  	ieee80211_free_hw(sc->hw); - -	pci_iounmap(pdev, mem); -	pci_disable_device(pdev); -	pci_release_region(pdev, 0);  }  #ifdef CONFIG_PM_SLEEP  |