|
@@ -859,7 +859,7 @@ static int wl3501_esbq_confirm(struct wl3501_card *this)
|
|
|
|
|
|
static void wl3501_online(struct net_device *dev)
|
|
static void wl3501_online(struct net_device *dev)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
printk(KERN_INFO "%s: Wireless LAN online. BSSID: "
|
|
printk(KERN_INFO "%s: Wireless LAN online. BSSID: "
|
|
"%02X %02X %02X %02X %02X %02X\n", dev->name,
|
|
"%02X %02X %02X %02X %02X %02X\n", dev->name,
|
|
@@ -907,7 +907,7 @@ static int wl3501_mgmt_association(struct wl3501_card *this)
|
|
|
|
|
|
static void wl3501_mgmt_join_confirm(struct net_device *dev, u16 addr)
|
|
static void wl3501_mgmt_join_confirm(struct net_device *dev, u16 addr)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
struct wl3501_join_confirm sig;
|
|
struct wl3501_join_confirm sig;
|
|
|
|
|
|
dprintk(3, "entry");
|
|
dprintk(3, "entry");
|
|
@@ -1046,7 +1046,7 @@ static inline void wl3501_start_confirm_interrupt(struct net_device *dev,
|
|
static inline void wl3501_assoc_confirm_interrupt(struct net_device *dev,
|
|
static inline void wl3501_assoc_confirm_interrupt(struct net_device *dev,
|
|
u16 addr)
|
|
u16 addr)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
struct wl3501_assoc_confirm sig;
|
|
struct wl3501_assoc_confirm sig;
|
|
|
|
|
|
dprintk(3, "entry");
|
|
dprintk(3, "entry");
|
|
@@ -1075,7 +1075,7 @@ static inline void wl3501_rx_interrupt(struct net_device *dev)
|
|
int morepkts;
|
|
int morepkts;
|
|
u16 addr;
|
|
u16 addr;
|
|
u8 sig_id;
|
|
u8 sig_id;
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
dprintk(3, "entry");
|
|
dprintk(3, "entry");
|
|
loop:
|
|
loop:
|
|
@@ -1257,7 +1257,7 @@ fail:
|
|
|
|
|
|
static int wl3501_close(struct net_device *dev)
|
|
static int wl3501_close(struct net_device *dev)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = -ENODEV;
|
|
int rc = -ENODEV;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
struct pcmcia_device *link;
|
|
struct pcmcia_device *link;
|
|
@@ -1289,7 +1289,7 @@ static int wl3501_close(struct net_device *dev)
|
|
*/
|
|
*/
|
|
static int wl3501_reset(struct net_device *dev)
|
|
static int wl3501_reset(struct net_device *dev)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = -ENODEV;
|
|
int rc = -ENODEV;
|
|
|
|
|
|
wl3501_block_interrupt(this);
|
|
wl3501_block_interrupt(this);
|
|
@@ -1318,7 +1318,7 @@ out:
|
|
|
|
|
|
static void wl3501_tx_timeout(struct net_device *dev)
|
|
static void wl3501_tx_timeout(struct net_device *dev)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
struct net_device_stats *stats = &this->stats;
|
|
struct net_device_stats *stats = &this->stats;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
int rc;
|
|
int rc;
|
|
@@ -1344,7 +1344,7 @@ static void wl3501_tx_timeout(struct net_device *dev)
|
|
static int wl3501_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
static int wl3501_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
{
|
|
{
|
|
int enabled, rc;
|
|
int enabled, rc;
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&this->lock, flags);
|
|
spin_lock_irqsave(&this->lock, flags);
|
|
@@ -1371,7 +1371,7 @@ static int wl3501_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
static int wl3501_open(struct net_device *dev)
|
|
static int wl3501_open(struct net_device *dev)
|
|
{
|
|
{
|
|
int rc = -ENODEV;
|
|
int rc = -ENODEV;
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
struct pcmcia_device *link;
|
|
struct pcmcia_device *link;
|
|
link = this->p_dev;
|
|
link = this->p_dev;
|
|
@@ -1410,14 +1410,14 @@ fail:
|
|
|
|
|
|
static struct net_device_stats *wl3501_get_stats(struct net_device *dev)
|
|
static struct net_device_stats *wl3501_get_stats(struct net_device *dev)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
return &this->stats;
|
|
return &this->stats;
|
|
}
|
|
}
|
|
|
|
|
|
static struct iw_statistics *wl3501_get_wireless_stats(struct net_device *dev)
|
|
static struct iw_statistics *wl3501_get_wireless_stats(struct net_device *dev)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
struct iw_statistics *wstats = &this->wstats;
|
|
struct iw_statistics *wstats = &this->wstats;
|
|
u32 value; /* size checked: it is u32 */
|
|
u32 value; /* size checked: it is u32 */
|
|
|
|
|
|
@@ -1497,7 +1497,7 @@ static int wl3501_get_name(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_set_freq(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_set_freq(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int channel = wrqu->freq.m;
|
|
int channel = wrqu->freq.m;
|
|
int rc = -EINVAL;
|
|
int rc = -EINVAL;
|
|
|
|
|
|
@@ -1511,7 +1511,7 @@ static int wl3501_set_freq(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_freq(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_freq(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
wrqu->freq.m = wl3501_chan2freq[this->chan - 1] * 100000;
|
|
wrqu->freq.m = wl3501_chan2freq[this->chan - 1] * 100000;
|
|
wrqu->freq.e = 1;
|
|
wrqu->freq.e = 1;
|
|
@@ -1526,7 +1526,7 @@ static int wl3501_set_mode(struct net_device *dev, struct iw_request_info *info,
|
|
if (wrqu->mode == IW_MODE_INFRA ||
|
|
if (wrqu->mode == IW_MODE_INFRA ||
|
|
wrqu->mode == IW_MODE_ADHOC ||
|
|
wrqu->mode == IW_MODE_ADHOC ||
|
|
wrqu->mode == IW_MODE_AUTO) {
|
|
wrqu->mode == IW_MODE_AUTO) {
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
this->net_type = wrqu->mode;
|
|
this->net_type = wrqu->mode;
|
|
rc = wl3501_reset(dev);
|
|
rc = wl3501_reset(dev);
|
|
@@ -1537,7 +1537,7 @@ static int wl3501_set_mode(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_mode(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_mode(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
wrqu->mode = this->net_type;
|
|
wrqu->mode = this->net_type;
|
|
return 0;
|
|
return 0;
|
|
@@ -1546,7 +1546,7 @@ static int wl3501_get_mode(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_sens(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_sens(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
wrqu->sens.value = this->rssi;
|
|
wrqu->sens.value = this->rssi;
|
|
wrqu->sens.disabled = !wrqu->sens.value;
|
|
wrqu->sens.disabled = !wrqu->sens.value;
|
|
@@ -1577,7 +1577,7 @@ static int wl3501_get_range(struct net_device *dev,
|
|
static int wl3501_set_wap(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_set_wap(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
static const u8 bcast[ETH_ALEN] = { 255, 255, 255, 255, 255, 255 };
|
|
static const u8 bcast[ETH_ALEN] = { 255, 255, 255, 255, 255, 255 };
|
|
int rc = -EINVAL;
|
|
int rc = -EINVAL;
|
|
|
|
|
|
@@ -1597,7 +1597,7 @@ out:
|
|
static int wl3501_get_wap(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_wap(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
wrqu->ap_addr.sa_family = ARPHRD_ETHER;
|
|
wrqu->ap_addr.sa_family = ARPHRD_ETHER;
|
|
memcpy(wrqu->ap_addr.sa_data, this->bssid, ETH_ALEN);
|
|
memcpy(wrqu->ap_addr.sa_data, this->bssid, ETH_ALEN);
|
|
@@ -1616,7 +1616,7 @@ static int wl3501_set_scan(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_scan(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_scan(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int i;
|
|
int i;
|
|
char *current_ev = extra;
|
|
char *current_ev = extra;
|
|
struct iw_event iwe;
|
|
struct iw_event iwe;
|
|
@@ -1666,7 +1666,7 @@ static int wl3501_set_essid(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
if (wrqu->data.flags) {
|
|
if (wrqu->data.flags) {
|
|
iw_set_mgmt_info_element(IW_MGMT_INFO_ELEMENT_SSID,
|
|
iw_set_mgmt_info_element(IW_MGMT_INFO_ELEMENT_SSID,
|
|
@@ -1683,7 +1683,7 @@ static int wl3501_get_essid(struct net_device *dev,
|
|
struct iw_request_info *info,
|
|
struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&this->lock, flags);
|
|
spin_lock_irqsave(&this->lock, flags);
|
|
@@ -1697,7 +1697,7 @@ static int wl3501_get_essid(struct net_device *dev,
|
|
static int wl3501_set_nick(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_set_nick(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
if (wrqu->data.length > sizeof(this->nick))
|
|
if (wrqu->data.length > sizeof(this->nick))
|
|
return -E2BIG;
|
|
return -E2BIG;
|
|
@@ -1708,7 +1708,7 @@ static int wl3501_set_nick(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_nick(struct net_device *dev, struct iw_request_info *info,
|
|
static int wl3501_get_nick(struct net_device *dev, struct iw_request_info *info,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
|
|
|
|
strlcpy(extra, this->nick, 32);
|
|
strlcpy(extra, this->nick, 32);
|
|
wrqu->data.length = strlen(extra);
|
|
wrqu->data.length = strlen(extra);
|
|
@@ -1733,7 +1733,7 @@ static int wl3501_get_rts_threshold(struct net_device *dev,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
u16 threshold; /* size checked: it is u16 */
|
|
u16 threshold; /* size checked: it is u16 */
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = wl3501_get_mib_value(this, WL3501_MIB_ATTR_RTS_THRESHOLD,
|
|
int rc = wl3501_get_mib_value(this, WL3501_MIB_ATTR_RTS_THRESHOLD,
|
|
&threshold, sizeof(threshold));
|
|
&threshold, sizeof(threshold));
|
|
if (!rc) {
|
|
if (!rc) {
|
|
@@ -1749,7 +1749,7 @@ static int wl3501_get_frag_threshold(struct net_device *dev,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
u16 threshold; /* size checked: it is u16 */
|
|
u16 threshold; /* size checked: it is u16 */
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = wl3501_get_mib_value(this, WL3501_MIB_ATTR_FRAG_THRESHOLD,
|
|
int rc = wl3501_get_mib_value(this, WL3501_MIB_ATTR_FRAG_THRESHOLD,
|
|
&threshold, sizeof(threshold));
|
|
&threshold, sizeof(threshold));
|
|
if (!rc) {
|
|
if (!rc) {
|
|
@@ -1765,7 +1765,7 @@ static int wl3501_get_txpow(struct net_device *dev,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
u16 txpow;
|
|
u16 txpow;
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = wl3501_get_mib_value(this,
|
|
int rc = wl3501_get_mib_value(this,
|
|
WL3501_MIB_ATTR_CURRENT_TX_PWR_LEVEL,
|
|
WL3501_MIB_ATTR_CURRENT_TX_PWR_LEVEL,
|
|
&txpow, sizeof(txpow));
|
|
&txpow, sizeof(txpow));
|
|
@@ -1787,7 +1787,7 @@ static int wl3501_get_retry(struct net_device *dev,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
u8 retry; /* size checked: it is u8 */
|
|
u8 retry; /* size checked: it is u8 */
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = wl3501_get_mib_value(this,
|
|
int rc = wl3501_get_mib_value(this,
|
|
WL3501_MIB_ATTR_LONG_RETRY_LIMIT,
|
|
WL3501_MIB_ATTR_LONG_RETRY_LIMIT,
|
|
&retry, sizeof(retry));
|
|
&retry, sizeof(retry));
|
|
@@ -1814,7 +1814,7 @@ static int wl3501_get_encode(struct net_device *dev,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
u8 implemented, restricted, keys[100], len_keys, tocopy;
|
|
u8 implemented, restricted, keys[100], len_keys, tocopy;
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = wl3501_get_mib_value(this,
|
|
int rc = wl3501_get_mib_value(this,
|
|
WL3501_MIB_ATTR_PRIV_OPT_IMPLEMENTED,
|
|
WL3501_MIB_ATTR_PRIV_OPT_IMPLEMENTED,
|
|
&implemented, sizeof(implemented));
|
|
&implemented, sizeof(implemented));
|
|
@@ -1852,7 +1852,7 @@ static int wl3501_get_power(struct net_device *dev,
|
|
union iwreq_data *wrqu, char *extra)
|
|
union iwreq_data *wrqu, char *extra)
|
|
{
|
|
{
|
|
u8 pwr_state;
|
|
u8 pwr_state;
|
|
- struct wl3501_card *this = dev->priv;
|
|
|
|
|
|
+ struct wl3501_card *this = netdev_priv(dev);
|
|
int rc = wl3501_get_mib_value(this,
|
|
int rc = wl3501_get_mib_value(this,
|
|
WL3501_MIB_ATTR_CURRENT_PWR_STATE,
|
|
WL3501_MIB_ATTR_CURRENT_PWR_STATE,
|
|
&pwr_state, sizeof(pwr_state));
|
|
&pwr_state, sizeof(pwr_state));
|
|
@@ -1937,7 +1937,7 @@ static int wl3501_probe(struct pcmcia_device *p_dev)
|
|
dev->tx_timeout = wl3501_tx_timeout;
|
|
dev->tx_timeout = wl3501_tx_timeout;
|
|
dev->watchdog_timeo = 5 * HZ;
|
|
dev->watchdog_timeo = 5 * HZ;
|
|
dev->get_stats = wl3501_get_stats;
|
|
dev->get_stats = wl3501_get_stats;
|
|
- this = dev->priv;
|
|
|
|
|
|
+ this = netdev_priv(dev);
|
|
this->wireless_data.spy_data = &this->spy_data;
|
|
this->wireless_data.spy_data = &this->spy_data;
|
|
this->p_dev = p_dev;
|
|
this->p_dev = p_dev;
|
|
dev->wireless_data = &this->wireless_data;
|
|
dev->wireless_data = &this->wireless_data;
|
|
@@ -2006,7 +2006,7 @@ static int wl3501_config(struct pcmcia_device *link)
|
|
|
|
|
|
SET_MODULE_OWNER(dev);
|
|
SET_MODULE_OWNER(dev);
|
|
|
|
|
|
- this = dev->priv;
|
|
|
|
|
|
+ this = netdev_priv(dev);
|
|
/*
|
|
/*
|
|
* At this point, the dev_node_t structure(s) should be initialized and
|
|
* At this point, the dev_node_t structure(s) should be initialized and
|
|
* arranged in a linked list at link->dev_node.
|
|
* arranged in a linked list at link->dev_node.
|
|
@@ -2079,7 +2079,7 @@ static int wl3501_suspend(struct pcmcia_device *link)
|
|
{
|
|
{
|
|
struct net_device *dev = link->priv;
|
|
struct net_device *dev = link->priv;
|
|
|
|
|
|
- wl3501_pwr_mgmt(dev->priv, WL3501_SUSPEND);
|
|
|
|
|
|
+ wl3501_pwr_mgmt(netdev_priv(dev), WL3501_SUSPEND);
|
|
if (link->open)
|
|
if (link->open)
|
|
netif_device_detach(dev);
|
|
netif_device_detach(dev);
|
|
|
|
|
|
@@ -2090,7 +2090,7 @@ static int wl3501_resume(struct pcmcia_device *link)
|
|
{
|
|
{
|
|
struct net_device *dev = link->priv;
|
|
struct net_device *dev = link->priv;
|
|
|
|
|
|
- wl3501_pwr_mgmt(dev->priv, WL3501_RESUME);
|
|
|
|
|
|
+ wl3501_pwr_mgmt(netdev_priv(dev), WL3501_RESUME);
|
|
if (link->open) {
|
|
if (link->open) {
|
|
wl3501_reset(dev);
|
|
wl3501_reset(dev);
|
|
netif_device_attach(dev);
|
|
netif_device_attach(dev);
|