From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C5F0C2D0BE for ; Sun, 8 Dec 2019 09:31:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5C6EF20637 for ; Sun, 8 Dec 2019 09:31:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726406AbfLHJb6 (ORCPT ); Sun, 8 Dec 2019 04:31:58 -0500 Received: from asavdk4.altibox.net ([109.247.116.15]:58452 "EHLO asavdk4.altibox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726387AbfLHJb5 (ORCPT ); Sun, 8 Dec 2019 04:31:57 -0500 Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk4.altibox.net (Postfix) with ESMTPS id C4ED58063C; Sun, 8 Dec 2019 10:31:51 +0100 (CET) Date: Sun, 8 Dec 2019 10:31:50 +0100 From: Sam Ravnborg To: Rob Clark Cc: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, aarch64-laptops@lists.linaro.org, Rob Clark , Jeffrey Hugo , open list , Bjorn Andersson , Vasily Khoruzhick , David Airlie , Laurent Pinchart , Sean Paul Subject: Re: [PATCH 2/4] drm/of: add support to find any enabled endpoint Message-ID: <20191208093150.GA21141@ravnborg.org> References: <20191207203553.286017-1-robdclark@gmail.com> <20191207203553.286017-3-robdclark@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191207203553.286017-3-robdclark@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=VcLZwmh9 c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=cm27Pg_UAAAA:8 a=e5mUnYsNAAAA:8 a=AkfTbbr1AOnX2gBTQ4oA:9 a=CjuIK1q_8ugA:10 a=xmb-EsYY8bH0VWELuYED:22 a=Vxmtnl_E_bksehYqCbjh:22 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Hi Rob. Patch looks good, one small improvement proposal. On Sat, Dec 07, 2019 at 12:35:51PM -0800, Rob Clark wrote: > From: Rob Clark > > To handle the case where there are multiple panel endpoints, only one of > which is enabled/installed, add support for a wildcard endpoint value to > request finding whichever endpoint is enabled. > > Signed-off-by: Rob Clark > --- > drivers/gpu/drm/drm_of.c | 41 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 40 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c > index 0ca58803ba46..2baf44e401b8 100644 > --- a/drivers/gpu/drm/drm_of.c > +++ b/drivers/gpu/drm/drm_of.c > @@ -219,11 +219,44 @@ int drm_of_encoder_active_endpoint(struct device_node *node, > } > EXPORT_SYMBOL_GPL(drm_of_encoder_active_endpoint); > > +static int find_enabled_endpoint(const struct device_node *node, u32 port) > +{ > + struct device_node *endpoint_node, *remote; > + u32 endpoint = 0; > + > + for (endpoint = 0; ; endpoint++) { > + endpoint_node = of_graph_get_endpoint_by_regs(node, port, endpoint); > + if (!endpoint_node) { > + pr_debug("No more endpoints!\n"); > + return -ENODEV; > + } > + > + remote = of_graph_get_remote_port_parent(endpoint_node); > + of_node_put(endpoint_node); > + if (!remote) { > + pr_debug("no valid remote node\n"); > + continue; > + } > + > + if (!of_device_is_available(remote)) { > + pr_debug("not available for remote node\n"); > + of_node_put(remote); > + continue; > + } > + > + pr_debug("found enabled endpoint %d for %s\n", endpoint, remote->name); > + of_node_put(remote); > + return endpoint; > + } > + > + return -ENODEV; > +} This function seems pretty generic. Should this be part of drivers/of/property.c - as others may have the same need? > + > /** > * drm_of_find_panel_or_bridge - return connected panel or bridge device > * @np: device tree node containing encoder output ports > * @port: port in the device tree node > - * @endpoint: endpoint in the device tree node > + * @endpoint: endpoint in the device tree node, or -1 to find an enabled endpoint > * @panel: pointer to hold returned drm_panel > * @bridge: pointer to hold returned drm_bridge Introducing a define would make it easier to use this function in the right way. For example: #define OF_ENDPOINT_FIRST -1 Then we would see this code in the user side: + ret = drm_of_find_panel_or_bridge(pdata->dev->of_node, 1, OF_ENDPOINT_FIRST, &pdata->panel, NULL); Or something like this. Sam > * > @@ -246,6 +279,12 @@ int drm_of_find_panel_or_bridge(const struct device_node *np, > if (panel) > *panel = NULL; > > + if (endpoint == -1) { > + endpoint = find_enabled_endpoint(np, port); > + if (endpoint < 0) > + return endpoint; > + } > + > remote = of_graph_get_remote_node(np, port, endpoint); > if (!remote) > return -ENODEV; > -- > 2.23.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77113C43603 for ; Sun, 8 Dec 2019 09:31:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 54EE820637 for ; Sun, 8 Dec 2019 09:31:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 54EE820637 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 92B746E2BC; Sun, 8 Dec 2019 09:31:56 +0000 (UTC) Received: from asavdk4.altibox.net (asavdk4.altibox.net [109.247.116.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id B26D86E2BC for ; Sun, 8 Dec 2019 09:31:54 +0000 (UTC) Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk4.altibox.net (Postfix) with ESMTPS id C4ED58063C; Sun, 8 Dec 2019 10:31:51 +0100 (CET) Date: Sun, 8 Dec 2019 10:31:50 +0100 From: Sam Ravnborg To: Rob Clark Subject: Re: [PATCH 2/4] drm/of: add support to find any enabled endpoint Message-ID: <20191208093150.GA21141@ravnborg.org> References: <20191207203553.286017-1-robdclark@gmail.com> <20191207203553.286017-3-robdclark@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191207203553.286017-3-robdclark@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=VcLZwmh9 c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=cm27Pg_UAAAA:8 a=e5mUnYsNAAAA:8 a=AkfTbbr1AOnX2gBTQ4oA:9 a=CjuIK1q_8ugA:10 a=xmb-EsYY8bH0VWELuYED:22 a=Vxmtnl_E_bksehYqCbjh:22 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , aarch64-laptops@lists.linaro.org, Jeffrey Hugo , linux-arm-msm@vger.kernel.org, open list , dri-devel@lists.freedesktop.org, Bjorn Andersson , Vasily Khoruzhick , David Airlie , Laurent Pinchart , Sean Paul Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgUm9iLgoKUGF0Y2ggbG9va3MgZ29vZCwgb25lIHNtYWxsIGltcHJvdmVtZW50IHByb3Bvc2Fs LgoKT24gU2F0LCBEZWMgMDcsIDIwMTkgYXQgMTI6MzU6NTFQTSAtMDgwMCwgUm9iIENsYXJrIHdy b3RlOgo+IEZyb206IFJvYiBDbGFyayA8cm9iZGNsYXJrQGNocm9taXVtLm9yZz4KPiAKPiBUbyBo YW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIHBhbmVsIGVuZHBvaW50cywg b25seSBvbmUgb2YKPiB3aGljaCBpcyBlbmFibGVkL2luc3RhbGxlZCwgYWRkIHN1cHBvcnQgZm9y IGEgd2lsZGNhcmQgZW5kcG9pbnQgdmFsdWUgdG8KPiByZXF1ZXN0IGZpbmRpbmcgd2hpY2hldmVy IGVuZHBvaW50IGlzIGVuYWJsZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogUm9iIENsYXJrIDxyb2Jk Y2xhcmtAY2hyb21pdW0ub3JnPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX29mLmMgfCA0 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIDEgZmlsZSBjaGFu Z2VkLCA0MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fb2YuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fb2YuYwo+IGluZGV4 IDBjYTU4ODAzYmE0Ni4uMmJhZjQ0ZTQwMWI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fb2YuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fb2YuYwo+IEBAIC0yMTksMTEg KzIxOSw0NCBAQCBpbnQgZHJtX29mX2VuY29kZXJfYWN0aXZlX2VuZHBvaW50KHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbm9kZSwKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fb2ZfZW5jb2Rlcl9h Y3RpdmVfZW5kcG9pbnQpOwo+ICAKPiArc3RhdGljIGludCBmaW5kX2VuYWJsZWRfZW5kcG9pbnQo Y29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpub2RlLCB1MzIgcG9ydCkKPiArewo+ICsJc3RydWN0 IGRldmljZV9ub2RlICplbmRwb2ludF9ub2RlLCAqcmVtb3RlOwo+ICsJdTMyIGVuZHBvaW50ID0g MDsKPiArCj4gKwlmb3IgKGVuZHBvaW50ID0gMDsgOyBlbmRwb2ludCsrKSB7Cj4gKwkJZW5kcG9p bnRfbm9kZSA9IG9mX2dyYXBoX2dldF9lbmRwb2ludF9ieV9yZWdzKG5vZGUsIHBvcnQsIGVuZHBv aW50KTsKPiArCQlpZiAoIWVuZHBvaW50X25vZGUpIHsKPiArCQkJcHJfZGVidWcoIk5vIG1vcmUg ZW5kcG9pbnRzIVxuIik7Cj4gKwkJCXJldHVybiAtRU5PREVWOwo+ICsJCX0KPiArCj4gKwkJcmVt b3RlID0gb2ZfZ3JhcGhfZ2V0X3JlbW90ZV9wb3J0X3BhcmVudChlbmRwb2ludF9ub2RlKTsKPiAr CQlvZl9ub2RlX3B1dChlbmRwb2ludF9ub2RlKTsKPiArCQlpZiAoIXJlbW90ZSkgewo+ICsJCQlw cl9kZWJ1Zygibm8gdmFsaWQgcmVtb3RlIG5vZGVcbiIpOwo+ICsJCQljb250aW51ZTsKPiArCQl9 Cj4gKwo+ICsJCWlmICghb2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShyZW1vdGUpKSB7Cj4gKwkJCXBy X2RlYnVnKCJub3QgYXZhaWxhYmxlIGZvciByZW1vdGUgbm9kZVxuIik7Cj4gKwkJCW9mX25vZGVf cHV0KHJlbW90ZSk7Cj4gKwkJCWNvbnRpbnVlOwo+ICsJCX0KPiArCj4gKwkJcHJfZGVidWcoImZv dW5kIGVuYWJsZWQgZW5kcG9pbnQgJWQgZm9yICVzXG4iLCBlbmRwb2ludCwgcmVtb3RlLT5uYW1l KTsKPiArCQlvZl9ub2RlX3B1dChyZW1vdGUpOwo+ICsJCXJldHVybiBlbmRwb2ludDsKPiArCX0K PiArCj4gKwlyZXR1cm4gLUVOT0RFVjsKPiArfQpUaGlzIGZ1bmN0aW9uIHNlZW1zIHByZXR0eSBn ZW5lcmljLiBTaG91bGQgdGhpcyBiZSBwYXJ0IG9mCmRyaXZlcnMvb2YvcHJvcGVydHkuYyAtIGFz IG90aGVycyBtYXkgaGF2ZSB0aGUgc2FtZSBuZWVkPwoKPiArCj4gIC8qKgo+ICAgKiBkcm1fb2Zf ZmluZF9wYW5lbF9vcl9icmlkZ2UgLSByZXR1cm4gY29ubmVjdGVkIHBhbmVsIG9yIGJyaWRnZSBk ZXZpY2UKPiAgICogQG5wOiBkZXZpY2UgdHJlZSBub2RlIGNvbnRhaW5pbmcgZW5jb2RlciBvdXRw dXQgcG9ydHMKPiAgICogQHBvcnQ6IHBvcnQgaW4gdGhlIGRldmljZSB0cmVlIG5vZGUKPiAtICog QGVuZHBvaW50OiBlbmRwb2ludCBpbiB0aGUgZGV2aWNlIHRyZWUgbm9kZQo+ICsgKiBAZW5kcG9p bnQ6IGVuZHBvaW50IGluIHRoZSBkZXZpY2UgdHJlZSBub2RlLCBvciAtMSB0byBmaW5kIGFuIGVu YWJsZWQgZW5kcG9pbnQKPiAgICogQHBhbmVsOiBwb2ludGVyIHRvIGhvbGQgcmV0dXJuZWQgZHJt X3BhbmVsCj4gICAqIEBicmlkZ2U6IHBvaW50ZXIgdG8gaG9sZCByZXR1cm5lZCBkcm1fYnJpZGdl CgpJbnRyb2R1Y2luZyBhIGRlZmluZSB3b3VsZCBtYWtlIGl0IGVhc2llciB0byB1c2UgdGhpcyBm dW5jdGlvbiBpbiB0aGUKcmlnaHQgd2F5LgpGb3IgZXhhbXBsZToKI2RlZmluZSBPRl9FTkRQT0lO VF9GSVJTVAktMQoKClRoZW4gd2Ugd291bGQgc2VlIHRoaXMgY29kZSBpbiB0aGUgdXNlciBzaWRl OgorICAgICAgIHJldCA9IGRybV9vZl9maW5kX3BhbmVsX29yX2JyaWRnZShwZGF0YS0+ZGV2LT5v Zl9ub2RlLCAxLAoJCQkJCSAgT0ZfRU5EUE9JTlRfRklSU1QsCgkJCQkJICAmcGRhdGEtPnBhbmVs LCBOVUxMKTsKCk9yIHNvbWV0aGluZyBsaWtlIHRoaXMuCgoJU2FtCgoKPiAgICoKPiBAQCAtMjQ2 LDYgKzI3OSwxMiBAQCBpbnQgZHJtX29mX2ZpbmRfcGFuZWxfb3JfYnJpZGdlKGNvbnN0IHN0cnVj dCBkZXZpY2Vfbm9kZSAqbnAsCj4gIAlpZiAocGFuZWwpCj4gIAkJKnBhbmVsID0gTlVMTDsKPiAg Cj4gKwlpZiAoZW5kcG9pbnQgPT0gLTEpIHsKPiArCQllbmRwb2ludCA9IGZpbmRfZW5hYmxlZF9l bmRwb2ludChucCwgcG9ydCk7Cj4gKwkJaWYgKGVuZHBvaW50IDwgMCkKPiArCQkJcmV0dXJuIGVu ZHBvaW50Owo+ICsJfQo+ICsKPiAgCXJlbW90ZSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfbm9kZShu cCwgcG9ydCwgZW5kcG9pbnQpOwo+ICAJaWYgKCFyZW1vdGUpCj4gIAkJcmV0dXJuIC1FTk9ERVY7 Cj4gLS0gCj4gMi4yMy4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbA==