Received: by 2002:ac2:5a04:0:0:0:0:0 with SMTP id q4csp972459lfn; Fri, 18 Feb 2022 02:01:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJwEQPz/uKE31yj/JH7CyYSvl3O+1EYgZUMRmeHboGfwW+g7A0R9Nh0Xqg30OtKxiQSc6VO6 X-Received: by 2002:a17:903:244f:b0:14e:d886:3b5c with SMTP id l15-20020a170903244f00b0014ed8863b5cmr6772076pls.146.1645178494208; Fri, 18 Feb 2022 02:01:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645178494; cv=none; d=google.com; s=arc-20160816; b=NRis/2ks0efXv+OeansTahVJQbrjGZdnXl2qo/+pXm+ieaNIhj9Ac5jOsZrUeXDIs4 qPIECtgGOiCMr5nU8diWpnGIISfarhg7/2Isoluh7O9dZ5Gn+Kbg96xlBVnBXFgHBO1y PJ9YaSAGmWH5z1FCgj+ElzYz45c6ib/JQTFDDM7kD14hFS5XK/2ugV+CvgStk1bKgRrD r++YbYyq2teeko1dMtxlYY0xZSUSvsYFLi15mVfISUmq3RhjGt3zqofLKwWCA6hMtg5H k9rKFB88JnAKiDyWhVfCD07U8HrcVFXWuFrFT1t6CqEDb8HFkmoFxB9f9lCnpzx1JmxV numg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:mime-version:message-id:date:subject:cc:from :dkim-signature; bh=5ZdztmiUZEJkMgmXrReLjUq+5pxyCYZ2a0fG4eNTku0=; b=DEZGLLTApsWUGQaeEcA7CzWkQf9BeJEe8ARTImhjI3q+Of1v4c1ChtH68lOs0F1cxb QV+wPN2VSdJileSi8VYQgOFMVwERhGM1d9YAwtCmKY9+J8nSDHdOuMec17/Pyq0ibtlS ZSs3FoiIVL881dbSVNyw+IfY+IgRN28JFlILWyqAlC8R4dhPgbv3rk945aC0Z+tMPhUs 8PmdBvv9rVzGMTRVb1LJVqSewJGpnY4QCtYif58f8TZOThbKJZqkTinCkP+aSUEFIE/f 7Dt7pPNkMT8aAWzAJEeKIZHK5z3D2RBHr6k3pZVksu2aZod80oq4vjfFGsAeqPBq0weo Xnnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ti.com header.s=ti-com-17Q1 header.b=pVBob8gj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 131si2161842pgh.546.2022.02.18.02.01.20; Fri, 18 Feb 2022 02:01:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@ti.com header.s=ti-com-17Q1 header.b=pVBob8gj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233610AbiBRJeY (ORCPT + 99 others); Fri, 18 Feb 2022 04:34:24 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:52024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232058AbiBRJeX (ORCPT ); Fri, 18 Feb 2022 04:34:23 -0500 Received: from lelv0142.ext.ti.com (lelv0142.ext.ti.com [198.47.23.249]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC94213F46; Fri, 18 Feb 2022 01:34:05 -0800 (PST) Received: from fllv0034.itg.ti.com ([10.64.40.246]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id 21I9XuT5012082; Fri, 18 Feb 2022 03:33:56 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1645176836; bh=5ZdztmiUZEJkMgmXrReLjUq+5pxyCYZ2a0fG4eNTku0=; h=From:To:CC:Subject:Date; b=pVBob8gjChKwoGyBWG+d6SaS3B7daockWs5xvWXjOBEhvSFGeN6pnKTbtbTSPomA2 waatfQ/sFs6TvR79wP0SLtrJxOHIR0iSz5ZmywI96reo3ii2KkWoMhCSUrZG9rSaGJ Ru1RSFktd+k5w2qWgZP/vxBtoKVBbQJRszNNS3zU= Received: from DFLE110.ent.ti.com (dfle110.ent.ti.com [10.64.6.31]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 21I9XuMS107473 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 18 Feb 2022 03:33:56 -0600 Received: from DFLE104.ent.ti.com (10.64.6.25) by DFLE110.ent.ti.com (10.64.6.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14; Fri, 18 Feb 2022 03:33:55 -0600 Received: from fllv0039.itg.ti.com (10.64.41.19) by DFLE104.ent.ti.com (10.64.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14 via Frontend Transport; Fri, 18 Feb 2022 03:33:55 -0600 Received: from gsaswath-HP-ProBook-640-G5.dal.design.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0039.itg.ti.com (8.15.2/8.15.2) with ESMTP id 21I9XqsO126362; Fri, 18 Feb 2022 03:33:53 -0600 From: Aswath Govindraju CC: Kishon Vijay Abraham I , Vignesh Raghavendra , Aswath Govindraju , Felipe Balbi , Greg Kroah-Hartman , , Subject: [PATCH] usb: dwc3: drd: Add support for extcon drd notifier even with usb role switch config enabled Date: Fri, 18 Feb 2022 15:03:47 +0530 Message-ID: <20220218093348.1098-1-a-govindraju@ti.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In AM62x SoC, the USB controller supports USB role switching by using the extcon drd notifiers. The current implementation does not accommodate this. If usb role switching is enabled then drd notifiers are not added. If usb role switching is not enabled then the dr_mode is forced to peripheral (dwc3_get_dr_mode) and role switching will not be possible(dwc3_set_mode). Therefore, rearrange the "if else" logic such that extcon drd notifiers can be added even with usb role switching enabled. Signed-off-by: Aswath Govindraju --- drivers/usb/dwc3/drd.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c index b919ea3d87f2..0e86b1d8b50c 100644 --- a/drivers/usb/dwc3/drd.c +++ b/drivers/usb/dwc3/drd.c @@ -583,12 +583,7 @@ int dwc3_drd_init(struct dwc3 *dwc) if (IS_ERR(dwc->edev)) return PTR_ERR(dwc->edev); - if (ROLE_SWITCH && - device_property_read_bool(dwc->dev, "usb-role-switch")) { - ret = dwc3_setup_role_switch(dwc); - if (ret < 0) - return ret; - } else if (dwc->edev) { + if (dwc->edev) { dwc->edev_nb.notifier_call = dwc3_drd_notifier; ret = extcon_register_notifier(dwc->edev, EXTCON_USB_HOST, &dwc->edev_nb); @@ -598,7 +593,14 @@ int dwc3_drd_init(struct dwc3 *dwc) } dwc3_drd_update(dwc); - } else { + } + + if (ROLE_SWITCH && + device_property_read_bool(dwc->dev, "usb-role-switch")) { + ret = dwc3_setup_role_switch(dwc); + if (ret < 0) + return ret; + } else if (!dwc->edev) { dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_OTG); /* use OTG block to get ID event */ -- 2.17.1