From patchwork Fri Nov 6 10:21:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Macpaul Lin X-Patchwork-Id: 11886833 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 950FF921 for ; Fri, 6 Nov 2020 11:07:26 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 275E920825 for ; Fri, 6 Nov 2020 11:07:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="V9Dt/g14"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="H1BGNPq8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 275E920825 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.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=zU4rFn4QGxOJ9B/p3n0mcxdef11CPjwXZ+7SLe32IvU=; b=V9Dt/g14uI5WscylYoH9isKSt GuYY6lOvPKMLL92C/xEBj+7Nwlb33cx90HWG8NTga03pO5ZWAcJqdnzjNwhvU8AAcp2nZvVMEnqp2 xnPJC1nTMKb9VEW/8dymF/9f5UOQa5RPeX6Kj4xPB4tF73F+d8WZx/ENbAc3LjcRZIgCqAtyP8kTC 5PQYMZnxQ7RJS8+zV0M3Xb95da0u36Gxet5ntkDFV6MuBbvxRABukJzHCrgRY1e4Slo47YbRoiKtS FsCiK/RS2EqAlesyCCM/ozZAtQEqqctpdLEyyejDY7LUy6gczSj2F+xn5pPFaeHH5UA1QzENFIUa9 J59yUzBnw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaysY-0008De-PN; Fri, 06 Nov 2020 10:21:58 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaysW-0008Cz-CA; Fri, 06 Nov 2020 10:21:57 +0000 X-UUID: b432ec72bb6a476b9a6bf51b71cb57a7-20201106 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=PjEomim99uW9+wttSvJKBiZ4SoxZLEcMkXbolGj6RUU=; b=H1BGNPq8ACSWnXVRWc45YB+foQB53DvQE/oSIHHe5LsKTzGZbt9+cx6hDwDc7AiZ3vCr6aI1eyJIWQq9Fzci941WdWh7dUYjKAb8OoreAAm2Q4Z+QE27JkIEuY0K2vmD127GkdR7QoOJkGGqdDmDQkfrVRgO47LpkLfIFTwUh6Q=; X-UUID: b432ec72bb6a476b9a6bf51b71cb57a7-20201106 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1162316051; Fri, 06 Nov 2020 02:21:52 -0800 Received: from mtkmbs05n2.mediatek.inc (172.21.101.140) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 6 Nov 2020 02:21:50 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 6 Nov 2020 18:21:48 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 6 Nov 2020 18:21:48 +0800 From: Macpaul Lin To: Rob Herring , Greg Kroah-Hartman , Matthias Brugger , Mathias Nyman , Chunfeng Yun Subject: [PATCH v3 1/2] dt-bindings: usb: mediatek,mtk-xhci: add str-clock-on Date: Fri, 6 Nov 2020 18:21:36 +0800 Message-ID: <1604658097-5127-1-git-send-email-macpaul.lin@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1604301530-31546-1-git-send-email-macpaul.lin@mediatek.com> References: <1604301530-31546-1-git-send-email-macpaul.lin@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201106_052156_639952_F53CC6B5 X-CRM114-Status: GOOD ( 14.08 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-usb@vger.kernel.org, Mediatek WSD Upstream , Eddie Hung , linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux-mediatek@lists.infradead.org, Macpaul Lin , Chunfeng Yun , Macpaul Lin , linux-arm-kernel@lists.infradead.org, Ainge Hsu Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org Option "mediatek,str-clock-on" means to keep clock on during system suspend and resume. Some platform will flush register settings if clock has been disabled when system is suspended. Set this option to avoid clock off. Fixes: 0cbd4b34cda9 ("xhci: mediatek: support MTK xHCI host controller") Signed-off-by: Macpaul Lin Cc: stable@vger.kernel.org --- Changes for v3: - Remove unnecessary Change-Id in commit message. - Add "Fixes" tag as a bug fix on phone system. Changes for v2: - Rename "mediatek,keep-clock-on" to "mediatek,str-clock-on" which implies this option related to STR functions. - After discussion with Chunfeng, resend dt-bindings descritption based on mediatek,mtk-xhci.txt instead of yaml format. .../devicetree/bindings/usb/mediatek,mtk-xhci.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt index 42d8814..fc93bcf 100644 --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt @@ -37,6 +37,9 @@ Required properties: Optional properties: - wakeup-source : enable USB remote wakeup; + - mediatek,str-clock-on: Keep clock on during system suspend and resume. + Some platform will flush register settings if clock has been disabled + when system is suspended. - mediatek,syscon-wakeup : phandle to syscon used to access the register of the USB wakeup glue layer between xHCI and SPM; it depends on "wakeup-source", and has two arguments: From patchwork Fri Nov 6 10:21:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Macpaul Lin X-Patchwork-Id: 11886831 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 779806A2 for ; Fri, 6 Nov 2020 11:07:23 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F272220735 for ; Fri, 6 Nov 2020 11:07:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="tlNI8i9+"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="bhwHoFEW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F272220735 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.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=PjrWdcqkDfmCYbmbwlW9t4bnwYm+4015+MQsIHSnbsk=; b=tlNI8i9+JvLao40nMMne8Gw+G aUDh0TamH8xGRejxcP5jQnif4COj9LClmzcfOLNcLZNLMKaijhT8nFiCVk3VJKN8KXr3wF7/WaMvw h96KaYPmLTlT/lF5dtwORFmf6IKm6f3hnEtww6p/xnJDQsvPQKF3LZVrC4BMkAfs8SxLh17ThIsRL WEv5rF2zf2C6m0a6Hj7TGMsfcpQmnMBRiNPTL2Y1+t9ETE0FjfYK7JnX4CU/mJsRR9rYu1Et6h/Wh 4pId6NL+1gnBILHBfB0CmgfIf71Z3Yf2ewBQATC1kkHV2IMpDdBpN6N8PJttTYbKjTdisPIFUPNCs hPvmYMkzw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaz3Y-00044h-D0; Fri, 06 Nov 2020 10:33:20 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaz3V-00043W-K1; Fri, 06 Nov 2020 10:33:19 +0000 X-UUID: cf8574323826436da46938b311f6bf45-20201106 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=tjiQLFJQpdDZGpaS06HpojFxi2H2eOFlYdg7iPobHno=; b=bhwHoFEWnmEamvZLRvN4z0B/YPkymwc/PcMUQk8aqOlNXgtyrZAuHlcGs6/dZ6i4ntvLzgcgFXLisS3PoEG+V7yjnu8uDlI1tJXjvTa02RSp85FD3ZBp5bTX8s2M9EjSMpkh2Kd8So2uxzF23sBxPHxFlgdqZE2UBI+rIguyZic=; X-UUID: cf8574323826436da46938b311f6bf45-20201106 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1353826073; Fri, 06 Nov 2020 02:31:58 -0800 Received: from MTKMBS01N1.mediatek.inc (172.21.101.68) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 6 Nov 2020 02:21:56 -0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 6 Nov 2020 18:21:48 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 6 Nov 2020 18:21:48 +0800 From: Macpaul Lin To: Rob Herring , Greg Kroah-Hartman , Matthias Brugger , Mathias Nyman , Chunfeng Yun Subject: [PATCH v3 2/2] usb: host: XHCI: xhci-mtk.c: support mediatek, str-clock-on Date: Fri, 6 Nov 2020 18:21:37 +0800 Message-ID: <1604658097-5127-2-git-send-email-macpaul.lin@mediatek.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1604658097-5127-1-git-send-email-macpaul.lin@mediatek.com> References: <1604301530-31546-1-git-send-email-macpaul.lin@mediatek.com> <1604658097-5127-1-git-send-email-macpaul.lin@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201106_053317_881648_0989DF3C X-CRM114-Status: GOOD ( 17.02 ) X-Spam-Score: -0.2 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-usb@vger.kernel.org, Mediatek WSD Upstream , Eddie Hung , linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux-mediatek@lists.infradead.org, Macpaul Lin , Chunfeng Yun , Macpaul Lin , linux-arm-kernel@lists.infradead.org, Ainge Hsu Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org Some platform dose not support turn off clock when system suspending. We add an option "mediatek,str-clock-on" for distinquish these platforms. When "mediatek,str-clock-on" has been set, xhci-mtk driver will skip turning clock on and off during system suspend and resume. Fixes: 0cbd4b34cda9 ("xhci: mediatek: support MTK xHCI host controller") Signed-off-by: Macpaul Lin Cc: stable@vger.kernel.org --- Changes for v3: - Add "Fixes" tag as a bug fix on phone system. Changes for v2: - Replace "mediatek,keep-clock-on" to "mediatek,str-clock-on" which implies this option related to STR functions. drivers/usb/host/xhci-mtk.c | 9 +++++++-- drivers/usb/host/xhci-mtk.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c index 4311d4c..77b0d7a 100644 --- a/drivers/usb/host/xhci-mtk.c +++ b/drivers/usb/host/xhci-mtk.c @@ -464,6 +464,9 @@ static int xhci_mtk_probe(struct platform_device *pdev) of_property_read_u32(node, "mediatek,u3p-dis-msk", &mtk->u3p_dis_msk); + /* STR: keep clock on when suspending on some platform */ + mtk->str_clk_on = of_property_read_bool(node, "mediatek,str-clock-on"); + ret = usb_wakeup_of_property_parse(mtk, node); if (ret) { dev_err(dev, "failed to parse uwk property\n"); @@ -624,7 +627,8 @@ static int __maybe_unused xhci_mtk_suspend(struct device *dev) del_timer_sync(&xhci->shared_hcd->rh_timer); xhci_mtk_host_disable(mtk); - xhci_mtk_clks_disable(mtk); + if (!mtk->str_clk_on) + xhci_mtk_clks_disable(mtk); usb_wakeup_set(mtk, true); return 0; } @@ -636,7 +640,8 @@ static int __maybe_unused xhci_mtk_resume(struct device *dev) struct xhci_hcd *xhci = hcd_to_xhci(hcd); usb_wakeup_set(mtk, false); - xhci_mtk_clks_enable(mtk); + if (!mtk->str_clk_on) + xhci_mtk_clks_enable(mtk); xhci_mtk_host_enable(mtk); xhci_dbg(xhci, "%s: restart port polling\n", __func__); diff --git a/drivers/usb/host/xhci-mtk.h b/drivers/usb/host/xhci-mtk.h index a93cfe8..4039b025 100644 --- a/drivers/usb/host/xhci-mtk.h +++ b/drivers/usb/host/xhci-mtk.h @@ -152,6 +152,7 @@ struct xhci_hcd_mtk { struct regmap *uwk; u32 uwk_reg_base; u32 uwk_vers; + bool str_clk_on; }; static inline struct xhci_hcd_mtk *hcd_to_mtk(struct usb_hcd *hcd)