staging: rtl8192e: Use standard api to calculate frequency <-> channel
cover staging: rtl8192e: Use standard api to calculate frequency <-> channel
Use standard api to calculate frequency to channel and channel to frequency. Usage of cfg80211 is required to merge driver into wireless subsystem.
---
Tested with rtl8192e (WLL6130-D99)
Transferred this patch over wlan connection of rtl8192e
Philipp Hortmann (2):
staging: rtl8192e: Use standard api to calculate frequency to channel
staging: rtl8192e: Use standard api to calculate channel to frequency
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 6 ++++-- drivers/staging/rtl8192e/rtllib.h | 2 -- drivers/staging/rtl8192e/rtllib_softmac_wx.c | 22 +++----------------- 3 files changed, 7 insertions(+), 23 deletions(-)
Signature · 1 line
2.40.1
PATCH 1/2 staging: rtl8192e: Use standard api to calculate frequency to channel
Use ieee80211_freq_khz_to_channel() to calculate frequency to channel to omit proprietary code.
---
Tested this code with separate debug code as this part is usually unused.
--- drivers/staging/rtl8192e/rtllib_softmac_wx.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
drivers/staging/rtl8192e/rtllib_softmac_wx.c +1 -8
@@ -42,15 +42,8 @@ int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,if (fwrq->e ==1 ) {if ((fwrq->m >= (int )2.412e8 && fwrq->m <= (int )2.487e8 )) { -int f = fwrq->m /100000 ; -int c =0 ; - -while ((c <14 ) && (f != rtllib_wlan_frequencies[c])) - c++; - -/* hack to fall through */ + fwrq->m =ieee80211_freq_khz_to_channel (fwrq->m /100 ); fwrq->e =0 ; - fwrq->m = c +1 ; } }
Signature · 1 line
2.40.1
PATCH 2/2 staging: rtl8192e: Use standard api to calculate channel to frequency
In reply to Philipp HortmannUse ieee80211_channel_to_freq_khz() to calculate channel to frequency to omit proprietary code.
--- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 6 ++++-- drivers/staging/rtl8192e/rtllib.h | 2 -- drivers/staging/rtl8192e/rtllib_softmac_wx.c | 13 ++----------- 3 files changed, 6 insertions(+), 15 deletions(-)
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c +4 -2
@@ -342,9 +342,11 @@ static int _rtl92e_wx_get_range(struct net_device *dev,for (i =0 , val =0 ; i <14 ; i++) {if ((priv->rtllib->active_channel_map)[i +1 ]) { +s32 freq_khz; + range->freq[val].i = i +1 ; - range->freq[val].m = rtllib_wlan_frequencies[i] * -100000 ; + freq_khz =ieee80211_channel_to_freq_khz (i +1 ,NL80211_BAND_2GHZ ); + range->freq[val].m = freq_khz *100 ; range->freq[val].e =1 ; val++; }
drivers/staging/rtl8192e/rtllib.h +0 -2
@@ -2049,8 +2049,6 @@ void TsStartAddBaProcess(struct rtllib_device *ieee,void RemovePeerTS (struct rtllib_device *ieee,u8 *Addr);void RemoveAllTS (struct rtllib_device *ieee); -extern const long rtllib_wlan_frequencies[]; -static inline const char *escape_essid (const char *essid,u8 essid_len) {static char escaped[IW_ESSID_MAX_SIZE *2 +1 ];
drivers/staging/rtl8192e/rtllib_softmac_wx.c +2 -11
@@ -15,15 +15,6 @@#include "rtllib.h" #include "dot11d.h" -/* FIXME: add A freqs */ - -const long rtllib_wlan_frequencies[] = { -2412 ,2417 ,2422 ,2427 , -2432 ,2437 ,2442 ,2447 , -2452 ,2457 ,2462 ,2467 , -2472 ,2484 -}; -EXPORT_SYMBOL (rtllib_wlan_frequencies);int rtllib_wx_set_freq (struct rtllib_device *ieee,struct iw_request_info *a,union iwreq_data *wrqu,char *b)
@@ -83,8 +74,8 @@ int rtllib_wx_get_freq(struct rtllib_device *ieee,if (ieee->current_network.channel ==0 )return -1 ; - fwrq->m = rtllib_wlan_frequencies[ieee->current_network.channel -1 ] * -100000 ; + fwrq->m =ieee80211_channel_to_freq_khz (ieee->current_network.channel, +NL80211_BAND_2GHZ ) *100 ; fwrq->e =1 ;return 0 ; }
Signature · 1 line
2.40.1
Greg Kroah-Hartman
maintainerRe: [PATCH 1/2] staging: rtl8192e: Use standard api to calculate frequency to channel
In reply to Philipp HortmannQuoted 35 lines · Philipp Hortmann
Use
ieee80211_freq_khz_to_channel()to calculate frequency to channel to omit proprietary code.Signed-off-by Philipp Hortmann <[email protected]>---
Tested this code with separate debug code as this part is usually unused.--- drivers/staging/rtl8192e/rtllib_softmac_wx.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)drivers/staging/rtl8192e/rtllib_softmac_wx.c +1
-8@@ -42,15 +42,8 @@ int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,if (fwrq->e ==1 ) {if ((fwrq->m >= (int )2.412e8 && fwrq->m <= (int )2.487e8 )) { -int f = fwrq->m /100000 ; -int c =0 ; - -while ((c <14 ) && (f != rtllib_wlan_frequencies[c])) - c++; - -/* hack to fall through */ + fwrq->m =ieee80211_freq_khz_to_channel (fwrq->m /100 ); fwrq->e =0 ; - fwrq->m = c +1 ; } }Signature · 1 line
2.40.1
Does not apply to my tree for some reason, can you rebase and resubmit?
thanks,
greg k-h
Greg Kroah-Hartman
maintainerRe: [PATCH 1/2] staging: rtl8192e: Use standard api to calculate frequency to channel
Quoted 32 lines · Greg Kroah-Hartman
Quoted 31 lines · Philipp Hortmann
Use
ieee80211_freq_khz_to_channel()to calculate frequency to channel to omit proprietary code.Signed-off-by Philipp Hortmann <[email protected]>---
Tested this code with separate debug code as this part is usually unused.--- drivers/staging/rtl8192e/rtllib_softmac_wx.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)drivers/staging/rtl8192e/rtllib_softmac_wx.c +1
-8@@ -42,15 +42,8 @@ int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,if (fwrq->e ==1 ) {if ((fwrq->m >= (int )2.412e8 && fwrq->m <= (int )2.487e8 )) { -int f = fwrq->m /100000 ; -int c =0 ; - -while ((c <14 ) && (f != rtllib_wlan_frequencies[c])) - c++; - -/* hack to fall through */ + fwrq->m =ieee80211_freq_khz_to_channel (fwrq->m /100 ); fwrq->e =0 ; - fwrq->m = c +1 ; } }
Quoted 6 lines
Quoted 4 lines
Signature · 1 line
2.40.1Does not apply to my tree for some reason, can you rebase and resubmit?
Nevermind, my fault, all is good now.
greg k-h