diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/bus.h | 10 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/core.c | 21 |
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 | ||
188 | static 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 */ |
215 | void brcmf_txcomplete(struct device *dev, struct sk_buff *txp, bool success); | 208 | void brcmf_txcomplete(struct device *dev, struct sk_buff *txp, bool success); |
216 | 209 | ||
210 | /* Configure the "global" bus state used by upper layers */ | ||
211 | void brcmf_bus_change_state(struct brcmf_bus *bus, enum brcmf_bus_state state); | ||
212 | |||
217 | int brcmf_bus_start(struct device *dev); | 213 | int brcmf_bus_start(struct device *dev); |
218 | s32 brcmf_iovar_data_set(struct device *dev, char *name, void *data, u32 len); | 214 | s32 brcmf_iovar_data_set(struct device *dev, char *name, void *data, u32 len); |
219 | void brcmf_bus_add_txhdrlen(struct device *dev, uint len); | 215 | void 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 | ||
1109 | void 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 | |||
1109 | static void brcmf_driver_register(struct work_struct *work) | 1130 | static void brcmf_driver_register(struct work_struct *work) |
1110 | { | 1131 | { |
1111 | #ifdef CONFIG_BRCMFMAC_SDIO | 1132 | #ifdef CONFIG_BRCMFMAC_SDIO |