diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2011-12-13 01:16:30 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2012-01-09 10:38:41 +0800 |
commit | a1837bf3f6c4f740d849415381798b7b18ad8018 (patch) | |
tree | 5399bc2ef99bf3ed3a02729a27e319ba4febbcb5 /drivers/net | |
parent | 29d6a51e1fd83298279b16a35018d6008d50993f (diff) |
net: wireless: bcmdhd: Check if FW is Ok for internal FW call
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/brcm80211/bcmdhd/dhd.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/bcmdhd/dhd_common.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/bcmdhd/dhd_linux.c | 8 |
3 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/brcm80211/bcmdhd/dhd.h b/drivers/net/wireless/brcm80211/bcmdhd/dhd.h index 0ea5d4a9961..e4732612759 100644 --- a/drivers/net/wireless/brcm80211/bcmdhd/dhd.h +++ b/drivers/net/wireless/brcm80211/bcmdhd/dhd.h @@ -422,6 +422,7 @@ extern int dhd_dev_pno_enable(struct net_device *dev, int pfn_enabled); extern int dhd_dev_get_pno_status(struct net_device *dev); extern int dhd_get_dtim_skip(dhd_pub_t *dhd); extern bool dhd_check_ap_wfd_mode_set(dhd_pub_t *dhd); +extern bool dhd_os_check_hang(dhd_pub_t *dhdp, int ifidx, int ret); #define DHD_UNICAST_FILTER_NUM 0 #define DHD_BROADCAST_FILTER_NUM 1 diff --git a/drivers/net/wireless/brcm80211/bcmdhd/dhd_common.c b/drivers/net/wireless/brcm80211/bcmdhd/dhd_common.c index 2222b029f51..a29c2fab28c 100644 --- a/drivers/net/wireless/brcm80211/bcmdhd/dhd_common.c +++ b/drivers/net/wireless/brcm80211/bcmdhd/dhd_common.c @@ -300,7 +300,8 @@ dhd_wl_ioctl(dhd_pub_t *dhd_pub, int ifindex, wl_ioctl_t *ioc, void *buf, int le dhd_os_proto_block(dhd_pub); ret = dhd_prot_ioctl(dhd_pub, ifindex, ioc, buf, len); - + if (!ret) + dhd_os_check_hang(dhd_pub, ifindex, ret); dhd_os_proto_unblock(dhd_pub); return ret; diff --git a/drivers/net/wireless/brcm80211/bcmdhd/dhd_linux.c b/drivers/net/wireless/brcm80211/bcmdhd/dhd_linux.c index 014a40dc6c8..04152a04320 100644 --- a/drivers/net/wireless/brcm80211/bcmdhd/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/bcmdhd/dhd_linux.c @@ -4546,6 +4546,14 @@ int dhd_ioctl_entry_local(struct net_device *net, wl_ioctl_t *ioc, int cmd) return ret; } +bool dhd_os_check_hang(dhd_pub_t *dhdp, int ifidx, int ret) +{ + struct net_device *net; + + net = dhd_idx2net(dhdp, ifidx); + return dhd_check_hang(net, dhdp, ret); +} + #ifdef PROP_TXSTATUS extern int dhd_wlfc_interface_entry_update(void* state, ewlfc_mac_entry_action_t action, uint8 ifid, uint8 iftype, uint8* ea); |