From patchwork Thu May 16 22:59:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 10947137 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8BDDC924 for ; Thu, 16 May 2019 23:00:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 763951FE8E for ; Thu, 16 May 2019 23:00:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6836B1FEBD; Thu, 16 May 2019 23:00:18 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 11BBA1FE8E for ; Thu, 16 May 2019 23:00:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=U/ZyfKWOX0h1DSxZ6Z2UHs7FxjwHOfKn70YjcxTCMM4=; b=aKZEI6KVXueJjF 0VfdKyRkqyGF4zjPUEn5TJlQfkf2cKV0Sev47/o6SQ4mggk3Ub9Wg2wpGf+AsdUfgMB+11RLCJVDf rosvJbfaAzbYdhy2PbzkfqLMHUfxb11VNTWQMc347vKAUXmf5S6BSI7W6dpoU2pe3l2cSqDEAHHT6 mPq77ZoJI2FK+0IN2b/+lo5AQqGXJIzU8y32joxB3XskMeCLwTSHNtuENg8m87MSjGAtJherWisbI JJ70MiZTaNF6zfXG/Chx/Qjt3BkH9oglUrCvAMCTZgvZwpW1Z2+s3A1150z/acdZeePqRuHW1YxMq RHbwde2nFqvnGluEqzIQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hRPMF-0003Y8-83; Thu, 16 May 2019 23:00:15 +0000 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hRPM2-0002MF-V9 for linux-rockchip@lists.infradead.org; Thu, 16 May 2019 23:00:06 +0000 Received: by mail-pf1-x444.google.com with SMTP id t87so2622375pfa.2 for ; Thu, 16 May 2019 16:00:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3AN0TJJxN8MtDzX5Iph5PzGAe+8Uoxx6FUdLGJx7ICE=; b=nSXc80/CuM7wCAu9eEfz822i+s8PDxGqnuq6ulYoRqo35+23kjL0xS8NheIX44Zraw rHeSNCKU0+k3HLIVvspnPamHZXfPlhP82YCNxizzRQz7yxOpi1XwunB/0QNgM7KA2Ksa aJRD7udcbWEk0s+aQzZft/R2d52644y+TzVDQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3AN0TJJxN8MtDzX5Iph5PzGAe+8Uoxx6FUdLGJx7ICE=; b=klPh98glEIVy/xKFkpcxLuWh1V5Ip3Vx6kouUxA/rh51j/8Bneutd+Zjj3jOSHySYz Wwm95SeECiIj+eIWx9TZ7h9RekI5mhyOArbiD6nFtYLaIYjIicwRo8GGWZOEYUtUfYrT gbi2ZQ1vR700NDtwdcT801vEawNqc/nEeqmKlUuNJ4uJ8UyT5dFl1zczKF3kJlL/WTfk 81P6bYnwFQM0AKIet6yGck9/axpfJlnnNbDIHPTmTwEoKJB0vemOHguGFkacpPybZm7F 3t/3N3Gdtqzl1IPOY/76nt0/y46xyznZw27LZ/2ot9n3bmxUjWwN20SOCcH+cbcGkgjE KtMQ== X-Gm-Message-State: APjAAAXUP+/Ix8EJWCUU0MY6F6vsTVR/Ia/K+b7TPwUVrWRIR1lJu/kA i8a72/PB2hYvQiIHZPMkyUzUDw== X-Google-Smtp-Source: APXvYqylgevqrKIDD/mmUDsN1EbCBsMcMGLJn9tGRUV9ROjY5j75gDluyLf/UhG80yxA5Tcwvvm4cQ== X-Received: by 2002:a62:4d03:: with SMTP id a3mr58452313pfb.2.1558047600933; Thu, 16 May 2019 16:00:00 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id j64sm1769506pfb.126.2019.05.16.15.59.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 May 2019 16:00:00 -0700 (PDT) From: Douglas Anderson To: Minas Harutyunyan , Felipe Balbi , heiko@sntech.de Subject: [REPOST PATCH v2 1/3] Documentation: dt-bindings: Add snps, need-phy-for-wake for dwc2 USB Date: Thu, 16 May 2019 15:59:39 -0700 Message-Id: <20190516225941.170355-2-dianders@chromium.org> X-Mailer: git-send-email 2.21.0.1020.gf2820cf01a-goog In-Reply-To: <20190516225941.170355-1-dianders@chromium.org> References: <20190516225941.170355-1-dianders@chromium.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190516_160003_050528_18B8B5C1 X-CRM114-Status: GOOD ( 15.87 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefan Wahren , Artur Petrosyan , Amelie Delaunay , Randy Li , amstan@chromium.org, devicetree@vger.kernel.org, Greg Kroah-Hartman , zyw@rock-chips.com, linux-usb@vger.kernel.org, Douglas Anderson , Rob Herring , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, mka@chromium.org, Alan Stern , Mark Rutland , Elaine Zhang , jwerner@chromium.org, William Wu , ryandcase@chromium.org, dinguyen@opensource.altera.com Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Some SoCs with a dwc2 USB controller may need to keep the PHY on to support remote wakeup. Allow specifying this as a device tree property. Signed-off-by: Douglas Anderson --- For relevant prior discussion on this patch, see: https://lkml.kernel.org/r/1435017144-2971-3-git-send-email-dianders@chromium.org I didn't make any changes from the prior version since I never found out what Rob thought of my previous arguments. If folks want a change, perhaps they could choose from these options: 1. Assume that all dwc2 hosts would like to keep their PHY on for suspend if there's a USB wakeup enabled, thus we totally drop this binding. This doesn't seem super great to me since I'd bet that many devices that use dwc2 weren't designed for USB wakeup (they may not keep enough clocks or rails on) so we might be wasting power for nothing. 2. Rename this property to "snps,wakeup-from-suspend-with-phy" to make it more obvious that this property is intended both to document that wakeup from suspend is possible and that we need the PHY for said wakeup. 3. Rename this property to "snps,can-wakeup-from-suspend" and assume it's implicit that if we can wakeup from suspend that we need to keep the PHY on. If/when someone shows that a device exists using dwc2 where we can wakeup from suspend without the PHY they can add a new property. NOTE FOR REPOST: - In v2 Rob said [1] he'd prefer something based on the SoC compatibility string, but that doesn't work because not all boards will have the regulator setup / board design / suspend logic necessary to make this work. [1] https://lkml.kernel.org/r/20190430012328.GA25660@bogus Changes in v2: None Documentation/devicetree/bindings/usb/dwc2.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt index 49eac0dc86b0..aafff3a6904d 100644 --- a/Documentation/devicetree/bindings/usb/dwc2.txt +++ b/Documentation/devicetree/bindings/usb/dwc2.txt @@ -42,6 +42,8 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties - g-rx-fifo-size: size of rx fifo size in gadget mode. - g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode. - g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in gadget mode. +- snps,need-phy-for-wake: If present indicates that the phy needs to be left + on for remote wakeup during suspend. - snps,reset-phy-on-wake: If present indicates that we need to reset the PHY when we detect a wakeup. This is due to a hardware errata. @@ -58,4 +60,5 @@ Example: clock-names = "otg"; phys = <&usbphy>; phy-names = "usb2-phy"; + snps,need-phy-for-wake; }; From patchwork Thu May 16 22:59:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 10947143 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B3BD11708 for ; Thu, 16 May 2019 23:00:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E78C1FE8E for ; Thu, 16 May 2019 23:00:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 82FCE1FF0B; Thu, 16 May 2019 23:00:21 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0E3161FE8E for ; Thu, 16 May 2019 23:00:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2ZMvOOSovvLV24lUaT5MMhoMbkyP49Ot5LA5HwOBzUk=; b=BZDmLgzSimNEkU hvCPkgQR5xNH5ySMzX1s6HXyX5ffujuOAu1KvPxwnAlAp6mjCo5T5LWo8VUEynqswwZLfuGXjF99A RECcgLAIZgUxn1sBgzebCs7XHVf1itzjs507/3zOgWaW201GSIrApQ7W7dlziFyD/TFK2wkynHLap 73SQ1S1IDU/et9DjH3eU6geRjUEY+z6mqxVzmjaMux3KZmpVNXhyVfe91Tx0kEs3a5D9/2b/IJLgw dKH5Y2TGmoc7LK/lFkcvAyeXBruNWMBQw4i+NK0s3AjgUwneRuuBitfn0558vPJANZrzszsEZnRab Uia2vF7x9qqcLvtMVoYw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hRPMG-0003Zl-L3; Thu, 16 May 2019 23:00:16 +0000 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hRPM3-0002NI-B5 for linux-rockchip@lists.infradead.org; Thu, 16 May 2019 23:00:07 +0000 Received: by mail-pf1-x441.google.com with SMTP id z26so2613989pfg.6 for ; Thu, 16 May 2019 16:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p30np0hBvMX1W0YNEuSMq1CSpTbZYqwy7zvLBclQiMg=; b=hnwqtn4JqSKOmxF6F6aOvVZPfAMcvwgoVPhGJa2PEdo51Ap8JlUtuAY2CJSHEyDVYV vSze5SeLV2+X/MXsIREhNKn0NR9xWforO5St/7l1vL3rauhgMuBYRP36oxrEz20D9bGu lhczrRbaCpU33cWHGY3m0CrUWZvQzkOPtRH7g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p30np0hBvMX1W0YNEuSMq1CSpTbZYqwy7zvLBclQiMg=; b=auwqr+L3Q09jQP8GQGXtYylv5jWfhmoq042NaBWShu8EZy9qauK4aP2C+ZRADRWrxZ F5cbbsXOtNVW+ayZHWw31376MjhXl45w07w9eHxcf09kZbbezHHK3IR2zTAGwsSYFGNa dIVLsrWsazRKTLaStfnIl0QoePzraROS7Qgq65/gJOh1KH5GgE30MWAnLogaXYYLlMJO b+31ok0ngGzfBYe8ASR+G33Ub5XRrUy2VwJWnzWp6TjHG4SoMFQ2EniPlroXliBqGsMQ Y5vBOcI8fiqckrRvmHAJf6P0Qx8TX1vcqsRg0Lki/1K1S5rUtFJZJdOlesjIXrz+eqxf vULw== X-Gm-Message-State: APjAAAWPqQdpWtqupMM+IC5xsVb4fee/pegqMpUeFEx/eWtYP4t+2Yse l7CVzPfaaCCWbX0HkoIt2q0nRw== X-Google-Smtp-Source: APXvYqyampXLABKCDp8VcVjgoHUFrixxBlRr0s7eAKWfWzxdOZDovZV5RuvhDu3ZsPNNzNxXoK+duw== X-Received: by 2002:aa7:881a:: with SMTP id c26mr49711613pfo.254.1558047602038; Thu, 16 May 2019 16:00:02 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id j64sm1769506pfb.126.2019.05.16.16.00.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 May 2019 16:00:01 -0700 (PDT) From: Douglas Anderson To: Minas Harutyunyan , Felipe Balbi , heiko@sntech.de Subject: [REPOST PATCH v2 2/3] USB: dwc2: Don't turn off the usbphy in suspend if wakeup is enabled Date: Thu, 16 May 2019 15:59:40 -0700 Message-Id: <20190516225941.170355-3-dianders@chromium.org> X-Mailer: git-send-email 2.21.0.1020.gf2820cf01a-goog In-Reply-To: <20190516225941.170355-1-dianders@chromium.org> References: <20190516225941.170355-1-dianders@chromium.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190516_160003_756809_0C95DCEE X-CRM114-Status: GOOD ( 22.62 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefan Wahren , Artur Petrosyan , Amelie Delaunay , Randy Li , amstan@chromium.org, Greg Kroah-Hartman , zyw@rock-chips.com, linux-usb@vger.kernel.org, Douglas Anderson , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, mka@chromium.org, Alan Stern , Elaine Zhang , jwerner@chromium.org, William Wu , ryandcase@chromium.org, dinguyen@opensource.altera.com Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP If the 'snps,need-phy-for-wake' is set in the device tree then: - We know that we can wakeup, so call device_set_wakeup_capable(). The USB core will use this knowledge to enable wakeup by default. - We know that we should keep the PHY on during suspend if something on our root hub needs remote wakeup. This requires the patch (USB: Export usb_wakeup_enabled_descendants()). Note that we don't keep the PHY on at suspend time if it's not needed because it would be a power draw. If we later find some users of dwc2 that can support wakeup without keeping the PHY on we may want to add a way to call device_set_wakeup_capable() without keeping the PHY on at suspend time. Signed-off-by: Douglas Anderson Signed-off-by: Chris Zhong --- For relevant prior discussion of this idea, see: https://lkml.kernel.org/r/1436207224-21849-4-git-send-email-dianders@chromium.org If I'm reading all the responses correctly folks were of the opinion that this patch is still the right way to go. Changes in v2: - Rebased to mainline atop rk3288 remote wake quirk series. drivers/usb/dwc2/core.h | 5 +++++ drivers/usb/dwc2/platform.c | 43 +++++++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h index 152ac41dfb2d..73c1e998f27a 100644 --- a/drivers/usb/dwc2/core.h +++ b/drivers/usb/dwc2/core.h @@ -861,6 +861,9 @@ struct dwc2_hregs_backup { * @hibernated: True if core is hibernated * @reset_phy_on_wake: Quirk saying that we should assert PHY reset on a * remote wakeup. + * @phy_off_for_suspend: Status of whether we turned the PHY off at suspend. + * @need_phy_for_wake: Quirk saying that we should keep the PHY on at + * suspend if we need USB to wake us up. * @frame_number: Frame number read from the core. For both device * and host modes. The value ranges are from 0 * to HFNUM_MAX_FRNUM. @@ -1049,6 +1052,8 @@ struct dwc2_hsotg { unsigned int ll_hw_enabled:1; unsigned int hibernated:1; unsigned int reset_phy_on_wake:1; + unsigned int need_phy_for_wake:1; + unsigned int phy_off_for_suspend:1; u16 frame_number; struct phy *phy; diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c index d10a7f8daec3..31be644d1273 100644 --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c @@ -47,7 +47,9 @@ #include #include #include +#include +#include #include #include "core.h" @@ -447,6 +449,10 @@ static int dwc2_driver_probe(struct platform_device *dev) if (retval) goto error; + hsotg->need_phy_for_wake = + of_property_read_bool(dev->dev.of_node, + "snps,need-phy-for-wake"); + /* * Reset before dwc2_get_hwparams() then it could get power-on real * reset value form registers. @@ -478,6 +484,14 @@ static int dwc2_driver_probe(struct platform_device *dev) hsotg->gadget_enabled = 1; } + /* + * If we need PHY for wakeup we must be wakeup capable. + * When we have a device that can wake without the PHY we + * can adjust this condition. + */ + if (hsotg->need_phy_for_wake) + device_set_wakeup_capable(&dev->dev, true); + hsotg->reset_phy_on_wake = of_property_read_bool(dev->dev.of_node, "snps,reset-phy-on-wake"); @@ -513,6 +527,28 @@ static int dwc2_driver_probe(struct platform_device *dev) return retval; } +static bool __maybe_unused dwc2_can_poweroff_phy(struct dwc2_hsotg *dwc2) +{ + struct usb_device *root_hub = dwc2_hsotg_to_hcd(dwc2)->self.root_hub; + + if (!dwc2->ll_hw_enabled) + return false; + + /* If the controller isn't allowed to wakeup then we can power off. */ + if (!device_may_wakeup(dwc2->dev)) + return true; + + /* + * We don't want to power off the PHY if something under the + * root hub has wakeup enabled. + */ + if (usb_wakeup_enabled_descendants(root_hub)) + return false; + + /* No reason to keep the PHY powered, so allow poweroff */ + return true; +} + static int __maybe_unused dwc2_suspend(struct device *dev) { struct dwc2_hsotg *dwc2 = dev_get_drvdata(dev); @@ -521,8 +557,10 @@ static int __maybe_unused dwc2_suspend(struct device *dev) if (dwc2_is_device_mode(dwc2)) dwc2_hsotg_suspend(dwc2); - if (dwc2->ll_hw_enabled) + if (dwc2_can_poweroff_phy(dwc2)) { ret = __dwc2_lowlevel_hw_disable(dwc2); + dwc2->phy_off_for_suspend = true; + } return ret; } @@ -532,11 +570,12 @@ static int __maybe_unused dwc2_resume(struct device *dev) struct dwc2_hsotg *dwc2 = dev_get_drvdata(dev); int ret = 0; - if (dwc2->ll_hw_enabled) { + if (dwc2->phy_off_for_suspend && dwc2->ll_hw_enabled) { ret = __dwc2_lowlevel_hw_enable(dwc2); if (ret) return ret; } + dwc2->phy_off_for_suspend = false; if (dwc2_is_device_mode(dwc2)) ret = dwc2_hsotg_resume(dwc2); From patchwork Thu May 16 22:59:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 10947147 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 136E1924 for ; Thu, 16 May 2019 23:00:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F1C441FE8E for ; Thu, 16 May 2019 23:00:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E50211FF13; Thu, 16 May 2019 23:00:34 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7D9DB1FE8E for ; Thu, 16 May 2019 23:00:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4pS4g81QghClzVxmkhD492IAY4fhPiX0Ut/SX5ZpdCg=; b=tS9eWOecHwsxXZ ebEp2wLGa5XzQwQXVJze+ZVKTknVc9tx975P7rK/ExSQSRgcSaTJe87JRApfuX8vDdz1gKb8k0dhl cQlLJRbNkDC97E0TZeolkIG6G9EReUK9fTpg15JMDCudl90gubwwiPLC6WteFDOtZIMEFSsIDHz0C JtwG3LhfO4c4r1FDSihmSFp6aLB2OlYdykHX2/lrm51oFVNmoF6/AhZqIihtLT7ZV4gP5BWmwFqti tKRasqfWKhovIgzrYeV0QUm6GiDZOgj/i3VvUMKGIAn1NiRhFJHWf2z7cE6ynK6zKK4BLxZGcvQV2 P7vU4xPLobwzf4FxNoNA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hRPMV-0003vB-6J; Thu, 16 May 2019 23:00:31 +0000 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hRPM4-0002Sr-0p for linux-rockchip@lists.infradead.org; Thu, 16 May 2019 23:00:09 +0000 Received: by mail-pf1-x441.google.com with SMTP id y11so2594977pfm.13 for ; Thu, 16 May 2019 16:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lvg93XkWk/IauY18P9MzBBlRGinky/ZsfgSfGtfzvWE=; b=IrWnxdlePeHzk4plSAn4SitSypwJhfMhyVRFzVajRhwefK/vTtfDyVbKcueIKno2Ov jT6zbh26BxuIW4pNBvtfSUcEVz8djCazhjKU2cYWODdnIiwcJETXjueu1AdTY2Vy4UaH 9FEwUwnG58TWdJ+b6VXxLxHhJE5mCkwSbNT+w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lvg93XkWk/IauY18P9MzBBlRGinky/ZsfgSfGtfzvWE=; b=KR4v4ODQX0vGhSXrIYgPoMhI2vFfu1YT9b3zgQPCSp+27QRd7I5IwyKzciHPz9p1Rv e6Y9/0FgO2dC3EgvvmvwElm7Srnldbn9ojkvUarn123RrKOLAM4owmTTKvYkW44Gtzkh zsoxruumoQKywd38HUlpfce+DWfQ7l3r9+6yZe+XfaPa3ojffXpDXQEC0FqnfeK5POkd 20fSLx2K1MZgisyIbwTfCiyLHuS/0hM5XfxY5V/haO3iPaz9+n/GeBDbw2YJny0fzqd6 zNWG88g5CmFwprXmVFNl4uTuzRQQMb+cwS3hFL15cLgBnMrItR8MRWAb7VLIeVY5Ve45 VetQ== X-Gm-Message-State: APjAAAWtvTvXlXFUqz+ou1uQf8U+EdF7prW9ztG6inwCOzX+KP/ufKLn IGFQWY51+JZcB8aWnxdRnNCeXw== X-Google-Smtp-Source: APXvYqyXmrMlXwbThNdH5OYzM2uXETKw3ITSWk1x8137xR6JOng1E+DtlSZxRvtpsu174gwuzPC5Dw== X-Received: by 2002:aa7:8acb:: with SMTP id b11mr57008369pfd.115.1558047603560; Thu, 16 May 2019 16:00:03 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id j64sm1769506pfb.126.2019.05.16.16.00.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 May 2019 16:00:02 -0700 (PDT) From: Douglas Anderson To: Minas Harutyunyan , Felipe Balbi , heiko@sntech.de Subject: [REPOST PATCH v2 3/3] ARM: dts: rockchip: Allow wakeup from rk3288-veyron's dwc2 USB ports Date: Thu, 16 May 2019 15:59:41 -0700 Message-Id: <20190516225941.170355-4-dianders@chromium.org> X-Mailer: git-send-email 2.21.0.1020.gf2820cf01a-goog In-Reply-To: <20190516225941.170355-1-dianders@chromium.org> References: <20190516225941.170355-1-dianders@chromium.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190516_160004_324302_FF16E92D X-CRM114-Status: GOOD ( 12.64 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefan Wahren , Artur Petrosyan , Amelie Delaunay , Randy Li , amstan@chromium.org, devicetree@vger.kernel.org, zyw@rock-chips.com, linux-usb@vger.kernel.org, Douglas Anderson , Rob Herring , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, mka@chromium.org, Alan Stern , Mark Rutland , Elaine Zhang , jwerner@chromium.org, William Wu , ryandcase@chromium.org, dinguyen@opensource.altera.com, linux-arm-kernel@lists.infradead.org Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP We want to be able to wake from USB if a device is plugged in that wants remote wakeup. Enable it on both dwc2 controllers. NOTE: this is added specifically to veyron and not to rk3288 in general since it's not known whether all rk3288 boards are designed to support USB wakeup. It is plausible that some boards could shut down important rails in S3. Also note that currently wakeup doesn't seem to happen unless you use the "deep" suspend mode (where SDRAM is turned off). Presumably the shallow suspend mode is gating some sort of clock that's important but I couldn't easily figure out how to get it working. Signed-off-by: Douglas Anderson --- Changes in v2: - rk3288-veyron dts patch new for v2. arch/arm/boot/dts/rk3288-veyron.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi index 1252522392c7..1d8bfed7830c 100644 --- a/arch/arm/boot/dts/rk3288-veyron.dtsi +++ b/arch/arm/boot/dts/rk3288-veyron.dtsi @@ -424,6 +424,7 @@ &usb_host1 { status = "okay"; + snps,need-phy-for-wake; }; &usb_otg { @@ -432,6 +433,7 @@ assigned-clocks = <&cru SCLK_USBPHY480M_SRC>; assigned-clock-parents = <&usbphy0>; dr_mode = "host"; + snps,need-phy-for-wake; }; &vopb {