Commit dfe7d458 authored by Ron Rindjunsky's avatar Ron Rindjunsky Committed by John W. Linville

iwlwifi: arrange max number of Tx queues

This patch increases the max possible number of Tx queues, but leaves
current used number of queues as HW dependent
Signed-off-by: default avatarRon Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 77bab602
...@@ -456,7 +456,7 @@ struct iwl3945_eeprom { ...@@ -456,7 +456,7 @@ struct iwl3945_eeprom {
/* Size of uCode instruction memory in bootstrap state machine */ /* Size of uCode instruction memory in bootstrap state machine */
#define IWL_MAX_BSM_SIZE ALM_RTC_INST_SIZE #define IWL_MAX_BSM_SIZE ALM_RTC_INST_SIZE
#define IWL_MAX_NUM_QUEUES 8 #define IWL39_MAX_NUM_QUEUES 8
static inline int iwl3945_hw_valid_rtc_data_addr(u32 addr) static inline int iwl3945_hw_valid_rtc_data_addr(u32 addr)
{ {
......
...@@ -687,6 +687,8 @@ enum { ...@@ -687,6 +687,8 @@ enum {
#endif #endif
#define IWL_MAX_NUM_QUEUES IWL39_MAX_NUM_QUEUES
struct iwl3945_priv { struct iwl3945_priv {
/* ieee device used by generic ieee processing code */ /* ieee device used by generic ieee processing code */
......
...@@ -1385,10 +1385,10 @@ static inline __le32 iwl4965_hw_set_rate_n_flags(u8 rate, u16 flags) ...@@ -1385,10 +1385,10 @@ static inline __le32 iwl4965_hw_set_rate_n_flags(u8 rate, u16 flags)
* up to 7 DMA channels (FIFOs). Each Tx queue is supported by a circular array * up to 7 DMA channels (FIFOs). Each Tx queue is supported by a circular array
* in DRAM containing 256 Transmit Frame Descriptors (TFDs). * in DRAM containing 256 Transmit Frame Descriptors (TFDs).
*/ */
#define IWL4965_MAX_WIN_SIZE 64 #define IWL4965_MAX_WIN_SIZE 64
#define IWL4965_QUEUE_SIZE 256 #define IWL4965_QUEUE_SIZE 256
#define IWL4965_NUM_FIFOS 7 #define IWL4965_NUM_FIFOS 7
#define IWL_MAX_NUM_QUEUES 16 #define IWL4965_MAX_NUM_QUEUES 16
/** /**
...@@ -1553,7 +1553,7 @@ struct iwl4965_sched_queue_byte_cnt_tbl { ...@@ -1553,7 +1553,7 @@ struct iwl4965_sched_queue_byte_cnt_tbl {
*/ */
struct iwl4965_shared { struct iwl4965_shared {
struct iwl4965_sched_queue_byte_cnt_tbl struct iwl4965_sched_queue_byte_cnt_tbl
queues_byte_cnt_tbls[IWL_MAX_NUM_QUEUES]; queues_byte_cnt_tbls[IWL4965_MAX_NUM_QUEUES];
__le32 rb_closed; __le32 rb_closed;
/* __le32 rb_closed_stts_rb_num:12; */ /* __le32 rb_closed_stts_rb_num:12; */
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
/* module parameters */ /* module parameters */
static struct iwl_mod_params iwl4965_mod_params = { static struct iwl_mod_params iwl4965_mod_params = {
.num_of_queues = IWL_MAX_NUM_QUEUES, .num_of_queues = IWL4965_MAX_NUM_QUEUES,
.enable_qos = 1, .enable_qos = 1,
.amsdu_size_8K = 1, .amsdu_size_8K = 1,
/* the rest are 0 by default */ /* the rest are 0 by default */
...@@ -2021,10 +2021,10 @@ int iwl4965_alive_notify(struct iwl_priv *priv) ...@@ -2021,10 +2021,10 @@ int iwl4965_alive_notify(struct iwl_priv *priv)
int iwl4965_hw_set_hw_params(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 > IWL4965_MAX_NUM_QUEUES) ||
(priv->cfg->mod_params->num_of_queues < IWL_MIN_NUM_QUEUES)) { (priv->cfg->mod_params->num_of_queues < IWL_MIN_NUM_QUEUES)) {
IWL_ERROR("invalid queues_num, should be between %d and %d\n", IWL_ERROR("invalid queues_num, should be between %d and %d\n",
IWL_MIN_NUM_QUEUES, IWL_MAX_NUM_QUEUES); IWL_MIN_NUM_QUEUES, IWL4965_MAX_NUM_QUEUES);
return -EINVAL; return -EINVAL;
} }
...@@ -4362,7 +4362,7 @@ static void iwl4965_rx_reply_compressed_ba(struct iwl_priv *priv, ...@@ -4362,7 +4362,7 @@ static void iwl4965_rx_reply_compressed_ba(struct iwl_priv *priv,
* (in Tx queue's circular buffer) of first TFD/frame in window */ * (in Tx queue's circular buffer) of first TFD/frame in window */
u16 ba_resp_scd_ssn = le16_to_cpu(ba_resp->scd_ssn); u16 ba_resp_scd_ssn = le16_to_cpu(ba_resp->scd_ssn);
if (scd_flow >= ARRAY_SIZE(priv->txq)) { if (scd_flow >= priv->hw_params.max_txq_num) {
IWL_ERROR("BUG_ON scd_flow is bigger than number of queues"); IWL_ERROR("BUG_ON scd_flow is bigger than number of queues");
return; return;
} }
......
...@@ -941,6 +941,8 @@ enum { ...@@ -941,6 +941,8 @@ enum {
#endif #endif
#define IWL_MAX_NUM_QUEUES 20 /* FIXME: do dynamic allocation */
struct iwl_priv { struct iwl_priv {
/* ieee device used by generic ieee processing code */ /* ieee device used by generic ieee processing code */
......
...@@ -70,7 +70,7 @@ static int iwl3945_param_disable; /* def: 0 = enable radio */ ...@@ -70,7 +70,7 @@ static int iwl3945_param_disable; /* def: 0 = enable radio */
static int iwl3945_param_antenna; /* def: 0 = both antennas (use diversity) */ static int iwl3945_param_antenna; /* def: 0 = both antennas (use diversity) */
int iwl3945_param_hwcrypto; /* def: 0 = use software encryption */ int iwl3945_param_hwcrypto; /* def: 0 = use software encryption */
static int iwl3945_param_qos_enable = 1; /* def: 1 = use quality of service */ static int iwl3945_param_qos_enable = 1; /* def: 1 = use quality of service */
int iwl3945_param_queues_num = IWL_MAX_NUM_QUEUES; /* def: 8 Tx queues */ int iwl3945_param_queues_num = IWL39_MAX_NUM_QUEUES; /* def: 8 Tx queues */
/* /*
* module name, copyright, version, etc. * module name, copyright, version, etc.
...@@ -7974,10 +7974,10 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e ...@@ -7974,10 +7974,10 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
iwl3945_hw_ops.hw_scan = NULL; iwl3945_hw_ops.hw_scan = NULL;
} }
if ((iwl3945_param_queues_num > IWL_MAX_NUM_QUEUES) || if ((iwl3945_param_queues_num > IWL39_MAX_NUM_QUEUES) ||
(iwl3945_param_queues_num < IWL_MIN_NUM_QUEUES)) { (iwl3945_param_queues_num < IWL_MIN_NUM_QUEUES)) {
IWL_ERROR("invalid queues_num, should be between %d and %d\n", IWL_ERROR("invalid queues_num, should be between %d and %d\n",
IWL_MIN_NUM_QUEUES, IWL_MAX_NUM_QUEUES); IWL_MIN_NUM_QUEUES, IWL39_MAX_NUM_QUEUES);
err = -EINVAL; err = -EINVAL;
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment