diff options
author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2013-03-13 08:12:39 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-03-13 14:23:03 -0400 |
commit | 3442a5048a0e33e9f24fe2e19d3dff0d496c79fc (patch) | |
tree | 9bde9a9f4d9e2f8b00587d805f6521977d5d50fc /drivers/net/wireless/ath/wil6210/wmi.c | |
parent | 3b0378a88be2f85f495d557ac096291b0b54a163 (diff) |
wil6210: handle linkup/linkdown WMI events
Firmware indicates linkup/linkdown when data path becomes ready.
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/wil6210/wmi.c')
-rw-r--r-- | drivers/net/wireless/ath/wil6210/wmi.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c index 0bb3b76b4b58..895ae9de3a12 100644 --- a/drivers/net/wireless/ath/wil6210/wmi.c +++ b/drivers/net/wireless/ath/wil6210/wmi.c | |||
@@ -528,6 +528,27 @@ static void wmi_evt_eapol_rx(struct wil6210_priv *wil, int id, | |||
528 | } | 528 | } |
529 | } | 529 | } |
530 | 530 | ||
531 | static void wmi_evt_linkup(struct wil6210_priv *wil, int id, void *d, int len) | ||
532 | { | ||
533 | struct net_device *ndev = wil_to_ndev(wil); | ||
534 | struct wmi_data_port_open_event *evt = d; | ||
535 | |||
536 | wil_dbg_wmi(wil, "Link UP for CID %d\n", evt->cid); | ||
537 | |||
538 | netif_carrier_on(ndev); | ||
539 | } | ||
540 | |||
541 | static void wmi_evt_linkdown(struct wil6210_priv *wil, int id, void *d, int len) | ||
542 | { | ||
543 | struct net_device *ndev = wil_to_ndev(wil); | ||
544 | struct wmi_wbe_link_down_event *evt = d; | ||
545 | |||
546 | wil_dbg_wmi(wil, "Link DOWN for CID %d, reason %d\n", | ||
547 | evt->cid, le32_to_cpu(evt->reason)); | ||
548 | |||
549 | netif_carrier_off(ndev); | ||
550 | } | ||
551 | |||
531 | static const struct { | 552 | static const struct { |
532 | int eventid; | 553 | int eventid; |
533 | void (*handler)(struct wil6210_priv *wil, int eventid, | 554 | void (*handler)(struct wil6210_priv *wil, int eventid, |
@@ -541,6 +562,8 @@ static const struct { | |||
541 | {WMI_DISCONNECT_EVENTID, wmi_evt_disconnect}, | 562 | {WMI_DISCONNECT_EVENTID, wmi_evt_disconnect}, |
542 | {WMI_NOTIFY_REQ_DONE_EVENTID, wmi_evt_notify}, | 563 | {WMI_NOTIFY_REQ_DONE_EVENTID, wmi_evt_notify}, |
543 | {WMI_EAPOL_RX_EVENTID, wmi_evt_eapol_rx}, | 564 | {WMI_EAPOL_RX_EVENTID, wmi_evt_eapol_rx}, |
565 | {WMI_DATA_PORT_OPEN_EVENTID, wmi_evt_linkup}, | ||
566 | {WMI_WBE_LINKDOWN_EVENTID, wmi_evt_linkdown}, | ||
544 | }; | 567 | }; |
545 | 568 | ||
546 | /* | 569 | /* |