* [PATCH 0/1] Clear correct ACM bit @ 2015-02-06 22:24 Jes.Sorensen 2015-02-06 22:24 ` [PATCH 1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly Jes.Sorensen 0 siblings, 1 reply; 5+ messages in thread From: Jes.Sorensen @ 2015-02-06 22:24 UTC (permalink / raw) To: linux-wireless; +Cc: Larry.Finger, wlanfae, Jes Sorensen From: Jes Sorensen <Jes.Sorensen@redhat.com> Hi, Reading over the RTL driver code, I noticed that most of the components in the rtlwifi driver would clear the wrong bit if it was processing the VO queue and ACM was not set. I am unable to test this, as I don't have the hardware, so please double check before applying. Jes Jes Sorensen (1): rtlwifi: Clear ACM_CTRL AC3_VO bit correctly drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192ee/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8723ae/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8723be/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) -- 2.1.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly 2015-02-06 22:24 [PATCH 0/1] Clear correct ACM bit Jes.Sorensen @ 2015-02-06 22:24 ` Jes.Sorensen 2015-02-10 3:23 ` Larry Finger 2015-02-26 13:19 ` [1/1] " Kalle Valo 0 siblings, 2 replies; 5+ messages in thread From: Jes.Sorensen @ 2015-02-06 22:24 UTC (permalink / raw) To: linux-wireless; +Cc: Larry.Finger, wlanfae, Jes Sorensen From: Jes Sorensen <Jes.Sorensen@redhat.com> All hw driver components in the rtlwifi driver, except for the rtl8192de component has this bug. They would clear BE bit in the ACM_CTRL register instead of the VO bit when processing the VO queue. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> --- drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192ee/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8723ae/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8723be/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c b/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c index f2b9713..edc2cbb 100644 --- a/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c @@ -566,7 +566,7 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~ACMHW_VIQEN); break; case AC3_VO: - acm_ctrl &= (~ACMHW_BEQEN); + acm_ctrl &= (~ACMHW_VOQEN); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c index 5c646d5..545b2c1 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c @@ -363,7 +363,7 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~AcmHw_ViqEn); break; case AC3_VO: - acm_ctrl &= (~AcmHw_BeqEn); + acm_ctrl &= (~AcmHw_VoqEn); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c index 5513217..ab38e68 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c @@ -1867,7 +1867,7 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~AcmHw_ViqEn); break; case AC3_VO: - acm_ctrl &= (~AcmHw_BeqEn); + acm_ctrl &= (~AcmHw_VoqEn); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, diff --git a/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c index 1a87edc..bac42e4 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c @@ -588,7 +588,7 @@ void rtl92ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~ACMHW_VIQEN); break; case AC3_VO: - acm_ctrl &= (~ACMHW_BEQEN); + acm_ctrl &= (~ACMHW_VOQEN); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG, diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c index 5761d5b..dee88a8 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c @@ -293,7 +293,7 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~AcmHw_ViqEn); break; case AC3_VO: - acm_ctrl &= (~AcmHw_BeqEn); + acm_ctrl &= (~AcmHw_VoqEn); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c index aa08546..b3b0947 100644 --- a/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c @@ -362,7 +362,7 @@ void rtl8723e_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~ACMHW_VIQEN); break; case AC3_VO: - acm_ctrl &= (~ACMHW_BEQEN); + acm_ctrl &= (~ACMHW_VOQEN); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD, diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/rtlwifi/rtl8723be/hw.c index 6dad28e..b469983 100644 --- a/drivers/net/wireless/rtlwifi/rtl8723be/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8723be/hw.c @@ -603,7 +603,7 @@ void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~ACMHW_VIQEN); break; case AC3_VO: - acm_ctrl &= (~ACMHW_BEQEN); + acm_ctrl &= (~ACMHW_VOQEN); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD, diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c index 8ec8200..ac235df 100644 --- a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c @@ -667,7 +667,7 @@ void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) acm_ctrl &= (~ACMHW_VIQEN); break; case AC3_VO: - acm_ctrl &= (~ACMHW_BEQEN); + acm_ctrl &= (~ACMHW_VOQEN); break; default: RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD, -- 2.1.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly 2015-02-06 22:24 ` [PATCH 1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly Jes.Sorensen @ 2015-02-10 3:23 ` Larry Finger 2015-02-26 13:20 ` Kalle Valo 2015-02-26 13:19 ` [1/1] " Kalle Valo 1 sibling, 1 reply; 5+ messages in thread From: Larry Finger @ 2015-02-10 3:23 UTC (permalink / raw) To: Jes.Sorensen, linux-wireless; +Cc: wlanfae On 02/06/2015 04:24 PM, Jes.Sorensen@redhat.com wrote: > From: Jes Sorensen <Jes.Sorensen@redhat.com> > > All hw driver components in the rtlwifi driver, except for the > rtl8192de component has this bug. They would clear BE bit in the > ACM_CTRL register instead of the VO bit when processing the VO queue. > > Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Jes, Good catch. Acked-by: Larry Finger <Larry.Finger@lwfinger.net> Thanks, Larry > --- > drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 2 +- > drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 2 +- > drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 2 +- > drivers/net/wireless/rtlwifi/rtl8192ee/hw.c | 2 +- > drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 2 +- > drivers/net/wireless/rtlwifi/rtl8723ae/hw.c | 2 +- > drivers/net/wireless/rtlwifi/rtl8723be/hw.c | 2 +- > drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 2 +- > 8 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c b/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c > index f2b9713..edc2cbb 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c > @@ -566,7 +566,7 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~ACMHW_VIQEN); > break; > case AC3_VO: > - acm_ctrl &= (~ACMHW_BEQEN); > + acm_ctrl &= (~ACMHW_VOQEN); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, > diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c > index 5c646d5..545b2c1 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c > @@ -363,7 +363,7 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~AcmHw_ViqEn); > break; > case AC3_VO: > - acm_ctrl &= (~AcmHw_BeqEn); > + acm_ctrl &= (~AcmHw_VoqEn); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, > diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c > index 5513217..ab38e68 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c > @@ -1867,7 +1867,7 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~AcmHw_ViqEn); > break; > case AC3_VO: > - acm_ctrl &= (~AcmHw_BeqEn); > + acm_ctrl &= (~AcmHw_VoqEn); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, > diff --git a/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c > index 1a87edc..bac42e4 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c > @@ -588,7 +588,7 @@ void rtl92ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~ACMHW_VIQEN); > break; > case AC3_VO: > - acm_ctrl &= (~ACMHW_BEQEN); > + acm_ctrl &= (~ACMHW_VOQEN); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG, > diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c > index 5761d5b..dee88a8 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c > @@ -293,7 +293,7 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~AcmHw_ViqEn); > break; > case AC3_VO: > - acm_ctrl &= (~AcmHw_BeqEn); > + acm_ctrl &= (~AcmHw_VoqEn); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, > diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c > index aa08546..b3b0947 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c > @@ -362,7 +362,7 @@ void rtl8723e_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~ACMHW_VIQEN); > break; > case AC3_VO: > - acm_ctrl &= (~ACMHW_BEQEN); > + acm_ctrl &= (~ACMHW_VOQEN); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD, > diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/rtlwifi/rtl8723be/hw.c > index 6dad28e..b469983 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8723be/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8723be/hw.c > @@ -603,7 +603,7 @@ void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~ACMHW_VIQEN); > break; > case AC3_VO: > - acm_ctrl &= (~ACMHW_BEQEN); > + acm_ctrl &= (~ACMHW_VOQEN); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD, > diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c > index 8ec8200..ac235df 100644 > --- a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c > +++ b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c > @@ -667,7 +667,7 @@ void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) > acm_ctrl &= (~ACMHW_VIQEN); > break; > case AC3_VO: > - acm_ctrl &= (~ACMHW_BEQEN); > + acm_ctrl &= (~ACMHW_VOQEN); > break; > default: > RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD, > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly 2015-02-10 3:23 ` Larry Finger @ 2015-02-26 13:20 ` Kalle Valo 0 siblings, 0 replies; 5+ messages in thread From: Kalle Valo @ 2015-02-26 13:20 UTC (permalink / raw) To: Larry Finger; +Cc: Jes.Sorensen, linux-wireless, wlanfae Larry Finger <Larry.Finger@lwfinger.net> writes: > On 02/06/2015 04:24 PM, Jes.Sorensen@redhat.com wrote: >> From: Jes Sorensen <Jes.Sorensen@redhat.com> >> >> All hw driver components in the rtlwifi driver, except for the >> rtl8192de component has this bug. They would clear BE bit in the >> ACM_CTRL register instead of the VO bit when processing the VO queue. >> >> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> > > Jes, > > Good catch. Acked-by: Larry Finger <Larry.Finger@lwfinger.net> BTW, if you want patchwork to use that Acked-by line add it to a line of it's own. Otherwise it will ignore it. -- Kalle Valo ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly 2015-02-06 22:24 ` [PATCH 1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly Jes.Sorensen 2015-02-10 3:23 ` Larry Finger @ 2015-02-26 13:19 ` Kalle Valo 1 sibling, 0 replies; 5+ messages in thread From: Kalle Valo @ 2015-02-26 13:19 UTC (permalink / raw) To: Jes Sorensen; +Cc: linux-wireless, Larry.Finger, wlanfae, Jes Sorensen > From: Jes Sorensen <Jes.Sorensen@redhat.com> > > All hw driver components in the rtlwifi driver, except for the > rtl8192de component has this bug. They would clear BE bit in the > ACM_CTRL register instead of the VO bit when processing the VO queue. > > Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Thanks, applied to wireless-drivers-next.git. Kalle Valo ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-02-26 13:20 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-02-06 22:24 [PATCH 0/1] Clear correct ACM bit Jes.Sorensen 2015-02-06 22:24 ` [PATCH 1/1] rtlwifi: Clear ACM_CTRL AC3_VO bit correctly Jes.Sorensen 2015-02-10 3:23 ` Larry Finger 2015-02-26 13:20 ` Kalle Valo 2015-02-26 13:19 ` [1/1] " Kalle Valo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).