rtlwifi: Redo register save locations
The initial USB driver did not use some register save locations in the private data storage. To save some memory, a union was used to overlay these variables with USB I/O components. In an update of the gain-control code, these register save locations are now needed for USB drivers. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@vger.kernel.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
62009b7f12
commit
b9a758a8c9
@@ -1033,6 +1033,7 @@ struct rtl_ht_agg {
|
|||||||
|
|
||||||
struct rssi_sta {
|
struct rssi_sta {
|
||||||
long undec_sm_pwdb;
|
long undec_sm_pwdb;
|
||||||
|
long undec_sm_cck;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rtl_tid_data {
|
struct rtl_tid_data {
|
||||||
@@ -1323,8 +1324,10 @@ struct fast_ant_training {
|
|||||||
struct rtl_dm {
|
struct rtl_dm {
|
||||||
/*PHY status for Dynamic Management */
|
/*PHY status for Dynamic Management */
|
||||||
long entry_min_undec_sm_pwdb;
|
long entry_min_undec_sm_pwdb;
|
||||||
|
long undec_sm_cck;
|
||||||
long undec_sm_pwdb; /*out dm */
|
long undec_sm_pwdb; /*out dm */
|
||||||
long entry_max_undec_sm_pwdb;
|
long entry_max_undec_sm_pwdb;
|
||||||
|
s32 ofdm_pkt_cnt;
|
||||||
bool dm_initialgain_enable;
|
bool dm_initialgain_enable;
|
||||||
bool dynamic_txpower_enable;
|
bool dynamic_txpower_enable;
|
||||||
bool current_turbo_edca;
|
bool current_turbo_edca;
|
||||||
@@ -1339,6 +1342,7 @@ struct rtl_dm {
|
|||||||
bool inform_fw_driverctrldm;
|
bool inform_fw_driverctrldm;
|
||||||
bool current_mrc_switch;
|
bool current_mrc_switch;
|
||||||
u8 txpowercount;
|
u8 txpowercount;
|
||||||
|
u8 powerindex_backup[6];
|
||||||
|
|
||||||
u8 thermalvalue_rxgain;
|
u8 thermalvalue_rxgain;
|
||||||
u8 thermalvalue_iqk;
|
u8 thermalvalue_iqk;
|
||||||
@@ -1350,7 +1354,9 @@ struct rtl_dm {
|
|||||||
bool done_txpower;
|
bool done_txpower;
|
||||||
u8 dynamic_txhighpower_lvl; /*Tx high power level */
|
u8 dynamic_txhighpower_lvl; /*Tx high power level */
|
||||||
u8 dm_flag; /*Indicate each dynamic mechanism's status. */
|
u8 dm_flag; /*Indicate each dynamic mechanism's status. */
|
||||||
|
u8 dm_flag_tmp;
|
||||||
u8 dm_type;
|
u8 dm_type;
|
||||||
|
u8 dm_rssi_sel;
|
||||||
u8 txpower_track_control;
|
u8 txpower_track_control;
|
||||||
bool interrupt_migration;
|
bool interrupt_migration;
|
||||||
bool disable_tx_int;
|
bool disable_tx_int;
|
||||||
@@ -1949,6 +1955,7 @@ struct dig_t {
|
|||||||
u8 pre_ccastate;
|
u8 pre_ccastate;
|
||||||
u8 cur_ccasate;
|
u8 cur_ccasate;
|
||||||
u8 large_fa_hit;
|
u8 large_fa_hit;
|
||||||
|
u8 dig_dynamic_min;
|
||||||
u8 forbidden_igi;
|
u8 forbidden_igi;
|
||||||
u8 dig_state;
|
u8 dig_state;
|
||||||
u8 dig_highpwrstate;
|
u8 dig_highpwrstate;
|
||||||
@@ -2029,22 +2036,15 @@ struct rtl_priv {
|
|||||||
struct dig_t dm_digtable;
|
struct dig_t dm_digtable;
|
||||||
struct ps_t dm_pstable;
|
struct ps_t dm_pstable;
|
||||||
|
|
||||||
/* section shared by individual drivers */
|
u32 reg_874;
|
||||||
union {
|
u32 reg_c70;
|
||||||
struct { /* data buffer pointer for USB reads */
|
u32 reg_85c;
|
||||||
__le32 *usb_data;
|
u32 reg_a74;
|
||||||
int usb_data_index;
|
bool reg_init; /* true if regs saved */
|
||||||
bool initialized;
|
bool bt_operation_on;
|
||||||
};
|
__le32 *usb_data;
|
||||||
struct { /* section for 8723ae */
|
int usb_data_index;
|
||||||
bool reg_init; /* true if regs saved */
|
bool initialized;
|
||||||
u32 reg_874;
|
|
||||||
u32 reg_c70;
|
|
||||||
u32 reg_85c;
|
|
||||||
u32 reg_a74;
|
|
||||||
bool bt_operation_on;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
bool enter_ps; /* true when entering PS */
|
bool enter_ps; /* true when entering PS */
|
||||||
u8 rate_mask[5];
|
u8 rate_mask[5];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user