diff options
Diffstat (limited to 'package/mac80211/patches/404-ath9k-introduce-bus-specific-cleanup-routine.patch')
-rw-r--r-- | package/mac80211/patches/404-ath9k-introduce-bus-specific-cleanup-routine.patch | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/package/mac80211/patches/404-ath9k-introduce-bus-specific-cleanup-routine.patch b/package/mac80211/patches/404-ath9k-introduce-bus-specific-cleanup-routine.patch deleted file mode 100644 index 2c29894904..0000000000 --- a/package/mac80211/patches/404-ath9k-introduce-bus-specific-cleanup-routine.patch +++ /dev/null @@ -1,95 +0,0 @@ -From d23e90c384edfbf039cb8b8d94c0ef90022949e7 Mon Sep 17 00:00:00 2001 -From: Gabor Juhos <juhosg@openwrt.org> -Date: Fri, 2 Jan 2009 16:08:45 +0100 -Subject: [RFC 04/12] ath9k: introduce bus specific cleanup routine - -We have left only some PCI specific cleanup code. We have to convert -them as well. - -Signed-off-by: Gabor Juhos <juhosg@openwrt.org> -Signed-off-by: Imre Kaloz <kaloz@openwrt.org> ---- - drivers/net/wireless/ath9k/core.h | 7 +++++++ - drivers/net/wireless/ath9k/main.c | 29 +++++++++++++++-------------- - 2 files changed, 22 insertions(+), 14 deletions(-) - ---- a/drivers/net/wireless/ath9k/core.h -+++ b/drivers/net/wireless/ath9k/core.h -@@ -723,6 +723,8 @@ struct ath_bus_ops { - void (*reg_write)(struct ath_hal *ah, unsigned reg, u32 val); - - void (*read_cachesize)(struct ath_softc *sc, int *csz); -+ -+ void (*cleanup)(struct ath_softc *sc); - }; - - struct ath_softc { -@@ -850,4 +852,9 @@ static inline void ath_read_cachesize(st - sc->bus_ops->read_cachesize(sc, csz); - } - -+static inline void ath_bus_cleanup(struct ath_softc *sc) -+{ -+ sc->bus_ops->cleanup(sc); -+} -+ - #endif /* CORE_H */ ---- a/drivers/net/wireless/ath9k/main.c -+++ b/drivers/net/wireless/ath9k/main.c -@@ -1276,13 +1276,7 @@ static int ath_start_rfkill_poll(struct - rfkill_free(sc->rf_kill.rfkill); - - /* Deinitialize the device */ -- ath_detach(sc); -- if (sc->pdev->irq) -- free_irq(sc->pdev->irq, sc); -- pci_iounmap(sc->pdev, sc->mem); -- pci_release_region(sc->pdev, 0); -- pci_disable_device(sc->pdev); -- ieee80211_free_hw(sc->hw); -+ ath_bus_cleanup(sc); - return -EIO; - } else { - sc->sc_flags |= SC_OP_RFKILL_REGISTERED; -@@ -2605,6 +2599,17 @@ static void ath_pci_reg_write(struct ath - iowrite32(val, ah->ah_sh + reg); - } - -+static void ath_pci_cleanup(struct ath_softc *sc) -+{ -+ ath_detach(sc); -+ if (sc->pdev->irq) -+ free_irq(sc->pdev->irq, sc); -+ pci_iounmap(sc->pdev, sc->mem); -+ pci_release_region(sc->pdev, 0); -+ pci_disable_device(sc->pdev); -+ ieee80211_free_hw(sc->hw); -+} -+ - static struct ath_bus_ops ath_pci_bus_ops = { - .dma_map_single_to_device = ath_pci_map_single_to_device, - .dma_unmap_single_to_device = ath_pci_unmap_single_to_device, -@@ -2620,6 +2625,8 @@ static struct ath_bus_ops ath_pci_bus_op - .reg_write = ath_pci_reg_write, - - .read_cachesize = ath_pci_read_cachesize, -+ -+ .cleanup = ath_pci_cleanup, - }; - - static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) -@@ -2756,13 +2763,7 @@ static void ath_pci_remove(struct pci_de - struct ieee80211_hw *hw = pci_get_drvdata(pdev); - struct ath_softc *sc = hw->priv; - -- ath_detach(sc); -- if (pdev->irq) -- free_irq(pdev->irq, sc); -- pci_iounmap(pdev, sc->mem); -- pci_release_region(pdev, 0); -- pci_disable_device(pdev); -- ieee80211_free_hw(hw); -+ ath_pci_cleanup(sc); - } - - #ifdef CONFIG_PM |