diff options
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index 9ab24528f9b9..b08f3474d8e7 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c @@ -350,19 +350,23 @@ done: return 0; } -void brcmf_txflowcontrol(struct device *dev, int ifidx, bool state) +void brcmf_txflowblock(struct device *dev, bool state) { struct net_device *ndev; struct brcmf_bus *bus_if = dev_get_drvdata(dev); struct brcmf_pub *drvr = bus_if->drvr; + int i; brcmf_dbg(TRACE, "Enter\n"); - ndev = drvr->iflist[ifidx]->ndev; - if (state == ON) - netif_stop_queue(ndev); - else - netif_wake_queue(ndev); + for (i = 0; i < BRCMF_MAX_IFS; i++) + if (drvr->iflist[i]) { + ndev = drvr->iflist[i]->ndev; + if (state) + netif_stop_queue(ndev); + else + netif_wake_queue(ndev); + } } static int brcmf_host_event(struct brcmf_pub *drvr, int *ifidx, @@ -775,6 +779,14 @@ done: return err; } +int brcmf_netlink_dcmd(struct net_device *ndev, struct brcmf_dcmd *dcmd) +{ + brcmf_dbg(TRACE, "enter: cmd %x buf %p len %d\n", + dcmd->cmd, dcmd->buf, dcmd->len); + + return brcmf_exec_dcmd(ndev, dcmd->cmd, dcmd->buf, dcmd->len); +} + static int brcmf_netdev_stop(struct net_device *ndev) { struct brcmf_if *ifp = netdev_priv(ndev); |