aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/bus.h10
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/core.c21
2 files changed, 24 insertions, 7 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bus.h b/drivers/net/wireless/brcm80211/brcmfmac/bus.h
index 55d36ff5439d..89e6a4dc105e 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/bus.h
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bus.h
@@ -185,13 +185,6 @@ void brcmf_bus_wowl_config(struct brcmf_bus *bus, bool enabled)
185 bus->ops->wowl_config(bus->dev, enabled); 185 bus->ops->wowl_config(bus->dev, enabled);
186} 186}
187 187
188static inline void brcmf_bus_change_state(struct brcmf_bus *bus,
189 enum brcmf_bus_state new_state)
190{
191 brcmf_dbg(TRACE, "%d -> %d\n", bus->state, new_state);
192 bus->state = new_state;
193}
194
195/* 188/*
196 * interface functions from common layer 189 * interface functions from common layer
197 */ 190 */
@@ -214,6 +207,9 @@ void brcmf_txflowblock(struct device *dev, bool state);
214/* Notify the bus has transferred the tx packet to firmware */ 207/* Notify the bus has transferred the tx packet to firmware */
215void brcmf_txcomplete(struct device *dev, struct sk_buff *txp, bool success); 208void brcmf_txcomplete(struct device *dev, struct sk_buff *txp, bool success);
216 209
210/* Configure the "global" bus state used by upper layers */
211void brcmf_bus_change_state(struct brcmf_bus *bus, enum brcmf_bus_state state);
212
217int brcmf_bus_start(struct device *dev); 213int brcmf_bus_start(struct device *dev);
218s32 brcmf_iovar_data_set(struct device *dev, char *name, void *data, u32 len); 214s32 brcmf_iovar_data_set(struct device *dev, char *name, void *data, u32 len);
219void brcmf_bus_add_txhdrlen(struct device *dev, uint len); 215void brcmf_bus_add_txhdrlen(struct device *dev, uint len);
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/core.c b/drivers/net/wireless/brcm80211/brcmfmac/core.c
index ff8c97ba4bc5..b8520c30af7c 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/core.c
@@ -1106,6 +1106,27 @@ int brcmf_netdev_wait_pend8021x(struct brcmf_if *ifp)
1106 return !err; 1106 return !err;
1107} 1107}
1108 1108
1109void brcmf_bus_change_state(struct brcmf_bus *bus, enum brcmf_bus_state state)
1110{
1111 struct brcmf_pub *drvr = bus->drvr;
1112 struct net_device *ndev;
1113 int ifidx;
1114
1115 brcmf_dbg(TRACE, "%d -> %d\n", bus->state, state);
1116 bus->state = state;
1117
1118 if (state == BRCMF_BUS_UP) {
1119 for (ifidx = 0; ifidx < BRCMF_MAX_IFS; ifidx++) {
1120 if ((drvr->iflist[ifidx]) &&
1121 (drvr->iflist[ifidx]->ndev)) {
1122 ndev = drvr->iflist[ifidx]->ndev;
1123 if (netif_queue_stopped(ndev))
1124 netif_wake_queue(ndev);
1125 }
1126 }
1127 }
1128}
1129
1109static void brcmf_driver_register(struct work_struct *work) 1130static void brcmf_driver_register(struct work_struct *work)
1110{ 1131{
1111#ifdef CONFIG_BRCMFMAC_SDIO 1132#ifdef CONFIG_BRCMFMAC_SDIO