|
@@ -137,161 +137,6 @@ static int r8192_wx_get_power(struct net_device *dev,
|
|
|
return ieee80211_wx_get_power(priv->ieee80211,info,wrqu,extra);
|
|
|
}
|
|
|
|
|
|
-#ifdef JOHN_IOCTL
|
|
|
-u16 read_rtl8225(struct net_device *dev, u8 addr);
|
|
|
-void write_rtl8225(struct net_device *dev, u8 adr, u16 data);
|
|
|
-u32 john_read_rtl8225(struct net_device *dev, u8 adr);
|
|
|
-void _write_rtl8225(struct net_device *dev, u8 adr, u16 data);
|
|
|
-
|
|
|
-static int r8192_wx_read_regs(struct net_device *dev,
|
|
|
- struct iw_request_info *info,
|
|
|
- union iwreq_data *wrqu, char *extra)
|
|
|
-{
|
|
|
- struct r8192_priv *priv = ieee80211_priv(dev);
|
|
|
- u8 addr;
|
|
|
- u16 data1;
|
|
|
-
|
|
|
- down(&priv->wx_sem);
|
|
|
-
|
|
|
-
|
|
|
- get_user(addr,(u8*)wrqu->data.pointer);
|
|
|
- data1 = read_rtl8225(dev, addr);
|
|
|
- wrqu->data.length = data1;
|
|
|
-
|
|
|
- up(&priv->wx_sem);
|
|
|
- return 0;
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-static int r8192_wx_write_regs(struct net_device *dev,
|
|
|
- struct iw_request_info *info,
|
|
|
- union iwreq_data *wrqu, char *extra)
|
|
|
-{
|
|
|
- struct r8192_priv *priv = ieee80211_priv(dev);
|
|
|
- u8 addr;
|
|
|
-
|
|
|
- down(&priv->wx_sem);
|
|
|
-
|
|
|
- get_user(addr, (u8*)wrqu->data.pointer);
|
|
|
- write_rtl8225(dev, addr, wrqu->data.length);
|
|
|
-
|
|
|
- up(&priv->wx_sem);
|
|
|
- return 0;
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-void rtl8187_write_phy(struct net_device *dev, u8 adr, u32 data);
|
|
|
-u8 rtl8187_read_phy(struct net_device *dev,u8 adr, u32 data);
|
|
|
-
|
|
|
-static int r8192_wx_read_bb(struct net_device *dev,
|
|
|
- struct iw_request_info *info,
|
|
|
- union iwreq_data *wrqu, char *extra)
|
|
|
-{
|
|
|
- struct r8192_priv *priv = ieee80211_priv(dev);
|
|
|
- u8 databb;
|
|
|
-#if 0
|
|
|
- int i;
|
|
|
- for(i=0;i<12;i++) printk("%8x\n", read_cam(dev, i) );
|
|
|
-#endif
|
|
|
-
|
|
|
- down(&priv->wx_sem);
|
|
|
-
|
|
|
- databb = rtl8187_read_phy(dev, (u8)wrqu->data.length, 0x00000000);
|
|
|
- wrqu->data.length = databb;
|
|
|
-
|
|
|
- up(&priv->wx_sem);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-void rtl8187_write_phy(struct net_device *dev, u8 adr, u32 data);
|
|
|
-static int r8192_wx_write_bb(struct net_device *dev,
|
|
|
- struct iw_request_info *info,
|
|
|
- union iwreq_data *wrqu, char *extra)
|
|
|
-{
|
|
|
- struct r8192_priv *priv = ieee80211_priv(dev);
|
|
|
- u8 databb;
|
|
|
-
|
|
|
- down(&priv->wx_sem);
|
|
|
-
|
|
|
- get_user(databb, (u8*)wrqu->data.pointer);
|
|
|
- rtl8187_write_phy(dev, wrqu->data.length, databb);
|
|
|
-
|
|
|
- up(&priv->wx_sem);
|
|
|
- return 0;
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-static int r8192_wx_write_nicb(struct net_device *dev,
|
|
|
- struct iw_request_info *info,
|
|
|
- union iwreq_data *wrqu, char *extra)
|
|
|
-{
|
|
|
- struct r8192_priv *priv = ieee80211_priv(dev);
|
|
|
- u32 addr;
|
|
|
-
|
|
|
- down(&priv->wx_sem);
|
|
|
-
|
|
|
- get_user(addr, (u32*)wrqu->data.pointer);
|
|
|
- write_nic_byte(dev, addr, wrqu->data.length);
|
|
|
-
|
|
|
- up(&priv->wx_sem);
|
|
|
- return 0;
|
|
|
-
|
|
|
-}
|
|
|
-static int r8192_wx_read_nicb(struct net_device *dev,
|
|
|
- struct iw_request_info *info,
|
|
|
- union iwreq_data *wrqu, char *extra)
|
|
|
-{
|
|
|
- struct r8192_priv *priv = ieee80211_priv(dev);
|
|
|
- u32 addr;
|
|
|
- u16 data1;
|
|
|
-
|
|
|
- down(&priv->wx_sem);
|
|
|
-
|
|
|
- get_user(addr,(u32*)wrqu->data.pointer);
|
|
|
- data1 = read_nic_byte(dev, addr);
|
|
|
- wrqu->data.length = data1;
|
|
|
-
|
|
|
- up(&priv->wx_sem);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static int r8192_wx_get_ap_status(struct net_device *dev,
|
|
|
- struct iw_request_info *info,
|
|
|
- union iwreq_data *wrqu, char *extra)
|
|
|
-{
|
|
|
- struct r8192_priv *priv = ieee80211_priv(dev);
|
|
|
- struct ieee80211_device *ieee = priv->ieee80211;
|
|
|
- struct ieee80211_network *target;
|
|
|
- int name_len;
|
|
|
-
|
|
|
- down(&priv->wx_sem);
|
|
|
-
|
|
|
- //count the length of input ssid
|
|
|
- for(name_len=0 ; ((char*)wrqu->data.pointer)[name_len]!='\0' ; name_len++);
|
|
|
-
|
|
|
- //search for the correspoding info which is received
|
|
|
- list_for_each_entry(target, &ieee->network_list, list) {
|
|
|
- if ( (target->ssid_len == name_len) &&
|
|
|
- (strncmp(target->ssid, (char*)wrqu->data.pointer, name_len)==0)){
|
|
|
- if(target->wpa_ie_len>0 || target->rsn_ie_len>0 )
|
|
|
- //set flags=1 to indicate this ap is WPA
|
|
|
- wrqu->data.flags = 1;
|
|
|
- else wrqu->data.flags = 0;
|
|
|
-
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- up(&priv->wx_sem);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-#endif
|
|
|
-
|
|
|
static int r8192_wx_set_rawtx(struct net_device *dev,
|
|
|
struct iw_request_info *info,
|
|
|
union iwreq_data *wrqu, char *extra)
|