From patchwork Tue Dec 20 00:45:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Kaehlcke X-Patchwork-Id: 34845 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2700558wrn; Mon, 19 Dec 2022 16:52:05 -0800 (PST) X-Google-Smtp-Source: AMrXdXtFLjMsUhP5lGDAPbWpTaUld1k+bywoz0gNifCGmsLLlWvA0rgkAaIDYBou/FVaEL1TcWcl X-Received: by 2002:a17:907:9a8c:b0:7fc:3fe0:6053 with SMTP id km12-20020a1709079a8c00b007fc3fe06053mr9016628ejc.6.1671497525406; Mon, 19 Dec 2022 16:52:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671497525; cv=none; d=google.com; s=arc-20160816; b=BHru0ejMQPd7jjE7Dps+PaYwQQzjKa8aI29LsnrnhB606VsWQOdyz9401OPx5zAa+f f8DnT+zrn8K9sdH2Fz29Fyh9ar8U5LXBC5lSEQaxt/tDIK0OZWLp7h5bi0TqaFAs0Wgc FxmX4gRWRLq2g5LKxr4AEr8Lu3Pegb4hRcBnELgK0AXZzbnKSdNe8pZSQ8aBYyx7iQ3A uRHqPsgWpYBr9OnN+AcVTrZ37Yt6cyDLqBxgIlnKk9ivSgVSJwut+7SUwupn0/xDvfLf K9w/2VqUkkyTkPqvfGpCGaOwpQoj5g/9vPmdZjIRirNZcUzcvGKKcNIgkB6CpNh5evfp 78Qg== 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:dkim-signature; bh=/kW9afR+WJfD78PYEA9902jKuxZ9bWlkIHqcxq3mYrY=; b=zRd+dgfHWe5A+Sfb/nTuZk31zHz/j3SiMuTfJC+adI7elT6ijcP2DTGlfBFCtq+fmG KWZzQia4T/nJiREljRR1pfKahrkiJ8l0IHNMmDx1IJie2f9LmqNXbkXmsb73smUjr6/g fzsAL4xL3u5RF2lM1kwAdfukb/CUkoTvqybKGX9KX5pUBl+gNqZiaS2+gATz2HmhvIr4 f2PRHKeg68rAnXLo7BbFEJwObmWWVLZul3NqGNyEN2mAtrilNmkbcUQb3ilnU8WmYYlR hSnlfp4NNO+ifun41sTjyZjJK/b2NpwYQXFQcoG8dCi8dxpE/UGp7/Q9PZzHlzZ3uV6l rQhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=gaucniKo; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u8-20020a1709063b8800b007c19a717e70si5988662ejf.964.2022.12.19.16.51.42; Mon, 19 Dec 2022 16:52:05 -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=pass header.i=@chromium.org header.s=google header.b=gaucniKo; 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=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229527AbiLTApJ (ORCPT + 99 others); Mon, 19 Dec 2022 19:45:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229477AbiLTApI (ORCPT ); Mon, 19 Dec 2022 19:45:08 -0500 Received: from mail-il1-x131.google.com (mail-il1-x131.google.com [IPv6:2607:f8b0:4864:20::131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9EF9C1D7 for ; Mon, 19 Dec 2022 16:45:06 -0800 (PST) Received: by mail-il1-x131.google.com with SMTP id u8so2088082ilq.13 for ; Mon, 19 Dec 2022 16:45:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=/kW9afR+WJfD78PYEA9902jKuxZ9bWlkIHqcxq3mYrY=; b=gaucniKopVtZLNUzEBZkqkKHLOv9U85lRvjbCRadwBozy11RFwpAw+P//ndaM+nLWz tNX5dyYos/5QC5CJQgbKkjgFcVp4ic7jd/1rdfT39yI9ZrW6ufAnN0jWkM8X06w8QeWN o/WUP1eItbin+c5NKzhhNh2fVbhpKPXK46Jf4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/kW9afR+WJfD78PYEA9902jKuxZ9bWlkIHqcxq3mYrY=; b=NNocYMg+NHY11hDE0Csg5ieNvvw2LPbpLfjnER7aTZ3CMHEv0Eb75NnahR3s2MqSMT Qibf9LAape0JyxF7XlMvgpmhQdlxUNhfkjfg0IUmLlDH9fBX1+/esDl/zJtFQnIS/+YF lBS8kXS7rJHKGVPkXW11AVqCEjKdOPoTXKHXbChIj+IN7wzFWptGNLDcfCU3yzVK2Wsu RqwW5LdGf/mdAyA2CkhC/D9BQ0TgZLIJC1RChE4zhTz+pD284eEA59NShyu4IllPFOvu 0Gr8RVHQ6aksNSXzpTlsb+51Ckue4IAEtF1svmmGB8q6u2iZPO8DzAh4Srx2LVAjZKxC XNCA== X-Gm-Message-State: ANoB5pk73GQvl7Om8f5pHbZm2FMd4nVyP2DBmjK68zFlpogAA6U0G2sr i4oPkGYQuFNPLkATIK82gdXuyA== X-Received: by 2002:a92:d5d1:0:b0:304:bd9f:1aed with SMTP id d17-20020a92d5d1000000b00304bd9f1aedmr18106323ilq.6.1671497106047; Mon, 19 Dec 2022 16:45:06 -0800 (PST) Received: from localhost (30.23.70.34.bc.googleusercontent.com. [34.70.23.30]) by smtp.gmail.com with UTF8SMTPSA id z6-20020a92cec6000000b0030380d1e24bsm3788833ilq.30.2022.12.19.16.45.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 19 Dec 2022 16:45:05 -0800 (PST) From: Matthias Kaehlcke To: Greg Kroah-Hartman Cc: Douglas Anderson , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Stefan Wahren , Matthias Kaehlcke , Ravi Chandra Sadineni Subject: [PATCH] usb: misc: onboard_usb_hub: Don't defer probing for 'incomplete' DT nodes Date: Tue, 20 Dec 2022 00:45:01 +0000 Message-Id: <20221220004427.1.If5e7ec83b1782e4dffa6ea759416a27326c8231d@changeid> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752692189209484613?= X-GMAIL-MSGID: =?utf-8?q?1752692189209484613?= Some boards have device tree nodes for USB hubs supported by the onboard_usb_hub driver, but the nodes don't have all properties needed for the driver to work properly (which is not necessarily an error in the DT). Currently _find_onboard_hub() returns -EPROBE_DEFER in such cases, which results in an unusable USB hub, since successive probes fail in the same way. Use the absence of the "vdd" supply as an indicator of such 'incomplete' DT nodes and return -ENODEV. Fixes: 8bc063641ceb ("usb: misc: Add onboard_usb_hub driver") Reported-by: Stefan Wahren Signed-off-by: Matthias Kaehlcke --- drivers/usb/misc/onboard_usb_hub.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/usb/misc/onboard_usb_hub.c b/drivers/usb/misc/onboard_usb_hub.c index d63c63942af1..2968da515016 100644 --- a/drivers/usb/misc/onboard_usb_hub.c +++ b/drivers/usb/misc/onboard_usb_hub.c @@ -363,6 +363,15 @@ static struct onboard_hub *_find_onboard_hub(struct device *dev) hub = dev_get_drvdata(&pdev->dev); put_device(&pdev->dev); + /* + * Some boards have device tree nodes for USB hubs supported by this + * driver, but the nodes don't have all properties needed for the driver + * to work properly. Use the absence of the "vdd" supply as an indicator + * of such nodes. + */ + if (!of_get_property(pdev->dev.of_node, "vdd", NULL)) + return ERR_PTR(-ENODEV); + /* * The presence of drvdata ('hub') indicates that the platform driver * finished probing. This handles the case where (conceivably) we could