diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2015-04-24 10:45:33 +0000 |
---|---|---|
committer | Rafał Miłecki <zajec5@gmail.com> | 2015-04-24 10:45:33 +0000 |
commit | c1a7e135873d5def34db3b9393e18241a8cf3231 (patch) | |
tree | bb70f57269d74d2950c773774a931b202d361684 /package/kernel/mac80211/patches/345-brcmfmac-fix-watchdog-timer-regression.patch | |
parent | 33e597b2417e2bc12559333f1c5374778935a8e1 (diff) | |
download | mtk-20170518-c1a7e135873d5def34db3b9393e18241a8cf3231.zip mtk-20170518-c1a7e135873d5def34db3b9393e18241a8cf3231.tar.gz mtk-20170518-c1a7e135873d5def34db3b9393e18241a8cf3231.tar.bz2 |
mac80211: update brcmfmac to the wireless-drivers-next-for-davem-2015-04-09
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45576
Diffstat (limited to 'package/kernel/mac80211/patches/345-brcmfmac-fix-watchdog-timer-regression.patch')
-rw-r--r-- | package/kernel/mac80211/patches/345-brcmfmac-fix-watchdog-timer-regression.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/345-brcmfmac-fix-watchdog-timer-regression.patch b/package/kernel/mac80211/patches/345-brcmfmac-fix-watchdog-timer-regression.patch new file mode 100644 index 0000000..1b10dbb --- /dev/null +++ b/package/kernel/mac80211/patches/345-brcmfmac-fix-watchdog-timer-regression.patch @@ -0,0 +1,59 @@ +From: Arend van Spriel <arend@broadcom.com> +Date: Wed, 11 Mar 2015 16:11:33 +0100 +Subject: [PATCH] brcmfmac: fix watchdog timer regression + +The watchdog timer is used to put the device in a low-power mode when +it is idle for some time. This timer is stopped during that mode and +should be restarted upon activity. This has been broken by commit +d4150fced0365 ("brcmfmac: Simplify watchdog sleep."). This patch +restores the behaviour as it was before that commit. + +Reported-by: Pontus Fuchs <pontusf@broadcom.com> +Reviewed-by: Hante Meuleman <meuleman@broadcom.com> +Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> +Signed-off-by: Arend van Spriel <arend@broadcom.com> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + +--- a/drivers/net/wireless/brcm80211/brcmfmac/sdio.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/sdio.c +@@ -972,7 +972,6 @@ static int brcmf_sdio_clkctl(struct brcm + brcmf_sdio_sdclk(bus, true); + /* Now request HT Avail on the backplane */ + brcmf_sdio_htclk(bus, true, pendok); +- brcmf_sdio_wd_timer(bus, BRCMF_WD_POLL_MS); + break; + + case CLK_SDONLY: +@@ -984,7 +983,6 @@ static int brcmf_sdio_clkctl(struct brcm + else + brcmf_err("request for %d -> %d\n", + bus->clkstate, target); +- brcmf_sdio_wd_timer(bus, BRCMF_WD_POLL_MS); + break; + + case CLK_NONE: +@@ -993,7 +991,6 @@ static int brcmf_sdio_clkctl(struct brcm + brcmf_sdio_htclk(bus, false, false); + /* Now remove the SD clock */ + brcmf_sdio_sdclk(bus, false); +- brcmf_sdio_wd_timer(bus, 0); + break; + } + #ifdef DEBUG +@@ -1048,6 +1045,7 @@ end: + brcmf_sdio_clkctl(bus, CLK_NONE, pendok); + } else { + brcmf_sdio_clkctl(bus, CLK_AVAIL, pendok); ++ brcmf_sdio_wd_timer(bus, BRCMF_WD_POLL_MS); + } + bus->sleeping = sleep; + brcmf_dbg(SDIO, "new state %s\n", +@@ -4242,6 +4240,7 @@ void brcmf_sdio_remove(struct brcmf_sdio + if (bus->ci) { + if (bus->sdiodev->state != BRCMF_SDIOD_NOMEDIUM) { + sdio_claim_host(bus->sdiodev->func[1]); ++ brcmf_sdio_wd_timer(bus, 0); + brcmf_sdio_clkctl(bus, CLK_AVAIL, false); + /* Leave the device in state where it is + * 'passive'. This is done by resetting all |