aboutsummaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-12-13 01:16:30 +0800
committerAndy Green <andy.green@linaro.org>2012-01-09 10:38:41 +0800
commita1837bf3f6c4f740d849415381798b7b18ad8018 (patch)
tree5399bc2ef99bf3ed3a02729a27e319ba4febbcb5 /drivers/net
parent29d6a51e1fd83298279b16a35018d6008d50993f (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.h1
-rw-r--r--drivers/net/wireless/brcm80211/bcmdhd/dhd_common.c3
-rw-r--r--drivers/net/wireless/brcm80211/bcmdhd/dhd_linux.c8
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);