Messages in this thread | | | Date | Mon, 18 Jun 2012 16:18:53 -0300 | From | Herton Ronaldo Krzesinski <> | Subject | Re: [ 39/69] iwlwifi: disable the buggy chain extension feature in HW |
| |
On Sun, Jun 17, 2012 at 07:00:20PM +0100, Ben Hutchings wrote: > 3.2-stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Emmanuel Grumbach <emmanuel.grumbach@intel.com> > > commit d012d04e4d6312ea157b6cf19e9689af934f5aa7 upstream. > > This feature has been reported to be buggy and enabled by > default. We therefore need to disable it manually. > > Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> > Signed-off-by: Johannes Berg <johannes.berg@intel.com> > Signed-off-by: John W. Linville <linville@tuxdriver.com> > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > --- > drivers/net/wireless/iwlwifi/iwl-prph.h | 1 + > drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 5 +++++ > 2 files changed, 6 insertions(+) > > --- a/drivers/net/wireless/iwlwifi/iwl-prph.h > +++ b/drivers/net/wireless/iwlwifi/iwl-prph.h > @@ -228,6 +228,7 @@ > #define SCD_TXFACT (SCD_BASE + 0x10) > #define SCD_ACTIVE (SCD_BASE + 0x14) > #define SCD_QUEUECHAIN_SEL (SCD_BASE + 0xe8) > +#define SCD_CHAINEXT_EN (SCD_BASE + 0x244) > #define SCD_AGGR_SEL (SCD_BASE + 0x248) > #define SCD_INTERRUPT_MASK (SCD_BASE + 0x108) > > --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c > +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c > @@ -868,6 +868,11 @@ > iwl_write_prph(bus(trans), SCD_DRAM_BASE_ADDR, > trans_pcie->scd_bc_tbls.dma >> 10); > > + /* The chain extension of the SCD doesn't work well. This feature is > + * enabled by default by the HW, so we need to disable it manually. > + */ > + iwl_write_prph(trans, SCD_CHAINEXT_EN, 0); > +
Hi, this triggers the following build warning: linux-stable/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c: In function 'iwl_trans_pcie_tx_start': linux-stable/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c:874:2: warning: passing argument 1 of 'iwl_write_prph' from incompatible pointer type [enabled by default] linux-stable/drivers/net/wireless/iwlwifi/iwl-io.h:72:6: note: expected 'struct iwl_bus *' but argument is of type 'struct iwl_trans *'
For 3.2, it should be passed as bus(trans) as other invocations.
> /* Enable DMA channel */ > for (chan = 0; chan < FH_TCSR_CHNL_NUM ; chan++) > iwl_write_direct32(bus(trans), FH_TCSR_CHNL_TX_CONFIG_REG(chan), > > > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
-- []'s Herton
| |