Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -456,7 +456,7 @@ struct iwl3945_eeprom {
/* Size of uCode instruction memory in bootstrap state machine */
#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)
{
+2 −0
Original line number Diff line number Diff line
@@ -687,6 +687,8 @@ enum {

#endif

#define IWL_MAX_NUM_QUEUES IWL39_MAX_NUM_QUEUES

struct iwl3945_priv {

	/* ieee device used by generic ieee processing code */
+5 −5
Original line number Diff line number Diff line
@@ -1388,7 +1388,7 @@ static inline __le32 iwl4965_hw_set_rate_n_flags(u8 rate, u16 flags)
#define IWL4965_MAX_WIN_SIZE	64
#define IWL4965_QUEUE_SIZE	256
#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 {
 */
struct iwl4965_shared {
	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_stts_rb_num:12; */
+4 −4
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@

/* module parameters */
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,
	.amsdu_size_8K = 1,
	/* the rest are 0 by default */
@@ -2021,10 +2021,10 @@ int iwl4965_alive_notify(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)) {
		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;
	}

@@ -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 */
	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");
		return;
	}
+2 −0
Original line number Diff line number Diff line
@@ -941,6 +941,8 @@ enum {

#endif

#define IWL_MAX_NUM_QUEUES	20 /* FIXME: do dynamic allocation */

struct iwl_priv {

	/* ieee device used by generic ieee processing code */
Loading