From 0631c3e37c36746b5a0c23c52fb6af50735812ea Mon Sep 17 00:00:00 2001 From: Zheng Guolin <zhengguolin@huawei.com> Date: Thu, 9 Jul 2015 17:42:56 +0800 Subject: [PATCH] net:wireless:bcmdhd: Fix a bug of wifi suspend add idlecount check watchdog when suspend to guarantee enough time to process data before system suspend Change-Id: I91115da18b18985232897d8ebf29bc7fafd8c904 Signed-off-by: Zheng Guolin <zhengguolin@huawei.com> --- drivers/net/wireless/bcmdhd/dhd_sdio.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/bcmdhd/dhd_sdio.c b/drivers/net/wireless/bcmdhd/dhd_sdio.c index a96006c2dd2a..0789d6e7b9e7 100644 --- a/drivers/net/wireless/bcmdhd/dhd_sdio.c +++ b/drivers/net/wireless/bcmdhd/dhd_sdio.c @@ -7472,13 +7472,17 @@ dhdsdio_suspend(void *context) } ret = dhd_os_check_wakelock(bus->dhd); - if ((!ret) && (bus->dhd->up)) { - if (wait_event_timeout(bus->bus_sleep, bus->sleeping, wait_time) == 0) { - if (!bus->sleeping) { - return 0; - //return 1; + if(SLPAUTO_ENAB(bus)) { + if ((!ret) && (bus->dhd->up)) { + if (wait_event_timeout(bus->bus_sleep, bus->sleeping, wait_time) == 0) { + if (!bus->sleeping) { + return 1; + } } } + } else { + if(bus->clkstate != CLK_NONE) + return 1; } return ret; } -- GitLab