From patchwork Tue May 22 13:26:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Reizer, Eyal" X-Patchwork-Id: 10418657 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9127A60545 for ; Tue, 22 May 2018 13:26:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8106928CE6 for ; Tue, 22 May 2018 13:26:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 75B0828CF7; Tue, 22 May 2018 13:26:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 10D2D28CF6 for ; Tue, 22 May 2018 13:26:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751340AbeEVN0I (ORCPT ); Tue, 22 May 2018 09:26:08 -0400 Received: from fllnx209.ext.ti.com ([198.47.19.16]:30899 "EHLO fllnx209.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751304AbeEVN0H (ORCPT ); Tue, 22 May 2018 09:26:07 -0400 Received: from dlelxv90.itg.ti.com ([172.17.2.17]) by fllnx209.ext.ti.com (8.15.1/8.15.1) with ESMTP id w4MDQ2Xx004455; Tue, 22 May 2018 08:26:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1526995562; bh=lxNHMWJ0fiLIrBz8gxgmA+NuC1BUzNUQwXrJGM9wuRM=; h=From:To:CC:Subject:Date:References; b=Ihn2Md1IsTjluMXVTBIVK6PVtbO4NsDB4Oqt/mpcM4MkOA1tBou5Kat7MrKoOR4Pa 2WTCAWdvYJKjw/vPp8QBB60kLDBMc9iPhCcx7E6SDJs2xYyBZqG42f2C68eO1zWF8W om/DzFnKT4flf1Q54CkI9dvLm5WiP4Kxgh3EoyNs= Received: from DFLE102.ent.ti.com (dfle102.ent.ti.com [10.64.6.23]) by dlelxv90.itg.ti.com (8.14.3/8.13.8) with ESMTP id w4MDQ1kg009751; Tue, 22 May 2018 08:26:02 -0500 Received: from DFLE103.ent.ti.com (10.64.6.24) by DFLE102.ent.ti.com (10.64.6.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Tue, 22 May 2018 08:26:01 -0500 Received: from DFLE103.ent.ti.com ([fe80::7431:ea48:7659:dc14]) by DFLE103.ent.ti.com ([fe80::7431:ea48:7659:dc14%17]) with mapi id 15.01.1466.003; Tue, 22 May 2018 08:26:01 -0500 From: "Reizer, Eyal" To: Tony Lindgren CC: Kalle Valo , KISHON VIJAY ABRAHAM , "Mishol, Guy" , Luca Coelho , "Hahn, Maital" , "Altshul, Maxim" , "Shahar Patury" , "linux-wireless@vger.kernel.org" , "linux-omap@vger.kernel.org" , "Loewy, Chen" Subject: RE: [EXTERNAL] [PATCHv2 0/5] Runtime PM support for wlcore Thread-Topic: [EXTERNAL] [PATCHv2 0/5] Runtime PM support for wlcore Thread-Index: AQHT7g/wdgYSnreUN0GfRauOpcrJ+6Q5y2kQgADwlQCAAGYGgIAAKcwggABuWmA= Date: Tue, 22 May 2018 13:26:01 +0000 Message-ID: <38ddca4c73bb4dbf835a84133035dbfb@ti.com> References: <20180517185029.71716-1-tony@atomide.com> <20180521163830.GZ98604@atomide.com> <20180521224339.GD98604@atomide.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [137.167.25.139] x-exclaimer-md-config: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP > > > > 8< ------------------------ > > diff --git a/drivers/net/wireless/ti/wlcore/main.c > > b/drivers/net/wireless/ti/wlcore/main.c > > --- a/drivers/net/wireless/ti/wlcore/main.c > > +++ b/drivers/net/wireless/ti/wlcore/main.c > > @@ -1867,8 +1867,6 @@ static int __maybe_unused > > wl1271_op_resume(struct ieee80211_hw *hw) > > if (ret) > > wl12xx_queue_recovery_work(wl); > > } > > - > > - wlcore_enable_interrupts(wl); > > } > > > > if (pending_recovery) { > > @@ -1877,6 +1875,8 @@ static int __maybe_unused > > wl1271_op_resume(struct ieee80211_hw *hw) > > goto out_sleep; > > } > > > > + wlcore_enable_interrupts(wl); > > + > > ret = pm_runtime_get_sync(wl->dev); > > if (ret < 0) { > > pm_runtime_put_noidle(wl->dev); > > It still crash. > The crash is different now. > It also complains about: > [ 60.544224] Unbalanced enable for IRQ 65 > Need down/up of the interface to recover after it. > Log below: > Actually the below patch removing the call to wlcore_fw_sleep() avoids this error. The downside is that the wl8 firmware remains fully active during supend, so we Would need to find the root cause why the last call allowing the wilink8 firmware To go into ELP mode during suspend is only completing on resume and not during Suspend enter. With this wowlan seems to work ok and suspend/resume is not crashing when enabling wowlan. See below: root@am335x-evm:/usr/share/wl18xx# root@am335x-evm:/usr/share/wl18xx# root@am335x-evm:/usr/share/wl18xx# root@am335x-evm:/usr/share/wl18xx# iw phy0 wowlan enable any root@am335x-evm:/usr/share/wl18xx# root@am335x-evm:/usr/share/wl18xx# echo mem > /sys/power/state [ 63.794805] PM: suspend entry (deep) [ 63.798455] PM: Syncing filesystems ... done. [ 65.779673] Freezing user space processes ... (elapsed 0.001 seconds) done. [ 65.788878] OOM killer disabled. [ 65.792117] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 65.801196] Suspending console(s) (use no_console_suspend to debug) [ 65.952459] pm33xx pm33xx: PM: Successfully put all powerdomains to target state [ 65.952459] PM: Wakeup source GPIO0 [ 65.977028] net eth0: initializing cpsw version 1.12 (0) [ 66.074419] SMSC LAN8710/LAN8720 4a101000.mdio:00: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL) [ 66.236312] OOM killer enabled. [ 66.239604] Restarting tasks ... done. [ 66.282501] PM: suspend exit root@am335x-evm:/usr/share/wl18xx# BR, Eyal diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c index 4c297aa..8df1ae6 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c @@ -1789,7 +1789,6 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw, goto out_sleep; out_sleep: - pm_runtime_put_noidle(wl->dev); mutex_unlock(&wl->mutex); if (ret < 0) { @@ -1821,15 +1820,7 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw, */ cancel_delayed_work(&wl->tx_watchdog_work); - /* - * Use an immediate call for allowing the firmware to go into power - * save during suspend. - * Using a workque for this last write was only hapenning on resume - * leaving the firmware with power save disabled during suspend, - * while consuming full power during wowlan suspend. - */ - wlcore_fw_sleep(wl); - + pm_runtime_put_noidle(wl->dev); return 0; }