Discussion:
[PATCH] ar6000: add netif_carrier handling
Paul Fertser
2013-11-27 07:44:30 UTC
Permalink
The driver should properly emit link state events for the
link-specific logic to work properly. This includes obtaining an IPv6
address with SLAAC, netplugd and ifplugd operation etc.

This patch makes my gta02 properly receive an IPv6 address from an AP
right after associating.

Signed-off-by: Paul Fertser <***@gmail.com>
---
drivers/ar6000/ar6000/ar6000_drv.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/ar6000/ar6000/ar6000_drv.c b/drivers/ar6000/ar6000/ar6000_drv.c
index 90533ab..721c422 100644
--- a/drivers/ar6000/ar6000/ar6000_drv.c
+++ b/drivers/ar6000/ar6000/ar6000_drv.c
@@ -883,6 +883,7 @@ ar6000_avail_ev(HTC_HANDLE HTCHandle)
ar6000_destroy(dev, 0);
return;
}
+ netif_carrier_off(dev);

HTCSetInstance(ar->arHtcTarget, ar);

@@ -2318,6 +2319,7 @@ ar6000_connect_event(AR_SOFTC_T *ar, A_UINT16 channel, A_UINT8 *bssid,
ar6000_TxDataCleanup(ar);

netif_start_queue(ar->arNetDev);
+ netif_carrier_on(ar->arNetDev);

if ((OPEN_AUTH == ar->arDot11AuthMode) &&
(NONE_AUTH == ar->arAuthMode) &&
@@ -2407,6 +2409,8 @@ ar6000_disconnect_event(AR_SOFTC_T *ar, A_UINT8 reason, A_UINT8 *bssid,
#endif /* USER_KEYS */

netif_stop_queue(ar->arNetDev);
+ netif_carrier_off(ar->arNetDev);
+
A_MEMZERO(ar->arBssid, sizeof(ar->arBssid));
ar->arBssChannel = 0;
ar->arBeaconInterval = 0;
--
1.7.10
Loading...