[package] mac80211: update ath9k patches
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 405-ath9k-move-PCI-code-into-separate-file.patch
index 0cdf4daf54d990d7f6f951a1e4e35e15f5c7a47c..462d6236244d750bda99cb01f21d58ecccede004 100644 (file)
@@ -1,7 +1,7 @@
-From d95e670cd1395ffd8410bed809b6d060f2183d6b Mon Sep 17 00:00:00 2001
+From 39c2811d18b39991f49c16dcd9ed1a81200371ad Mon Sep 17 00:00:00 2001
 From: Gabor Juhos <juhosg@openwrt.org>
 Date: Mon, 5 Jan 2009 11:01:09 +0100
-Subject: [PATCH 05/11] ath9k: move PCI code into separate file
+Subject: [PATCH v2 05/11] ath9k: move PCI code into separate file
 
 Now that we have converted all bus specific routines to replaceable, we
 can move the PCI specific codes into a separate file.
@@ -10,9 +10,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 ---
  drivers/net/wireless/ath9k/Makefile |    1 +
- drivers/net/wireless/ath9k/core.h   |   18 ++-
- drivers/net/wireless/ath9k/main.c   |  299 +++--------------------------------
- drivers/net/wireless/ath9k/pci.c    |  289 +++++++++++++++++++++++++++++++++
+ drivers/net/wireless/ath9k/core.h   |   19 ++-
+ drivers/net/wireless/ath9k/main.c   |  300 +++--------------------------------
+ drivers/net/wireless/ath9k/pci.c    |  287 +++++++++++++++++++++++++++++++++
  4 files changed, 328 insertions(+), 279 deletions(-)
 
 --- a/drivers/net/wireless/ath9k/Makefile
@@ -36,13 +36,14 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  #include <net/mac80211.h>
  #include <linux/leds.h>
  #include <linux/rfkill.h>
-@@ -766,4 +766,20 @@ static inline void ath_bus_cleanup(struc
+@@ -767,4 +767,21 @@ static inline void ath_bus_cleanup(struc
        sc->bus_ops->cleanup(sc);
  }
  
 +extern struct ieee80211_ops ath9k_ops;
 +
 +irqreturn_t ath_isr(int irq, void *dev);
++void ath_cleanup(struct ath_softc *sc);
 +int ath_attach(u16 devid, struct ath_softc *sc);
 +void ath_detach(struct ath_softc *sc);
 +const char *ath_mac_bb_name(u32 mac_bb_version);
@@ -59,7 +60,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  #endif /* CORE_H */
 --- a/drivers/net/wireless/ath9k/main.c
 +++ b/drivers/net/wireless/ath9k/main.c
-@@ -28,38 +28,6 @@ MODULE_DESCRIPTION("Support for Atheros 
+@@ -28,39 +28,6 @@ MODULE_DESCRIPTION("Support for Atheros 
  MODULE_SUPPORTED_DEVICE("Atheros 802.11n WLAN cards");
  MODULE_LICENSE("Dual BSD/GPL");
  
@@ -74,6 +75,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 -};
 -
 -static void ath_detach(struct ath_softc *sc);
+-static void ath_cleanup(struct ath_softc *sc);
 -
 -/* return bus cachesize in 4B word units */
 -
@@ -98,7 +100,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  static void ath_cache_conf_rate(struct ath_softc *sc,
                                struct ieee80211_conf *conf)
  {
-@@ -497,7 +465,7 @@ static void ath9k_tasklet(unsigned long 
+@@ -498,7 +465,7 @@ static void ath9k_tasklet(unsigned long 
        ath9k_hw_set_interrupts(sc->sc_ah, sc->sc_imask);
  }
  
@@ -107,16 +109,25 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  {
        struct ath_softc *sc = dev;
        struct ath_hal *ah = sc->sc_ah;
-@@ -1278,7 +1246,7 @@ static int ath_start_rfkill_poll(struct 
+@@ -1279,7 +1246,7 @@ static int ath_start_rfkill_poll(struct 
  }
  #endif /* CONFIG_RFKILL */
  
+-static void ath_cleanup(struct ath_softc *sc)
++void ath_cleanup(struct ath_softc *sc)
+ {
+       ath_detach(sc);
+       free_irq(sc->irq, sc);
+@@ -1287,7 +1254,7 @@ static void ath_cleanup(struct ath_softc
+       ieee80211_free_hw(sc->hw);
+ }
 -static void ath_detach(struct ath_softc *sc)
 +void ath_detach(struct ath_softc *sc)
  {
        struct ieee80211_hw *hw = sc->hw;
        int i = 0;
-@@ -1529,7 +1497,7 @@ bad:
+@@ -1538,7 +1505,7 @@ bad:
        return error;
  }
  
@@ -125,7 +136,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  {
        struct ieee80211_hw *hw = sc->hw;
        int error = 0;
-@@ -2448,7 +2416,7 @@ static int ath9k_ampdu_action(struct iee
+@@ -2457,7 +2424,7 @@ static int ath9k_ampdu_action(struct iee
        return ret;
  }
  
@@ -134,7 +145,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
        .tx                 = ath9k_tx,
        .start              = ath9k_start,
        .stop               = ath9k_stop,
-@@ -2492,7 +2460,7 @@ static struct {
+@@ -2501,7 +2468,7 @@ static struct {
  /*
   * Return the MAC/BB name. "????" is returned if the MAC/BB is unknown.
   */
@@ -143,7 +154,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  ath_mac_bb_name(u32 mac_bb_version)
  {
        int i;
-@@ -2509,7 +2477,7 @@ ath_mac_bb_name(u32 mac_bb_version)
+@@ -2518,7 +2485,7 @@ ath_mac_bb_name(u32 mac_bb_version)
  /*
   * Return the RF name. "????" is returned if the RF is unknown.
   */
@@ -152,7 +163,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  ath_rf_name(u16 rf_version)
  {
        int i;
-@@ -2523,236 +2491,7 @@ ath_rf_name(u16 rf_version)
+@@ -2532,234 +2499,7 @@ ath_rf_name(u16 rf_version)
        return "????";
  }
  
@@ -160,13 +171,9 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 -{
 -      struct pci_dev *pdev = to_pci_dev(sc->dev);
 -
--      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(sc->hw);
 -}
 -
 -static struct ath_bus_ops ath_pci_bus_ops = {
@@ -278,6 +285,8 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 -              goto bad4;
 -      }
 -
+-      sc->irq = pdev->irq;
+-
 -      ah = sc->sc_ah;
 -      printk(KERN_INFO
 -             "%s: Atheros AR%s MAC/BB Rev:%x "
@@ -308,7 +317,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 -      struct ieee80211_hw *hw = pci_get_drvdata(pdev);
 -      struct ath_softc *sc = hw->priv;
 -
--      ath_pci_cleanup(sc);
+-      ath_cleanup(sc);
 -}
 -
 -#ifdef CONFIG_PM
@@ -390,7 +399,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  {
        int error;
  
-@@ -2764,26 +2503,30 @@ static int __init init_ath_pci(void)
+@@ -2771,26 +2511,30 @@ static int __init init_ath_pci(void)
                printk(KERN_ERR
                        "Unable to register rate control algorithm: %d\n",
                        error);
@@ -433,7 +442,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 +module_exit(ath9k_exit);
 --- /dev/null
 +++ b/drivers/net/wireless/ath9k/pci.c
-@@ -0,0 +1,289 @@
+@@ -0,0 +1,287 @@
 +/*
 + * Copyright (c) 2008 Atheros Communications Inc.
 + *
@@ -489,13 +498,9 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 +{
 +      struct pci_dev *pdev = to_pci_dev(sc->dev);
 +
-+      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(sc->hw);
 +}
 +
 +static struct ath_bus_ops ath_pci_bus_ops = {
@@ -607,6 +612,8 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 +              goto bad4;
 +      }
 +
++      sc->irq = pdev->irq;
++
 +      ah = sc->sc_ah;
 +      printk(KERN_INFO
 +             "%s: Atheros AR%s MAC/BB Rev:%x "
@@ -637,7 +644,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 +      struct ieee80211_hw *hw = pci_get_drvdata(pdev);
 +      struct ath_softc *sc = hw->priv;
 +
-+      ath_pci_cleanup(sc);
++      ath_cleanup(sc);
 +}
 +
 +#ifdef CONFIG_PM