Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 709141 Details for
Bug 906734
rtl8192cu module
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Trial patch for rtl8192cu
01-rtl8192cu_set_network_type_with_new_set_check_bssid.patch (text/plain), 5.76 KB, created by
Larry Finger
on 2013-03-12 21:07:50 UTC
(
hide
)
Description:
Trial patch for rtl8192cu
Filename:
MIME Type:
Creator:
Larry Finger
Created:
2013-03-12 21:07:50 UTC
Size:
5.76 KB
patch
obsolete
> > >From: Jussi Kivilinna <jussi.kivilinna@iki.fi> > > >--- > > > >From: Jussi Kivilinna <jussi.kivilinna@iki.fi> > > >--- > drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 31 +++++++++++++++++++++++++-- > 1 file changed, 29 insertions(+), 2 deletions(-) > >Index: linux-2.6/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c >=================================================================== >--- linux-2.6.orig/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c >+++ linux-2.6/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c >@@ -1377,74 +1377,57 @@ void rtl92cu_card_disable(struct ieee802 > > void rtl92cu_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid) > { >- /* dummy routine needed for callback from rtl_op_configure_filter() */ >-} >- >-/*========================================================================== */ >- >-static void _rtl92cu_set_check_bssid(struct ieee80211_hw *hw, >- enum nl80211_iftype type) >-{ > struct rtl_priv *rtlpriv = rtl_priv(hw); >- u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); > struct rtl_hal *rtlhal = rtl_hal(rtlpriv); >- struct rtl_phy *rtlphy = &(rtlpriv->phy); >- u8 filterout_non_associated_bssid = false; >+ u32 reg_rcr = rtl_read_dword(rtlpriv, REG_RCR); > >- switch (type) { >- case NL80211_IFTYPE_ADHOC: >- case NL80211_IFTYPE_STATION: >- filterout_non_associated_bssid = true; >- break; >- case NL80211_IFTYPE_UNSPECIFIED: >- case NL80211_IFTYPE_AP: >- default: >- break; >- } >- if (filterout_non_associated_bssid) { >+ if (rtlpriv->psc.rfpwr_state != ERFON) >+ return; >+ >+ if (check_bssid) { >+ u8 tmp; > if (IS_NORMAL_CHIP(rtlhal->version)) { >- switch (rtlphy->current_io_type) { >- case IO_CMD_RESUME_DM_BY_SCAN: >- reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); >- rtlpriv->cfg->ops->set_hw_reg(hw, >- HW_VAR_RCR, (u8 *)(®_rcr)); >- /* enable update TSF */ >- _rtl92cu_set_bcn_ctrl_reg(hw, 0, BIT(4)); >- break; >- case IO_CMD_PAUSE_DM_BY_SCAN: >- reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); >- rtlpriv->cfg->ops->set_hw_reg(hw, >- HW_VAR_RCR, (u8 *)(®_rcr)); >- /* disable update TSF */ >- _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); >- break; >- } >+ reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); >+ tmp = BIT(4); > } else { >- reg_rcr |= (RCR_CBSSID); >- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, >- (u8 *)(®_rcr)); >- _rtl92cu_set_bcn_ctrl_reg(hw, 0, (BIT(4)|BIT(5))); >+ reg_rcr |= RCR_CBSSID; >+ tmp = BIT(4) | BIT(5); > } >- } else if (filterout_non_associated_bssid == false) { >+ rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, >+ (u8 *) (®_rcr)); >+ _rtl92cu_set_bcn_ctrl_reg(hw, 0, tmp); >+ } else { >+ u8 tmp; > if (IS_NORMAL_CHIP(rtlhal->version)) { >- reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); >- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, >- (u8 *)(®_rcr)); >- _rtl92cu_set_bcn_ctrl_reg(hw, BIT(4), 0); >+ reg_rcr &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN); >+ tmp = BIT(4); > } else { >- reg_rcr &= (~RCR_CBSSID); >- rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, >- (u8 *)(®_rcr)); >- _rtl92cu_set_bcn_ctrl_reg(hw, (BIT(4)|BIT(5)), 0); >+ reg_rcr &= ~RCR_CBSSID; >+ tmp = BIT(4) | BIT(5); > } >+ reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); >+ rtlpriv->cfg->ops->set_hw_reg(hw, >+ HW_VAR_RCR, (u8 *) (®_rcr)); >+ _rtl92cu_set_bcn_ctrl_reg(hw, tmp, 0); > } > } > >+/*========================================================================== */ >+ > int rtl92cu_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type) > { >+ struct rtl_priv *rtlpriv = rtl_priv(hw); >+ > if (_rtl92cu_set_media_status(hw, type)) > return -EOPNOTSUPP; >- _rtl92cu_set_check_bssid(hw, type); >+ >+ if (rtlpriv->mac80211.link_state == MAC80211_LINKED) { >+ if (type != NL80211_IFTYPE_AP) >+ rtl92cu_set_check_bssid(hw, true); >+ } else { >+ rtl92cu_set_check_bssid(hw, false); >+ } >+ > return 0; > } > >Index: linux-2.6/drivers/net/wireless/rtlwifi/usb.c >=================================================================== >--- linux-2.6.orig/drivers/net/wireless/rtlwifi/usb.c >+++ linux-2.6/drivers/net/wireless/rtlwifi/usb.c >@@ -119,7 +119,7 @@ static int _usbctrl_vendorreq_sync_read( > > do { > status = usb_control_msg(udev, pipe, request, reqtype, value, >- index, pdata, len, 0); /*max. timeout*/ >+ index, pdata, len, 5000); /*max. timeout*/ > if (status < 0) { > /* firmware download is checksumed, don't retry */ > if ((value >= FW_8192C_START_ADDRESS && >@@ -481,6 +481,9 @@ static void _rtl_usb_rx_process_agg(stru > rtlpriv->link_info.num_rx_inperiod++; > } > } >+ /* static bcn for roaming */ >+/* rtl_beacon_statistic(hw, skb); comment out for now and use below */ >+ rtlpriv->link_info.bcn_rx_inperiod++; > } > > static void _rtl_usb_rx_process_noagg(struct ieee80211_hw *hw, >Index: linux-2.6/drivers/net/wireless/rtlwifi/base.h >=================================================================== >--- linux-2.6.orig/drivers/net/wireless/rtlwifi/base.h >+++ linux-2.6/drivers/net/wireless/rtlwifi/base.h >@@ -143,5 +143,8 @@ extern struct attribute_group rtl_attrib > int rtlwifi_rate_mapping(struct ieee80211_hw *hw, > bool isht, u8 desc_rate, bool first_ampdu); > bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb); >+struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw, >+ u8 *sa, u8 *bssid, u16 tid); >+void rtl_lps_change_work_callback(struct work_struct *work); > > #endif >Index: linux-2.6/drivers/net/wireless/rtlwifi/pci.c >=================================================================== >--- linux-2.6.orig/drivers/net/wireless/rtlwifi/pci.c >+++ linux-2.6/drivers/net/wireless/rtlwifi/pci.c >@@ -939,7 +939,7 @@ static void _rtl_pci_prepare_bcn_tasklet > return; > } > >-static void rtl_lps_leave_work_callback(struct work_struct *work) >+void rtl_lps_leave_work_callback(struct work_struct *work) > { > struct rtl_works *rtlworks = > container_of(work, struct rtl_works, lps_leave_work);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 906734
: 709141