From patchwork Fri Apr 12 13:44: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: 10898445 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 0C9DE14DB for ; Fri, 12 Apr 2019 13:44:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D9A69284C0 for ; Fri, 12 Apr 2019 13:44:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CB35428868; Fri, 12 Apr 2019 13:44:24 +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 2EC6C284C0 for ; Fri, 12 Apr 2019 13:44:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726829AbfDLNoX (ORCPT ); Fri, 12 Apr 2019 09:44:23 -0400 Received: from us01smtprelay-2.synopsys.com ([198.182.60.111]:41350 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbfDLNoX (ORCPT ); Fri, 12 Apr 2019 09:44:23 -0400 Received: from mailhost.synopsys.com (dc8-mailhost1.synopsys.com [10.13.135.209]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtprelay.synopsys.com (Postfix) with ESMTPS id 1356B10C29EA; Fri, 12 Apr 2019 06:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1555076663; bh=v+9OxjaWjTsT3Sz7TqYx6KCARUL2gWv5o0BpBc79B5Y=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=NdLo+VPCu6WocATFdq1tDI3waZQBw8wQJ+82cj0okbzKgL+T9vyPP5GoRsxJF8WI3 tVdriBk3QGJ1Zz0VJCpk0vOM9QdnZz6Ln0m3XjbDCQUwamaupPFP168bpVRhz0Y2si mA7tarKS5IFPham2jCOumUSATRd/X3vOq4N90hyN2yfo4B08ynQOcLNQAJuGuROE3Y nTCjyo1ifPFbKLRaES0+amM8ofk2GbO7vZMY/WaMy/cuXLfwijny+hvo4y/+XXCsUg lRiKmCZIO3KOdcHFBvV+LTRVa5dvGw+sT/wbqBArOTsN8hiBEvEkgQXCKf0yuq8LEl gM0/b3ISIATHQ== 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 D217AA006A; Fri, 12 Apr 2019 13:44:22 +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, 12 Apr 2019 06:44:22 -0700 Received: from NAM04-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, 12 Apr 2019 06:44:22 -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=tJNMPU8GIXg8d7KRqD7RKDREtAC6fYxqFTQgS7s33uPqdL47wJ5UwCeOemF33subHpNPMErI6earpg8H3zTkqX/LPwHL/r92lUBcNbq3ATZEpWj5eAszjYXIVLYey+Jlq6J2c24cBwph1SFuF8fDPDjYY5ciE/Lsgzber4CpXXc= Received: from SN1PR12MB2431.namprd12.prod.outlook.com (52.132.195.146) by SN1PR12MB0512.namprd12.prod.outlook.com (10.162.105.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1792.17; Fri, 12 Apr 2019 13:44:18 +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.1771.021; Fri, 12 Apr 2019 13:44:18 +0000 From: Artur Petrosyan To: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , "linux-usb@vger.kernel.org" CC: John Youn , Artur Petrosyan Subject: [PATCH 06/14] usb: dwc2: Add part. power down exit from dwc2_conn_id_status_change(). Thread-Topic: [PATCH 06/14] usb: dwc2: Add part. power down exit from dwc2_conn_id_status_change(). Thread-Index: AQHU8TXTw6FMdm7vbEWwDIDxru8qeg== Date: Fri, 12 Apr 2019 13:44:18 +0000 Message-ID: <38533d799cc5cd10f6d4ca39e8423820a98ebda6.1555075928.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: BYAPR01CA0011.prod.exchangelabs.com (2603:10b6:a02:80::24) 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: [209.107.194.221] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92980a36-faeb-4791-ef8f-08d6bf4cf50d x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(2017052603328)(7193020);SRVR:SN1PR12MB0512; x-ms-traffictypediagnostic: SN1PR12MB0512: x-microsoft-antispam-prvs: x-forefront-prvs: 0005B05917 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(39850400004)(366004)(346002)(376002)(136003)(199004)(189003)(71200400001)(14454004)(476003)(71190400001)(36756003)(68736007)(107886003)(3846002)(118296001)(6116002)(6436002)(106356001)(4326008)(105586002)(2906002)(256004)(25786009)(66066001)(81156014)(99286004)(186003)(7736002)(8676002)(26005)(53936002)(6486002)(102836004)(2501003)(386003)(6506007)(81166006)(86362001)(52116002)(6512007)(110136005)(316002)(76176011)(305945005)(97736004)(5660300002)(54906003)(486006)(446003)(11346002)(478600001)(8936002)(2616005);DIR:OUT;SFP:1102;SCL:1;SRVR:SN1PR12MB0512;H:SN1PR12MB2431.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:3; received-spf: None (protection.outlook.com: synopsys.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: dDPD4Oe79fH5tLk78W8bAj3jbximvgc/jDOVQ8Qsoajz1fXlNq5s07guKtUjSDpDVBVmhG9WGlYcAmt6TvdzEk7yhaYys3/3shO48vzSd4dycAhrDqy3XP+iCEkKM75MPU5j4xD4f2qFf1tVFm0F6xSTPGMr8EYJT/pQtf9RobP+0xEydeOcZmQ3+SPECpiGGJOSd5Eyo/w87y/0p4jgrZJr4y7PmUSWSpqqgtaVirNjzZl72z10ZbyDTJlLgxCxb/8C28IME6KuFozrt0y0IxHPHBkx5NBfkK/InH4zMNfJJ5/rVRyiZbWcIUFtfxzTHS9JmZS60cnJ1ReXNWu+WzrVrIrgBtwitqzkzEzhSr4GnOb1pZiSffUSLyYVET5ofhvixgAbMYa/3h8zrNZ2hL6xpTmsZ9j1Z88W/amQqhE= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 92980a36-faeb-4791-ef8f-08d6bf4cf50d X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2019 13:44:18.2784 (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: SN1PR12MB0512 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);