ath9k: use per-device struct for pm_qos_* operations
authorGabor Juhos <juhosg@openwrt.org>
Wed, 1 Dec 2010 18:39:58 +0000 (18:39 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Wed, 1 Dec 2010 18:39:58 +0000 (18:39 +0000)
SVN-Revision: 24209

package/mac80211/Makefile
package/mac80211/patches/590-ath9k-use-per-device-struct-for-pm_qos_-operations.patch [new file with mode: 0644]

index 929c2dff4fcbcd213ad31b1fd8dbbb8ef23669dc..91e9cdd4ee4932442aac7b94e906f24932ae540c 100644 (file)
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=mac80211
 
 PKG_VERSION:=2010-11-20
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
 #      http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
 #      http://wireless.kernel.org/download/compat-wireless-2.6
diff --git a/package/mac80211/patches/590-ath9k-use-per-device-struct-for-pm_qos_-operations.patch b/package/mac80211/patches/590-ath9k-use-per-device-struct-for-pm_qos_-operations.patch
new file mode 100644 (file)
index 0000000..0e02ce0
--- /dev/null
@@ -0,0 +1,92 @@
+--- a/drivers/net/wireless/ath/ath9k/ath9k.h
++++ b/drivers/net/wireless/ath/ath9k/ath9k.h
+@@ -21,6 +21,7 @@
+ #include <linux/device.h>
+ #include <linux/leds.h>
+ #include <linux/completion.h>
++#include <linux/pm_qos_params.h>
+ #include "debug.h"
+ #include "common.h"
+@@ -618,6 +619,8 @@ struct ath_softc {
+       struct ath_descdma txsdma;
+       struct ath_ant_comb ant_comb;
++
++      struct pm_qos_request_list pm_qos_req;
+ };
+ struct ath_wiphy {
+@@ -647,7 +650,6 @@ static inline void ath_read_cachesize(st
+ }
+ extern struct ieee80211_ops ath9k_ops;
+-extern struct pm_qos_request_list ath9k_pm_qos_req;
+ extern int modparam_nohwcrypt;
+ extern int led_blink;
+--- a/drivers/net/wireless/ath/ath9k/init.c
++++ b/drivers/net/wireless/ath/ath9k/init.c
+@@ -15,7 +15,6 @@
+  */
+ #include <linux/slab.h>
+-#include <linux/pm_qos_params.h>
+ #include <linux/ath9k_platform.h>
+ #include "ath9k.h"
+@@ -195,8 +194,6 @@ static const struct ath_ops ath9k_common
+       .write = ath9k_iowrite32,
+ };
+-struct pm_qos_request_list ath9k_pm_qos_req;
+-
+ /**************************/
+ /*     Initialization     */
+ /**************************/
+@@ -786,7 +783,7 @@ int ath9k_init_device(u16 devid, struct 
+       ath_init_leds(sc);
+       ath_start_rfkill_poll(sc);
+-      pm_qos_add_request(&ath9k_pm_qos_req, PM_QOS_CPU_DMA_LATENCY,
++      pm_qos_add_request(&sc->pm_qos_req, PM_QOS_CPU_DMA_LATENCY,
+                          PM_QOS_DEFAULT_VALUE);
+       return 0;
+@@ -857,7 +854,7 @@ void ath9k_deinit_device(struct ath_soft
+       }
+       ieee80211_unregister_hw(hw);
+-      pm_qos_remove_request(&ath9k_pm_qos_req);
++      pm_qos_remove_request(&sc->pm_qos_req);
+       ath_rx_cleanup(sc);
+       ath_tx_cleanup(sc);
+       ath9k_deinit_softc(sc);
+--- a/drivers/net/wireless/ath/ath9k/main.c
++++ b/drivers/net/wireless/ath/ath9k/main.c
+@@ -15,7 +15,6 @@
+  */
+ #include <linux/nl80211.h>
+-#include <linux/pm_qos_params.h>
+ #include "ath9k.h"
+ #include "btcoex.h"
+@@ -1184,7 +1183,7 @@ static int ath9k_start(struct ieee80211_
+                       ath9k_btcoex_timer_resume(sc);
+       }
+-      pm_qos_update_request(&ath9k_pm_qos_req, 55);
++      pm_qos_update_request(&sc->pm_qos_req, 55);
+ mutex_unlock:
+       mutex_unlock(&sc->mutex);
+@@ -1336,7 +1335,7 @@ static void ath9k_stop(struct ieee80211_
+       sc->sc_flags |= SC_OP_INVALID;
+-      pm_qos_update_request(&ath9k_pm_qos_req, PM_QOS_DEFAULT_VALUE);
++      pm_qos_update_request(&sc->pm_qos_req, PM_QOS_DEFAULT_VALUE);
+       mutex_unlock(&sc->mutex);