iwlwifi: hw_setting cleanup
1. This patch renames hw_setting to hw_params 2. Align names of the structure and variables 3. set_hw_params is called from libs_ops Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
49ea85961c
commit
5425e49047
|
@ -504,10 +504,10 @@ u8 iwl4965_hw_find_station(struct iwl_priv *priv, const u8 *addr)
|
||||||
start = IWL_STA_ID;
|
start = IWL_STA_ID;
|
||||||
|
|
||||||
if (is_broadcast_ether_addr(addr))
|
if (is_broadcast_ether_addr(addr))
|
||||||
return priv->hw_setting.bcast_sta_id;
|
return priv->hw_params.bcast_sta_id;
|
||||||
|
|
||||||
spin_lock_irqsave(&priv->sta_lock, flags);
|
spin_lock_irqsave(&priv->sta_lock, flags);
|
||||||
for (i = start; i < priv->hw_setting.max_stations; i++)
|
for (i = start; i < priv->hw_params.max_stations; i++)
|
||||||
if ((priv->stations[i].used) &&
|
if ((priv->stations[i].used) &&
|
||||||
(!compare_ether_addr
|
(!compare_ether_addr
|
||||||
(priv->stations[i].sta.sta.addr, addr))) {
|
(priv->stations[i].sta.sta.addr, addr))) {
|
||||||
|
@ -702,7 +702,7 @@ static int iwl4965_txq_ctx_reset(struct iwl_priv *priv)
|
||||||
|
|
||||||
/* Alloc and init all (default 16) Tx queues,
|
/* Alloc and init all (default 16) Tx queues,
|
||||||
* including the command queue (#4) */
|
* including the command queue (#4) */
|
||||||
for (txq_id = 0; txq_id < priv->hw_setting.max_txq_num; txq_id++) {
|
for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++) {
|
||||||
slots_num = (txq_id == IWL_CMD_QUEUE_NUM) ?
|
slots_num = (txq_id == IWL_CMD_QUEUE_NUM) ?
|
||||||
TFD_CMD_SLOTS : TFD_TX_CMD_SLOTS;
|
TFD_CMD_SLOTS : TFD_TX_CMD_SLOTS;
|
||||||
rc = iwl4965_tx_queue_init(priv, &priv->txq[txq_id], slots_num,
|
rc = iwl4965_tx_queue_init(priv, &priv->txq[txq_id], slots_num,
|
||||||
|
@ -908,7 +908,7 @@ void iwl4965_hw_txq_ctx_stop(struct iwl_priv *priv)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
/* Stop each Tx DMA channel, and wait for it to be idle */
|
/* Stop each Tx DMA channel, and wait for it to be idle */
|
||||||
for (txq_id = 0; txq_id < priv->hw_setting.max_txq_num; txq_id++) {
|
for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++) {
|
||||||
spin_lock_irqsave(&priv->lock, flags);
|
spin_lock_irqsave(&priv->lock, flags);
|
||||||
if (iwl_grab_nic_access(priv)) {
|
if (iwl_grab_nic_access(priv)) {
|
||||||
spin_unlock_irqrestore(&priv->lock, flags);
|
spin_unlock_irqrestore(&priv->lock, flags);
|
||||||
|
@ -1954,7 +1954,7 @@ int iwl4965_alive_notify(struct iwl_priv *priv)
|
||||||
iwl_write_targ_mem(priv, a, 0);
|
iwl_write_targ_mem(priv, a, 0);
|
||||||
for (; a < priv->scd_base_addr + SCD_TRANSLATE_TBL_OFFSET; a += 4)
|
for (; a < priv->scd_base_addr + SCD_TRANSLATE_TBL_OFFSET; a += 4)
|
||||||
iwl_write_targ_mem(priv, a, 0);
|
iwl_write_targ_mem(priv, a, 0);
|
||||||
for (; a < sizeof(u16) * priv->hw_setting.max_txq_num; a += 4)
|
for (; a < sizeof(u16) * priv->hw_params.max_txq_num; a += 4)
|
||||||
iwl_write_targ_mem(priv, a, 0);
|
iwl_write_targ_mem(priv, a, 0);
|
||||||
|
|
||||||
/* Tel 4965 where to find Tx byte count tables */
|
/* Tel 4965 where to find Tx byte count tables */
|
||||||
|
@ -1966,7 +1966,7 @@ int iwl4965_alive_notify(struct iwl_priv *priv)
|
||||||
iwl_write_prph(priv, IWL49_SCD_QUEUECHAIN_SEL, 0);
|
iwl_write_prph(priv, IWL49_SCD_QUEUECHAIN_SEL, 0);
|
||||||
|
|
||||||
/* Initialize each Tx queue (including the command queue) */
|
/* Initialize each Tx queue (including the command queue) */
|
||||||
for (i = 0; i < priv->hw_setting.max_txq_num; i++) {
|
for (i = 0; i < priv->hw_params.max_txq_num; i++) {
|
||||||
|
|
||||||
/* TFD circular buffer read/write indexes */
|
/* TFD circular buffer read/write indexes */
|
||||||
iwl_write_prph(priv, IWL49_SCD_QUEUE_RDPTR(i), 0);
|
iwl_write_prph(priv, IWL49_SCD_QUEUE_RDPTR(i), 0);
|
||||||
|
@ -1989,7 +1989,7 @@ int iwl4965_alive_notify(struct iwl_priv *priv)
|
||||||
|
|
||||||
}
|
}
|
||||||
iwl_write_prph(priv, IWL49_SCD_INTERRUPT_MASK,
|
iwl_write_prph(priv, IWL49_SCD_INTERRUPT_MASK,
|
||||||
(1 << priv->hw_setting.max_txq_num) - 1);
|
(1 << priv->hw_params.max_txq_num) - 1);
|
||||||
|
|
||||||
/* Activate all Tx DMA/FIFO channels */
|
/* Activate all Tx DMA/FIFO channels */
|
||||||
iwl_write_prph(priv, IWL49_SCD_TXFACT,
|
iwl_write_prph(priv, IWL49_SCD_TXFACT,
|
||||||
|
@ -2014,11 +2014,11 @@ int iwl4965_alive_notify(struct iwl_priv *priv)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* iwl4965_hw_set_hw_setting
|
* iwl4965_hw_set_hw_params
|
||||||
*
|
*
|
||||||
* Called when initializing driver
|
* Called when initializing driver
|
||||||
*/
|
*/
|
||||||
int iwl4965_hw_set_hw_setting(struct iwl_priv *priv)
|
int iwl4965_hw_set_hw_params(struct iwl_priv *priv)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((priv->cfg->mod_params->num_of_queues > IWL_MAX_NUM_QUEUES) ||
|
if ((priv->cfg->mod_params->num_of_queues > IWL_MAX_NUM_QUEUES) ||
|
||||||
|
@ -2028,19 +2028,19 @@ int iwl4965_hw_set_hw_setting(struct iwl_priv *priv)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->hw_setting.max_txq_num = priv->cfg->mod_params->num_of_queues;
|
priv->hw_params.max_txq_num = priv->cfg->mod_params->num_of_queues;
|
||||||
priv->hw_setting.tx_cmd_len = sizeof(struct iwl4965_tx_cmd);
|
priv->hw_params.tx_cmd_len = sizeof(struct iwl4965_tx_cmd);
|
||||||
priv->hw_setting.max_rxq_size = RX_QUEUE_SIZE;
|
priv->hw_params.max_rxq_size = RX_QUEUE_SIZE;
|
||||||
priv->hw_setting.max_rxq_log = RX_QUEUE_SIZE_LOG;
|
priv->hw_params.max_rxq_log = RX_QUEUE_SIZE_LOG;
|
||||||
if (priv->cfg->mod_params->amsdu_size_8K)
|
if (priv->cfg->mod_params->amsdu_size_8K)
|
||||||
priv->hw_setting.rx_buf_size = IWL_RX_BUF_SIZE_8K;
|
priv->hw_params.rx_buf_size = IWL_RX_BUF_SIZE_8K;
|
||||||
else
|
else
|
||||||
priv->hw_setting.rx_buf_size = IWL_RX_BUF_SIZE_4K;
|
priv->hw_params.rx_buf_size = IWL_RX_BUF_SIZE_4K;
|
||||||
priv->hw_setting.max_pkt_size = priv->hw_setting.rx_buf_size - 256;
|
priv->hw_params.max_pkt_size = priv->hw_params.rx_buf_size - 256;
|
||||||
priv->hw_setting.max_stations = IWL4965_STATION_COUNT;
|
priv->hw_params.max_stations = IWL4965_STATION_COUNT;
|
||||||
priv->hw_setting.bcast_sta_id = IWL4965_BROADCAST_ID;
|
priv->hw_params.bcast_sta_id = IWL4965_BROADCAST_ID;
|
||||||
|
|
||||||
priv->hw_setting.tx_ant_num = 2;
|
priv->hw_params.tx_ant_num = 2;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2055,7 +2055,7 @@ void iwl4965_hw_txq_ctx_free(struct iwl_priv *priv)
|
||||||
int txq_id;
|
int txq_id;
|
||||||
|
|
||||||
/* Tx queues */
|
/* Tx queues */
|
||||||
for (txq_id = 0; txq_id < priv->hw_setting.max_txq_num; txq_id++)
|
for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++)
|
||||||
iwl4965_tx_queue_free(priv, &priv->txq[txq_id]);
|
iwl4965_tx_queue_free(priv, &priv->txq[txq_id]);
|
||||||
|
|
||||||
/* Keep-warm buffer */
|
/* Keep-warm buffer */
|
||||||
|
@ -3012,7 +3012,7 @@ unsigned int iwl4965_hw_get_beacon_cmd(struct iwl_priv *priv,
|
||||||
tx_beacon_cmd = &frame->u.beacon;
|
tx_beacon_cmd = &frame->u.beacon;
|
||||||
memset(tx_beacon_cmd, 0, sizeof(*tx_beacon_cmd));
|
memset(tx_beacon_cmd, 0, sizeof(*tx_beacon_cmd));
|
||||||
|
|
||||||
tx_beacon_cmd->tx.sta_id = priv->hw_setting.bcast_sta_id;
|
tx_beacon_cmd->tx.sta_id = priv->hw_params.bcast_sta_id;
|
||||||
tx_beacon_cmd->tx.stop_time.life_time = TX_CMD_LIFE_TIME_INFINITE;
|
tx_beacon_cmd->tx.stop_time.life_time = TX_CMD_LIFE_TIME_INFINITE;
|
||||||
|
|
||||||
frame_size = iwl4965_fill_beacon_frame(priv,
|
frame_size = iwl4965_fill_beacon_frame(priv,
|
||||||
|
@ -3620,7 +3620,7 @@ static void iwl4965_handle_data_packet(struct iwl_priv *priv, int is_data,
|
||||||
rx_start->byte_count = amsdu->byte_count;
|
rx_start->byte_count = amsdu->byte_count;
|
||||||
rx_end = (__le32 *) (((u8 *) hdr) + len);
|
rx_end = (__le32 *) (((u8 *) hdr) + len);
|
||||||
}
|
}
|
||||||
if (len > priv->hw_setting.max_pkt_size || len < 16) {
|
if (len > priv->hw_params.max_pkt_size || len < 16) {
|
||||||
IWL_WARNING("byte count out of range [16,4K] : %d\n", len);
|
IWL_WARNING("byte count out of range [16,4K] : %d\n", len);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -4515,7 +4515,7 @@ void iwl4965_add_station(struct iwl_priv *priv, const u8 *addr, int is_ap)
|
||||||
link_cmd.agg_params.agg_time_limit = cpu_to_le16(4000);
|
link_cmd.agg_params.agg_time_limit = cpu_to_le16(4000);
|
||||||
|
|
||||||
/* Update the rate scaling for control frame Tx to AP */
|
/* Update the rate scaling for control frame Tx to AP */
|
||||||
link_cmd.sta_id = is_ap ? IWL_AP_ID : priv->hw_setting.bcast_sta_id;
|
link_cmd.sta_id = is_ap ? IWL_AP_ID : priv->hw_params.bcast_sta_id;
|
||||||
|
|
||||||
iwl_send_cmd_pdu_async(priv, REPLY_TX_LINK_QUALITY_CMD,
|
iwl_send_cmd_pdu_async(priv, REPLY_TX_LINK_QUALITY_CMD,
|
||||||
sizeof(link_cmd), &link_cmd, NULL);
|
sizeof(link_cmd), &link_cmd, NULL);
|
||||||
|
@ -4704,7 +4704,7 @@ static int iwl4965_txq_ctx_activate_free(struct iwl_priv *priv)
|
||||||
{
|
{
|
||||||
int txq_id;
|
int txq_id;
|
||||||
|
|
||||||
for (txq_id = 0; txq_id < priv->hw_setting.max_txq_num; txq_id++)
|
for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++)
|
||||||
if (!test_and_set_bit(txq_id, &priv->txq_ctx_active_msk))
|
if (!test_and_set_bit(txq_id, &priv->txq_ctx_active_msk))
|
||||||
return txq_id;
|
return txq_id;
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -4908,6 +4908,7 @@ static struct iwl_hcmd_utils_ops iwl4965_hcmd_utils = {
|
||||||
|
|
||||||
static struct iwl_lib_ops iwl4965_lib = {
|
static struct iwl_lib_ops iwl4965_lib = {
|
||||||
.init_drv = iwl4965_init_drv,
|
.init_drv = iwl4965_init_drv,
|
||||||
|
.set_hw_params = iwl4965_hw_set_hw_params,
|
||||||
.txq_update_byte_cnt_tbl = iwl4965_txq_update_byte_cnt_tbl,
|
.txq_update_byte_cnt_tbl = iwl4965_txq_update_byte_cnt_tbl,
|
||||||
.hw_nic_init = iwl4965_hw_nic_init,
|
.hw_nic_init = iwl4965_hw_nic_init,
|
||||||
.is_valid_rtc_data_addr = iwl4965_hw_valid_rtc_data_addr,
|
.is_valid_rtc_data_addr = iwl4965_hw_valid_rtc_data_addr,
|
||||||
|
|
|
@ -567,7 +567,7 @@ struct iwl4965_ibss_seq {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct iwl4965_driver_hw_info
|
* struct iwl_hw_params
|
||||||
* @max_txq_num: Max # Tx queues supported
|
* @max_txq_num: Max # Tx queues supported
|
||||||
* @tx_cmd_len: Size of Tx command (but not including frame itself)
|
* @tx_cmd_len: Size of Tx command (but not including frame itself)
|
||||||
* @tx_ant_num: Number of TX antennas
|
* @tx_ant_num: Number of TX antennas
|
||||||
|
@ -577,7 +577,7 @@ struct iwl4965_ibss_seq {
|
||||||
* @max_stations:
|
* @max_stations:
|
||||||
* @bcast_sta_id:
|
* @bcast_sta_id:
|
||||||
*/
|
*/
|
||||||
struct iwl4965_driver_hw_info {
|
struct iwl_hw_params {
|
||||||
u16 max_txq_num;
|
u16 max_txq_num;
|
||||||
u16 tx_cmd_len;
|
u16 tx_cmd_len;
|
||||||
u16 tx_ant_num;
|
u16 tx_ant_num;
|
||||||
|
@ -675,7 +675,7 @@ extern void iwl4965_hw_rx_handler_setup(struct iwl_priv *priv);
|
||||||
extern void iwl4965_hw_setup_deferred_work(struct iwl_priv *priv);
|
extern void iwl4965_hw_setup_deferred_work(struct iwl_priv *priv);
|
||||||
extern void iwl4965_hw_cancel_deferred_work(struct iwl_priv *priv);
|
extern void iwl4965_hw_cancel_deferred_work(struct iwl_priv *priv);
|
||||||
extern int iwl4965_hw_rxq_stop(struct iwl_priv *priv);
|
extern int iwl4965_hw_rxq_stop(struct iwl_priv *priv);
|
||||||
extern int iwl4965_hw_set_hw_setting(struct iwl_priv *priv);
|
extern int iwl4965_hw_set_hw_params(struct iwl_priv *priv);
|
||||||
extern int iwl4965_hw_nic_init(struct iwl_priv *priv);
|
extern int iwl4965_hw_nic_init(struct iwl_priv *priv);
|
||||||
extern int iwl4965_hw_nic_stop_master(struct iwl_priv *priv);
|
extern int iwl4965_hw_nic_stop_master(struct iwl_priv *priv);
|
||||||
extern void iwl4965_hw_txq_ctx_free(struct iwl_priv *priv);
|
extern void iwl4965_hw_txq_ctx_free(struct iwl_priv *priv);
|
||||||
|
@ -1144,7 +1144,7 @@ struct iwl_priv {
|
||||||
u16 beacon_int;
|
u16 beacon_int;
|
||||||
struct ieee80211_vif *vif;
|
struct ieee80211_vif *vif;
|
||||||
|
|
||||||
struct iwl4965_driver_hw_info hw_setting;
|
struct iwl_hw_params hw_params;
|
||||||
/* driver/uCode shared Tx Byte Counts and Rx status */
|
/* driver/uCode shared Tx Byte Counts and Rx status */
|
||||||
void *shared_virt;
|
void *shared_virt;
|
||||||
/* Physical Pointer to Tx Byte Counts and Rx status */
|
/* Physical Pointer to Tx Byte Counts and Rx status */
|
||||||
|
|
|
@ -89,6 +89,8 @@ struct iwl_hcmd_utils_ops {
|
||||||
struct iwl_lib_ops {
|
struct iwl_lib_ops {
|
||||||
/* iwlwifi driver (priv) init */
|
/* iwlwifi driver (priv) init */
|
||||||
int (*init_drv)(struct iwl_priv *priv);
|
int (*init_drv)(struct iwl_priv *priv);
|
||||||
|
/* set hw dependant perameters */
|
||||||
|
int (*set_hw_params)(struct iwl_priv *priv);
|
||||||
|
|
||||||
void (*txq_update_byte_cnt_tbl)(struct iwl_priv *priv,
|
void (*txq_update_byte_cnt_tbl)(struct iwl_priv *priv,
|
||||||
struct iwl4965_tx_queue *txq,
|
struct iwl4965_tx_queue *txq,
|
||||||
|
|
|
@ -207,7 +207,7 @@ static ssize_t iwl_dbgfs_stations_read(struct file *file, char __user *user_buf,
|
||||||
{
|
{
|
||||||
struct iwl_priv *priv = (struct iwl_priv *)file->private_data;
|
struct iwl_priv *priv = (struct iwl_priv *)file->private_data;
|
||||||
struct iwl4965_station_entry *station;
|
struct iwl4965_station_entry *station;
|
||||||
int max_sta = priv->hw_setting.max_stations;
|
int max_sta = priv->hw_params.max_stations;
|
||||||
char *buf;
|
char *buf;
|
||||||
int i, j, pos = 0;
|
int i, j, pos = 0;
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
|
|
|
@ -157,7 +157,7 @@ static int iwl_set_wep_dynamic_key_info(struct iwl_priv *priv,
|
||||||
if (keyconf->keylen == WEP_KEY_LEN_128)
|
if (keyconf->keylen == WEP_KEY_LEN_128)
|
||||||
key_flags |= STA_KEY_FLG_KEY_SIZE_MSK;
|
key_flags |= STA_KEY_FLG_KEY_SIZE_MSK;
|
||||||
|
|
||||||
if (sta_id == priv->hw_setting.bcast_sta_id)
|
if (sta_id == priv->hw_params.bcast_sta_id)
|
||||||
key_flags |= STA_KEY_MULTICAST_MSK;
|
key_flags |= STA_KEY_MULTICAST_MSK;
|
||||||
|
|
||||||
spin_lock_irqsave(&priv->sta_lock, flags);
|
spin_lock_irqsave(&priv->sta_lock, flags);
|
||||||
|
@ -198,7 +198,7 @@ static int iwl_set_ccmp_dynamic_key_info(struct iwl_priv *priv,
|
||||||
key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
|
key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
|
||||||
key_flags &= ~STA_KEY_FLG_INVALID;
|
key_flags &= ~STA_KEY_FLG_INVALID;
|
||||||
|
|
||||||
if (sta_id == priv->hw_setting.bcast_sta_id)
|
if (sta_id == priv->hw_params.bcast_sta_id)
|
||||||
key_flags |= STA_KEY_MULTICAST_MSK;
|
key_flags |= STA_KEY_MULTICAST_MSK;
|
||||||
|
|
||||||
keyconf->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
|
keyconf->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
|
||||||
|
|
|
@ -398,9 +398,9 @@ static u8 iwl4965_remove_station(struct iwl_priv *priv, const u8 *addr, int is_a
|
||||||
if (is_ap)
|
if (is_ap)
|
||||||
index = IWL_AP_ID;
|
index = IWL_AP_ID;
|
||||||
else if (is_broadcast_ether_addr(addr))
|
else if (is_broadcast_ether_addr(addr))
|
||||||
index = priv->hw_setting.bcast_sta_id;
|
index = priv->hw_params.bcast_sta_id;
|
||||||
else
|
else
|
||||||
for (i = IWL_STA_ID; i < priv->hw_setting.max_stations; i++)
|
for (i = IWL_STA_ID; i < priv->hw_params.max_stations; i++)
|
||||||
if (priv->stations[i].used &&
|
if (priv->stations[i].used &&
|
||||||
!compare_ether_addr(priv->stations[i].sta.sta.addr,
|
!compare_ether_addr(priv->stations[i].sta.sta.addr,
|
||||||
addr)) {
|
addr)) {
|
||||||
|
@ -440,9 +440,9 @@ u8 iwl4965_add_station_flags(struct iwl_priv *priv, const u8 *addr,
|
||||||
if (is_ap)
|
if (is_ap)
|
||||||
index = IWL_AP_ID;
|
index = IWL_AP_ID;
|
||||||
else if (is_broadcast_ether_addr(addr))
|
else if (is_broadcast_ether_addr(addr))
|
||||||
index = priv->hw_setting.bcast_sta_id;
|
index = priv->hw_params.bcast_sta_id;
|
||||||
else
|
else
|
||||||
for (i = IWL_STA_ID; i < priv->hw_setting.max_stations; i++) {
|
for (i = IWL_STA_ID; i < priv->hw_params.max_stations; i++) {
|
||||||
if (!compare_ether_addr(priv->stations[i].sta.sta.addr,
|
if (!compare_ether_addr(priv->stations[i].sta.sta.addr,
|
||||||
addr)) {
|
addr)) {
|
||||||
index = i;
|
index = i;
|
||||||
|
@ -483,7 +483,7 @@ u8 iwl4965_add_station_flags(struct iwl_priv *priv, const u8 *addr,
|
||||||
|
|
||||||
#ifdef CONFIG_IWL4965_HT
|
#ifdef CONFIG_IWL4965_HT
|
||||||
/* BCAST station and IBSS stations do not work in HT mode */
|
/* BCAST station and IBSS stations do not work in HT mode */
|
||||||
if (index != priv->hw_setting.bcast_sta_id &&
|
if (index != priv->hw_params.bcast_sta_id &&
|
||||||
priv->iw_mode != IEEE80211_IF_TYPE_IBSS)
|
priv->iw_mode != IEEE80211_IF_TYPE_IBSS)
|
||||||
iwl4965_set_ht_add_station(priv, index,
|
iwl4965_set_ht_add_station(priv, index,
|
||||||
(struct ieee80211_ht_info *) ht_data);
|
(struct ieee80211_ht_info *) ht_data);
|
||||||
|
@ -1210,7 +1210,7 @@ static int iwl4965_send_beacon_cmd(struct iwl_priv *priv)
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
static void iwl4965_unset_hw_setting(struct iwl_priv *priv)
|
static void iwl4965_unset_hw_params(struct iwl_priv *priv)
|
||||||
{
|
{
|
||||||
if (priv->shared_virt)
|
if (priv->shared_virt)
|
||||||
pci_free_consistent(priv->pci_dev,
|
pci_free_consistent(priv->pci_dev,
|
||||||
|
@ -2114,7 +2114,7 @@ static int iwl4965_get_sta_id(struct iwl_priv *priv,
|
||||||
/* If this frame is broadcast or management, use broadcast station id */
|
/* If this frame is broadcast or management, use broadcast station id */
|
||||||
if (((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA) ||
|
if (((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA) ||
|
||||||
is_multicast_ether_addr(hdr->addr1))
|
is_multicast_ether_addr(hdr->addr1))
|
||||||
return priv->hw_setting.bcast_sta_id;
|
return priv->hw_params.bcast_sta_id;
|
||||||
|
|
||||||
switch (priv->iw_mode) {
|
switch (priv->iw_mode) {
|
||||||
|
|
||||||
|
@ -2128,7 +2128,7 @@ static int iwl4965_get_sta_id(struct iwl_priv *priv,
|
||||||
sta_id = iwl4965_hw_find_station(priv, hdr->addr1);
|
sta_id = iwl4965_hw_find_station(priv, hdr->addr1);
|
||||||
if (sta_id != IWL_INVALID_STATION)
|
if (sta_id != IWL_INVALID_STATION)
|
||||||
return sta_id;
|
return sta_id;
|
||||||
return priv->hw_setting.bcast_sta_id;
|
return priv->hw_params.bcast_sta_id;
|
||||||
|
|
||||||
/* If this frame is going out to an IBSS network, find the station,
|
/* If this frame is going out to an IBSS network, find the station,
|
||||||
* or create a new station table entry */
|
* or create a new station table entry */
|
||||||
|
@ -2148,11 +2148,11 @@ static int iwl4965_get_sta_id(struct iwl_priv *priv,
|
||||||
"Defaulting to broadcast...\n",
|
"Defaulting to broadcast...\n",
|
||||||
print_mac(mac, hdr->addr1));
|
print_mac(mac, hdr->addr1));
|
||||||
iwl_print_hex_dump(IWL_DL_DROP, (u8 *) hdr, sizeof(*hdr));
|
iwl_print_hex_dump(IWL_DL_DROP, (u8 *) hdr, sizeof(*hdr));
|
||||||
return priv->hw_setting.bcast_sta_id;
|
return priv->hw_params.bcast_sta_id;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
IWL_WARNING("Unknown mode of operation: %d", priv->iw_mode);
|
IWL_WARNING("Unknown mode of operation: %d", priv->iw_mode);
|
||||||
return priv->hw_setting.bcast_sta_id;
|
return priv->hw_params.bcast_sta_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2299,7 +2299,7 @@ static int iwl4965_tx_skb(struct iwl_priv *priv,
|
||||||
* of the MAC header (device reads on dword boundaries).
|
* of the MAC header (device reads on dword boundaries).
|
||||||
* We'll tell device about this padding later.
|
* We'll tell device about this padding later.
|
||||||
*/
|
*/
|
||||||
len = priv->hw_setting.tx_cmd_len +
|
len = priv->hw_params.tx_cmd_len +
|
||||||
sizeof(struct iwl_cmd_header) + hdr_len;
|
sizeof(struct iwl_cmd_header) + hdr_len;
|
||||||
|
|
||||||
len_org = len;
|
len_org = len;
|
||||||
|
@ -3726,7 +3726,7 @@ static void iwl4965_rx_allocate(struct iwl_priv *priv)
|
||||||
|
|
||||||
/* Alloc a new receive buffer */
|
/* Alloc a new receive buffer */
|
||||||
rxb->skb =
|
rxb->skb =
|
||||||
alloc_skb(priv->hw_setting.rx_buf_size,
|
alloc_skb(priv->hw_params.rx_buf_size,
|
||||||
__GFP_NOWARN | GFP_ATOMIC);
|
__GFP_NOWARN | GFP_ATOMIC);
|
||||||
if (!rxb->skb) {
|
if (!rxb->skb) {
|
||||||
if (net_ratelimit())
|
if (net_ratelimit())
|
||||||
|
@ -3743,7 +3743,7 @@ static void iwl4965_rx_allocate(struct iwl_priv *priv)
|
||||||
/* Get physical address of RB/SKB */
|
/* Get physical address of RB/SKB */
|
||||||
rxb->dma_addr =
|
rxb->dma_addr =
|
||||||
pci_map_single(priv->pci_dev, rxb->skb->data,
|
pci_map_single(priv->pci_dev, rxb->skb->data,
|
||||||
priv->hw_setting.rx_buf_size, PCI_DMA_FROMDEVICE);
|
priv->hw_params.rx_buf_size, PCI_DMA_FROMDEVICE);
|
||||||
list_add_tail(&rxb->list, &rxq->rx_free);
|
list_add_tail(&rxb->list, &rxq->rx_free);
|
||||||
rxq->free_count++;
|
rxq->free_count++;
|
||||||
}
|
}
|
||||||
|
@ -3786,7 +3786,7 @@ static void iwl4965_rx_queue_free(struct iwl_priv *priv, struct iwl4965_rx_queue
|
||||||
if (rxq->pool[i].skb != NULL) {
|
if (rxq->pool[i].skb != NULL) {
|
||||||
pci_unmap_single(priv->pci_dev,
|
pci_unmap_single(priv->pci_dev,
|
||||||
rxq->pool[i].dma_addr,
|
rxq->pool[i].dma_addr,
|
||||||
priv->hw_setting.rx_buf_size,
|
priv->hw_params.rx_buf_size,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
dev_kfree_skb(rxq->pool[i].skb);
|
dev_kfree_skb(rxq->pool[i].skb);
|
||||||
}
|
}
|
||||||
|
@ -3838,7 +3838,7 @@ void iwl4965_rx_queue_reset(struct iwl_priv *priv, struct iwl4965_rx_queue *rxq)
|
||||||
if (rxq->pool[i].skb != NULL) {
|
if (rxq->pool[i].skb != NULL) {
|
||||||
pci_unmap_single(priv->pci_dev,
|
pci_unmap_single(priv->pci_dev,
|
||||||
rxq->pool[i].dma_addr,
|
rxq->pool[i].dma_addr,
|
||||||
priv->hw_setting.rx_buf_size,
|
priv->hw_params.rx_buf_size,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
priv->alloc_rxb_skb--;
|
priv->alloc_rxb_skb--;
|
||||||
dev_kfree_skb(rxq->pool[i].skb);
|
dev_kfree_skb(rxq->pool[i].skb);
|
||||||
|
@ -3973,7 +3973,7 @@ static void iwl4965_rx_handle(struct iwl_priv *priv)
|
||||||
rxq->queue[i] = NULL;
|
rxq->queue[i] = NULL;
|
||||||
|
|
||||||
pci_dma_sync_single_for_cpu(priv->pci_dev, rxb->dma_addr,
|
pci_dma_sync_single_for_cpu(priv->pci_dev, rxb->dma_addr,
|
||||||
priv->hw_setting.rx_buf_size,
|
priv->hw_params.rx_buf_size,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
pkt = (struct iwl4965_rx_packet *)rxb->skb->data;
|
pkt = (struct iwl4965_rx_packet *)rxb->skb->data;
|
||||||
|
|
||||||
|
@ -4026,7 +4026,7 @@ static void iwl4965_rx_handle(struct iwl_priv *priv)
|
||||||
}
|
}
|
||||||
|
|
||||||
pci_unmap_single(priv->pci_dev, rxb->dma_addr,
|
pci_unmap_single(priv->pci_dev, rxb->dma_addr,
|
||||||
priv->hw_setting.rx_buf_size,
|
priv->hw_params.rx_buf_size,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
spin_lock_irqsave(&rxq->lock, flags);
|
spin_lock_irqsave(&rxq->lock, flags);
|
||||||
list_add_tail(&rxb->list, &priv->rxq.rx_used);
|
list_add_tail(&rxb->list, &priv->rxq.rx_used);
|
||||||
|
@ -5871,7 +5871,7 @@ static void iwl4965_bg_request_scan(struct work_struct *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
scan->tx_cmd.tx_flags = TX_CMD_FLG_SEQ_CTL_MSK;
|
scan->tx_cmd.tx_flags = TX_CMD_FLG_SEQ_CTL_MSK;
|
||||||
scan->tx_cmd.sta_id = priv->hw_setting.bcast_sta_id;
|
scan->tx_cmd.sta_id = priv->hw_params.bcast_sta_id;
|
||||||
scan->tx_cmd.stop_time.life_time = TX_CMD_LIFE_TIME_INFINITE;
|
scan->tx_cmd.stop_time.life_time = TX_CMD_LIFE_TIME_INFINITE;
|
||||||
|
|
||||||
|
|
||||||
|
@ -6844,7 +6844,7 @@ static void iwl4965_mac_update_tkip_key(struct ieee80211_hw *hw,
|
||||||
key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
|
key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
|
||||||
key_flags &= ~STA_KEY_FLG_INVALID;
|
key_flags &= ~STA_KEY_FLG_INVALID;
|
||||||
|
|
||||||
if (sta_id == priv->hw_setting.bcast_sta_id)
|
if (sta_id == priv->hw_params.bcast_sta_id)
|
||||||
key_flags |= STA_KEY_MULTICAST_MSK;
|
key_flags |= STA_KEY_MULTICAST_MSK;
|
||||||
|
|
||||||
spin_lock_irqsave(&priv->sta_lock, flags);
|
spin_lock_irqsave(&priv->sta_lock, flags);
|
||||||
|
@ -6905,7 +6905,7 @@ static int iwl4965_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
|
||||||
* so far, we are in legacy wep mode (group key only), otherwise we are
|
* so far, we are in legacy wep mode (group key only), otherwise we are
|
||||||
* in 1X mode.
|
* in 1X mode.
|
||||||
* In legacy wep mode, we use another host command to the uCode */
|
* In legacy wep mode, we use another host command to the uCode */
|
||||||
if (key->alg == ALG_WEP && sta_id == priv->hw_setting.bcast_sta_id &&
|
if (key->alg == ALG_WEP && sta_id == priv->hw_params.bcast_sta_id &&
|
||||||
priv->iw_mode != IEEE80211_IF_TYPE_AP) {
|
priv->iw_mode != IEEE80211_IF_TYPE_AP) {
|
||||||
if (cmd == SET_KEY)
|
if (cmd == SET_KEY)
|
||||||
is_default_wep_key = !priv->key_mapping_key;
|
is_default_wep_key = !priv->key_mapping_key;
|
||||||
|
@ -7831,8 +7831,8 @@ static int iwl4965_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
||||||
* 5. Setup HW constants
|
* 5. Setup HW constants
|
||||||
************************/
|
************************/
|
||||||
/* Device-specific setup */
|
/* Device-specific setup */
|
||||||
if (iwl4965_hw_set_hw_setting(priv)) {
|
if (priv->cfg->ops->lib->set_hw_params(priv)) {
|
||||||
IWL_ERROR("failed to set hw settings\n");
|
IWL_ERROR("failed to set hw parameters\n");
|
||||||
goto out_iounmap;
|
goto out_iounmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7842,7 +7842,7 @@ static int iwl4965_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
||||||
|
|
||||||
err = iwl_setup(priv);
|
err = iwl_setup(priv);
|
||||||
if (err)
|
if (err)
|
||||||
goto out_unset_hw_settings;
|
goto out_unset_hw_params;
|
||||||
/* At this point both hw and priv are initialized. */
|
/* At this point both hw and priv are initialized. */
|
||||||
|
|
||||||
/**********************************
|
/**********************************
|
||||||
|
@ -7868,7 +7868,7 @@ static int iwl4965_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
||||||
err = sysfs_create_group(&pdev->dev.kobj, &iwl4965_attribute_group);
|
err = sysfs_create_group(&pdev->dev.kobj, &iwl4965_attribute_group);
|
||||||
if (err) {
|
if (err) {
|
||||||
IWL_ERROR("failed to create sysfs device attributes\n");
|
IWL_ERROR("failed to create sysfs device attributes\n");
|
||||||
goto out_unset_hw_settings;
|
goto out_unset_hw_params;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = iwl_dbgfs_register(priv, DRV_NAME);
|
err = iwl_dbgfs_register(priv, DRV_NAME);
|
||||||
|
@ -7892,8 +7892,8 @@ static int iwl4965_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
||||||
|
|
||||||
out_remove_sysfs:
|
out_remove_sysfs:
|
||||||
sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group);
|
sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group);
|
||||||
out_unset_hw_settings:
|
out_unset_hw_params:
|
||||||
iwl4965_unset_hw_setting(priv);
|
iwl4965_unset_hw_params(priv);
|
||||||
out_iounmap:
|
out_iounmap:
|
||||||
pci_iounmap(pdev, priv->hw_base);
|
pci_iounmap(pdev, priv->hw_base);
|
||||||
out_pci_release_regions:
|
out_pci_release_regions:
|
||||||
|
@ -7955,7 +7955,7 @@ static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
|
||||||
iwl4965_rx_queue_free(priv, &priv->rxq);
|
iwl4965_rx_queue_free(priv, &priv->rxq);
|
||||||
iwl4965_hw_txq_ctx_free(priv);
|
iwl4965_hw_txq_ctx_free(priv);
|
||||||
|
|
||||||
iwl4965_unset_hw_setting(priv);
|
iwl4965_unset_hw_params(priv);
|
||||||
iwlcore_clear_stations_table(priv);
|
iwlcore_clear_stations_table(priv);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue