diff --git a/backports-3.12.8-1/.local-symbols b/backports-3.12.8-1/.local-symbols index 5e2f85a..2d98349 100644 --- a/backports-3.12.8-1/.local-symbols +++ b/backports-3.12.8-1/.local-symbols @@ -137,6 +137,7 @@ ATH9K_DEBUGFS= ATH9K_DFS_CERTIFIED= ATH9K_LEGACY_RATE_CONTROL= ATH9K_RFKILL= +ATH9K_TID_SLEEPING= ATH9K_HTC= ATH9K_HTC_DEBUGFS= CARL9170= diff --git a/backports-3.12.8-1/Makefile b/backports-3.12.8-1/Makefile index 0ef8b67..ca69f41 100644 --- a/backports-3.12.8-1/Makefile +++ b/backports-3.12.8-1/Makefile @@ -8,8 +8,6 @@ MAKEFLAGS += --no-print-directory SHELL := /bin/bash BACKPORT_PWD := $(shell pwd) -CFLAGS += -DTID_SLEEPING - KMODDIR ?= updates ifneq ($(origin KLIB), undefined) KMODPATH_ARG := "INSTALL_MOD_PATH=$(KLIB)" diff --git a/backports-3.12.8-1/defconfigs/ath9k b/backports-3.12.8-1/defconfigs/ath9k index c50a588..5a0fc13 100644 --- a/backports-3.12.8-1/defconfigs/ath9k +++ b/backports-3.12.8-1/defconfigs/ath9k @@ -8,7 +8,6 @@ CPTCFG_ATH_CARDS=m CPTCFG_ATH9K=m CPTCFG_ATH9K_HTC=m CPTCFG_ATH9K_TID_SLEEPING=y -CPTCFG_ATH9K_TID_SLEEPING_DEBUG=n CPTCFG_MAC80211_DEBUGFS=y CPTCFG_MAC80211_DEBUG_MENU=y CPTCFG_MAC80211_VERBOSE_DEBUG=y diff --git a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/Kconfig b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/Kconfig index c758a70..b2db2e4 100644 --- a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/Kconfig +++ b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/Kconfig @@ -132,3 +132,11 @@ config ATH9K_HTC_DEBUGFS depends on ATH9K_HTC && DEBUG_FS ---help--- Say Y, if you need access to ath9k_htc's statistics. + +config ATH9K_TID_SLEEPING + bool "Atheros ath9k TID sleeping support" + depends on ATH9K + default n + ---help--- + Say Y to have ath9k TID sleeping support. + diff --git a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/ath9k.h b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/ath9k.h index bbfb763..5011517 100644 --- a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/ath9k.h @@ -29,7 +29,6 @@ #include "mci.h" #include "dfs.h" -#define TID_SLEEPING /* * Header for the ath9k.ko driver core *only* -- hw code nor any other driver @@ -38,7 +37,7 @@ struct ath_node; -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING extern struct list_head tid_sleep_sta_sleep_ctl_list; void ath_tx_aggr_sleep_tid_sleep(struct ieee80211_sta *sta, struct ath_softc *sc, struct ath_node *an); @@ -199,7 +198,7 @@ struct ath_txq { }; -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING struct tid_sleep_sta_sleep_ctl { struct list_head list; struct ieee80211_hw *hw; diff --git a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/main.c b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/main.c index 798fe54..4f939d3 100644 --- a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/main.c +++ b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/main.c @@ -20,10 +20,8 @@ #include "ath9k.h" #include "btcoex.h" -#define TID_SLEEPING -//#define TID_SLEEPING_DEBUG -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING struct list_head tid_sleep_sta_sleep_ctl_list; struct tid_sleep_tuple @@ -675,7 +673,7 @@ static int ath9k_start(struct ieee80211_hw *hw) ath9k_ps_restore(sc); -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING INIT_LIST_HEAD(&tid_sleep_sta_sleep_ctl_list); #endif @@ -1352,7 +1350,7 @@ static int ath9k_sta_add(struct ieee80211_hw *hw, struct ieee80211_key_conf ps_key = { }; int key; -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING int iter_sleep_sta; struct tid_sleep_sta_sleep_ctl * new_sleep_sta; new_sleep_sta = kmalloc(sizeof(struct tid_sleep_sta_sleep_ctl), GFP_USER); @@ -1399,7 +1397,7 @@ static int ath9k_sta_remove(struct ieee80211_hw *hw, struct ieee80211_sta *sta) { -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING struct tid_sleep_sta_sleep_ctl *sta_pos, *sta_n; #endif @@ -1408,7 +1406,7 @@ static int ath9k_sta_remove(struct ieee80211_hw *hw, ath9k_del_ps_key(sc, vif, sta); ath_node_detach(sc, sta); -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING list_for_each_entry_safe(sta_pos, sta_n, &tid_sleep_sta_sleep_ctl_list, list) { @@ -2031,7 +2029,7 @@ static int ath9k_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant) return 0; } -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING static int ath9k_tid_sleep_mode(char * tid_sleep_data_ptr, u8 tid_sleep_data_len) @@ -2045,14 +2043,14 @@ static int ath9k_tid_sleep_mode(char * tid_sleep_data_ptr, if(tid_sleep_data_len % sizeof(struct tid_sleep_tuple) == 0) { num_entries = tid_sleep_data_len / sizeof(struct tid_sleep_tuple); -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ATH9k:num_entries: %d, tid_sleep_data_len: %d, sizeof one:%lu\n", num_entries,tid_sleep_data_len,sizeof(struct tid_sleep_tuple)); #endif for(j=0; jmac); printk("TID wakeup mask: %d\n", tids_tuple_ptr->mask); @@ -2085,7 +2083,7 @@ static int ath9k_tid_sleep_mode(char * tid_sleep_data_ptr, } if(ff_cntr==6) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("Process all STAs activated\n"); #endif } @@ -2102,7 +2100,7 @@ static int ath9k_tid_sleep_mode(char * tid_sleep_data_ptr, sta_pos->sta->addr[5]==tids_tuple_ptr->mac[5]) || (ff_cntr==6)) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("STA MAC: %pM found\n",sta_pos->sta->addr); #endif for(tid_no=0; tid_no<8; tid_no++) @@ -2110,14 +2108,14 @@ static int ath9k_tid_sleep_mode(char * tid_sleep_data_ptr, if(wakeup_tids[tid_no]) { sta_pos->sleeping_tids[tid_no]=false; -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("Wakeup TID: %d\n",tid_no); #endif } else { sta_pos->sleeping_tids[tid_no]=true; -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("Sleeping TID: %d\n",tid_no); #endif } @@ -2135,7 +2133,7 @@ static int ath9k_tid_sleep_mode(char * tid_sleep_data_ptr, } if(num_entries==0) /*Allow nothing, set everything to sleep*/ { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("Global Sleep Mode Activated!\n"); printk("Putting all STAs and all their TIDs into sleep mode\n"); #endif @@ -2144,7 +2142,7 @@ static int ath9k_tid_sleep_mode(char * tid_sleep_data_ptr, for(tid_no=0; tid_no<8; tid_no++) { sta_pos->sleeping_tids[tid_no]=true; -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("Sleeping TID: %d\n",tid_no); #endif } @@ -2563,7 +2561,7 @@ struct ieee80211_ops ath9k_ops = { .sw_scan_start = ath9k_sw_scan_start, .sw_scan_complete = ath9k_sw_scan_complete, .channel_switch_beacon = ath9k_channel_switch_beacon, -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING .set_tid_sleep_mode = ath9k_tid_sleep_mode, #endif }; diff --git a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/xmit.c b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/xmit.c index d1f21bc..2ccd0bf 100644 --- a/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/xmit.c +++ b/backports-3.12.8-1/drivers/net/wireless/ath/ath9k/xmit.c @@ -19,8 +19,6 @@ #include "ath9k.h" #include "ar9003_mac.h" -#define TID_SLEEPING -//#define TID_SLEEPING_DEBUG #define BITS_PER_BYTE 8 #define OFDM_PLCP_BITS 22 @@ -1458,7 +1456,7 @@ void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc, bool buffered; int tidno; -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING struct tid_sleep_sta_sleep_ctl *sta_pos, *sta_n, *sta_found; sta_found = 0; sta_n = 0; @@ -1467,7 +1465,7 @@ void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc, list_for_each_entry_safe(sta_pos, sta_n, &tid_sleep_sta_sleep_ctl_list, list) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_aggr_sleep: MAC searched: %pM \n", sta->addr); printk("ath_tx_aggr_sleep: MAC saved: %pM \n", sta_pos->sta->addr); #endif @@ -1483,7 +1481,7 @@ void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc, for (tidno = 0, tid = &an->tid[tidno]; tidno < IEEE80211_NUM_TIDS; tidno++, tid++) { -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING if(sta_found) { if(sta_found->sleeping_tids[tidno]==false) @@ -1491,7 +1489,7 @@ void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc, /*Do not put a TID of a STA that is in global sleep mode into sleep mode if the TID of the STA has set sleep mode set to false*/ -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_aggr_sleep: Do no sleeo break!"); #endif continue; @@ -1523,7 +1521,7 @@ void ath_tx_aggr_sleep(struct ieee80211_sta *sta, struct ath_softc *sc, } } -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING void ath_tx_aggr_sleep_tid_sleep(struct ieee80211_sta *sta, struct ath_softc *sc, struct ath_node *an) { @@ -1540,7 +1538,7 @@ void ath_tx_aggr_sleep_tid_sleep(struct ieee80211_sta *sta, list_for_each_entry_safe(sta_pos, sta_n, &tid_sleep_sta_sleep_ctl_list, list) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_aggr_sleep_tid_sleep: MAC searched: %pM \n", sta->addr); printk("ath_tx_aggr_sleep_tid_sleep: MAC saved: %pM \n", @@ -1599,7 +1597,7 @@ void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an) struct ath_txq *txq; int tidno; -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING struct tid_sleep_sta_sleep_ctl *sta_pos, *sta_n, *sta_found; sta_found = 0; sta_n = 0; @@ -1608,7 +1606,7 @@ void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an) list_for_each_entry_safe(sta_pos, sta_n, &tid_sleep_sta_sleep_ctl_list, list) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_aggr_wakeup: MAC search: %pM \n", an->sta->addr); printk("ath_tx_aggr_wakeup: MAC saved: %pM \n", @@ -1625,13 +1623,13 @@ void ath_tx_aggr_wakeup(struct ath_softc *sc, struct ath_node *an) for (tidno = 0, tid = &an->tid[tidno]; tidno < IEEE80211_NUM_TIDS; tidno++, tid++) { -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING if(sta_found) { if(sta_found->sleeping_tids[tidno]==true) { continue; -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_aggr_wakeup: Do no wake up, break!"); #endif } @@ -2326,7 +2324,7 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, int q; int ret; -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING struct tid_sleep_sta_sleep_ctl *sta_pos, *sta_n, *sta_found; bool tid_sleep_tid_force_sleep=false; sta_found = 0; @@ -2366,12 +2364,12 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) tid->ac->clear_ps_filter = true; -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING if(txctl->an) { if(txctl->an->sta) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_start: MAC search: %pM \n", txctl->an->sta->addr); #endif @@ -2381,14 +2379,14 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, { if(sta_pos->sta == txctl->an->sta) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_start: MAC saved: %pM \n", sta_pos->sta->addr); #endif sta_found=sta_pos; if(tid) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_start:STA found 1"); #endif tid_sleep_tid_force_sleep=sta_found-> @@ -2400,7 +2398,7 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, } else if(txctl->sta) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_start: MAC search: %pM \n", txctl->sta->addr); #endif @@ -2408,7 +2406,7 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, list_for_each_entry_safe(sta_pos, sta_n, &tid_sleep_sta_sleep_ctl_list, list) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_start: MAC saved: %pM \n", sta_pos->sta->addr); #endif @@ -2417,7 +2415,7 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, sta_found=sta_pos; if(tid) { -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_start: STA found 2"); #endif tid_sleep_tid_force_sleep=sta_found-> @@ -2438,12 +2436,12 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, */ TX_STAT_INC(txq->axq_qnum, a_queued_sw); __skb_queue_tail(&tid->buf_q, skb); -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING if (!txctl->an->sleeping && tid_sleep_tid_force_sleep==false) { #else if (!txctl->an->sleeping) { #endif -#ifdef TID_SLEEPING_DEBUG +#ifdef CPTCFG_ATH_DEBUG printk("ath_tx_start: This frame will be sent\n"); #endif ath_tx_queue_tid(txq, tid); diff --git a/backports-3.12.8-1/drivers/net/wireless/ath/regd.c b/backports-3.12.8-1/drivers/net/wireless/ath/regd.c index 91a9170..a1003e0 100644 --- a/backports-3.12.8-1/drivers/net/wireless/ath/regd.c +++ b/backports-3.12.8-1/drivers/net/wireless/ath/regd.c @@ -15,8 +15,6 @@ * TID_SLEEPING PATCH 2015 Sven Zehl zehl@tkn.tu-berlin.de */ -#define TID_SLEEPING - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include @@ -571,8 +569,8 @@ static int __ath_regd_init(struct ath_regulatory *reg) "country code should be used\n"); reg->country_code = CTRY_UNITED_STATES; } -#ifdef TID_SLEEPING - printk("ath: TID SLEEPING MODE ENABLED\n"); +#ifdef CPTCFG_ATH9K_TID_SLEEPING + printk("ath: ATH9K HMAC ENABLED\n"); #endif if (reg->country_code == CTRY_DEFAULT) { country = NULL; diff --git a/backports-3.12.8-1/include/net/cfg80211.h b/backports-3.12.8-1/include/net/cfg80211.h index 153da60..428a5de 100644 --- a/backports-3.12.8-1/include/net/cfg80211.h +++ b/backports-3.12.8-1/include/net/cfg80211.h @@ -23,7 +23,6 @@ #include #include -#define TID_SLEEPING /** * DOC: Introduction @@ -2410,7 +2409,7 @@ struct cfg80211_ops { int (*channel_switch)(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_csa_settings *params); -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING int (*tid_sleeping)(struct wiphy *wiphy, struct net_device *dev, char * tid_sleep_data_ptr, u8 tid_sleep_data_len); #endif diff --git a/backports-3.12.8-1/include/net/mac80211.h b/backports-3.12.8-1/include/net/mac80211.h index d9a0e47..8dfdf39 100644 --- a/backports-3.12.8-1/include/net/mac80211.h +++ b/backports-3.12.8-1/include/net/mac80211.h @@ -22,8 +22,6 @@ #include #include -#define TID_SLEEPING - /** * DOC: Introduction * @@ -2870,7 +2868,7 @@ struct ieee80211_ops { void (*channel_switch_beacon)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_chan_def *chandef); -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING int (*set_tid_sleep_mode)(char * tid_sleep_data_ptr, u8 tid_sleep_data_len); #endif diff --git a/backports-3.12.8-1/include/uapi/linux/nl80211.h b/backports-3.12.8-1/include/uapi/linux/nl80211.h index 9d351db..8de4f13 100644 --- a/backports-3.12.8-1/include/uapi/linux/nl80211.h +++ b/backports-3.12.8-1/include/uapi/linux/nl80211.h @@ -28,7 +28,6 @@ #include #define NL80211_GENL_NAME "nl80211" -#define TID_SLEEPING /** * DOC: Station handling @@ -686,6 +685,10 @@ * width). %NL80211_ATTR_CH_SWITCH_BLOCK_TX may be supplied to inform * other station that transmission must be blocked until the channel * switch is complete. + * + * @NL80211_CMD_SET_TID_SLEEP: set the power save mode of a single TID + * of a distinct STA. + * * * @NL80211_CMD_MAX: highest used command number * @__NL80211_CMD_AFTER_LAST: internal use @@ -855,7 +858,9 @@ enum nl80211_commands { NL80211_CMD_CHANNEL_SWITCH, /* add new commands above here */ - +#ifdef CPTCFG_ATH9K_TID_SLEEPING + NL80211_CMD_SET_TID_SLEEP, +#endif /* used to define NL80211_CMD_MAX below */ __NL80211_CMD_AFTER_LAST, NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 @@ -1497,8 +1502,8 @@ enum nl80211_commands { * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32. * As specified in the &enum nl80211_rxmgmt_flags. * - * @NL80211_ATTR_TID_SLEEP_CTRL: change the power save mode of a single TID - * of a distinct STA. (TID_SLEEPING) + * @NL80211_ATTR_TID_SLEEP: payload for changing the power save mode of + * a single TID of a distinct STA. (TID_SLEEPING) * * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use @@ -1812,9 +1817,8 @@ enum nl80211_attrs { /* add attributes here, update the policy in nl80211.c */ -#ifdef TID_SLEEPING - NL80211_ATTR_TID_SLEEP_CTRL, - NL80211_ATTR_TID_SLEEP_CTRL_DATA, +#ifdef CPTCFG_ATH9K_TID_SLEEPING + NL80211_ATTR_TID_SLEEP, #endif __NL80211_ATTR_AFTER_LAST, diff --git a/backports-3.12.8-1/net/mac80211/cfg.c b/backports-3.12.8-1/net/mac80211/cfg.c index d315b4d..d19a338 100644 --- a/backports-3.12.8-1/net/mac80211/cfg.c +++ b/backports-3.12.8-1/net/mac80211/cfg.c @@ -21,8 +21,6 @@ #include "rate.h" #include "mesh.h" -#define TID_SLEEPING - static struct wireless_dev *ieee80211_add_iface(struct wiphy *wiphy, const char *name, enum nl80211_iftype type, @@ -1458,7 +1456,7 @@ static int ieee80211_del_station(struct wiphy *wiphy, struct net_device *dev, return 0; } -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING static int ieee80211_tid_sleeping(struct wiphy *wiphy, struct net_device *dev, char * tid_sleep_data_ptr, u8 tid_sleep_data_len) @@ -3701,7 +3699,7 @@ struct cfg80211_ops mac80211_config_ops = { .get_channel = ieee80211_cfg_get_channel, .start_radar_detection = ieee80211_start_radar_detection, .channel_switch = ieee80211_channel_switch, -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING .tid_sleeping = ieee80211_tid_sleeping, #endif }; diff --git a/backports-3.12.8-1/net/mac80211/driver-ops.h b/backports-3.12.8-1/net/mac80211/driver-ops.h index 568d21c..6359ff1 100644 --- a/backports-3.12.8-1/net/mac80211/driver-ops.h +++ b/backports-3.12.8-1/net/mac80211/driver-ops.h @@ -9,8 +9,6 @@ #include "ieee80211_i.h" #include "trace.h" -#define TID_SLEEPING - static inline void check_sdata_in_driver(struct ieee80211_sub_if_data *sdata) { WARN(!(sdata->flags & IEEE80211_SDATA_IN_DRIVER), diff --git a/backports-3.12.8-1/net/wireless/nl80211.c b/backports-3.12.8-1/net/wireless/nl80211.c index 52fd011..974e46d 100644 --- a/backports-3.12.8-1/net/wireless/nl80211.c +++ b/backports-3.12.8-1/net/wireless/nl80211.c @@ -26,8 +26,6 @@ #include "reg.h" #include "rdev-ops.h" -#define TID_SLEEPING - static int nl80211_crypto_settings(struct cfg80211_registered_device *rdev, struct genl_info *info, struct cfg80211_crypto_settings *settings, @@ -3945,15 +3943,15 @@ static int nl80211_tid_sleeping(struct sk_buff *skb, struct genl_info *info) tid_sleep_data_len = 0; tid_sleep_data_ptr = 0; - if (info->attrs[NL80211_ATTR_TID_SLEEP_CTRL_DATA]) { + if (info->attrs[NL80211_ATTR_TID_SLEEP]) { tid_sleep_data_ptr = - nla_data(info->attrs[NL80211_ATTR_TID_SLEEP_CTRL_DATA]); + nla_data(info->attrs[NL80211_ATTR_TID_SLEEP]); tid_sleep_data_len = - nla_len(info->attrs[NL80211_ATTR_TID_SLEEP_CTRL_DATA]); + nla_len(info->attrs[NL80211_ATTR_TID_SLEEP]); } else { - printk("No data supplied for NL80211_ATTR_TID_SLEEP_CTRL\n"); + printk("No data supplied for NL80211_ATTR_TID_SLEEP\n"); } switch (dev->ieee80211_ptr->iftype) { @@ -9573,7 +9571,7 @@ static struct genl_ops nl80211_ops[] = { }, #ifdef TID_SLEEPING { - .cmd = NL80211_ATTR_TID_SLEEP_CTRL, + .cmd = NL80211_CMD_TID_SLEEP, .doit = nl80211_tid_sleeping, .dumpit = nl80211_dump_tid_sleeping, .policy = nl80211_policy, diff --git a/backports-3.12.8-1/net/wireless/rdev-ops.h b/backports-3.12.8-1/net/wireless/rdev-ops.h index f383baf..898f099 100644 --- a/backports-3.12.8-1/net/wireless/rdev-ops.h +++ b/backports-3.12.8-1/net/wireless/rdev-ops.h @@ -1,8 +1,6 @@ #ifndef __CFG80211_RDEV_OPS #define __CFG80211_RDEV_OPS -#define TID_SLEEPING - #include #include #include "core.h" @@ -200,7 +198,7 @@ static inline int rdev_change_station(struct cfg80211_registered_device *rdev, return ret; } -#ifdef TID_SLEEPING +#ifdef CPTCFG_ATH9K_TID_SLEEPING static inline int rdev_tid_sleeping(struct cfg80211_registered_device *rdev, struct net_device *dev, char * tid_sleep_data_ptr, u8 tid_sleep_data_len) {