Cleaning Code

This commit is contained in:
Sven Zehl 2016-09-27 12:32:02 +02:00
parent 7b20aa1e9a
commit 1ef9c2bf54
15 changed files with 69 additions and 77 deletions

View File

@ -137,6 +137,7 @@ ATH9K_DEBUGFS=
ATH9K_DFS_CERTIFIED=
ATH9K_LEGACY_RATE_CONTROL=
ATH9K_RFKILL=
ATH9K_TID_SLEEPING=
ATH9K_HTC=
ATH9K_HTC_DEBUGFS=
CARL9170=

View File

@ -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)"

View File

@ -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

View File

@ -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.

View File

@ -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;

View File

@ -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; j<num_entries; j++)
{
/*Print current entry*/
#ifdef TID_SLEEPING_DEBUG
#ifdef CPTCFG_ATH_DEBUG
printk("*****\nEntry No: %d\nMAC: %pM \n",j,
tids_tuple_ptr->mac);
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
};

View File

@ -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);

View File

@ -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 <linux/kernel.h>
@ -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;

View File

@ -23,7 +23,6 @@
#include <linux/net.h>
#include <net/regulatory.h>
#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

View File

@ -22,8 +22,6 @@
#include <net/cfg80211.h>
#include <asm/unaligned.h>
#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

View File

@ -28,7 +28,6 @@
#include <linux/types.h>
#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,

View File

@ -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
};

View File

@ -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),

View File

@ -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,

View File

@ -1,8 +1,6 @@
#ifndef __CFG80211_RDEV_OPS
#define __CFG80211_RDEV_OPS
#define TID_SLEEPING
#include <linux/rtnetlink.h>
#include <net/cfg80211.h>
#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)
{