From patchwork Fri Apr 19 11:23:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909749 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 267A114DB for ; Fri, 19 Apr 2019 20:06:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 192441FF83 for ; Fri, 19 Apr 2019 20:06:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0D90B25223; Fri, 19 Apr 2019 20:06:00 +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=ham 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 8340C1FF83 for ; Fri, 19 Apr 2019 20:05:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728176AbfDSUF4 (ORCPT ); Fri, 19 Apr 2019 16:05:56 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36826 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727772AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from mailhost.synopsys.com (dc8-mailhost1.synopsys.com [10.13.135.209]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 99643C11DC; Fri, 19 Apr 2019 11:23:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673021; bh=4otSVf7CNR/jSoJVB64NRcDq78RaNS4vLvZcpT5/eLY=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=RCvUu1DjIouvnIG20Pzxa15UIh2k1o8208y/va/K2e3AKr9v266Q+hbZ8DCOHNIux /P6wfO/nSiPKPA+rN7MPzUt9K6xcy5o3S0S1xCFbwhhi77SvZGHUIZQDlNFqKr9RJJ UKvSNRQFhO2iUKGIhYX5pUQTf49X8LeconOBYH8OEFLY+NPM0+0+zV1Xna+bcTC2Qo N7VjMI08j3FFmReKtkKXqkvYzQhUqnafcU+s5AobD/Yg6uRO0FetxacvSw8OPzM0/0 nmjAFgezjZbu8yjSNXftmJQCE7NrpJGgaabqLI9QfknXLHV6A34m0lrRYAcP80mEqb XGJfOFexZ5SXg== Received: from US01WXQAHTC1.internal.synopsys.com (us01wxqahtc1.internal.synopsys.com [10.12.238.230]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 9F718A005D; Fri, 19 Apr 2019 11:23:40 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WXQAHTC1.internal.synopsys.com (10.12.238.230) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:23:40 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:23:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4otSVf7CNR/jSoJVB64NRcDq78RaNS4vLvZcpT5/eLY=; b=ElYkml029QFC0CMFVRFmxeY5vEBxJlBqrO684cugNPxqmbcvSSC8akuVDhLaOMEfp6gn9hiS6NBzHNnMHkSsLOts19cTuXOyvReMAdZgDnAWwHx3BZcQ0lbcYIepsFcGFQ7qw0enLzOCgqE4pLS2jKS2WhCJXf2AGCDQj8EVxH8= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:23:38 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:23:38 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 01/14] usb: dwc2: Fix dwc2_restore_device_registers() function. Thread-Topic: [PATCH v1 01/14] usb: dwc2: Fix dwc2_restore_device_registers() function. Thread-Index: AQHU9qJViva8c9pip0a6uXug+iCvxA== Date: Fri, 19 Apr 2019 11:23:38 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR04CA0056.eurprd04.prod.outlook.com (2603:10a6:802:2::27) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.182] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f530c2a6-bb82-41c8-7c92-08d6c4b9778b x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(14444005)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: DqG2QCHwfADa3ykflfecRnJBOYErasBVnLQpF8Cb9CSeLV+SMtu/9OqPf5+BAZbFHdcrafy/V34WlVvIyySwW5fapGf+iUS3HnE2LFFOMJ3uZNpP3niCJK9POmKwVsQk6oTMU16XwXTqzgtcjj2dlCPn3he7WKEkWspvT2I7yJF26up00Ylyo5bFF7zqKCC0iMPc1c8d2HBRfESCyG9mSgFpXW+nO8GYFDB/CegRgHbVKPSujFu0cPxDMlypiiV3sXcIqr/WZ2/fD3/fdDxzrpYKKw0fCAiwtHEpDot7p9NEMKWxvveKqp72LvO5QLD5mWzsnaATk5pjAb/GuJQAddbudV0aFrbJHuvcuT0nvveMH0iFAoIacMYI3APv4t43+Asolzz679P1GIK4hbn9+X5ZKYhWByAIKIA5SN5xFUE= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: f530c2a6-bb82-41c8-7c92-08d6c4b9778b X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:23:38.5556 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP - Added backup of DCFG register. - Added Set the Power-On Programming done bit. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/gadget.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 6812a8a3a98b..dcb0fbb8bc42 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -5004,6 +5004,7 @@ int dwc2_restore_device_registers(struct dwc2_hsotg *hsotg, int remote_wakeup) { struct dwc2_dregs_backup *dr; int i; + u32 dctl; dev_dbg(hsotg->dev, "%s\n", __func__); @@ -5019,6 +5020,15 @@ int dwc2_restore_device_registers(struct dwc2_hsotg *hsotg, int remote_wakeup) if (!remote_wakeup) dwc2_writel(hsotg, dr->dctl, DCTL); + if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_PARTIAL) { + dwc2_writel(hsotg, dr->dcfg, DCFG); + + /* Set the Power-On Programming done bit */ + dctl = dwc2_readl(hsotg, DCTL); + dctl |= DCTL_PWRONPRGDONE; + dwc2_writel(hsotg, dctl, DCTL); + } + dwc2_writel(hsotg, dr->daintmsk, DAINTMSK); dwc2_writel(hsotg, dr->diepmsk, DIEPMSK); dwc2_writel(hsotg, dr->doepmsk, DOEPMSK); From patchwork Fri Apr 19 11:23:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909737 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 1749C17EE for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 03C5E1FF83 for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EB37827F98; Fri, 19 Apr 2019 20:05:53 +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=ham 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 5487D1FF83 for ; Fri, 19 Apr 2019 20:05:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728086AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36748 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726613AbfDSUFv (ORCPT ); Fri, 19 Apr 2019 16:05:51 -0400 X-Greylist: delayed 4200 seconds by postgrey-1.27 at vger.kernel.org; Fri, 19 Apr 2019 16:05:51 EDT Received: from mailhost.synopsys.com (badc-mailhost2.synopsys.com [10.192.0.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id CF69AC11FC; Fri, 19 Apr 2019 11:23:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673031; bh=LU2gAx+I/X/6jnrfYmmbpVF2WfkmeV+jJefdKmYPfRY=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=EOWDA+Sa0xbor7fzn6/1/i61ecg74Fw683gonHqU597F4YA4688iQ/A1IapnJXiyI xQR4sm+sdfNSlKXLu71xZQV15mMzGzRg5sZy5cAcSZJUj6XPyNCV9WYPknbCZB/ffd DaDuvVODmlitX/mZ32Jk1zNBJa9/suCqhhLP2l+utatAgjNEsRmWelnp9qKFOv0AO0 FFLezVsWnmbRKNHkd5maxlAjt0v70j99h8TjUCyag4SL+tINRjIhl7fOqAttgTVLGw CU0E6bXWhIIFyvU1g3xPFiCBVzHhuGH4p9y+bme5o6w/KZA/QG/mPq6urSAfeYCoWp B1Wa2q5ne01zQ== Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 00260A0067; Fri, 19 Apr 2019 11:23:50 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:23:50 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:23:50 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LU2gAx+I/X/6jnrfYmmbpVF2WfkmeV+jJefdKmYPfRY=; b=e++zA42YTukcwl6xGzvogT9tMk8nBXAbvHuhqu1PXUqKcjART5eYJ1/2CArjgm7uHqBXqCqnrSJwhpYOm61dz7SLXNYZX6t5zIFIrPRioE5vq840lFpms/szrQpVowvre1xQoa+UcvcjI4UvMckMyk8kCIwOaICe723Ir+vG+QQ= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:23:49 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:23:49 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 02/14] usb: dwc2: Add descriptive debug messages for Partial Power Down mode. Thread-Topic: [PATCH v1 02/14] usb: dwc2: Add descriptive debug messages for Partial Power Down mode. Thread-Index: AQHU9qJbMt4z0jfUYU6R0vL7ABrJ0w== Date: Fri, 19 Apr 2019 11:23:48 +0000 Message-ID: <819a32be398efe3d3682d880a392a1fa54cde9df.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR02CA0070.eurprd02.prod.outlook.com (2603:10a6:802:14::41) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4ffbee0b-7866-43a9-dd5f-08d6c4b97dbd x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(15650500001)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(14444005)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Yt+5TZMCasbkvSbzuTb2gYOncJAe7PzAdPOu+OYGgjXKYL1+bQBHtngIupAz4YWebCYczSc+NuhUSe79aEropJEaKAE7fSU+/mMVPi2RXPfBTmkytV7puuo5qYlLhJMoruUboGVDwD0XOOWuGygBX2acSh448K5BbIrl5ZBnsDPNbP8zjtIe4QBtNPPzOUi0nMCxEgBLtbxJ8P+M42aW4XrqBZSvpA1scrcnj/mpHEvNqhr7HJbl0WAhPj5OaMXJo36vtfoTOnsfpNSovVBN41oBfRH7BT1xODxjpu0vmm51stq2a72Y+N1JUz4zFXXeQB5IjrOb7JCtALoDmRNB+PEL0XXlzsiX47wT/f4+zFJirdS3WP37yXT6PrFL+YWcMCEccqb/5VV3xXpFeA63NLp1cZIrnAMhdcYX3BhOFZo= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 4ffbee0b-7866-43a9-dd5f-08d6c4b97dbd X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:23:48.9371 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Added dev_dbg() messages when entering and exiting from partial power down. It is now more visible when core enters partial power down and when exits form it. Debug messages are added in the following functions. - dwc2_exit_partial_power_down() - dwc2_enter_partial_power_down() Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/core.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c index 55d5ae2a7ec7..fb471d18a3de 100644 --- a/drivers/usb/dwc2/core.c +++ b/drivers/usb/dwc2/core.c @@ -141,6 +141,8 @@ int dwc2_exit_partial_power_down(struct dwc2_hsotg *hsotg, bool restore) if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL) return -ENOTSUPP; + dev_dbg(hsotg->dev, "Exiting of Partial Power Down started.\n"); + pcgcctl = dwc2_readl(hsotg, PCGCTL); pcgcctl &= ~PCGCTL_STOPPCLK; dwc2_writel(hsotg, pcgcctl, PCGCTL); @@ -178,6 +180,8 @@ int dwc2_exit_partial_power_down(struct dwc2_hsotg *hsotg, bool restore) } } + dev_dbg(hsotg->dev, "Exit Partial Power Down completes here.\n"); + return ret; } @@ -194,6 +198,8 @@ int dwc2_enter_partial_power_down(struct dwc2_hsotg *hsotg) if (!hsotg->params.power_down) return -ENOTSUPP; + dev_dbg(hsotg->dev, "Start of Partial Power Down completed\n"); + /* Backup all registers */ ret = dwc2_backup_global_registers(hsotg); if (ret) { @@ -238,6 +244,8 @@ int dwc2_enter_partial_power_down(struct dwc2_hsotg *hsotg) pcgcctl |= PCGCTL_STOPPCLK; dwc2_writel(hsotg, pcgcctl, PCGCTL); + dev_dbg(hsotg->dev, "Partial Power Down completed\n"); + return ret; } From patchwork Fri Apr 19 11:23:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909739 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 63E0F1850 for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 575B31FF83 for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4B82027F98; Fri, 19 Apr 2019 20:05:54 +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=ham 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 C64BF25223 for ; Fri, 19 Apr 2019 20:05:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728110AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36756 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727417AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from mailhost.synopsys.com (dc8-mailhost2.synopsys.com [10.13.135.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id CDDB0C1201; Fri, 19 Apr 2019 11:24:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673041; bh=WNm8PXvqd19j+PZndapfa7C3cSUxzu9K5McxFKSZrnU=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=fk10KJZWDSFKbI+5gc/iJcdzWkp+zcjU402j28BiYMrlIK0QhPiMLunxbb4ITewLC n8GMjDXfmZPAInQdZuJonLB1nG7kv59/c496XHPz3x5iEIaqjdP/QEtpnRyXXSzu9I TM86hjsFg6bLyc23lJsziyIsNynr7hzzQUHGquoGS2HZeWa457ix/eqt43aPDFwhv6 Gh+JMhZnbybW6SzkHknvM4/qpQEdBZzRYxW7/smA7L+U/KUEKvBwV1+nI1tRf/skqO PxBfBBmd6EDeKvVR8dlfpBPgkJ733BSiPjDR3Wi24PnbokkuRlDcdPBdhfYRdnfhwG sHssGBGks2cag== Received: from us01wehtc1.internal.synopsys.com (us01wehtc1-vip.internal.synopsys.com [10.12.239.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 20B85A0065; Fri, 19 Apr 2019 11:24:00 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by us01wehtc1.internal.synopsys.com (10.12.239.235) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:00 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:00 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WNm8PXvqd19j+PZndapfa7C3cSUxzu9K5McxFKSZrnU=; b=dczbADue86u64BB8n+QT9KatbOH2VBsIKvyPCOnXKE/4gYNXaIOcM2GzxSqy9hS9/9MpSDsCR+iOtrNRmuYkQR51ifxzNqWDtpHLjLUXYNjtITuGzVzq8j5LM7c+FRLOj0YxgCjQUAaZuKsvxPhXmHeQbt0Vo7tmEGJxiY5TAHY= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:23:59 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:23:59 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 03/14] usb: dwc2: Fix wakeup detected and session request interrupt handlers. Thread-Topic: [PATCH v1 03/14] usb: dwc2: Fix wakeup detected and session request interrupt handlers. Thread-Index: AQHU9qJhG3XYf7ipcEa4AhmEgdfsAw== Date: Fri, 19 Apr 2019 11:23:58 +0000 Message-ID: <9eed02b9fe96805eedbeb9188d6bca711f6032cc.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1P190CA0017.EURP190.PROD.OUTLOOK.COM (2603:10a6:802:2b::30) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.187] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8755a1c0-d716-4448-4611-08d6c4b9839a x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(14444005)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 0HOklcnFXEkhOeJCZYDoMwdyb1VTv9GOQ+UZyI9mZLITT4IFgQAKzOOR3KkPV664T0ZdQm9oMYk60vp4LacclwB5ofFfJoAwNmo96tWC7qbPIOcYMMLNdzFdySOCYmXTZ3IyGIFvox1WHDg/CXVaL2tSjNKsZ5tuYeL3wDrdh7wqWu+GRXsMTVGdmsY7yeMcStlOU9liq+EGSGD8XOswJsxmOqhd3TT/P8M9RGMdlVXxyGnElDPiCFPRuwmhPHMQpzrMrhk5XHQKAHessCHqrhWbABVd2Fegb47Aqm2ixUcd0aZy5jAx5pMemeNf8/9cMt2v+QEcWfD8ipTvgxY1eAPocHYyJOF5bHV960eiFjLonTzhpyznijpKSgip+Ubdn2rTxtxkqSSMDwyaMYQor0ahWyUxJV4JpgOptUxaunY= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 8755a1c0-d716-4448-4611-08d6c4b9839a X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:23:58.8342 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP In host mode port power must be turned on when wakeup detected or session request interrupt is detected. Because, otherwise core wouldn't exit form partial power down. - Turned on the port power by setting HPRT0_PWR bit. - Called dwc2_hcd_connect() function after enabling the power of the port. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/core_intr.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index 19ae2595f1c3..06f8022b1bdb 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -312,6 +312,7 @@ static void dwc2_handle_conn_id_status_change_intr(struct dwc2_hsotg *hsotg) static void dwc2_handle_session_req_intr(struct dwc2_hsotg *hsotg) { int ret; + u32 hprt0; /* Clear interrupt */ dwc2_writel(hsotg, GINTSTS_SESSREQINT, GINTSTS); @@ -320,7 +321,9 @@ static void dwc2_handle_session_req_intr(struct dwc2_hsotg *hsotg) hsotg->lx_state); if (dwc2_is_device_mode(hsotg)) { - if (hsotg->lx_state == DWC2_L2) { + if (hsotg->lx_state == DWC2_L2 && + hsotg->params.power_down == + DWC2_POWER_DOWN_PARAM_PARTIAL) { ret = dwc2_exit_partial_power_down(hsotg, true); if (ret && (ret != -ENOTSUPP)) dev_err(hsotg->dev, @@ -332,6 +335,14 @@ static void dwc2_handle_session_req_intr(struct dwc2_hsotg *hsotg) * established */ dwc2_hsotg_disconnect(hsotg); + } else { + /* Turn on the port power bit. */ + hprt0 = dwc2_read_hprt0(hsotg); + hprt0 |= HPRT0_PWR; + dwc2_writel(hsotg, hprt0, HPRT0); + + /* Connect hcd after port power is set. */ + dwc2_hcd_connect(hsotg); } } @@ -396,6 +407,7 @@ static void dwc2_wakeup_from_lpm_l1(struct dwc2_hsotg *hsotg) static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg) { int ret; + u32 hprt0; /* Clear interrupt */ dwc2_writel(hsotg, GINTSTS_WKUPINT, GINTSTS); @@ -426,8 +438,6 @@ static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg) /* Change to L0 state */ hsotg->lx_state = DWC2_L0; } else { - if (hsotg->params.power_down) - return; if (hsotg->lx_state != DWC2_L1) { u32 pcgcctl = dwc2_readl(hsotg, PCGCTL); @@ -435,6 +445,15 @@ static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg) /* Restart the Phy Clock */ pcgcctl &= ~PCGCTL_STOPPCLK; dwc2_writel(hsotg, pcgcctl, PCGCTL); + + /* Turn on the port power bit. */ + hprt0 = dwc2_read_hprt0(hsotg); + hprt0 |= HPRT0_PWR; + dwc2_writel(hsotg, hprt0, HPRT0); + + /* Connect hcd. */ + dwc2_hcd_connect(hsotg); + mod_timer(&hsotg->wkp_timer, jiffies + msecs_to_jiffies(71)); } else { From patchwork Fri Apr 19 11:24:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909745 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 4EB721850 for ; Fri, 19 Apr 2019 20:05:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 404EC1FF83 for ; Fri, 19 Apr 2019 20:05:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3493725223; Fri, 19 Apr 2019 20:05:55 +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=ham 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 7EC431FFB1 for ; Fri, 19 Apr 2019 20:05:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728107AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36768 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727648AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from mailhost.synopsys.com (dc2-mailhost2.synopsys.com [10.12.135.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 6E32FC1204; Fri, 19 Apr 2019 11:24:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673051; bh=mDfjAdqkxm57zYxGNUScbQgq9XZasF4HeMVlaQdfjyE=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=lxf5zJhPy03d/HFG0ogt6HcnIFTkpqjNZ0wD0We7qdduMjCk+/GBUQ8ne9Gb5mNSm svAaM4Mi4+agvGigucyB8Z8J+svA2h0O507k+sET0LcQu3HsLcrB5ruNP5jvAJ3CXU 8ftQuSqTvnc/6tb/rUjxfoy+Ug5FK+t6rXmkBRqLIb06VB25KuC/L4BAKePsBv/xQa B9JEdt0kvfDmy1BTMrBuy6hw1cawMrzXmYr5qbsNjrwMhqF3pA/8xo9e2Hpz5NzJuX 1Y9riIWdIygqf3XwFtP6lN7SK2XVUAKvu/bpGF+3MYYY+ViRW4IXqV5JA3FtCPeApQ A2QO1YQWZVikw== Received: from US01WEHTC2.internal.synopsys.com (us01wehtc2.internal.synopsys.com [10.12.239.237]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 9711EA0096; Fri, 19 Apr 2019 11:24:10 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC2.internal.synopsys.com (10.12.239.237) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:10 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mDfjAdqkxm57zYxGNUScbQgq9XZasF4HeMVlaQdfjyE=; b=QLAdtW8RpqC+TynmpOxThHaks+lS7qXHhWlYAGwlCqynnQLoIIDMZrNSsEorFxlGwcZaFCQ4sp84Ay1uUT12QkjNl8492uFLi4l2kezXsSadReDIBEuSFX6M2+H6EwOebxnu2hhUqWfsuMECqSMv5FbehDiNm/JzXnWJk/pd5J0= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:24:08 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:24:08 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 04/14] usb: dwc2: Fix suspend state in host mode for partial power down. Thread-Topic: [PATCH v1 04/14] usb: dwc2: Fix suspend state in host mode for partial power down. Thread-Index: AQHU9qJndp/MtkcCnkCl/ua6u6qX5g== Date: Fri, 19 Apr 2019 11:24:08 +0000 Message-ID: <0dc725c7e9956eedaf03bb5d68a7d5e856d8cb5a.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR02CA0049.eurprd02.prod.outlook.com (2603:10a6:802:14::20) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.191] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 58d3cdbc-b86d-467d-a049-08d6c4b98956 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(15650500001)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(14444005)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: v37jbZOe+wBG6RU87uMpVFSbg+czv1/zwYNIuWe9QSNqktAEaLCwxmACAVr/lQeLrCQ3dFgLajCIMe88lMgSjyYWUzAyxogbW7qGzXx3SDorj4APjNtQlsvZexsCWsU+Kcxsm6LVB/z+isNQJ9ep2FVTihHBxxg7YXapLdce6/G97NEt/LDmlHGRvD5n7bxF4Ajp1k5uxPWTcwlb7j3PqFHdMa4CU6JF3R9QEEinZA97sTbMsmVDiap0DD8GWuWBirc2iGkKs0iueT9nbd+Q37L/ue0oZH0vP4glwrL++YsALeucYj/oo5a3RavEhCITXHDzP0+At2YT9GNdOLJpvbEi7E/ff1WGlp5sH5M2Y7raqqjqsxTBM8tILLsxhEW44H4XPIv4ZVTeklCKBLi+Wh7CRl0+bnnKXZretD5lgw4= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 58d3cdbc-b86d-467d-a049-08d6c4b98956 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:24:08.3892 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP - In dwc2_port_suspend() function added waiting for the HPRT0.PrtSusp register field to be set. - In _dwc2_hcd_suspend() function added checking of "hsotg->flags.b.port_connect_status" port connection status if port connection status is 0 then skipping power saving (entering partial power down mode). Because if there is no device connected there would be no need to enter partial power down mode. - Added "hsotg->bus_suspended = true" beceuse after entering partial power down in host mode the bus_suspended flag must be set. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/hcd.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index dd82fa516f3f..1d18258b5ff8 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -3479,6 +3479,10 @@ static void dwc2_port_suspend(struct dwc2_hsotg *hsotg, u16 windex) hprt0 |= HPRT0_SUSP; dwc2_writel(hsotg, hprt0, HPRT0); + /* Wait for the HPRT0.PrtSusp register field to be set */ + if (dwc2_hsotg_wait_bit_set(hsotg, HPRT0, HPRT0_SUSP, 3000)) + dev_warn(hsotg->dev, "Suspend wasn't generated\n"); + hsotg->bus_suspended = true; /* @@ -4488,7 +4492,8 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd) if (hsotg->op_state == OTG_STATE_B_PERIPHERAL) goto unlock; - if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL) + if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL || + hsotg->flags.b.port_connect_status == 0) goto skip_power_saving; /* @@ -4514,6 +4519,8 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd) goto skip_power_saving; } + hsotg->bus_suspended = true; + /* Ask phy to be suspended */ if (!IS_ERR_OR_NULL(hsotg->uphy)) { spin_unlock_irqrestore(&hsotg->lock, flags); From patchwork Fri Apr 19 11:24:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909533 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 1918F1850 for ; Fri, 19 Apr 2019 18:53:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0CF0028DF2 for ; Fri, 19 Apr 2019 18:53:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0126028DF8; Fri, 19 Apr 2019 18:53:16 +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=ham 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 A025828DF6 for ; Fri, 19 Apr 2019 18:53:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727306AbfDSSxP (ORCPT ); Fri, 19 Apr 2019 14:53:15 -0400 Received: from dc2-smtprelay2.synopsys.com ([198.182.61.142]:37882 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728517AbfDSSxN (ORCPT ); Fri, 19 Apr 2019 14:53:13 -0400 Received: from mailhost.synopsys.com (badc-mailhost2.synopsys.com [10.192.0.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id D41B4C0AE2; Fri, 19 Apr 2019 11:24:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673060; bh=2lhgBLvaIPkRZOt9UI2QbxNBZj29AWGnNMoRlexj8dQ=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=FQEEbvyXcT0EqfZj7qiffvmuYzlKpU+j2Jpf4ERZ/VG5lBZa/OIbusH8L3KA6/mYl QTvKdmB4qfevGyxl5nZ8ZmSppoy6I3WElA15/FTzWG00PzGgYKxXKgPxGqymocdNyT MWPpI0Ux/5mzhwMmlYYvrmpyI7kClQqhnGs4NPcEcvJjpuzdolVV+K4rijg5Bs7HPQ XZxmDybj/tgIJ9fIKLu7w54os8cAzov5dBgnz1rqoBkwIZ3hRUP5zTjrLXMnnvvMFy 6rjIgU/WmB/UtOYNLTj8UwO6Ak3gMl/85nKtvB/xtKxRG74Uq2eqwS6YAJFs8t5jtc uroqN+kTfoFkw== Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id DED75A0067; Fri, 19 Apr 2019 11:24:20 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:20 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:20 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2lhgBLvaIPkRZOt9UI2QbxNBZj29AWGnNMoRlexj8dQ=; b=QQavyk0YPWF/hh1kSaVoGha1jEn9c9Mchijl59UYeARnbRKZpf88emQM86eaJoehhF/mC+iKQ/llxEUIEqzsBJfapjZd4aA9qkLN1Nv+pXnEi7FFBwOIz654Eh4DEzG2QgRvZPPcoEPv3KgWjisxSAFaYoDdG85/C9Fzh8qcqu4= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:24:19 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:24:19 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 05/14] usb: dwc2: Add port conn. sts. checking in _dwc2_hcd_resume() function. Thread-Topic: [PATCH v1 05/14] usb: dwc2: Add port conn. sts. checking in _dwc2_hcd_resume() function. Thread-Index: AQHU9qJtnV9CkqFmy0auvIy58fBMvw== Date: Fri, 19 Apr 2019 11:24:18 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR04CA0077.eurprd04.prod.outlook.com (2603:10a6:802:2::48) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.191] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7351ef1c-f3b3-4ec5-0612-08d6c4b98f84 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(14444005)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: krFTt6pk+agd0vZnigVnyV/jE3feW3qbOywCMmVBz1OjU9Zq1hDPxEZMb0N+lrbxxpYCGX1Qs2YSfcr0IV4RFRgFhzUbCaF6SjtGr746+4PbJ4SJhe+9VmdfK/8lZuoN6GEwrp6vUhkKfLfIc+63MRAskUJIYi62WyR4YHGzMjDoUkoHnEGuXcr5YevoDf9JIjWKEuJHL5Imgoq4zDkCfQhZeagoxve+JUQ1UVgFAZ2PSrpZLgs+9QAwiq2OISRQBz5qEiNqmn9dnJ9LLcC7sK3AieU4cMwcldMofqpwnZqsrqdkW43n4n8bXs0UgqnFetJr0PCXVHBM50d4goNyvUj5rrnAx2anZDszZH1fXdZ29EPK/6cuvVcjozYIJyJMEwmYqIgry+pGkY9/thxJIf7RDEoEiHCh8KhnHiVIW04= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 7351ef1c-f3b3-4ec5-0612-08d6c4b98f84 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:24:18.8371 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Added port connection status checking which prevents exiting from Partial Power Down mode from _dwc2_hcd_resume() when no entering to Partial Power Down mode happened. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/hcd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index 1d18258b5ff8..8367902a47eb 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -4544,6 +4544,9 @@ static int _dwc2_hcd_resume(struct usb_hcd *hcd) struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd); unsigned long flags; int ret = 0; + u32 hprt0; + + hprt0 = dwc2_read_hprt0(hsotg); spin_lock_irqsave(&hsotg->lock, flags); @@ -4553,7 +4556,8 @@ static int _dwc2_hcd_resume(struct usb_hcd *hcd) if (hsotg->lx_state != DWC2_L2) goto unlock; - if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL) { + if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL || + hprt0 & HPRT0_CONNSTS) { hsotg->lx_state = DWC2_L0; goto unlock; } From patchwork Fri Apr 19 11:24:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909531 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 B5D7C17E0 for ; Fri, 19 Apr 2019 18:53:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA6E328DF9 for ; Fri, 19 Apr 2019 18:53:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9EC9828DF8; Fri, 19 Apr 2019 18:53:16 +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=ham 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 3679B28DFA for ; Fri, 19 Apr 2019 18:53:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728524AbfDSSxP (ORCPT ); Fri, 19 Apr 2019 14:53:15 -0400 Received: from dc2-smtprelay2.synopsys.com ([198.182.61.142]:37884 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728513AbfDSSxN (ORCPT ); Fri, 19 Apr 2019 14:53:13 -0400 Received: from mailhost.synopsys.com (dc2-mailhost2.synopsys.com [10.12.135.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 16415C0AE3; Fri, 19 Apr 2019 11:24:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673071; bh=v+9OxjaWjTsT3Sz7TqYx6KCARUL2gWv5o0BpBc79B5Y=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=aXtGwnFFRORnRK3ADdiVtaEbmwH/Uuu8Mx8CAWjFsIUmAjBgnVRslGQgHZXw71a5w 2/P3E2UCJv/26hhPsbThJL2lcKhde4GCtiUwLyLYJkfFi+Cl0XsBScDEXLhidbmBJ1 zSN21GHn/pnUrF7ymCymdK4777FMITsTSzCVoZqjFudqXcruY5moClYBlehtsdsb5S 6PRzH1kIXPMGFIal7trAWWy9CToRLfbXoYpbvStFxXm4vLm8dRRaI3BPOOJrO2DqCV JJXLfHOT/z2amD40+pY/RiN6V7D6Dy2Z1hwKtCGPUfHhXbdoH1s6+cVA7OMMyutU9D 5aswvzaIyQj8g== Received: from US01WXQAHTC1.internal.synopsys.com (us01wxqahtc1.internal.synopsys.com [10.12.238.230]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 21F2BA0096; Fri, 19 Apr 2019 11:24:32 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WXQAHTC1.internal.synopsys.com (10.12.238.230) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:31 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:30 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v+9OxjaWjTsT3Sz7TqYx6KCARUL2gWv5o0BpBc79B5Y=; b=NDwv/G+/gk1gqOLEiO6TK8K9xTGvFulJ2uglV3W2O49PzqD5c+rHi8D4seqqYyg6Gc4ps7yW+iFZmA3hlCRXQqvTwj3fsmGyeF+VXIurfo/2070r0XhQmq0LIZ64kvA1nD/rB3QHMvI+7RRNc6lt6qzQ+r6Ls3uatSgShtYvcxY= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:24:29 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:24:29 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 06/14] usb: dwc2: Add part. power down exit from dwc2_conn_id_status_change(). Thread-Topic: [PATCH v1 06/14] usb: dwc2: Add part. power down exit from dwc2_conn_id_status_change(). Thread-Index: AQHU9qJ0E/lr8Az9bkKSQsx99gyJHg== Date: Fri, 19 Apr 2019 11:24:29 +0000 Message-ID: <8d5e1a9ea7207845069104f967e0e1ae558c0624.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0802CA0001.eurprd08.prod.outlook.com (2603:10a6:800:aa::11) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dfc5b4eb-4f31-4110-34dc-08d6c4b995cd x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: jADRM5vLGXgdfyWst9ek1KS6PiBPpQsLyrzq7vO+Vc79L703mv2Hwcg8mAUvyEfMPhdROxVhjyg27LpPDVOo4KGfGA7OwVBk19E8I9o/EXW9D+f+G/VPIlE1qcPFdUMfaqeIrqsVqYZckfZCU5b7968NsmbJEo88H/x7WYb6wYJltGMp06gzx6bYxPnyUz+U5q9c6Vz+EOZIn1y1APz4QYuaQkAZ0HxLayw8yeQZ5v8TCWhdeFUw3LJKy9YJaBFEewa7sGhpm4x9kH3FyRT5zMf1yLP6rCnyuMymX4Cyyp0QRnOCmvwOrt44j8RQdLrnNpgljmzZ6BrYmThXRTxbc3QZ5978w4B/BPHSRcVyQHmes+kIEaN2kimfYkzumP72nTGTX4eCBPae7pvmL6Zwyz4LskMQ9OJcdApWHU5wQho= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: dfc5b4eb-4f31-4110-34dc-08d6c4b995cd X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:24:29.2830 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Before changing to connector B exiting from Partial Power Down is required. - Added exiting from Partial Power Down mode when connector ID status changes to "connId B". Because if connector ID status changed to B connector while core was in partial power down mode, HANG would accrue from a soft reset. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/hcd.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index 8367902a47eb..54450fa352cf 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -3348,6 +3348,7 @@ static void dwc2_conn_id_status_change(struct work_struct *work) wf_otg); u32 count = 0; u32 gotgctl; + u32 pcgcctl; unsigned long flags; dev_dbg(hsotg->dev, "%s()\n", __func__); @@ -3387,6 +3388,23 @@ static void dwc2_conn_id_status_change(struct work_struct *work) if (count > 250) dev_err(hsotg->dev, "Connection id status change timed out\n"); + + if (hsotg->params.power_down == + DWC2_POWER_DOWN_PARAM_PARTIAL && + hsotg->lx_state == DWC2_L2) { + pcgcctl = dwc2_readl(hsotg, PCGCTL); + pcgcctl &= ~PCGCTL_STOPPCLK; + dwc2_writel(hsotg, pcgcctl, PCGCTL); + + pcgcctl = dwc2_readl(hsotg, PCGCTL); + pcgcctl &= ~PCGCTL_PWRCLMP; + dwc2_writel(hsotg, pcgcctl, PCGCTL); + + pcgcctl = dwc2_readl(hsotg, PCGCTL); + pcgcctl &= ~PCGCTL_RSTPDWNMODULE; + dwc2_writel(hsotg, pcgcctl, PCGCTL); + } + hsotg->op_state = OTG_STATE_B_PERIPHERAL; dwc2_core_init(hsotg, false); dwc2_enable_global_interrupts(hsotg); From patchwork Fri Apr 19 11:24:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909747 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 2434717EE for ; Fri, 19 Apr 2019 20:05:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16B641FF83 for ; Fri, 19 Apr 2019 20:05:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0B21625223; Fri, 19 Apr 2019 20:05:59 +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=ham 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 9FE461FF83 for ; Fri, 19 Apr 2019 20:05:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727624AbfDSUF4 (ORCPT ); Fri, 19 Apr 2019 16:05:56 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36764 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727440AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from mailhost.synopsys.com (badc-mailhost2.synopsys.com [10.192.0.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 2CDD1C0AF5; Fri, 19 Apr 2019 11:24:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673082; bh=c9lSu9gx+b5zcFSf2ezSgxnWlP+0IC8IutC81R4Yeo0=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=PMAz4gdfgEDWHTadb6b6YSQF9iBmKS+F4Fs5quZu9TTNmTZ/wKG5NzixETVK9BsiU krwd/wLSZW63AH4UTV+43/Ozo72eujVoqpSog8WaGCG3TfguSthqnrb/53hmTYsBk7 O4/ZzB63ByfSf6ycGONza2+29xZBMD4fH6I82LSz0bOhQ+kE4EbZEj8Tg0sbC3DbiK ITia0mUyhemKSlgxr0qqKaTu7oNbcyTjLOQA7YFOjsJot+i54YYLvm4VO32nlVykCF lwAEosa4P8N6fEXFe3fITuZxKGvRBg1/923YDP/YIYyg/+olhk5Mq5fHhIzaufxeFe XFkkzEAo+3j1A== Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 7BDE6A0067; Fri, 19 Apr 2019 11:24:41 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:40 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c9lSu9gx+b5zcFSf2ezSgxnWlP+0IC8IutC81R4Yeo0=; b=Rk+ps6agnIcEZstx3Gx7EDyRUbwdCjAsSkudnF+rIskJu8tWzV4grO417uGQAMlQ5zxjmZkhunnqsNyQ/UKNXPPGv932zMsa1AtGdv/Y6XwOJHW9+fxeGVXyF5ntQ7vkcaxDsy8GcYdxIRjAhQYHmtmW7K2M4K2jeoH1Z2P+E2M= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:24:39 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:24:39 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 07/14] usb: dwc2: Reset DEVADDR after exiting gadget hibernation. Thread-Topic: [PATCH v1 07/14] usb: dwc2: Reset DEVADDR after exiting gadget hibernation. Thread-Index: AQHU9qJ5n2+J+cmLvEavTwfDwgVrIA== Date: Fri, 19 Apr 2019 11:24:39 +0000 Message-ID: <15df61e95536a74b636f19ec142f27b62bb2f5e5.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0802CA0024.eurprd08.prod.outlook.com (2603:10a6:800:aa::34) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.187] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c48e737d-f884-4475-5d82-08d6c4b99bb2 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(14444005)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: BtCYSjyuov1kJxWlcVTdUpjpnk724MgQ2EnvZ/xYTLZLUvgqLtr200sdLEQQE6ynUCOLbd/U67DRi3LuePHkCzjTu1WWnncK5tky5dxVQSrHfVRPu1KLH1s7bJKn+H0qwsvLB3PPWapaSGEltyUhKwbklPpJ24cyqMDE9J2kWhJpjb00+MBwlmhWMl/sSn6epaXvlEeH0/xukoiY5GGmfqOMD50rP8nauOKIY8WvYsaRSwRfKm2Jq/RGrZAV51/cEBSCa+6ymViRHjzhas7IhQZVFQ41H2ZWLymW3tuILdXr/kQPjIRR2WJoLG82HmsBOV/859ky2rg8jxHo0CPSTFibWfZR8YYbRaySWwRgOfp78Amlx+G2dlnqiLw9eWuyBnYHYfjAf7K+IMBISS2gGyBzm0YWljHBCvcpPeBRQLM= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c48e737d-f884-4475-5d82-08d6c4b99bb2 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:24:39.1994 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Initially resetting device address was done in dwc2_hsotg_irq() interrupt handler. However, when core is hibernated USB RESET is not handled in dwc2_hsotg_irq() handler, instead USB RESET interrupt is handled in dwc2_handle_gpwrdn_intr() handler. - Added reset device address to zero when core exits from gadget hibernation. Signed-off-by: Artur Petrosyan Signed-off-by: Minas Harutyunyan --- drivers/usb/dwc2/gadget.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index dcb0fbb8bc42..8c3e1f1c1b0f 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -5234,6 +5234,10 @@ int dwc2_gadget_exit_hibernation(struct dwc2_hsotg *hsotg, /* Restore GUSBCFG, DCFG and DCTL */ dwc2_writel(hsotg, gr->gusbcfg, GUSBCFG); dwc2_writel(hsotg, dr->dcfg, DCFG); + + /* On USB Reset, reset device address to zero */ + if (reset) + dwc2_clear_bit(hsotg, DCFG, DCFG_DEVADDR_MASK); dwc2_writel(hsotg, dr->dctl, DCTL); /* De-assert Wakeup Logic */ From patchwork Fri Apr 19 11:24:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909535 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 A09FA1515 for ; Fri, 19 Apr 2019 18:53:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 960B828DFC for ; Fri, 19 Apr 2019 18:53:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 89E6328DFB; Fri, 19 Apr 2019 18:53:17 +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=ham 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 0F03C28DF9 for ; Fri, 19 Apr 2019 18:53:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728522AbfDSSxO (ORCPT ); Fri, 19 Apr 2019 14:53:14 -0400 Received: from dc2-smtprelay2.synopsys.com ([198.182.61.142]:37874 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727526AbfDSSxN (ORCPT ); Fri, 19 Apr 2019 14:53:13 -0400 Received: from mailhost.synopsys.com (dc8-mailhost1.synopsys.com [10.13.135.209]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 8E368C0BBB; Fri, 19 Apr 2019 11:24:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673090; bh=CZz1oOjo2ubLfuhbH7HzE1RDYKomNQTzI3bDoDGt+nw=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=gAoDBdxBkX9AF78ZTzBLF8fgyATSItqT3drSVxrfuetjZIcsmWqC7rJJiRp8tXsDL kV5QHgl8n2+4+XFlzEmGNBmplvel6kKjg6uRY02kJdOJW0+kiFxHct4MuR1JUDIX5x Wvg/nWsVmW3y2pdA/klWe7eyuUfE+0z4XNY2f6lmS2FFQuxIkoNtxVq5TBF4b65Yuu wSSIrVsmBtfNmhHujP2aVp1UvDhpGK/cKIegOu7zphFYCOhnSNmJCHRnfxtY62fNUa O50I0m9n3LtIH1DXOWRUEPxNWz8cYqqpVczObX8RZT6iNdcXqvC85L4W9hGhCbI0Xc 1AzQxeQ7MQWJw== Received: from US01WXQAHTC1.internal.synopsys.com (us01wxqahtc1.internal.synopsys.com [10.12.238.230]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 9A74AA005D; Fri, 19 Apr 2019 11:24:51 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WXQAHTC1.internal.synopsys.com (10.12.238.230) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:51 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:24:51 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CZz1oOjo2ubLfuhbH7HzE1RDYKomNQTzI3bDoDGt+nw=; b=rYCwGxf/jtFWRmgwoBHPRAxx+bmIL+2GMNmlsOS6ucq/+KxZ3DYTy/c+8GcpkZFvvlrUlitX+DIAUrRy8UBl0f6mBReSTWBwA6jaEivmNJct063Kh//gC0vIn0WvHLq60irs80cSTeDA8+h5B9vahW8dyJsRLzJtviPcxRsOaUk= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:24:49 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:24:49 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 08/14] usb: dwc2: Add default param to control power optimization. Thread-Topic: [PATCH v1 08/14] usb: dwc2: Add default param to control power optimization. Thread-Index: AQHU9qJ/tHbivSmPyUKJBC/Mf5HbVQ== Date: Fri, 19 Apr 2019 11:24:48 +0000 Message-ID: <15bba89b920e29e27de4cfaac546834fba5d1a76.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR10CA0107.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:803:28::36) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.189] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1481e60a-d3b2-4233-2d9b-08d6c4b9a140 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(396003)(39850400004)(346002)(136003)(366004)(199004)(189003)(110136005)(316002)(2616005)(54906003)(68736007)(99286004)(478600001)(8936002)(2501003)(64756008)(52116002)(73956011)(66946007)(118296001)(66446008)(3846002)(6116002)(66066001)(8676002)(36756003)(14454004)(386003)(186003)(305945005)(2906002)(4326008)(102836004)(6436002)(26005)(486006)(256004)(25786009)(53936002)(14444005)(476003)(71200400001)(71190400001)(6512007)(86362001)(107886003)(5660300002)(97736004)(81156014)(446003)(76176011)(6506007)(7736002)(6486002)(11346002)(66476007)(66556008)(81166006);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: zMOjqsEI1JxzOahOJk9PUTn3/YsmcelWoBjjDmYedWGheGx5BHQzSp5UDi3iJ4BVjEC+e1vZI02Z4c+6NAPd0FwPCD2a4O3uK2IgOGJINpf8+9YM1t/Z198hrMpXkPkFQi+sfNTSnXqJgcw3G9mE/iBLFLfX5cer4U4RHXU2Q6cnWVe7z1NQ3mLSdprBo5HYTd9C53gzru6WQh1SCj+u6leGJcfXncKbJA6CG8ypiY8uqTbQwK+JWoTEFE75cyQ1ENE+AYlb8xDzAUDtq8FVeeTMGvq31Sd6OGIbiLUlGexB+leWeck6eg9/lw9A5kEt5Bj6CD7VgKhvFvWjkBzdASnvJJZBas9DDL9OLwCAiIZCPAVLsyHOQXvsV2OB6hLuPnJpbayemUX9FgWZA1NDLcfhcFkdcC79TE0CRhO2frE= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 1481e60a-d3b2-4233-2d9b-08d6c4b9a140 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:24:48.8467 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP - Added a default param "power_saving" to enable or disable hibernation or partial power down features. - Printed hibernation param in hw_params_show and power_saving param in params_show. Signed-off-by: Artur Petrosyan Signed-off-by: Minas Harutyunyan --- drivers/usb/dwc2/core.h | 3 +++ drivers/usb/dwc2/debugfs.c | 2 ++ drivers/usb/dwc2/params.c | 19 +++++++++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h index 30bab8463c96..9221933ab64e 100644 --- a/drivers/usb/dwc2/core.h +++ b/drivers/usb/dwc2/core.h @@ -373,6 +373,8 @@ enum dwc2_ep0_state { * case. * 0 - No (default) * 1 - Yes + * @power_saving: Specifies if power saving is enabled or not. If it is + * enabled power_down functionality will be enabled. * @power_down: Specifies whether the controller support power_down. * If power_down is enabled, the controller will enter * power_down in both peripheral and host mode when @@ -469,6 +471,7 @@ struct dwc2_core_params { bool uframe_sched; bool external_id_pin_ctl; + unsigned int power_saving:1; int power_down; #define DWC2_POWER_DOWN_PARAM_NONE 0 #define DWC2_POWER_DOWN_PARAM_PARTIAL 1 diff --git a/drivers/usb/dwc2/debugfs.c b/drivers/usb/dwc2/debugfs.c index 7f62f4cdc265..8b27cf0b682b 100644 --- a/drivers/usb/dwc2/debugfs.c +++ b/drivers/usb/dwc2/debugfs.c @@ -695,6 +695,7 @@ static int params_show(struct seq_file *seq, void *v) print_param_hex(seq, p, ahbcfg); print_param(seq, p, uframe_sched); print_param(seq, p, external_id_pin_ctl); + print_param(seq, p, power_saving); print_param(seq, p, power_down); print_param(seq, p, lpm); print_param(seq, p, lpm_clock_gating); @@ -746,6 +747,7 @@ static int hw_params_show(struct seq_file *seq, void *v) print_param(seq, hw, num_dev_perio_in_ep); print_param(seq, hw, total_fifo_size); print_param(seq, hw, power_optimized); + print_param(seq, hw, hibernation); print_param(seq, hw, utmi_phy_data_width); print_param_hex(seq, hw, snpsid); print_param_hex(seq, hw, dev_ep_dirs); diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c index 24ff5f21cb25..d7cc336aa1b7 100644 --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c @@ -263,12 +263,18 @@ static void dwc2_set_param_power_down(struct dwc2_hsotg *hsotg) { int val; - if (hsotg->hw_params.hibernation) - val = 2; - else if (hsotg->hw_params.power_optimized) - val = 1; - else - val = 0; + if (!hsotg->params.power_saving) { + val = DWC2_POWER_DOWN_PARAM_NONE; + dev_dbg(hsotg->dev, "%s: Power saving is disabled.\n", + __func__); + } else { + if (hsotg->hw_params.hibernation) + val = DWC2_POWER_DOWN_PARAM_HIBERNATION; + else if (hsotg->hw_params.power_optimized) + val = DWC2_POWER_DOWN_PARAM_PARTIAL; + else + val = DWC2_POWER_DOWN_PARAM_NONE; + } hsotg->params.power_down = val; } @@ -290,6 +296,7 @@ static void dwc2_set_default_params(struct dwc2_hsotg *hsotg) dwc2_set_param_phy_type(hsotg); dwc2_set_param_speed(hsotg); dwc2_set_param_phy_utmi_width(hsotg); + p->power_saving = true; dwc2_set_param_power_down(hsotg); p->phy_ulpi_ddr = false; p->phy_ulpi_ext_vbus = false; From patchwork Fri Apr 19 11:24:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909523 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 39DA517E0 for ; Fri, 19 Apr 2019 18:53:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 29B5628DF3 for ; Fri, 19 Apr 2019 18:53:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1976028DF8; Fri, 19 Apr 2019 18:53:15 +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=ham 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 A626928DF3 for ; Fri, 19 Apr 2019 18:53:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728520AbfDSSxN (ORCPT ); Fri, 19 Apr 2019 14:53:13 -0400 Received: from dc2-smtprelay2.synopsys.com ([198.182.61.142]:37880 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728515AbfDSSxN (ORCPT ); Fri, 19 Apr 2019 14:53:13 -0400 Received: from mailhost.synopsys.com (dc8-mailhost1.synopsys.com [10.13.135.209]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id D08F4C0BB5; Fri, 19 Apr 2019 11:25:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673100; bh=84iaRT6A3doeU2Jt7nZdHTG7bpRZrVH38X5Z+YZAyts=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=jAhQ4XFakMxAMYPp2WKzbxlUY5IA+c6Ot5FOWBQkJMPAhVqeDirWDDmbt6yRHiLHD ZeW9z19CNhBvnQCNO/TR7O2cGLx3W2oyMkkITgAIVUlrrU4SK3d8JMfuTtbW4JzHYt 94jrmc0GPK1PQnhosCiK6Su5uGw4zy5IjSvewvipX/NAQI4fetdFVk2NSoft4VrDEf MjKbBA7BbFEDXHbex5C2Ir8HWVGYogfDy1ilYElpSTY436hvFzPbK53DRYyanmyUOq S/Xdna6FbnwDUcJyURgMKCmZsCn2wsG25qxnniAscDMPbo7B2yN0jJMeCH3Vxlqkni 8RdoRHw0qhh1Q== Received: from US01WEHTC2.internal.synopsys.com (us01wehtc2.internal.synopsys.com [10.12.239.237]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id DCB6BA005D; Fri, 19 Apr 2019 11:25:01 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC2.internal.synopsys.com (10.12.239.237) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:01 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:01 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=84iaRT6A3doeU2Jt7nZdHTG7bpRZrVH38X5Z+YZAyts=; b=b7e8NFXZi3+9apIfJ48/m9DEOVRet5DBD1iokkZ7mO+umhVTQ1jEdRWEe7qj96XAptLg1+ETuR7nRR3RQLZdUE/7C2+i13ok1SXd+CZlfeg30p6icKuKfBni2nL+NQZpR6yeS/nSr16YKV5aOIGZINbl+zne5B/OyinL0AmMgWY= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:25:00 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:25:00 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 09/14] usb: dwc2: Update dwc2_handle_usb_suspend_intr function. Thread-Topic: [PATCH v1 09/14] usb: dwc2: Update dwc2_handle_usb_suspend_intr function. Thread-Index: AQHU9qKG+ViDfaby7kumU8hq4kl1Pg== Date: Fri, 19 Apr 2019 11:24:59 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0302CA0020.eurprd03.prod.outlook.com (2603:10a6:800:e9::30) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 13fc5cb1-9a98-4e33-905b-08d6c4b9a78c x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(39850400004)(396003)(376002)(346002)(189003)(199004)(6436002)(102836004)(486006)(26005)(186003)(386003)(4326008)(305945005)(2906002)(6506007)(446003)(76176011)(7736002)(97736004)(5660300002)(81156014)(66476007)(11346002)(81166006)(66556008)(6486002)(476003)(256004)(14444005)(53936002)(25786009)(107886003)(71190400001)(71200400001)(86362001)(6512007)(99286004)(15650500001)(54906003)(110136005)(316002)(2616005)(68736007)(8676002)(66066001)(6116002)(36756003)(14454004)(478600001)(2501003)(8936002)(118296001)(3846002)(66446008)(52116002)(64756008)(66946007)(73956011);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Li5dmg81pcBgpjWhTdvTGRMy1mlBw24LlBuGvHq+FX9+OsKZ7DAYqn9Awc2R0XQiNt97IpRKKlF7uII2mDfp+ZTzVRJTnxzLQfpaaWExWDdQww7RmRAT75aaPvSL7DyIZv9ki44t2XmCXiFm2+/QiY9KUlUR1EmU9OcJJUQndBxOtdJnYu3BxflDYCyOEHxc7ry3roHBqlD979Jw4XaTwV5pTo6uGuI2UJ/u+YDtl+5Av+ueNFrbYEQ0UxhwuJzwM3so6w63uxzZ0ntF2A5ejmXX7IiAvSw+pHAUVMBelSoEk1QzalDfTlyfw5eaKVAzBIYqjk/pC8H4ye1r5pgBobYhn2aWVSx8oIt84cP3AS50kv2U/EOx/NpPascE0pW5HUWgKyu6Ih61Lf9e3L3Gr6vLCfJAN0USVfax4FpwHII= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 13fc5cb1-9a98-4e33-905b-08d6c4b9a78c X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:24:59.8389 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP To avoid working in two modes (partial power down and hibernation) changed conditions for entering partial power down or hibernation. Instead of checking hw_params.power_optimized and hw_params.hibernation now checking power_down param which already set to one of the options (Hibernation or Partial Power Down) based on OTG_EN_PWROPT. Signed-off-by: Artur Petrosyan Signed-off-by: Minas Harutyunyan --- drivers/usb/dwc2/core_intr.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index 06f8022b1bdb..fc465707b7a1 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -517,14 +517,15 @@ static void dwc2_handle_usb_suspend_intr(struct dwc2_hsotg *hsotg) return; } if (dsts & DSTS_SUSPSTS) { - if (hsotg->hw_params.power_optimized) { + switch (hsotg->params.power_down) { + case DWC2_POWER_DOWN_PARAM_PARTIAL: ret = dwc2_enter_partial_power_down(hsotg); if (ret) { if (ret != -ENOTSUPP) dev_err(hsotg->dev, "%s: enter partial_power_down failed\n", __func__); - goto skip_power_saving; + break; } udelay(100); @@ -532,16 +533,16 @@ static void dwc2_handle_usb_suspend_intr(struct dwc2_hsotg *hsotg) /* Ask phy to be suspended */ if (!IS_ERR_OR_NULL(hsotg->uphy)) usb_phy_set_suspend(hsotg->uphy, true); - } - - if (hsotg->hw_params.hibernation) { + break; + case DWC2_POWER_DOWN_PARAM_HIBERNATION: ret = dwc2_enter_hibernation(hsotg, 0); if (ret && ret != -ENOTSUPP) dev_err(hsotg->dev, "%s: enter hibernation failed\n", __func__); + break; } -skip_power_saving: + /* * Change to L2 (suspend) state before releasing * spinlock From patchwork Fri Apr 19 11:25:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909741 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 D256C14DB for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C5AB626E4A for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BA1C325223; Fri, 19 Apr 2019 20:05:54 +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=ham 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 1B15E26E4A for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728112AbfDSUFx (ORCPT ); Fri, 19 Apr 2019 16:05:53 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36752 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727257AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from mailhost.synopsys.com (dc2-mailhost1.synopsys.com [10.12.135.161]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 46264C1203; Fri, 19 Apr 2019 11:25:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673112; bh=nHZb6BEg/sWCfZRiQSWSnGXYYMJNsG0OdKLH9KIbiEc=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=LYcEvE0ZkwTEKaUgFpk6qOoaQ3/WXDDQzRWn3frXnJhMtwR/gPfyL1q5/VVsO0u72 TRi579WO0PMLCI9stvo5h2PjIjhDQ7Keygc+JJzay41hXhnZQh8dC0+XiTbkS5han2 xR3yKHMOcpm0nl3RW+dNa1B7XKyEbbh89pZ66lNs4YTeF1dGOxN/R5u9cjwWP6gO2+ H6RxxmCu6hTLSYCKvzMkEidhKtZTd3cvJcKl1ZkWQRf9cxIVsglV+MHs5LiFpsDDI0 J9mKyL6WoK5GOaQHPKRjiI/ExZOTot+venhB5oPKUrMmI/8VgwpZctRW0zz+OgZZSN DSFZ/6L8KmcHw== Received: from us01wehtc1.internal.synopsys.com (us01wehtc1-vip.internal.synopsys.com [10.12.239.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 90F99A005A; Fri, 19 Apr 2019 11:25:11 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by us01wehtc1.internal.synopsys.com (10.12.239.235) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:11 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:11 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nHZb6BEg/sWCfZRiQSWSnGXYYMJNsG0OdKLH9KIbiEc=; b=pUkeG/fbitK58Up3evZn7JSfiMC3qJq1J/Gagks+arpveykb/CVFZUhjqYGQ1Mw6LCOd9Rzp36LMEyvI5BLyh63HBxImmlzwXi4caG5FQ76Tg7/vi+WoQqLaiR9YqIO5j9MJObutYpvwxndvY4Aw2veIGAgFPZtI82TjIYp1RW4= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:25:09 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:25:09 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 10/14] usb: dwc2: Fix hibernation between host and device modes. Thread-Topic: [PATCH v1 10/14] usb: dwc2: Fix hibernation between host and device modes. Thread-Index: AQHU9qKMWXS7HJ+dKkOk/Fgbf3TpOw== Date: Fri, 19 Apr 2019 11:25:09 +0000 Message-ID: <40708a6888d43ff5e29b5d06f0c53beda840b096.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0302CA0024.eurprd03.prod.outlook.com (2603:10a6:800:e9::34) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.195] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e3f5ded4-589c-43d7-e69f-08d6c4b9adca x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(39850400004)(396003)(376002)(346002)(189003)(199004)(6436002)(102836004)(486006)(26005)(186003)(386003)(4326008)(305945005)(2906002)(6506007)(446003)(76176011)(7736002)(97736004)(5660300002)(81156014)(66476007)(11346002)(81166006)(66556008)(6486002)(476003)(256004)(14444005)(53936002)(25786009)(107886003)(71190400001)(71200400001)(86362001)(6512007)(99286004)(54906003)(110136005)(316002)(2616005)(68736007)(8676002)(66066001)(6116002)(36756003)(14454004)(478600001)(2501003)(8936002)(118296001)(3846002)(66446008)(52116002)(64756008)(66946007)(73956011);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: nlNWRMRK7vZj/1LSEpHMVixggSt/9lJnfv2SaZQx9vTU7zg8b1FSCB/ZeVpLrSSUjpXu5zA875yQ/y0HtXxa1a/+kNlQLtfenPZ64N6zLwXQtxQsbey0rTR6UEyIMww5Ejvd8YvGvNDzKh4EAuuTlfGInVPjoKeZRBrD5G+ApndJSD85hss6KzuWCB7bFjfQkwq2t/EJzOmddo4BID4TrgVqO3u05UzOvu7muA9/V5mrIwm9EbJH50wxRiUXuUcPEovPHKqH30dbc34QgNklJnbzE8hcQ1lfuYDZ1i6qefZqvER1UNa1JZh8S67oMGLZrWfBcVB3VJX7UqPQ5Tc09eOrS9fampEaTbFcc1nqGH5q+MsMwpa8cdfFCbZ6xAItUh+xQCYVOLqIamre6OLvrN1oGGuoU9DTugdpYNLjDPA= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: e3f5ded4-589c-43d7-e69f-08d6c4b9adca X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:25:09.6633 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When core is in hibernation in host mode and a device cable was connected than driver exited from device hibernation. However, registers saved for host mode and when exited from device hibernation register restore would be done for device register which was wrong because there was no device registers stored to restore. - Added dwc_handle_gpwrdn_disc_det() function which handles gpwrdn disconnect detect flow and exits hibernation without restoring the registers. - Updated exiting from hibernation in GPWRDN_STS_CHGINT with calling dwc_handle_gpwrdn_disc_det() function. Here no register is restored which is the solution described above. - Increased the waiting timeout for HPRT0.PrtSusp register field to be set. Because on HiKey 960 board HPRT0.PrtSusp wasn't generated with the existing timeout. Signed-off-by: Artur Petrosyan Signed-off-by: Minas Harutyunyan --- drivers/usb/dwc2/core_intr.c | 139 ++++++++++++++++++++++++------------------- drivers/usb/dwc2/hcd.c | 2 +- 2 files changed, 80 insertions(+), 61 deletions(-) diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index fc465707b7a1..40d296d9b6fb 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -662,6 +662,70 @@ static u32 dwc2_read_common_intr(struct dwc2_hsotg *hsotg) return 0; } +/** + * This function handles the gpwrdn disconnect detect. + * Exits hibernation without restoring registers. + * + * @hsotg: Programming view of DWC_otg controller + * @gpwrdn: GPWRDN register + */ +static inline void dwc_handle_gpwrdn_disc_det(struct dwc2_hsotg *hsotg, + u32 gpwrdn) +{ + u32 gpwrdn_tmp; + + /* Switch-on voltage to the core */ + gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); + gpwrdn_tmp &= ~GPWRDN_PWRDNSWTCH; + dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); + udelay(10); + + /* Reset core */ + gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); + gpwrdn_tmp &= ~GPWRDN_PWRDNRSTN; + dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); + udelay(10); + + /* Disable Power Down Clamp */ + gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); + gpwrdn_tmp &= ~GPWRDN_PWRDNCLMP; + dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); + udelay(10); + + /* Deassert reset core */ + gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); + gpwrdn_tmp |= GPWRDN_PWRDNRSTN; + dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); + udelay(10); + + /* Disable PMU interrupt */ + gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); + gpwrdn_tmp &= ~GPWRDN_PMUINTSEL; + dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); + + /* De-assert Wakeup Logic */ + gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); + gpwrdn_tmp &= ~GPWRDN_PMUACTV; + dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); + + hsotg->hibernated = 0; + + if (gpwrdn & GPWRDN_IDSTS) { + hsotg->op_state = OTG_STATE_B_PERIPHERAL; + dwc2_core_init(hsotg, false); + dwc2_enable_global_interrupts(hsotg); + dwc2_hsotg_core_init_disconnected(hsotg, false); + dwc2_hsotg_core_connect(hsotg); + } else { + hsotg->op_state = OTG_STATE_A_HOST; + + /* Initialize the Core for Host mode */ + dwc2_core_init(hsotg, false); + dwc2_enable_global_interrupts(hsotg); + dwc2_hcd_start(hsotg); + } +} + /* * GPWRDN interrupt handler. * @@ -683,60 +747,12 @@ static void dwc2_handle_gpwrdn_intr(struct dwc2_hsotg *hsotg) if ((gpwrdn & GPWRDN_DISCONN_DET) && (gpwrdn & GPWRDN_DISCONN_DET_MSK) && !linestate) { - u32 gpwrdn_tmp; - dev_dbg(hsotg->dev, "%s: GPWRDN_DISCONN_DET\n", __func__); - - /* Switch-on voltage to the core */ - gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); - gpwrdn_tmp &= ~GPWRDN_PWRDNSWTCH; - dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); - udelay(10); - - /* Reset core */ - gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); - gpwrdn_tmp &= ~GPWRDN_PWRDNRSTN; - dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); - udelay(10); - - /* Disable Power Down Clamp */ - gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); - gpwrdn_tmp &= ~GPWRDN_PWRDNCLMP; - dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); - udelay(10); - - /* Deassert reset core */ - gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); - gpwrdn_tmp |= GPWRDN_PWRDNRSTN; - dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); - udelay(10); - - /* Disable PMU interrupt */ - gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); - gpwrdn_tmp &= ~GPWRDN_PMUINTSEL; - dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); - - /* De-assert Wakeup Logic */ - gpwrdn_tmp = dwc2_readl(hsotg, GPWRDN); - gpwrdn_tmp &= ~GPWRDN_PMUACTV; - dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); - - hsotg->hibernated = 0; - - if (gpwrdn & GPWRDN_IDSTS) { - hsotg->op_state = OTG_STATE_B_PERIPHERAL; - dwc2_core_init(hsotg, false); - dwc2_enable_global_interrupts(hsotg); - dwc2_hsotg_core_init_disconnected(hsotg, false); - dwc2_hsotg_core_connect(hsotg); - } else { - hsotg->op_state = OTG_STATE_A_HOST; - - /* Initialize the Core for Host mode */ - dwc2_core_init(hsotg, false); - dwc2_enable_global_interrupts(hsotg); - dwc2_hcd_start(hsotg); - } + /* + * Call disconnect detect function to exit from + * hibernation + */ + dwc_handle_gpwrdn_disc_det(hsotg, gpwrdn); } if ((gpwrdn & GPWRDN_LNSTSCHG) && @@ -752,22 +768,25 @@ static void dwc2_handle_gpwrdn_intr(struct dwc2_hsotg *hsotg) } } } + if ((gpwrdn & GPWRDN_RST_DET) && (gpwrdn & GPWRDN_RST_DET_MSK)) { dev_dbg(hsotg->dev, "%s: GPWRDN_RST_DET\n", __func__); if (!linestate && (gpwrdn & GPWRDN_BSESSVLD)) dwc2_exit_hibernation(hsotg, 0, 1, 0); } + if ((gpwrdn & GPWRDN_STS_CHGINT) && - (gpwrdn & GPWRDN_STS_CHGINT_MSK) && linestate) { + (gpwrdn & GPWRDN_STS_CHGINT_MSK)) { dev_dbg(hsotg->dev, "%s: GPWRDN_STS_CHGINT\n", __func__); if (hsotg->hw_params.hibernation && hsotg->hibernated) { - if (gpwrdn & GPWRDN_IDSTS) { - dwc2_exit_hibernation(hsotg, 0, 0, 0); - call_gadget(hsotg, resume); - } else { - dwc2_exit_hibernation(hsotg, 1, 0, 1); - } + /* + * As GPWRDN_STS_CHGINT exit from hibernation flow is + * the same as in GPWRDN_DISCONN_DET flow. Call + * disconnect detect helper function to exit from + * hibernation. + */ + dwc_handle_gpwrdn_disc_det(hsotg, gpwrdn); } } } diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index 54450fa352cf..45d4a3e1ebd2 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -5570,7 +5570,7 @@ int dwc2_host_enter_hibernation(struct dwc2_hsotg *hsotg) dwc2_writel(hsotg, hprt0, HPRT0); /* Wait for the HPRT0.PrtSusp register field to be set */ - if (dwc2_hsotg_wait_bit_set(hsotg, HPRT0, HPRT0_SUSP, 3000)) + if (dwc2_hsotg_wait_bit_set(hsotg, HPRT0, HPRT0_SUSP, 5000)) dev_warn(hsotg->dev, "Suspend wasn't generated\n"); /* From patchwork Fri Apr 19 11:25:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909525 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 B816E1515 for ; Fri, 19 Apr 2019 18:53:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ACC5328DF3 for ; Fri, 19 Apr 2019 18:53:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A0FA628DF5; Fri, 19 Apr 2019 18:53:15 +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=ham 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 37D5228DF9 for ; Fri, 19 Apr 2019 18:53:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728521AbfDSSxO (ORCPT ); Fri, 19 Apr 2019 14:53:14 -0400 Received: from dc2-smtprelay2.synopsys.com ([198.182.61.142]:37872 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728514AbfDSSxN (ORCPT ); Fri, 19 Apr 2019 14:53:13 -0400 Received: from mailhost.synopsys.com (dc2-mailhost2.synopsys.com [10.12.135.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id ED40BC0BC1; Fri, 19 Apr 2019 11:25:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673120; bh=jsYDCFA4tJZEDXmetIx34ZlNaOFVafPpU0gcrsnjOE8=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=Aui7br864aCSOoJEoExvVrYVgRR7iKMiJwKRqAaGOgf4zH7MmtiL8FGOVzZjqZ7PL Ef2PbDfdBlA29gc9/8Xmhzq4dzgc3OHa7ixf8bQ0Uhw34LFQJnUl9/NHBuv4R44p0Y 9uR3cYQ8+Uw4zG9oRiSw1pEE28+pn6ULtAj2JD2TUjHkW0/1EjuAbVFQEu27mFeHWt iS7VeG+ZsoJTrCezD0FnoIRSJlcsPCVMAq19QCn1a3cv6zoAanx/rtPT08wr6awXCS jiDPXB+xTsLD/xxnTaWApTHCxodUXzZ56oZUeOoBj+EcpEKw83UwMB68G19byzhvKI QrQj1lFJkuhUQ== Received: from US01WEHTC2.internal.synopsys.com (us01wehtc2.internal.synopsys.com [10.12.239.237]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 04D36A0096; Fri, 19 Apr 2019 11:25:21 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC2.internal.synopsys.com (10.12.239.237) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:20 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:20 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jsYDCFA4tJZEDXmetIx34ZlNaOFVafPpU0gcrsnjOE8=; b=AIpBJyDrNG/cOv99B7/LwqF3heynEiCNaPLEs4kA0uUE88OY6Mp9IcJPhMIouC99f9I4uf8MhR7NKy/XEe9uQbJWVLZQAk+0YgLZ0x4zMKtPTYAI6xQBR+RCbIno9dRZBr8qDT4ntn35gERXt9bIsutXlhoZDzO/2EpCPSH9YZU= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:25:19 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:25:19 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 11/14] usb: dwc2: Allow exiting hibernation from gpwrdn rst detect Thread-Topic: [PATCH v1 11/14] usb: dwc2: Allow exiting hibernation from gpwrdn rst detect Thread-Index: AQHU9qKRRISJYwRGsUeDKE1UxaLfJw== Date: Fri, 19 Apr 2019 11:25:19 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0302CA0023.eurprd03.prod.outlook.com (2603:10a6:800:e9::33) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.196] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 474e08ce-309d-4429-0594-08d6c4b9b38c x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(39850400004)(396003)(376002)(346002)(189003)(199004)(6436002)(102836004)(486006)(26005)(186003)(386003)(4326008)(305945005)(2906002)(6506007)(446003)(76176011)(7736002)(97736004)(5660300002)(81156014)(66476007)(11346002)(81166006)(66556008)(6486002)(476003)(256004)(14444005)(53936002)(25786009)(107886003)(71190400001)(71200400001)(86362001)(6512007)(99286004)(54906003)(110136005)(316002)(2616005)(68736007)(8676002)(66066001)(6116002)(36756003)(14454004)(478600001)(2501003)(8936002)(118296001)(3846002)(66446008)(52116002)(64756008)(66946007)(73956011)(40753002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: P97+9HHGIX4C0z4DdhiO+XmvA8PE24QOGTfY9CHi/8CPlFtxAeecMMQlkZtxmlh1N/Pr/Vpy+hrZBbnfKMfxSKjiECraRN4rdgMf9vguSk5cdZXob5gKImUz9rv2KP7CiyNke3s5YnLiTxawgQSNjNFFDfr50xm2WwDNqvDq+APtjvaRH2/1h+bppETnrlnbywAK5XhpJHqf24RNjNYaa9tUXDvXZRLCA1xSNrUXE60gWnLGSKcZq8qrQuHBrTvRBb7W/IQpTyuopfoAz9gSKOEQ52sQhPTiEHjuDpkEqutebfXACaT2++Z3l3PBY0Ta0pM1o+YqwBE+dWFYX9uY+juqIH8O++4CzXzRG1HWHXS3HURcrVT6ICqbctx84iWqmbKpTNt9pyny/9oLp0U713HSeFcLDQnS5AKvFItpuO0= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 474e08ce-309d-4429-0594-08d6c4b9b38c X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:25:19.1634 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When device cable is disconnected core receives suspend interrupt and enters hibernation. After entering into hibernation GPWRDN_RST_DET and GPWRDN_STS_CHGINT interrupts are asserted. From cable disconnection we need to exit from hibernation either by GPWRDN_RST_DET or GPWRDN_STS_CHGINT. If we exit from hibernation by GPWRDN_STS_CHGINT, DEVADDR will not be reset. But we need to exit gadget hibernation properly with resetting the DEVADDR as reset accrued. - Allowed exit from gadget hibernation from GPWRDN_RST_DET by checking only linestate. - Setting hsotg->lx_state = DWC2_L0 in dwc2_hsotg_irq GINTSTS_RESETDET flow without checking if lx_state == DWC2_L2 Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/core_intr.c | 2 +- drivers/usb/dwc2/gadget.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index 40d296d9b6fb..cb827a5e1bfb 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -771,7 +771,7 @@ static void dwc2_handle_gpwrdn_intr(struct dwc2_hsotg *hsotg) if ((gpwrdn & GPWRDN_RST_DET) && (gpwrdn & GPWRDN_RST_DET_MSK)) { dev_dbg(hsotg->dev, "%s: GPWRDN_RST_DET\n", __func__); - if (!linestate && (gpwrdn & GPWRDN_BSESSVLD)) + if (!linestate) dwc2_exit_hibernation(hsotg, 0, 1, 0); } diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 8c3e1f1c1b0f..b35c966d4f63 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -3637,8 +3637,8 @@ static irqreturn_t dwc2_hsotg_irq(int irq, void *pw) /* This event must be used only if controller is suspended */ if (hsotg->lx_state == DWC2_L2) { dwc2_exit_partial_power_down(hsotg, true); - hsotg->lx_state = DWC2_L0; } + hsotg->lx_state = DWC2_L0; } if (gintsts & (GINTSTS_USBRST | GINTSTS_RESETDET)) { From patchwork Fri Apr 19 11:25:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909751 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 8399A14DB for ; Fri, 19 Apr 2019 20:06:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 125951FF83 for ; Fri, 19 Apr 2019 20:06:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 068071FFB1; Fri, 19 Apr 2019 20:06:15 +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=ham 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 1FE0825223 for ; Fri, 19 Apr 2019 20:06:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728120AbfDSUF4 (ORCPT ); Fri, 19 Apr 2019 16:05:56 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36838 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728068AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from mailhost.synopsys.com (dc8-mailhost2.synopsys.com [10.13.135.210]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id B1D3BC1209; Fri, 19 Apr 2019 11:25:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673131; bh=4+S92Ayez9OQURkxLcIuAowTTX2V5zeHy2PCgCHR/9g=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=O67LjOsCwfJ4Ky47+PeXd7IktU7Ubntk0pM1iFUcxBbQRqX/ccRLwoLdK4SVq8dhi VTWFf0GbANJwI8a4At0FUV/yrGwSXgUI423lTUoR5hPniXZhjTYI+ef7ABWmr+0N+j TiU/NbIbk+QItns+dg5NpaPwr383WRhPcM2nn6j3IZLmOR13Pvl1yEDkV3LTMIb6bf lKqk4zn7UgqzR8pzG3nrk+FhfP5YtZqeS/vhRjZ5hPEtkSHFIk2M3Q8LrQbxl2OU77 Ywha4bEp5zzxyp3XqTXvvCkhLpTJILxR7yDvOmDF0bDvG+DmWb2xrJRaA8xmh9+nX1 bhyJ2ODnIlGKw== Received: from us01wehtc1.internal.synopsys.com (us01wehtc1-vip.internal.synopsys.com [10.12.239.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 0D2ABA0065; Fri, 19 Apr 2019 11:25:31 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by us01wehtc1.internal.synopsys.com (10.12.239.235) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:30 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:30 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4+S92Ayez9OQURkxLcIuAowTTX2V5zeHy2PCgCHR/9g=; b=jKoP+W9UWTKCkk3a4yoiuzdq70tqh19+nqJ4i/0nywxmG0zB1gOjpyuBR4KiuMy43Awt4ziJzjUdgxoJC1VdBeWuHvwprcG3T+BsD77MvocJeTZDUao9V3Ic7NBHv5cBPacQBVTdHsc/fc6O+WaySFM7FkxGoABFFHnD4IpAVFU= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:25:29 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:25:29 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 12/14] usb: dwc2: Clear fifo_map when resetting core. Thread-Topic: [PATCH v1 12/14] usb: dwc2: Clear fifo_map when resetting core. Thread-Index: AQHU9qKXjJ2vykcArkSxArt/WbmDZg== Date: Fri, 19 Apr 2019 11:25:29 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR08CA0185.eurprd08.prod.outlook.com (2603:10a6:800:d2::15) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.189] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 10650e2b-c238-406a-dc63-08d6c4b9b948 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(39850400004)(396003)(376002)(346002)(189003)(199004)(6436002)(102836004)(486006)(26005)(186003)(386003)(4326008)(305945005)(2906002)(6506007)(446003)(76176011)(7736002)(97736004)(5660300002)(81156014)(66476007)(11346002)(81166006)(66556008)(6486002)(476003)(256004)(14444005)(53936002)(25786009)(107886003)(71190400001)(71200400001)(86362001)(6512007)(99286004)(54906003)(110136005)(316002)(2616005)(68736007)(8676002)(66066001)(6116002)(36756003)(14454004)(478600001)(2501003)(8936002)(118296001)(3846002)(66446008)(52116002)(64756008)(66946007)(73956011);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: eEDIC+ELmC8FxNod97/gMtmf3cbSR/LHfVGpFqPsfUGYANc5vn31wZYJmlxso+yvltbW+CGMdyNf7wrt/sZcpft6VNl1gsad+masIHw3/cwfzIqqjmHyh45yzSkDmDFcMOeTND7YS1ESo/jYIDteX0+CMfLU1hE6L/054eQF04jh42HywF8H45zcJsPNMhSTgtA2imG2ik/FVlpqRACktxq7cbQaGCUQa+UXaltzWTuLnsrkpgeQioPr8MyW1uUrBz4L5xkRz7lQZJjmCpmQEq9hItI4rya69AnULPccAH6alIL82r5cmxmQgJKdQQOkPBoMbro+OdRS3X87gH+9sUXiMMIvcRDH9ZL2cK7zsCjTbTgWvEku8ooxB1cZ69ZbIb0UDyHVK2oHigG11PHfWJo09Ur3UFzlS5jOp7Ib/go= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 10650e2b-c238-406a-dc63-08d6c4b9b948 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:25:29.0848 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP If core enters host hibernation when switching from device mode to host mode disconnection of host cable asserts a WARNING in dwc2_hsotg_init_fifo() that fifo_map is not cleared. To avoid the WARNING, fifo_map should be cleared in dwc2_core_reset() function. - Cleared fifo_map when resetting the core. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c index fb471d18a3de..fbbd6a2f10ad 100644 --- a/drivers/usb/dwc2/core.c +++ b/drivers/usb/dwc2/core.c @@ -532,6 +532,12 @@ int dwc2_core_reset(struct dwc2_hsotg *hsotg, bool skip_wait) greset |= GRSTCTL_CSFTRST; dwc2_writel(hsotg, greset, GRSTCTL); + /* Clear fifo_map */ + #if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \ + IS_ENABLED(CONFIG_USB_DWC2_DUAL_ROLE) + hsotg->fifo_map = 0; + #endif /* CONFIG_USB_DWC2_PERIPHERAL || CONFIG_USB_DWC2_DUAL_ROLE */ + if (dwc2_hsotg_wait_bit_clear(hsotg, GRSTCTL, GRSTCTL_CSFTRST, 50)) { dev_warn(hsotg->dev, "%s: HANG! Soft Reset timeout GRSTCTL GRSTCTL_CSFTRST\n", __func__); From patchwork Fri Apr 19 11:25:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909527 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 4DF4C1850 for ; Fri, 19 Apr 2019 18:53:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4260928DF3 for ; Fri, 19 Apr 2019 18:53:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 36C2D28DFB; Fri, 19 Apr 2019 18:53:16 +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=ham 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 CD52428DF3 for ; Fri, 19 Apr 2019 18:53:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728523AbfDSSxP (ORCPT ); Fri, 19 Apr 2019 14:53:15 -0400 Received: from dc2-smtprelay2.synopsys.com ([198.182.61.142]:37876 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726617AbfDSSxN (ORCPT ); Fri, 19 Apr 2019 14:53:13 -0400 Received: from mailhost.synopsys.com (dc8-mailhost1.synopsys.com [10.13.135.209]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 27AB2C0BB3; Fri, 19 Apr 2019 11:25:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673140; bh=3+OWqljKOhllTHGqBwsKDFdnlsuy2HtQbqn/qoSNzsE=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=TV8YeGi4f1P5TYX5E4+TUkXJta2iFge+xW+JkCDSRtQfABJZHzoFBUizgSJ8qOFpr eV3EyQv5m1RxrUxoMDG576rE6fZFTo8mzr+fN7zgQrigJq0bLmPeM1ODESTAgMmKGX jQKg0qjlJt3U0ZfV0R0hi4k949HA30s/rMmEQeNRfA7PY5mLJN6DfvYZpFDNdD93go mN6IxgHpQgb91QxZR6Gtbb4nuxVVI8+tyVlv2B6T3Rqyl5C794n3GPcujEEJv9Nkza AuNkTtgKur5iAEV8KPgu9YlVtFE2KvOxwBm71DqNn95dFjT/HDu4sSMdUjfI9MxoJk 7tCWA+ZRGNIQQ== Received: from US01WEHTC2.internal.synopsys.com (us01wehtc2.internal.synopsys.com [10.12.239.237]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 330C0A005D; Fri, 19 Apr 2019 11:25:41 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC2.internal.synopsys.com (10.12.239.237) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:41 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3+OWqljKOhllTHGqBwsKDFdnlsuy2HtQbqn/qoSNzsE=; b=g7922yCUc0i6l2bQbXLyaCHK3Bp3/LUgNLFa57rXIKo25koRCU65vnCu40w5Wpws4C2T/IDbkHj3PVR0P3VBGoQARnYdnDKMLotUPTW//H0t/hRALHffE1nVbnOV3D4NgvIbkDUJpWcziceVVt5w07HqAqHVkP/U3hoF9fki9ho= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:25:39 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:25:39 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 13/14] usb: dwc2: Clear GINTSTS_RESTOREDONE bit after restore is generated. Thread-Topic: [PATCH v1 13/14] usb: dwc2: Clear GINTSTS_RESTOREDONE bit after restore is generated. Thread-Index: AQHU9qKd5P7G2ijNmEC+t7Pivs4GBw== Date: Fri, 19 Apr 2019 11:25:38 +0000 Message-ID: <73d2c9aca58e7cac50d02bbbd853c23ab0463b48.1555672441.git.arturp@synopsys.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0302CA0015.eurprd03.prod.outlook.com (2603:10a6:800:e9::25) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.186] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b44aa05b-fd90-4fbd-3e90-08d6c4b9bf4c x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(39850400004)(396003)(376002)(346002)(189003)(199004)(6436002)(102836004)(486006)(26005)(186003)(386003)(4326008)(305945005)(2906002)(6506007)(446003)(76176011)(7736002)(97736004)(5660300002)(81156014)(66476007)(11346002)(81166006)(66556008)(6486002)(476003)(256004)(14444005)(53936002)(25786009)(107886003)(71190400001)(71200400001)(86362001)(6512007)(99286004)(54906003)(110136005)(316002)(2616005)(68736007)(8676002)(66066001)(6116002)(36756003)(14454004)(478600001)(2501003)(8936002)(118296001)(3846002)(66446008)(52116002)(64756008)(66946007)(73956011);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: xQVa7bEgG77eI784cpmxqgw2qRCrGVsTcli1XBZEaAsPr09gjKr6uE9464kBoaoSGUZrYmRYUzGzcfLUb/YZLbjd37DNEerZAam98P+btQJ4P2uzHe0/o01kJI/MLaGpb0l7u0i8IXVXDX+2MkfO2ZD9Tq+5FbkSqz2NgIiQIyhXD925AG1sEELMZl/Yl8YSFTTSgC4Y2zLoeSIbIP+f//6zvzx/48N7ARJ0lXZmpDgF5b4x9SjnT6kpsTtKPjogNrUht9KkAPV04T+++f61KglPM7ZdMiFDLv76jCT/gjtaLVD3T6McCY0VioOnaVT3H0X49usxy0S0rkqFQmOMcYx4RgCuSiFhVhzwfVMqkr/AoF4l3DnTqW3tr6WUcwNJSXEn+1GLpTzt5XNg0yWr5WxY0JmiV0DqMDOAFJX0EqU= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: b44aa05b-fd90-4fbd-3e90-08d6c4b9bf4c X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:25:38.8861 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When hibernation exit is performed the dwc2_hib_restore_common() function is called. In that function we wait until GINTSTS_RESTOREDONE bit is set. However, after the setting of that bit we get a lot of (dwc2_hsotg_irq:) interrupts which indicates that (GINTSTS.RstrDoneInt) restore done interrupt is asserted. To avoid restore done interrupt storm after restore is generated clear GINTSTS_RESTOREDONE bit in GINTSTS register. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c index fbbd6a2f10ad..18ea0d896e12 100644 --- a/drivers/usb/dwc2/core.c +++ b/drivers/usb/dwc2/core.c @@ -382,6 +382,12 @@ void dwc2_hib_restore_common(struct dwc2_hsotg *hsotg, int rem_wakeup, __func__); } else { dev_dbg(hsotg->dev, "restore done generated here\n"); + + /* + * To avoid restore done interrupt storm after restore is + * generated clear GINTSTS_RESTOREDONE bit. + */ + dwc2_writel(hsotg, GINTSTS_RESTOREDONE, GINTSTS); } } From patchwork Fri Apr 19 11:25:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artur Petrosyan X-Patchwork-Id: 10909743 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 F335C17EE for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E5FEB1FF83 for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DA2F025223; Fri, 19 Apr 2019 20:05:54 +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=ham 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 58B2928A78 for ; Fri, 19 Apr 2019 20:05:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728115AbfDSUFx (ORCPT ); Fri, 19 Apr 2019 16:05:53 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:36794 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727722AbfDSUFw (ORCPT ); Fri, 19 Apr 2019 16:05:52 -0400 Received: from mailhost.synopsys.com (badc-mailhost2.synopsys.com [10.192.0.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 308E6C1208; Fri, 19 Apr 2019 11:25:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555673152; bh=aKZOdZxlVugT7qhUL1bSwf30K2+a+aXa560JPFGWJ7k=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=K8nWyjktBUE8RuEJCbGMqW7pMRVlkCVqSxgwydI01suKp/2wMnyWcDrwry3BFQFAM gi9uyG/lvFX/8TV+bfTIUYFDpGGkwSJoOAOpqiQntcwuEBqVZcCK4l2zR0feIez3+C gojvJEiZ1EfjKHNtHmNt/6IZO+0gGOpu26fsS1g93nIojFO1R9vwUHfUCY35S/wMho SOyUslsD3mTpefwD2cXkfcNiUBlOckdCAdy8mcbjUqJruYR+f7AuYYacZ2nn6LwN84 YzqpRQswRLB8b2PscXzRO+r/UisW5OKzQkz1oityN05QuGcMNH+zzYvliRAQD/2Oj3 gIlKnoaFc18ZA== Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 7C261A0067; Fri, 19 Apr 2019 11:25:51 +0000 (UTC) Received: from US01HYBRID2.internal.synopsys.com (10.15.246.24) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:51 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (10.13.134.195) by mrs.synopsys.com (10.15.246.24) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 19 Apr 2019 04:25:51 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=synopsys.onmicrosoft.com; s=selector1-synopsys-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aKZOdZxlVugT7qhUL1bSwf30K2+a+aXa560JPFGWJ7k=; b=cB1owIvbO0gws1lbxpkaJrWefhmJ5q6VoBYV8+Ofc9SfQrSXDtwIrrSrJTSRsjeoUyopk/0R1umHHTnp3EbiDNukbFarJDN6t4cnVDTE4hXcEvP2qRvHkv5OTkuK54HgQNxUQ2O88GTGz5A0Cy5seiVttnJ0YeaigJsHsymx5Vg= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB2383.namprd12.prod.outlook.com (52.132.194.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Fri, 19 Apr 2019 11:25:49 +0000 Received: from SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a]) by SN1PR12MB2431.namprd12.prod.outlook.com ([fe80::5ca6:ee5f:1147:df5a%4]) with mapi id 15.20.1813.013; Fri, 19 Apr 2019 11:25:49 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH v1 14/14] usb: dwc2: Add enter/exit hibernation from system issued suspend/resume Thread-Topic: [PATCH v1 14/14] usb: dwc2: Add enter/exit hibernation from system issued suspend/resume Thread-Index: AQHU9qKj4BXfhuera0qVm1faf23VEw== Date: Fri, 19 Apr 2019 11:25:49 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0901CA0092.eurprd09.prod.outlook.com (2603:10a6:800:7e::18) To SN1PR12MB2431.namprd12.prod.outlook.com (2603:10b6:802:27::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=arturp@synopsys.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [84.53.141.185] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 410a0eb8-4cc2-4a5d-b02a-08d6c4b9c599 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600141)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:SN1PR12MB2383; x-ms-traffictypediagnostic: SN1PR12MB2383: x-microsoft-antispam-prvs: x-forefront-prvs: 0012E6D357 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(39850400004)(396003)(376002)(346002)(189003)(199004)(6436002)(102836004)(486006)(26005)(186003)(386003)(4326008)(305945005)(2906002)(6506007)(446003)(76176011)(7736002)(97736004)(5660300002)(81156014)(66476007)(11346002)(81166006)(66556008)(6486002)(476003)(256004)(14444005)(53936002)(25786009)(107886003)(71190400001)(71200400001)(86362001)(6512007)(99286004)(15650500001)(54906003)(110136005)(316002)(2616005)(68736007)(8676002)(66066001)(6116002)(36756003)(14454004)(478600001)(2501003)(8936002)(118296001)(3846002)(66446008)(52116002)(64756008)(66946007)(73956011);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB2383;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 8X/Cuq8/aK3aXmLCxzfdAHQ1WpYi0ZgC1DUvOg4sGWjFyVeqlKPS+u7Bo+y9khf9yxdxKUtfGAc+9A2/BqWdsKdCLHg4afO4oHSDFZVQJiXqDzD7WyMGn94CSHi8mc6uWGN99S8x0d3et7h+3NlEnNRVrSd4UHSBzil7pN+qe8HMgAg8h/IHXukj2rTvrfr3JzyzW3jc0ZjPFvmSCtDfR3qxTgko9SjpP8kif18HcAIKD5iE02LyHuzjYRQqSlUeogV919mGTy63OctxKb7fn2tuQK+oPgVPVOyYQjIuoyjEk4+n5GF2z2zLzbaB8AsO2G8HDVlaYi6OBPDIbi7OUdpSJHvd64O2HqzC5SWH2nJcJxglK6vOYlRV/vpDMTpXuhc4aY4pdE62bZ/4vi89Q1lR3LQPfGg/OAq8HRFcxf0= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 410a0eb8-4cc2-4a5d-b02a-08d6c4b9c599 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2019 11:25:49.4520 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c33c9f88-1eb7-4099-9700-16013fd9e8aa X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2383 X-OriginatorOrg: synopsys.com Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Added a new flow of entering and exiting hibernation when PC is hibernated or suspended. Signed-off-by: Artur Petrosyan --- drivers/usb/dwc2/hcd.c | 128 +++++++++++++++++++++++++++++++------------------ 1 file changed, 81 insertions(+), 47 deletions(-) diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index 45d4a3e1ebd2..f1e92a287cb1 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -4510,35 +4510,54 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd) if (hsotg->op_state == OTG_STATE_B_PERIPHERAL) goto unlock; - if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL || + if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE || hsotg->flags.b.port_connect_status == 0) goto skip_power_saving; - /* - * Drive USB suspend and disable port Power - * if usb bus is not suspended. - */ - if (!hsotg->bus_suspended) { - hprt0 = dwc2_read_hprt0(hsotg); - hprt0 |= HPRT0_SUSP; - hprt0 &= ~HPRT0_PWR; - dwc2_writel(hsotg, hprt0, HPRT0); - spin_unlock_irqrestore(&hsotg->lock, flags); - dwc2_vbus_supply_exit(hsotg); - spin_lock_irqsave(&hsotg->lock, flags); - } + switch (hsotg->params.power_down) { + case DWC2_POWER_DOWN_PARAM_PARTIAL: + /* + * Drive USB suspend and disable port Power + * if usb bus is not suspended. + */ + if (!hsotg->bus_suspended) { + hprt0 = dwc2_read_hprt0(hsotg); + hprt0 |= HPRT0_SUSP; + hprt0 &= ~HPRT0_PWR; + dwc2_writel(hsotg, hprt0, HPRT0); + spin_unlock_irqrestore(&hsotg->lock, flags); + dwc2_vbus_supply_exit(hsotg); + spin_lock_irqsave(&hsotg->lock, flags); + } - /* Enter partial_power_down */ - ret = dwc2_enter_partial_power_down(hsotg); - if (ret) { - if (ret != -ENOTSUPP) - dev_err(hsotg->dev, - "enter partial_power_down failed\n"); + /* Enter partial_power_down */ + ret = dwc2_enter_partial_power_down(hsotg); + if (ret) { + if (ret != -ENOTSUPP) + dev_err(hsotg->dev, + "enter partial_power_down failed\n"); + goto skip_power_saving; + } + hsotg->bus_suspended = true; + break; + case DWC2_POWER_DOWN_PARAM_HIBERNATION: + if (!hsotg->bus_suspended) { + /* Enter hibernation */ + spin_unlock_irqrestore(&hsotg->lock, flags); + ret = dwc2_enter_hibernation(hsotg, 1); + spin_lock_irqsave(&hsotg->lock, flags); + if (ret && ret != -ENOTSUPP) + dev_err(hsotg->dev, + "%s: enter hibernation failed\n", + __func__); + } else { + goto skip_power_saving; + } + break; + default: goto skip_power_saving; } - hsotg->bus_suspended = true; - /* Ask phy to be suspended */ if (!IS_ERR_OR_NULL(hsotg->uphy)) { spin_unlock_irqrestore(&hsotg->lock, flags); @@ -4564,17 +4583,17 @@ static int _dwc2_hcd_resume(struct usb_hcd *hcd) int ret = 0; u32 hprt0; - hprt0 = dwc2_read_hprt0(hsotg); - spin_lock_irqsave(&hsotg->lock, flags); - if (dwc2_is_device_mode(hsotg)) + if (!hsotg->bus_suspended) goto unlock; if (hsotg->lx_state != DWC2_L2) goto unlock; - if (hsotg->params.power_down != DWC2_POWER_DOWN_PARAM_PARTIAL || + hprt0 = dwc2_read_hprt0(hsotg); + + if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE || hprt0 & HPRT0_CONNSTS) { hsotg->lx_state = DWC2_L0; goto unlock; @@ -4597,36 +4616,51 @@ static int _dwc2_hcd_resume(struct usb_hcd *hcd) spin_lock_irqsave(&hsotg->lock, flags); } - /* Exit partial_power_down */ - ret = dwc2_exit_partial_power_down(hsotg, true); - if (ret && (ret != -ENOTSUPP)) - dev_err(hsotg->dev, "exit partial_power_down failed\n"); + switch (hsotg->params.power_down) { + case DWC2_POWER_DOWN_PARAM_PARTIAL: - hsotg->lx_state = DWC2_L0; + /* Exit partial_power_down */ + ret = dwc2_exit_partial_power_down(hsotg, true); + if (ret && (ret != -ENOTSUPP)) + dev_err(hsotg->dev, "exit partial_power_down failed\n"); - spin_unlock_irqrestore(&hsotg->lock, flags); + hsotg->lx_state = DWC2_L0; - if (hsotg->bus_suspended) { - spin_lock_irqsave(&hsotg->lock, flags); - hsotg->flags.b.port_suspend_change = 1; spin_unlock_irqrestore(&hsotg->lock, flags); - dwc2_port_resume(hsotg); - } else { - dwc2_vbus_supply_init(hsotg); - /* Wait for controller to correctly update D+/D- level */ - usleep_range(3000, 5000); + if (hsotg->bus_suspended) { + spin_lock_irqsave(&hsotg->lock, flags); + hsotg->flags.b.port_suspend_change = 1; + spin_unlock_irqrestore(&hsotg->lock, flags); + dwc2_port_resume(hsotg); + } else { + dwc2_vbus_supply_init(hsotg); - /* - * Clear Port Enable and Port Status changes. - * Enable Port Power. - */ - dwc2_writel(hsotg, HPRT0_PWR | HPRT0_CONNDET | + /* Wait for controller to correctly update D+/D- level */ + usleep_range(3000, 5000); + + /* + * Clear Port Enable and Port Status changes. + * Enable Port Power. + */ + dwc2_writel(hsotg, HPRT0_PWR | HPRT0_CONNDET | HPRT0_ENACHG, HPRT0); - /* Wait for controller to detect Port Connect */ - usleep_range(5000, 7000); + /* Wait for controller to detect Port Connect */ + usleep_range(5000, 7000); + } + break; + case DWC2_POWER_DOWN_PARAM_HIBERNATION: + + /* Exit host hibernation. */ + if (hsotg->hibernated) + dwc2_exit_hibernation(hsotg, 0, 0, 1); + break; + default: + goto unlock; } + spin_unlock_irqrestore(&hsotg->lock, flags); + return ret; unlock: spin_unlock_irqrestore(&hsotg->lock, flags);