On Fri, Jun 03, 2011 at 02:58:34PM +0900, [email protected] wrote:
> 
> This is a note to let you know that I've just added the patch titled
> 
>     rtlwifi: rtl8192c-common: rtl8192ce: Fix for HT40 regression

Nope, I've dropped it, it causes the build to break:

drivers/net/wireless/rtlwifi/rtl8192ce/phy.c:435:6: error: redefinition of 
‘rtl92ce_phy_set_bw_mode_callback’
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c:367:6: note: previous definition 
of ‘rtl92ce_phy_set_bw_mode_callback’ was here
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c: In function 
‘rtl92ce_phy_set_bw_mode_callback’:
drivers/net/wireless/rtlwifi/rtl8192ce/phy.c:499:2: error: implicit declaration 
of function ‘rtl92ce_phy_rf6052_set_bandwidth’

So, if you want this applied, please submit a version that will build correctly.

thanks,

greg k-h

> 
> to the 2.6.39-stable tree which can be found at:
>     
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> 
> The filename of the patch is:
>      rtlwifi-rtl8192c-common-rtl8192ce-fix-for-ht40-regression.patch
> and it can be found in the queue-2.6.39 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <[email protected]> know about it.
> 
> 
> >From 099fb8ab1e57e5d609ac686cc0ab6d1835a79155 Mon Sep 17 00:00:00 2001
> From: Larry Finger <[email protected]>
> Date: Sat, 14 May 2011 10:15:17 -0500
> Subject: rtlwifi: rtl8192c-common: rtl8192ce: Fix for HT40 regression
> 
> From: Larry Finger <[email protected]>
> 
> commit 099fb8ab1e57e5d609ac686cc0ab6d1835a79155 upstream.
> 
> The changes that were made to rtl8192ce when rtl8192cu was added broke
> HT40. The errors included a typo in rtlwifi, a missing routine in
> rtl8192ce and a missing callback of that routine in rtl8192c-common.
> 
> This patch fixes the regression reported in Bug #35082.
> 
> Signed-off-by: Larry Finger <[email protected]>
> Signed-off-by: John W. Linville <[email protected]>
> Signed-off-by: Greg Kroah-Hartman <[email protected]>
> 
> ---
>  drivers/net/wireless/rtlwifi/ps.c            |    2 
>  drivers/net/wireless/rtlwifi/rtl8192ce/phy.c |   69 
> +++++++++++++++++++++++++++
>  drivers/net/wireless/rtlwifi/rtl8192ce/phy.h |    1 
>  3 files changed, 71 insertions(+), 1 deletion(-)
> 
> --- a/drivers/net/wireless/rtlwifi/ps.c
> +++ b/drivers/net/wireless/rtlwifi/ps.c
> @@ -205,7 +205,7 @@ static void _rtl_ps_inactive_ps(struct i
>       rtl_ps_set_rf_state(hw, ppsc->inactive_pwrstate,
>                           RF_CHANGE_BY_IPS, false);
>  
> -     if (ppsc->inactive_pwrstate == ERFOFF &&
> +     if (ppsc->inactive_pwrstate == ERFON &&
>           rtlhal->interface == INTF_PCI) {
>               if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM) {
>                       rtlpriv->intf_ops->enable_aspm(hw);
> --- a/drivers/net/wireless/rtlwifi/rtl8192ce/phy.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/phy.c
> @@ -432,6 +432,75 @@ void rtl92ce_phy_set_bw_mode_callback(st
>       RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
>  }
>  
> +void rtl92ce_phy_set_bw_mode_callback(struct ieee80211_hw *hw)
> +{
> +     struct rtl_priv *rtlpriv = rtl_priv(hw);
> +     struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
> +     struct rtl_phy *rtlphy = &(rtlpriv->phy);
> +     struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
> +     u8 reg_bw_opmode;
> +     u8 reg_prsr_rsc;
> +
> +     RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE,
> +              ("Switch to %s bandwidth\n",
> +               rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ?
> +               "20MHz" : "40MHz"))
> +
> +     if (is_hal_stop(rtlhal)) {
> +             rtlphy->set_bwmode_inprogress = false;
> +             return;
> +     }
> +
> +     reg_bw_opmode = rtl_read_byte(rtlpriv, REG_BWOPMODE);
> +     reg_prsr_rsc = rtl_read_byte(rtlpriv, REG_RRSR + 2);
> +
> +     switch (rtlphy->current_chan_bw) {
> +     case HT_CHANNEL_WIDTH_20:
> +             reg_bw_opmode |= BW_OPMODE_20MHZ;
> +             rtl_write_byte(rtlpriv, REG_BWOPMODE, reg_bw_opmode);
> +             break;
> +     case HT_CHANNEL_WIDTH_20_40:
> +             reg_bw_opmode &= ~BW_OPMODE_20MHZ;
> +             rtl_write_byte(rtlpriv, REG_BWOPMODE, reg_bw_opmode);
> +             reg_prsr_rsc =
> +                 (reg_prsr_rsc & 0x90) | (mac->cur_40_prime_sc << 5);
> +             rtl_write_byte(rtlpriv, REG_RRSR + 2, reg_prsr_rsc);
> +             break;
> +     default:
> +             RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> +                      ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
> +             break;
> +     }
> +
> +     switch (rtlphy->current_chan_bw) {
> +     case HT_CHANNEL_WIDTH_20:
> +             rtl_set_bbreg(hw, RFPGA0_RFMOD, BRFMOD, 0x0);
> +             rtl_set_bbreg(hw, RFPGA1_RFMOD, BRFMOD, 0x0);
> +             rtl_set_bbreg(hw, RFPGA0_ANALOGPARAMETER2, BIT(10), 1);
> +             break;
> +     case HT_CHANNEL_WIDTH_20_40:
> +             rtl_set_bbreg(hw, RFPGA0_RFMOD, BRFMOD, 0x1);
> +             rtl_set_bbreg(hw, RFPGA1_RFMOD, BRFMOD, 0x1);
> +
> +             rtl_set_bbreg(hw, RCCK0_SYSTEM, BCCK_SIDEBAND,
> +                           (mac->cur_40_prime_sc >> 1));
> +             rtl_set_bbreg(hw, ROFDM1_LSTF, 0xC00, mac->cur_40_prime_sc);
> +             rtl_set_bbreg(hw, RFPGA0_ANALOGPARAMETER2, BIT(10), 0);
> +
> +             rtl_set_bbreg(hw, 0x818, (BIT(26) | BIT(27)),
> +                           (mac->cur_40_prime_sc ==
> +                            HAL_PRIME_CHNL_OFFSET_LOWER) ? 2 : 1);
> +             break;
> +     default:
> +             RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> +                      ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw));
> +             break;
> +     }
> +     rtl92ce_phy_rf6052_set_bandwidth(hw, rtlphy->current_chan_bw);
> +     rtlphy->set_bwmode_inprogress = false;
> +     RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, ("<==\n"));
> +}
> +
>  void _rtl92ce_phy_lc_calibrate(struct ieee80211_hw *hw, bool is2t)
>  {
>       u8 tmpreg;
> --- a/drivers/net/wireless/rtlwifi/rtl8192ce/phy.h
> +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/phy.h
> @@ -250,5 +250,6 @@ bool _rtl92ce_phy_config_mac_with_header
>  void _rtl92c_phy_init_bb_rf_register_definition(struct ieee80211_hw *hw);
>  bool _rtl92c_phy_bb8192c_config_parafile(struct ieee80211_hw *hw);
>  void _rtl92c_phy_set_rf_sleep(struct ieee80211_hw *hw);
> +void rtl92ce_phy_set_bw_mode_callback(struct ieee80211_hw *hw);
>  
>  #endif
> 
> 
> Patches currently in stable-queue which might be from 
> [email protected] are
> 
> _______________________________________________
> stable mailing list
> [email protected]
> http://linux.kernel.org/mailman/listinfo/stable

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to