Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp825755rwb; Sun, 6 Nov 2022 14:36:53 -0800 (PST) X-Google-Smtp-Source: AMsMyM5UypTh4dSHB91BoZ4yYFFUhiUE/DZBMtffQZqwZ9EXYlfKfPjJcnw6yoW6CV30p11EYrIc X-Received: by 2002:a17:902:efc7:b0:187:c49:5a0a with SMTP id ja7-20020a170902efc700b001870c495a0amr43577928plb.97.1667774213171; Sun, 06 Nov 2022 14:36:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1667774213; cv=none; d=google.com; s=arc-20160816; b=rMb2ITI4IW/S9Nk/Y+/6RyLy9wO7DofI21P0hDZMTbvPCF6hLwa+fOa9uknaghcalZ kI+WX6tCCOSnSXhq388HFj6JXh/S7ZSr20ZY1/2c4pqvP+2RPHbd7Ga3vDg/iIDU4RU3 ZF6gNIbbdVzr3vs4pTQEW3gIfNiaApOY4gg4q/wo7bhktboYe/5hBFPaSouYZZ3N6M/B u+1C1wj0EpCGyFU9XWp3LoaIT2ZUXTE2KZAFfsa6VoREfs0NrI5aiAvE0kw7IAlOOGks MGTkR/92YB2QhWvK8WOB3ZaPuKB1IX6MKevEWPlUhUH5j9pNC+11caRnOCGfpMLPWE11 pcTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=1P6cQJLB3ZzwwPBXeoVw7g6REgTfuWG5cmRqGfMdtqg=; b=vRsb62Ay5kBwqtFg7bcoJt3aXR2QFZNVLwQrqC/nFpnTXIDM+3H9g0MInQ9ICpq8G8 l8QnozNAi22PIdAboVeYGhxi5W8ej8ICMQYVbyLDo9IJFOUgNXOpC4xTz0HdnoQZfDwp bvW2sZ89Kb/xGdKxY5MsY84OVN4GrmIvn3T7VciBBIFFHaGJGdcxDDTtmVH8ASQn1nLH 3sYuKVtqOCXE6hv8q2MSYCQTsaWfMxffSHycFcfQbak4mN8uo0Txh6HZRrqCzXW08y6A wKtWAMuq2v3aXa9laN3nU6imixBYxh3OQF7/mC/+eD8OfIfHtuSEViHBsijhJdVeWAXF UjLQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 11-20020a63114b000000b0046f9447e5besi8760143pgr.713.2022.11.06.14.36.41; Sun, 06 Nov 2022 14:36:53 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230204AbiKFV5o (ORCPT + 96 others); Sun, 6 Nov 2022 16:57:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230003AbiKFV5n (ORCPT ); Sun, 6 Nov 2022 16:57:43 -0500 X-Greylist: delayed 574 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sun, 06 Nov 2022 13:57:41 PST Received: from soltyk.jannau.net (soltyk.jannau.net [144.76.91.90]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FA2A111C for ; Sun, 6 Nov 2022 13:57:41 -0800 (PST) Received: from robin.home.jannau.net (p54acc2ba.dip0.t-ipconnect.de [84.172.194.186]) by soltyk.jannau.net (Postfix) with ESMTPSA id 1CEBC26F2E4; Sun, 6 Nov 2022 22:48:05 +0100 (CET) From: Janne Grunau To: linux-usb@vger.kernel.org Cc: Sven Peter , stable@kernel.org, Thinh Nguyen , Greg Kroah-Hartman , Andrey Smirnov , Andy Shevchenko , linux-kernel@vger.kernel.org Subject: [PATCH 1/1] usb: dwc3: Do not get extcon device when usb-role-switch is used Date: Sun, 6 Nov 2022 22:48:04 +0100 Message-Id: <20221106214804.2814-1-j@jannau.net> X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The change breaks device tree based platforms with PHY device and use usb-role-switch instead of an extcon switch. extcon_find_edev_by_node() will return EPROBE_DEFER if it can not find a device so probing without an extcon device will be deferred indefinitely. Fix this by explicitly checking for usb-role-switch. At least the out-of-tree USB3 support on Apple silicon based platforms using dwc3 with tipd USB Type-C and PD controller is affected by this issue. Fixes: d182c2e1bc92 ("usb: dwc3: Don't switch OTG -> peripheral if extcon is present") Cc: stable@kernel.org Signed-off-by: Janne Grunau --- drivers/usb/dwc3/core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index c0e7c76dc5c8..1f348bc867c2 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1710,6 +1710,16 @@ static struct extcon_dev *dwc3_get_extcon(struct dwc3 *dwc) if (device_property_read_string(dev, "linux,extcon-name", &name) == 0) return extcon_get_extcon_dev(name); + /* + * Check explicitly if "usb-role-switch" is used since + * extcon_find_edev_by_node() can not be used to check the absence of + * an extcon device. In the absence of an device it will always return + * EPROBE_DEFER. + */ + if (IS_ENABLED(CONFIG_USB_ROLE_SWITCH) && + device_property_read_bool(dev, "usb-role-switch")) + return NULL; + /* * Try to get an extcon device from the USB PHY controller's "port" * node. Check if it has the "port" node first, to avoid printing the -- 2.37.3