Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2843142pxp; Tue, 8 Mar 2022 03:03:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJzjCPSVeoy93zdMJQJsgTCOv7fta6U84mTHEhZsZumSumljm5H3yIPw6CiUltxslhlpW8WI X-Received: by 2002:a05:6402:35d2:b0:416:4c38:1537 with SMTP id z18-20020a05640235d200b004164c381537mr8072503edc.260.1646737395764; Tue, 08 Mar 2022 03:03:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646737395; cv=none; d=google.com; s=arc-20160816; b=HfC4OIrWicJLUf1L3Zqc3/JQvfhki/G+jjCnzazUpoKeZNmSHEqw3pG+kox97LCexR ThhOaZBY/ipERxt7nNk5+pKJkO0wL1mM8COpGvFYoF967ryZCFWn1BWZwlMpd8s746jR AwylAG1ZvpYn3OMx5GbNq10ojkdurHDmlPmczp+ufWG3pCvYovVbbMj1G78ll8oTBoVm Ymgr8z88uKe3WxCmgShojlpVSmwlwcIzIlBFtCaQGVl/JM7yPMHmMhUh1R0NLpWXTibv IWuGpNk/nHe4lxJ1wUXOACMtBuTXzjLgj1hYbVpidCKcsntha9qYrxLPJmeI6n2Bfe5l 0lSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=Z8YcLICd5ozOotLHacoo6o3IiMpV2MGmEAAbrOhugvs=; b=n3hsjTfiG6N0mYtPTklXTZ7cbScZPuM2baw6wXtYQuY1NnffyKEAJTTQDG8Bl/voks +CqkefY3NfpzLmC6IGf9YTDgz42Z0U/YxqjUO8bJAP4cf51FJwz++Vedued4R6ioar5k 0ldQqyiMyTV3FgKXK9J9JmUS8urD9aURzNEyKbt1zOoAPllplYPmV6js4bddpVLCy4wM 01z479/FYTs6SXd6ox8XIMleyOyEeKZdouI0cMuOGXMyc/jArYD97Zo6t3sxP8DZeXl3 rFML324GKQ8FOOMDm0WY+0JGv8w9f+zQoBf7vrdXb/2ucPPxi0DWLAjHY7OpqAWUNOne 0FSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=E6bg8mbI; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d11-20020a50fe8b000000b00412b2ce732esi9640548edt.443.2022.03.08.03.02.51; Tue, 08 Mar 2022 03:03:15 -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=@google.com header.s=20210112 header.b=E6bg8mbI; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244281AbiCHDf5 (ORCPT + 99 others); Mon, 7 Mar 2022 22:35:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242309AbiCHDfz (ORCPT ); Mon, 7 Mar 2022 22:35:55 -0500 Received: from mail-yw1-x1136.google.com (mail-yw1-x1136.google.com [IPv6:2607:f8b0:4864:20::1136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D253F32EF7 for ; Mon, 7 Mar 2022 19:34:59 -0800 (PST) Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-2dbfe58670cso187787397b3.3 for ; Mon, 07 Mar 2022 19:34:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Z8YcLICd5ozOotLHacoo6o3IiMpV2MGmEAAbrOhugvs=; b=E6bg8mbI/8B/nte9RAMX4UNf4tzDxc/13fNgc1359WYoXXBJhgU2AHy1Mt5dmk6ORV CZqWREQJdED5OsAd1DZ5/pahBNk2JABS9Dh5CDvx+PAQ8JdyJhk49uVPPEfmAN7yJXCJ c2j5jsDZP/cEoE98KPj9mxU6rGVBeWLoquYAV9n43PFXgnhSgCkJbC7W3YPSDcuIijDH n5NAn/WZzemkI56p7sfCBO8NUhxjIpU3oAIgcx+Cfc0TSYTGFA/z2gUua5zY3viHPNv/ rGeXmQiR54M2xlSvwsF78wCgbiI7GqLOZe3cwDcI94mif1dFm24jA4du/mAtKFu6LnkV MDmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Z8YcLICd5ozOotLHacoo6o3IiMpV2MGmEAAbrOhugvs=; b=2HVSMapX3EalveTvVeklsnSel73z39DxSj/zNqgHEK+rqa/4XCHiZNpmv/Rtrkvnzr lxRCeJCLYXGEDP9gksusLFFA3Z0SAweyA+B8CfTzIOAppL95BnmVDNn3la8ToOEK7fZK yaSiUffafFh/qginm3sG3LDmKeShTzX4mqF2x2Glua1R6iozrhhPzQdnbsrLG0aUbnMv zKR7Uj6XWbb7R6320wWHbL7mz6/CYJ2Bxk8WQcZyIL2mKziMZMtG1weX+cCwHll9vJaX klVFCDp/l1U+IhI06pP8fZhe4bmetli6tPSNrYhPPJSilWJpYpXcR7GtqFre+rTjo8l3 UQ5w== X-Gm-Message-State: AOAM531U9QesQnmccl63Z8e1GEyOZf6L5J7/QhGvxoeznVVX17DMawjj UjQrao0dNq/5KQvNxEWnl4HunSN0ozf0e/JOxbcl3w== X-Received: by 2002:a0d:f844:0:b0:2db:972c:56e0 with SMTP id i65-20020a0df844000000b002db972c56e0mr11333696ywf.126.1646710498872; Mon, 07 Mar 2022 19:34:58 -0800 (PST) MIME-Version: 1.0 References: <20220302211100.65264-1-paul.kocialkowski@bootlin.com> <20220302211100.65264-2-paul.kocialkowski@bootlin.com> In-Reply-To: From: Saravana Kannan Date: Mon, 7 Mar 2022 19:34:22 -0800 Message-ID: Subject: Re: [PATCH RFC v3 1/8] of: Mark interconnects property supplier as optional To: Rob Herring Cc: Paul Kocialkowski , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Michael Turquette , Stephen Boyd , Frank Rowand , Maxime Ripard , Laurent Pinchart , Thomas Petazzoni Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL 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 On Mon, Mar 7, 2022 at 3:21 PM Rob Herring wrote: > > +Saravana > > On Wed, Mar 02, 2022 at 10:10:53PM +0100, Paul Kocialkowski wrote: > > In order to set their correct DMA address offset, some devices rely on > > the device-tree interconnects property which identifies an > > interconnect node that provides a dma-ranges property that can be used > > to set said offset. > > > > Since that logic is all handled by the generic openfirmware and driver > > code, the device-tree description could be enough to properly set > > the offset. > > > > However the interconnects property is currently not marked as > > optional, which implies that a driver for the corresponding node > > must be loaded as a requirement. When no such driver exists, this > > results in an endless EPROBE_DEFER which gets propagated to the > > calling driver. This ends up in the driver never loading. > > > > Marking the interconnects property as optional makes it possible > > to load the driver in that situation, since the EPROBE_DEFER return > > code will no longer be propagated to the driver. > > > > There might however be undesirable consequences with this change, > > which I do not fully grasp at this point. Temporary NACK till I get a bit more time to take a closer look. I really don't like the idea of making interconnects optional. IOMMUs and DMAs were exceptions. Also, we kinda discuss similar issues in LPC. We had some consensus on how to handle these and I noted them all down with a lot of details -- let me go take a look at those notes again and see if I can send a more generic patch. Paul, Can you point to the DTS (not DTSI) file that corresponds to this? Also, if it's a builtin kernel, I'd recommend setting deferred_probe_timeout=1 and that should take care of it too. -Saravana > > > > Signed-off-by: Paul Kocialkowski > > --- > > drivers/of/property.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/of/property.c b/drivers/of/property.c > > index 8e90071de6ed..ef7c56b510e8 100644 > > --- a/drivers/of/property.c > > +++ b/drivers/of/property.c > > @@ -1365,7 +1365,7 @@ static struct device_node *parse_interrupts(struct device_node *np, > > > > static const struct supplier_bindings of_supplier_bindings[] = { > > { .parse_prop = parse_clocks, }, > > - { .parse_prop = parse_interconnects, }, > > + { .parse_prop = parse_interconnects, .optional = true,}, > > { .parse_prop = parse_iommus, .optional = true, }, > > { .parse_prop = parse_iommu_maps, .optional = true, }, > > { .parse_prop = parse_mboxes, }, > > -- > > 2.35.1 > > > >