OSDN Git Service

brcmfmac: Dont sleep when ctrl frames to transmit.
authorHante Meuleman <meuleman@broadcom.com>
Fri, 6 Feb 2015 17:36:46 +0000 (18:36 +0100)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 28 Apr 2015 16:49:33 +0000 (00:49 +0800)
The SDIO watchdog will put the device in sleep mode when there is
no activity for some time and nothing to do anymore. This check
is incomplete and should also check if there is a control frame
to transmit.

Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com>
Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
drivers/net/wireless/brcm80211/brcmfmac/sdio.c

index 39e6ffb..25f1417 100644 (file)
@@ -1027,6 +1027,7 @@ brcmf_sdio_bus_sleep(struct brcmf_sdio *bus, bool sleep, bool pendok)
                        /* Don't sleep if something is pending */
                        if (atomic_read(&bus->intstatus) ||
                            atomic_read(&bus->ipend) > 0 ||
+                           bus->ctrl_frame_stat ||
                            (!atomic_read(&bus->fcstate) &&
                            brcmu_pktq_mlen(&bus->txq, ~bus->flowcontrol) &&
                            data_ok(bus))) {