All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Guy, Wey-Yi" <wey-yi.w.guy@intel.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org,
	Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Subject: Re: [PATCH RESEND 29/35] iwlwifi: move command queue number out of the iwl_shared struct
Date: Thu, 08 Mar 2012 12:21:33 -0800	[thread overview]
Message-ID: <1331238093.12612.61.camel@wwguy-huron> (raw)
In-Reply-To: <20120308191926.GA2469@tuxdriver.com>

John,

I push the revised version of patch, is it works for you?

Thanks
Wey

On Thu, 2012-03-08 at 14:19 -0500, John W. Linville wrote:
> This one didn't apply...
> 
> On Wed, Mar 07, 2012 at 09:52:38AM -0800, Wey-Yi Guy wrote:
> > From: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
> > 
> > The command queue number is required by the transport
> > layer, but it can be determined only by the op mode.
> > Move this parameter to the dvm op mode, and configure
> > the transport layer using an API.
> > 
> > Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
> > Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
> > ---
> >  drivers/net/wireless/iwlwifi/iwl-agn.c            |   16 +++++-----
> >  drivers/net/wireless/iwlwifi/iwl-shared.h         |    2 -
> >  drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h |    2 +
> >  drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c  |    2 +-
> >  drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c  |   24 +++++++-------
> >  drivers/net/wireless/iwlwifi/iwl-trans-pcie.c     |   34 +++++++++++++-------
> >  drivers/net/wireless/iwlwifi/iwl-trans.h          |    9 +++++
> >  7 files changed, 54 insertions(+), 35 deletions(-)
> > 
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
> > index d45def3..76ee2dd 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-agn.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
> > @@ -1236,6 +1236,14 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
> >  	 */
> >  	trans_cfg.op_mode = op_mode;
> >  
> > +	if (ucode_flags & IWL_UCODE_TLV_FLAGS_PAN) {
> > +		priv->sta_key_max_num = STA_KEY_MAX_NUM_PAN;
> > +		trans_cfg.cmd_queue = IWL_IPAN_CMD_QUEUE_NUM;
> > +	} else {
> > +		priv->sta_key_max_num = STA_KEY_MAX_NUM;
> > +		trans_cfg.cmd_queue = IWL_DEFAULT_CMD_QUEUE_NUM;
> > +	}
> > +
> >  	/* Configure transport layer */
> >  	iwl_trans_configure(trans(priv), &trans_cfg);
> >  
> > @@ -1336,14 +1344,6 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
> >  	priv->new_scan_threshold_behaviour =
> >  		!!(ucode_flags & IWL_UCODE_TLV_FLAGS_NEWSCAN);
> >  
> > -	if (ucode_flags & IWL_UCODE_TLV_FLAGS_PAN) {
> > -		priv->sta_key_max_num = STA_KEY_MAX_NUM_PAN;
> > -		priv->shrd->cmd_queue = IWL_IPAN_CMD_QUEUE_NUM;
> > -	} else {
> > -		priv->sta_key_max_num = STA_KEY_MAX_NUM;
> > -		priv->shrd->cmd_queue = IWL_DEFAULT_CMD_QUEUE_NUM;
> > -	}
> > -
> >  	priv->phy_calib_chain_noise_reset_cmd =
> >  		fw->ucode_capa.standard_phy_calibration_size;
> >  	priv->phy_calib_chain_noise_gain_cmd =
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-shared.h
> > index 0e24803..cf34087 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-shared.h
> > +++ b/drivers/net/wireless/iwlwifi/iwl-shared.h
> > @@ -366,7 +366,6 @@ struct iwl_cfg {
> >  /**
> >   * struct iwl_shared - shared fields for all the layers of the driver
> >   *
> > - * @cmd_queue: command queue number
> >   * @status: STATUS_*
> >   * @wowlan: are we running wowlan uCode
> >   * @valid_contexts: microcode/device supports multiple contexts
> > @@ -383,7 +382,6 @@ struct iwl_cfg {
> >   * @device_pointers: pointers to ucode event tables
> >   */
> >  struct iwl_shared {
> > -	u8 cmd_queue;
> >  	unsigned long status;
> >  	u8 valid_contexts;
> >  
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
> > index dd64e69..14e5d52 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
> > +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
> > @@ -248,6 +248,7 @@ struct iwl_tx_queue {
> >   * @ucode_write_complete: indicates that the ucode has been copied.
> >   * @ucode_write_waitq: wait queue for uCode load
> >   * @status - transport specific status flags
> > + * @cmd_queue - command queue number
> >   */
> >  struct iwl_trans_pcie {
> >  	struct iwl_rx_queue rxq;
> > @@ -289,6 +290,7 @@ struct iwl_trans_pcie {
> >  	bool ucode_write_complete;
> >  	wait_queue_head_t ucode_write_waitq;
> >  	unsigned long status;
> > +	u8 cmd_queue;
> >  };
> >  
> >  #define IWL_TRANS_GET_PCIE_TRANS(_iwl_trans) \
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
> > index 17e1487..9bc3c73 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
> > @@ -361,7 +361,7 @@ static void iwl_rx_handle_rxbuf(struct iwl_trans *trans,
> >  {
> >  	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
> >  	struct iwl_rx_queue *rxq = &trans_pcie->rxq;
> > -	struct iwl_tx_queue *txq = &trans_pcie->txq[trans->shrd->cmd_queue];
> > +	struct iwl_tx_queue *txq = &trans_pcie->txq[trans_pcie->cmd_queue];
> >  	struct iwl_device_cmd *cmd;
> >  	unsigned long flags;
> >  	int len, err;
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c
> > index 8d13362..565c664 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c
> > @@ -397,7 +397,7 @@ static void iwlagn_txq_inval_byte_cnt_tbl(struct iwl_trans *trans,
> >  
> >  	WARN_ON(read_ptr >= TFD_QUEUE_SIZE_MAX);
> >  
> > -	if (txq_id != trans->shrd->cmd_queue)
> > +	if (txq_id != trans_pcie->cmd_queue)
> >  		sta_id = tx_cmd->sta_id;
> >  
> >  	bc_ent = cpu_to_le16(1 | (sta_id << 12));
> > @@ -665,7 +665,7 @@ int iwl_trans_pcie_tx_agg_disable(struct iwl_trans *trans, int sta_id, int tid)
> >  static int iwl_enqueue_hcmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
> >  {
> >  	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
> > -	struct iwl_tx_queue *txq = &trans_pcie->txq[trans->shrd->cmd_queue];
> > +	struct iwl_tx_queue *txq = &trans_pcie->txq[trans_pcie->cmd_queue];
> >  	struct iwl_queue *q = &txq->q;
> >  	struct iwl_device_cmd *out_cmd;
> >  	struct iwl_cmd_meta *out_meta;
> > @@ -738,7 +738,7 @@ static int iwl_enqueue_hcmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
> >  	out_cmd->hdr.cmd = cmd->id;
> >  	out_cmd->hdr.flags = 0;
> >  	out_cmd->hdr.sequence =
> > -		cpu_to_le16(QUEUE_TO_SEQ(trans->shrd->cmd_queue) |
> > +		cpu_to_le16(QUEUE_TO_SEQ(trans_pcie->cmd_queue) |
> >  					 INDEX_TO_SEQ(q->write_ptr));
> >  
> >  	/* and copy the data that needs to be copied */
> > @@ -758,7 +758,7 @@ static int iwl_enqueue_hcmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
> >  			get_cmd_string(out_cmd->hdr.cmd),
> >  			out_cmd->hdr.cmd,
> >  			le16_to_cpu(out_cmd->hdr.sequence), cmd_size,
> > -			q->write_ptr, idx, trans->shrd->cmd_queue);
> > +			q->write_ptr, idx, trans_pcie->cmd_queue);
> >  
> >  	phys_addr = dma_map_single(trans->dev, &out_cmd->hdr, copy_size,
> >  				DMA_BIDIRECTIONAL);
> > @@ -882,16 +882,16 @@ void iwl_tx_cmd_complete(struct iwl_trans *trans, struct iwl_rx_cmd_buffer *rxb,
> >  	struct iwl_device_cmd *cmd;
> >  	struct iwl_cmd_meta *meta;
> >  	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
> > -	struct iwl_tx_queue *txq = &trans_pcie->txq[trans->shrd->cmd_queue];
> > +	struct iwl_tx_queue *txq = &trans_pcie->txq[trans_pcie->cmd_queue];
> >  
> >  	/* If a Tx command is being handled and it isn't in the actual
> >  	 * command queue then there a command routing bug has been introduced
> >  	 * in the queue management code. */
> > -	if (WARN(txq_id != trans->shrd->cmd_queue,
> > +	if (WARN(txq_id != trans_pcie->cmd_queue,
> >  		 "wrong command queue %d (should be %d), sequence 0x%X readp=%d writep=%d\n",
> > -		  txq_id, trans->shrd->cmd_queue, sequence,
> > -		  trans_pcie->txq[trans->shrd->cmd_queue].q.read_ptr,
> > -		  trans_pcie->txq[trans->shrd->cmd_queue].q.write_ptr)) {
> > +		  txq_id, trans_pcie->cmd_queue, sequence,
> > +		  trans_pcie->txq[trans_pcie->cmd_queue].q.read_ptr,
> > +		  trans_pcie->txq[trans_pcie->cmd_queue].q.write_ptr)) {
> >  		iwl_print_hex_error(trans, pkt, 32);
> >  		return;
> >  	}
> > @@ -998,7 +998,7 @@ static int iwl_send_cmd_sync(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
> >  	if (!ret) {
> >  		if (test_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status)) {
> >  			struct iwl_tx_queue *txq =
> > -				&trans_pcie->txq[trans->shrd->cmd_queue];
> > +				&trans_pcie->txq[trans_pcie->cmd_queue];
> >  			struct iwl_queue *q = &txq->q;
> >  
> >  			IWL_ERR(trans,
> > @@ -1035,7 +1035,7 @@ cancel:
> >  		 * in later, it will possibly set an invalid
> >  		 * address (cmd->meta.source).
> >  		 */
> > -		trans_pcie->txq[trans->shrd->cmd_queue].meta[cmd_idx].flags &=
> > +		trans_pcie->txq[trans_pcie->cmd_queue].meta[cmd_idx].flags &=
> >  							~CMD_WANT_SKB;
> >  	}
> >  
> > @@ -1066,7 +1066,7 @@ int iwl_tx_queue_reclaim(struct iwl_trans *trans, int txq_id, int index,
> >  	int freed = 0;
> >  
> >  	/* This function is not meant to release cmd queue*/
> > -	if (WARN_ON(txq_id == trans->shrd->cmd_queue))
> > +	if (WARN_ON(txq_id == trans_pcie->cmd_queue))
> >  		return 0;
> >  
> >  	lockdep_assert_held(&txq->lock);
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
> > index b0d34f7..f28f4cb 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
> > @@ -78,9 +78,9 @@
> >  
> >  #define IWL_MASK(lo, hi) ((1 << (hi)) | ((1 << (hi)) - (1 << (lo))))
> >  
> > -#define SCD_QUEUECHAIN_SEL_ALL(trans)	\
> > +#define SCD_QUEUECHAIN_SEL_ALL(trans, trans_pcie)	\
> >  	(((1<<cfg(trans)->base_params->num_of_queues) - 1) &\
> > -	(~(1<<(trans)->shrd->cmd_queue)))
> > +	(~(1<<(trans_pcie)->cmd_queue)))
> >  
> >  
> >  static int iwl_trans_rx_alloc(struct iwl_trans *trans)
> > @@ -306,6 +306,7 @@ static int iwl_trans_txq_alloc(struct iwl_trans *trans,
> >  {
> >  	size_t tfd_sz = sizeof(struct iwl_tfd) * TFD_QUEUE_SIZE_MAX;
> >  	int i;
> > +	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
> >  
> >  	if (WARN_ON(txq->meta || txq->cmd || txq->skbs || txq->tfds))
> >  		return -EINVAL;
> > @@ -318,7 +319,7 @@ static int iwl_trans_txq_alloc(struct iwl_trans *trans,
> >  	if (!txq->meta || !txq->cmd)
> >  		goto error;
> >  
> > -	if (txq_id == trans->shrd->cmd_queue)
> > +	if (txq_id == trans_pcie->cmd_queue)
> >  		for (i = 0; i < slots_num; i++) {
> >  			txq->cmd[i] = kmalloc(sizeof(struct iwl_device_cmd),
> >  						GFP_KERNEL);
> > @@ -329,7 +330,7 @@ static int iwl_trans_txq_alloc(struct iwl_trans *trans,
> >  	/* Alloc driver data array and TFD circular buffer */
> >  	/* Driver private data, only for Tx (not command) queues,
> >  	 * not shared with device. */
> > -	if (txq_id != trans->shrd->cmd_queue) {
> > +	if (txq_id != trans_pcie->cmd_queue) {
> >  		txq->skbs = kcalloc(TFD_QUEUE_SIZE_MAX, sizeof(txq->skbs[0]),
> >  				    GFP_KERNEL);
> >  		if (!txq->skbs) {
> > @@ -357,7 +358,7 @@ error:
> >  	txq->skbs = NULL;
> >  	/* since txq->cmd has been zeroed,
> >  	 * all non allocated cmd[i] will be NULL */
> > -	if (txq->cmd && txq_id == trans->shrd->cmd_queue)
> > +	if (txq->cmd && txq_id == trans_pcie->cmd_queue)
> >  		for (i = 0; i < slots_num; i++)
> >  			kfree(txq->cmd[i]);
> >  	kfree(txq->meta);
> > @@ -423,7 +424,7 @@ static void iwl_tx_queue_unmap(struct iwl_trans *trans, int txq_id)
> >  	/* In the command queue, all the TBs are mapped as BIDI
> >  	 * so unmap them as such.
> >  	 */
> > -	if (txq_id == trans->shrd->cmd_queue)
> > +	if (txq_id == trans_pcie->cmd_queue)
> >  		dma_dir = DMA_BIDIRECTIONAL;
> >  	else
> >  		dma_dir = DMA_TO_DEVICE;
> > @@ -459,7 +460,7 @@ static void iwl_tx_queue_free(struct iwl_trans *trans, int txq_id)
> >  
> >  	/* De-alloc array of command/tx buffers */
> >  
> > -	if (txq_id == trans->shrd->cmd_queue)
> > +	if (txq_id == trans_pcie->cmd_queue)
> >  		for (i = 0; i < txq->q.n_window; i++)
> >  			kfree(txq->cmd[i]);
> >  
> > @@ -557,7 +558,7 @@ static int iwl_trans_tx_alloc(struct iwl_trans *trans)
> >  	/* Alloc and init all Tx queues, including the command queue (#4/#9) */
> >  	for (txq_id = 0; txq_id < cfg(trans)->base_params->num_of_queues;
> >  	     txq_id++) {
> > -		slots_num = (txq_id == trans->shrd->cmd_queue) ?
> > +		slots_num = (txq_id == trans_pcie->cmd_queue) ?
> >  					TFD_CMD_SLOTS : TFD_TX_CMD_SLOTS;
> >  		ret = iwl_trans_txq_alloc(trans, &trans_pcie->txq[txq_id],
> >  					  slots_num, txq_id);
> > @@ -603,7 +604,7 @@ static int iwl_tx_init(struct iwl_trans *trans)
> >  	/* Alloc and init all Tx queues, including the command queue (#4/#9) */
> >  	for (txq_id = 0; txq_id < cfg(trans)->base_params->num_of_queues;
> >  	     txq_id++) {
> > -		slots_num = (txq_id == trans->shrd->cmd_queue) ?
> > +		slots_num = (txq_id == trans_pcie->cmd_queue) ?
> >  					TFD_CMD_SLOTS : TFD_TX_CMD_SLOTS;
> >  		ret = iwl_trans_txq_init(trans, &trans_pcie->txq[txq_id],
> >  					 slots_num, txq_id);
> > @@ -1138,7 +1139,7 @@ static void iwl_tx_start(struct iwl_trans *trans)
> >  			   reg_val | FH_TX_CHICKEN_BITS_SCD_AUTO_RETRY_EN);
> >  
> >  	iwl_write_prph(trans, SCD_QUEUECHAIN_SEL,
> > -		SCD_QUEUECHAIN_SEL_ALL(trans));
> > +		SCD_QUEUECHAIN_SEL_ALL(trans, trans_pcie));
> >  	iwl_write_prph(trans, SCD_AGGR_SEL, 0);
> >  
> >  	/* initiate the queues */
> > @@ -1170,7 +1171,7 @@ static void iwl_tx_start(struct iwl_trans *trans)
> >  	else
> >  		queue_to_fifo = iwlagn_default_queue_to_tx_fifo;
> >  
> > -	iwl_trans_set_wr_ptrs(trans, trans->shrd->cmd_queue, 0);
> > +	iwl_trans_set_wr_ptrs(trans, trans_pcie->cmd_queue, 0);
> >  
> >  	/* make sure all queue are not stopped */
> >  	memset(&trans_pcie->queue_stopped[0], 0,
> > @@ -1622,6 +1623,14 @@ static u32 iwl_trans_pcie_read32(struct iwl_trans *trans, u32 ofs)
> >  	return readl(IWL_TRANS_GET_PCIE_TRANS(trans)->hw_base + ofs);
> >  }
> >  
> > +static void iwl_trans_pcie_configure(struct iwl_trans *trans,
> > +			      const struct iwl_trans_config *trans_cfg)
> > +{
> > +	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
> > +
> > +	trans_pcie->cmd_queue = trans_cfg->cmd_queue;
> > +}
> > +
> >  static void iwl_trans_pcie_free(struct iwl_trans *trans)
> >  {
> >  	struct iwl_trans_pcie *trans_pcie =
> > @@ -1682,7 +1691,7 @@ static int iwl_trans_pcie_wait_tx_queue_empty(struct iwl_trans *trans)
> >  
> >  	/* waiting for all the tx frames complete might take a while */
> >  	for (cnt = 0; cnt < cfg(trans)->base_params->num_of_queues; cnt++) {
> > -		if (cnt == trans->shrd->cmd_queue)
> > +		if (cnt == trans_pcie->cmd_queue)
> >  			continue;
> >  		txq = &trans_pcie->txq[cnt];
> >  		q = &txq->q;
> > @@ -2213,6 +2222,7 @@ const struct iwl_trans_ops trans_ops_pcie = {
> >  	.write8 = iwl_trans_pcie_write8,
> >  	.write32 = iwl_trans_pcie_write32,
> >  	.read32 = iwl_trans_pcie_read32,
> > +	.configure = iwl_trans_pcie_configure,
> >  };
> >  
> >  struct iwl_trans *iwl_trans_pcie_alloc(struct iwl_shared *shrd,
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
> > index b6fd427..a40c272 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-trans.h
> > +++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
> > @@ -279,9 +279,12 @@ static inline struct page *rxb_steal_page(struct iwl_rx_cmd_buffer *r)
> >   *
> >   * @op_mode: pointer to the upper layer.
> >   *	Must be set before any other call.
> > + * @cmd_queue: the index of the command queue.
> > + *	Must be set before start_fw.
> >   */
> >  struct iwl_trans_config {
> >  	struct iwl_op_mode *op_mode;
> > +	u8 cmd_queue;
> >  };
> >  
> >  /**
> > @@ -331,6 +334,8 @@ struct iwl_trans_config {
> >   * @write8: write a u8 to a register at offset ofs from the BAR
> >   * @write32: write a u32 to a register at offset ofs from the BAR
> >   * @read32: read a u32 register at offset ofs from the BAR
> > + * @configure: configure parameters required by the transport layer from
> > + *	the op_mode.
> >   */
> >  struct iwl_trans_ops {
> >  
> > @@ -370,6 +375,8 @@ struct iwl_trans_ops {
> >  	void (*write8)(struct iwl_trans *trans, u32 ofs, u8 val);
> >  	void (*write32)(struct iwl_trans *trans, u32 ofs, u32 val);
> >  	u32 (*read32)(struct iwl_trans *trans, u32 ofs);
> > +	void (*configure)(struct iwl_trans *trans,
> > +			  const struct iwl_trans_config *trans_cfg);
> >  };
> >  
> >  /**
> > @@ -425,6 +432,8 @@ static inline void iwl_trans_configure(struct iwl_trans *trans,
> >  	 * more
> >  	 */
> >  	trans->op_mode = trans_cfg->op_mode;
> > +
> > +	trans->ops->configure(trans, trans_cfg);
> >  }
> >  
> >  static inline int iwl_trans_start_hw(struct iwl_trans *trans)
> > -- 
> > 1.7.0.4
> > 
> > 
> 



  reply	other threads:[~2012-03-08 21:35 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-07 17:52 [PATCH 00/35] update for 3.4: iwlwifi 2012-03-07 Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 01/35] iwlwifi: remove unused arguments from iwlagn_gain_computation Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 02/35] iwlwifi: remove unused argument from rs_initialize_lq Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 03/35] iwlwifi: move iwl_sta_id_or_broadcast to user Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 04/35] iwlwifi: remove unused argument from iwl_init_hw_rates Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 05/35] iwlwifi: remove two unused arguments in testmode Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 06/35] iwlwifi: remove unused argument from iwlagn_suspend Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 07/35] iwlwifi: redesign PASSIVE_NO_RX workaround Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 08/35] iwlwifi: transport's tx_agg_disable must be atomic Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 09/35] iwlwifi: remove BT handlers from lib_ops Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 10/35] iwlwifi: move BT/HT params to shared Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 11/35] iwlwifi: make EEPROM enhanced TX power a bool Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 12/35] iwlwifi: remove unused max_nrg_cck from sensitivity and constify Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 13/35] iwlwifi: return error if loading uCode failed Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 14/35] iwlwifi: dump stack when fail to gain access to the device Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 15/35] iwlwifi: always check if got h/w access before write Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 16/35] iwlwifi: cleanup/fix memory barriers Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 17/35] iwlwifi: use writeb,writel,readl directly Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 18/35] iwlwifi: print DMA stop timeout error only if it happened Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 19/35] iwlwifi: reintroduce iwl_enable_rfkill_int Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 20/35] iwlwifi: add testmode command for rx forwarding Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 21/35] iwlwifi: fixed testmode notifications length Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 22/35] iwlwifi: add option to test MFP Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 23/35] iwlwifi: separate status to priv and trans Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 24/35] iwlwifi: make tx_cmd_pool kmem cache global Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 25/35] iwlwifi: log stop / wake queues Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 26/35] iwlwifi: configure transport layer from dvm op mode Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 27/35] iwlwifi: move setting up fw parameters Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 28/35] iwlwifi: more status bit factoring Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 29/35] iwlwifi: move command queue number out of the iwl_shared struct Wey-Yi Guy
2012-03-08 19:19   ` John W. Linville
2012-03-08 20:21     ` Guy, Wey-Yi [this message]
2012-03-07 17:52 ` [PATCH RESEND 30/35] iwlwifi: remove messages from queue wake/stop Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 31/35] iwlwifi: make iwl_init_context static Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 33/35] iwlwifi: restore PAN support Wey-Yi Guy
2012-03-08 19:20   ` John W. Linville
2012-03-08 18:29     ` Guy, Wey-Yi
2012-03-07 17:52 ` [PATCH RESEND 33/35] iwlwifi: don't delete AP station directly Wey-Yi Guy
2012-03-07 17:52 ` [PATCH RESEND 34/35] iwlwifi: correct status bit refactoring errors Wey-Yi Guy
2012-03-08 13:55   ` Stanislaw Gruszka
2012-03-08 14:04     ` Johannes Berg
2012-03-07 17:52 ` [PATCH RESEND 35/35] iwlwifi: always monitor for stuck queues Wey-Yi Guy
2012-03-07 20:23 ` [PATCH] iwlwifi: Add __printf verification Joe Perches
2012-03-07 20:23   ` Joe Perches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1331238093.12612.61.camel@wwguy-huron \
    --to=wey-yi.w.guy@intel.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=meenakshi.venkataraman@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.