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=unavailable 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 C0D67C43603 for ; Sat, 7 Dec 2019 21:23:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9ADF1206DB for ; Sat, 7 Dec 2019 21:23:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726418AbfLGVX4 (ORCPT ); Sat, 7 Dec 2019 16:23:56 -0500 Received: from asavdk3.altibox.net ([109.247.116.14]:60120 "EHLO asavdk3.altibox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726403AbfLGVXz (ORCPT ); Sat, 7 Dec 2019 16:23:55 -0500 X-Greylist: delayed 600 seconds by postgrey-1.27 at vger.kernel.org; Sat, 07 Dec 2019 16:23:53 EST 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 asavdk3.altibox.net (Postfix) with ESMTPS id 208A520041; Sat, 7 Dec 2019 22:13:47 +0100 (CET) Date: Sat, 7 Dec 2019 22:13:45 +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 , Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Jeffrey Hugo , open list , Rob Herring , Bjorn Andersson , Vasily Khoruzhick , David Airlie , Thierry Reding , Laurent Pinchart Subject: Re: [PATCH 1/4] dt-bindings: display: panel: document panel-id Message-ID: <20191207211345.GA32369@ravnborg.org> References: <20191207203553.286017-1-robdclark@gmail.com> <20191207203553.286017-2-robdclark@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191207203553.286017-2-robdclark@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=eMA9ckh1 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=2slYeMzxh5QCkdzES2IA: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 On Sat, Dec 07, 2019 at 12:35:50PM -0800, Rob Clark wrote: > From: Rob Clark > > For devices that have one of several possible panels installed, the > panel-id property gives firmware a generic way to locate and enable the > panel node corresponding to the installed panel. For display timings there is something similar. Here the property is named native-mode and is a phandle to the preferred timing. And it is documented that if no native-mode is specified the first timing in the tree is chosen. So a different concept than this. I could not from your otherwise well-documented changelog see why you wanted to go for an opauge integer and status rather than a phandle to the active display. The panel-id, if I get it right, is optional and the important part is that the first panel with staus = "okay" is selected. This would cover my usecase fine. I have a target with four different displays and the bootloader knows what display is used (based on gpio etc). The bootloader (barebox in my case) uses a simple variant of the DT, but reads in the DT used by the kernel and can modify the DT before it is passed to the kernel. Sam > Example of how to use this property: > > ivo_panel { > compatible = "ivo,m133nwf4-r0"; > panel-id = <0xc5>; > status = "disabled"; > > ports { > port { > ivo_panel_in_edp: endpoint { > remote-endpoint = <&sn65dsi86_out_ivo>; > }; > }; > }; > }; > > boe_panel { > compatible = "boe,nv133fhm-n61"; > panel-id = <0xc4>; > status = "disabled"; > > ports { > port { > boe_panel_in_edp: endpoint { > remote-endpoint = <&sn65dsi86_out_boe>; > }; > }; > }; > }; > > sn65dsi86: bridge@2c { > compatible = "ti,sn65dsi86"; > > ports { > #address-cells = <1>; > #size-cells = <0>; > > port@0 { > reg = <0>; > sn65dsi86_in_a: endpoint { > remote-endpoint = <&dsi0_out>; > }; > }; > > port@1 { > reg = <1>; > > sn65dsi86_out_boe: endpoint@c4 { > remote-endpoint = <&boe_panel_in_edp>; > }; > > sn65dsi86_out_ivo: endpoint@c5 { > remote-endpoint = <&ivo_panel_in_edp>; > }; > }; > }; > }; > > Signed-off-by: Rob Clark > --- > .../bindings/display/panel/panel-common.yaml | 26 +++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml > index ef8d8cdfcede..6113319b91dd 100644 > --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml > +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml > @@ -75,6 +75,32 @@ properties: > in the device graph bindings defined in > Documentation/devicetree/bindings/graph.txt. > > + panel-id: > + description: > + To support the case where one of several different panels can be installed > + on a device, the panel-id property can be used by the firmware to identify > + which panel should have it's status changed to "ok". This property is not > + used by the HLOS itself. > + > + For a device with multiple potential panels, a node for each potential > + should be defined with status = "disabled", and an appropriate panel-id > + property. The video data producer should be setup with endpoints going to > + each possible panel. The firmware will find the dt node with a panel-id > + matching the actual panel installed, and change it's status to "ok". > + > + The exact method the firmware uses to determine the panel-id of the installed > + panel is outside the scope of this binding, but a few examples are > + > + 1) u-boot module reading a value from a u-boot env var > + 2) EFI driver module reading a value from an EFI variable > + 3) device specific firmware reading some device specific GPIOs or > + e-fuse > + > + The panel-id values are an opaque integer. They can be sparse. The only > + important thing is that each possible panel in the system has a unique > + panel-id, and that the values configured in the device's DTB match the > + values that the firmware is looking for. > + > ddc-i2c-bus: > $ref: /schemas/types.yaml#/definitions/phandle > description: > -- > 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 AEC2FC43603 for ; Sat, 7 Dec 2019 21:13:56 +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 8210824670 for ; Sat, 7 Dec 2019 21:13:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8210824670 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 DDCD06E247; Sat, 7 Dec 2019 21:13:55 +0000 (UTC) Received: from asavdk3.altibox.net (asavdk3.altibox.net [109.247.116.14]) by gabe.freedesktop.org (Postfix) with ESMTPS id BB94C6E247 for ; Sat, 7 Dec 2019 21:13:53 +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 asavdk3.altibox.net (Postfix) with ESMTPS id 208A520041; Sat, 7 Dec 2019 22:13:47 +0100 (CET) Date: Sat, 7 Dec 2019 22:13:45 +0100 From: Sam Ravnborg To: Rob Clark Subject: Re: [PATCH 1/4] dt-bindings: display: panel: document panel-id Message-ID: <20191207211345.GA32369@ravnborg.org> References: <20191207203553.286017-1-robdclark@gmail.com> <20191207203553.286017-2-robdclark@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191207203553.286017-2-robdclark@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=eMA9ckh1 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=2slYeMzxh5QCkdzES2IA: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 , Mark Rutland , aarch64-laptops@lists.linaro.org, "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Jeffrey Hugo , linux-arm-msm@vger.kernel.org, open list , dri-devel@lists.freedesktop.org, Bjorn Andersson , Vasily Khoruzhick , David Airlie , Rob Herring , Thierry Reding , Laurent Pinchart Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gU2F0LCBEZWMgMDcsIDIwMTkgYXQgMTI6MzU6NTBQTSAtMDgwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IEZyb206IFJvYiBDbGFyayA8cm9iZGNsYXJrQGNocm9taXVtLm9yZz4KPiAKPiBGb3IgZGV2 aWNlcyB0aGF0IGhhdmUgb25lIG9mIHNldmVyYWwgcG9zc2libGUgcGFuZWxzIGluc3RhbGxlZCwg dGhlCj4gcGFuZWwtaWQgcHJvcGVydHkgZ2l2ZXMgZmlybXdhcmUgYSBnZW5lcmljIHdheSB0byBs b2NhdGUgYW5kIGVuYWJsZSB0aGUKPiBwYW5lbCBub2RlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlu c3RhbGxlZCBwYW5lbC4KCkZvciBkaXNwbGF5IHRpbWluZ3MgdGhlcmUgaXMgc29tZXRoaW5nIHNp bWlsYXIuCkhlcmUgdGhlIHByb3BlcnR5IGlzIG5hbWVkIG5hdGl2ZS1tb2RlIGFuZCBpcyBhIHBo YW5kbGUgdG8gdGhlCnByZWZlcnJlZCB0aW1pbmcuCkFuZCBpdCBpcyBkb2N1bWVudGVkIHRoYXQg aWYgbm8gbmF0aXZlLW1vZGUgaXMgc3BlY2lmaWVkIHRoZSBmaXJzdAp0aW1pbmcgaW4gdGhlIHRy ZWUgaXMgY2hvc2VuLiAgClNvIGEgZGlmZmVyZW50IGNvbmNlcHQgdGhhbiB0aGlzLgoKSSBjb3Vs ZCBub3QgZnJvbSB5b3VyIG90aGVyd2lzZSB3ZWxsLWRvY3VtZW50ZWQgY2hhbmdlbG9nIHNlZSB3 aHkgeW91CndhbnRlZCB0byBnbyBmb3IgYW4gb3BhdWdlIGludGVnZXIgYW5kIHN0YXR1cyByYXRo ZXIgdGhhbiBhIHBoYW5kbGUgdG8KdGhlIGFjdGl2ZSBkaXNwbGF5LgoKVGhlIHBhbmVsLWlkLCBp ZiBJIGdldCBpdCByaWdodCwgaXMgb3B0aW9uYWwgYW5kIHRoZSBpbXBvcnRhbnQgcGFydCBpcwp0 aGF0IHRoZSBmaXJzdCBwYW5lbCB3aXRoIHN0YXVzID0gIm9rYXkiIGlzIHNlbGVjdGVkLgpUaGlz IHdvdWxkIGNvdmVyIG15IHVzZWNhc2UgZmluZS4KSSBoYXZlIGEgdGFyZ2V0IHdpdGggZm91ciBk aWZmZXJlbnQgZGlzcGxheXMgYW5kIHRoZSBib290bG9hZGVyCmtub3dzIHdoYXQgZGlzcGxheSBp cyB1c2VkIChiYXNlZCBvbiBncGlvIGV0YykuClRoZSBib290bG9hZGVyIChiYXJlYm94IGluIG15 IGNhc2UpIHVzZXMgYSBzaW1wbGUgdmFyaWFudCBvZiB0aGUgRFQsCmJ1dCByZWFkcyBpbiB0aGUg RFQgdXNlZCBieSB0aGUga2VybmVsIGFuZCBjYW4gbW9kaWZ5IHRoZSBEVCBiZWZvcmUKaXQgaXMg cGFzc2VkIHRvIHRoZSBrZXJuZWwuCgoJU2FtCgoKCgo+IEV4YW1wbGUgb2YgaG93IHRvIHVzZSB0 aGlzIHByb3BlcnR5Ogo+IAo+ICAgICBpdm9fcGFuZWwgewo+ICAgICAgICAgY29tcGF0aWJsZSA9 ICJpdm8sbTEzM253ZjQtcjAiOwo+ICAgICAgICAgcGFuZWwtaWQgPSA8MHhjNT47Cj4gICAgICAg ICBzdGF0dXMgPSAiZGlzYWJsZWQiOwo+IAo+ICAgICAgICAgcG9ydHMgewo+ICAgICAgICAgICAg IHBvcnQgewo+ICAgICAgICAgICAgICAgICBpdm9fcGFuZWxfaW5fZWRwOiBlbmRwb2ludCB7Cj4g ICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8JnNuNjVkc2k4Nl9vdXRfaXZv PjsKPiAgICAgICAgICAgICAgICAgfTsKPiAgICAgICAgICAgICB9Owo+ICAgICAgICAgfTsKPiAg ICAgfTsKPiAKPiAgICAgYm9lX3BhbmVsIHsKPiAgICAgICAgIGNvbXBhdGlibGUgPSAiYm9lLG52 MTMzZmhtLW42MSI7Cj4gICAgICAgICBwYW5lbC1pZCA9IDwweGM0PjsKPiAgICAgICAgIHN0YXR1 cyA9ICJkaXNhYmxlZCI7Cj4gCj4gICAgICAgICBwb3J0cyB7Cj4gICAgICAgICAgICAgcG9ydCB7 Cj4gICAgICAgICAgICAgICAgIGJvZV9wYW5lbF9pbl9lZHA6IGVuZHBvaW50IHsKPiAgICAgICAg ICAgICAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmc242NWRzaTg2X291dF9ib2U+Owo+ICAg ICAgICAgICAgICAgICB9Owo+ICAgICAgICAgICAgIH07Cj4gICAgICAgICB9Owo+ICAgICB9Owo+ IAo+ICAgICBzbjY1ZHNpODY6IGJyaWRnZUAyYyB7Cj4gICAgICAgICBjb21wYXRpYmxlID0gInRp LHNuNjVkc2k4NiI7Cj4gCj4gICAgICAgICBwb3J0cyB7Cj4gICAgICAgICAgICAgI2FkZHJlc3Mt Y2VsbHMgPSA8MT47Cj4gICAgICAgICAgICAgI3NpemUtY2VsbHMgPSA8MD47Cj4gCj4gICAgICAg ICAgICAgcG9ydEAwIHsKPiAgICAgICAgICAgICAgICAgcmVnID0gPDA+Owo+ICAgICAgICAgICAg ICAgICBzbjY1ZHNpODZfaW5fYTogZW5kcG9pbnQgewo+ICAgICAgICAgICAgICAgICAgICAgcmVt b3RlLWVuZHBvaW50ID0gPCZkc2kwX291dD47Cj4gICAgICAgICAgICAgICAgIH07Cj4gICAgICAg ICAgICAgfTsKPiAKPiAgICAgICAgICAgICBwb3J0QDEgewo+ICAgICAgICAgICAgICAgICByZWcg PSA8MT47Cj4gCj4gICAgICAgICAgICAgICAgIHNuNjVkc2k4Nl9vdXRfYm9lOiBlbmRwb2ludEBj NCB7Cj4gICAgICAgICAgICAgICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8JmJvZV9wYW5lbF9p bl9lZHA+Owo+ICAgICAgICAgICAgICAgICB9Owo+IAo+ICAgICAgICAgICAgICAgICBzbjY1ZHNp ODZfb3V0X2l2bzogZW5kcG9pbnRAYzUgewo+ICAgICAgICAgICAgICAgICAgICAgcmVtb3RlLWVu ZHBvaW50ID0gPCZpdm9fcGFuZWxfaW5fZWRwPjsKPiAgICAgICAgICAgICAgICAgfTsKPiAgICAg ICAgICAgICB9Owo+ICAgICAgICAgfTsKPiAgICAgfTsKPiAKPiBTaWduZWQtb2ZmLWJ5OiBSb2Ig Q2xhcmsgPHJvYmRjbGFya0BjaHJvbWl1bS5vcmc+Cj4gLS0tCj4gIC4uLi9iaW5kaW5ncy9kaXNw bGF5L3BhbmVsL3BhbmVsLWNvbW1vbi55YW1sICB8IDI2ICsrKysrKysrKysrKysrKysrKysKPiAg MSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcGFuZWwvcGFuZWwtY29tbW9uLnlh bWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9wYW5lbC9wYW5l bC1jb21tb24ueWFtbAo+IGluZGV4IGVmOGQ4Y2RmY2VkZS4uNjExMzMxOWI5MWRkIDEwMDY0NAo+ IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L3BhbmVsL3Bh bmVsLWNvbW1vbi55YW1sCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2Rpc3BsYXkvcGFuZWwvcGFuZWwtY29tbW9uLnlhbWwKPiBAQCAtNzUsNiArNzUsMzIgQEAgcHJv cGVydGllczoKPiAgICAgICAgaW4gdGhlIGRldmljZSBncmFwaCBiaW5kaW5ncyBkZWZpbmVkIGlu Cj4gICAgICAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncmFwaC50eHQuCj4g IAo+ICsgIHBhbmVsLWlkOgo+ICsgICAgZGVzY3JpcHRpb246Cj4gKyAgICAgIFRvIHN1cHBvcnQg dGhlIGNhc2Ugd2hlcmUgb25lIG9mIHNldmVyYWwgZGlmZmVyZW50IHBhbmVscyBjYW4gYmUgaW5z dGFsbGVkCj4gKyAgICAgIG9uIGEgZGV2aWNlLCB0aGUgcGFuZWwtaWQgcHJvcGVydHkgY2FuIGJl IHVzZWQgYnkgdGhlIGZpcm13YXJlIHRvIGlkZW50aWZ5Cj4gKyAgICAgIHdoaWNoIHBhbmVsIHNo b3VsZCBoYXZlIGl0J3Mgc3RhdHVzIGNoYW5nZWQgdG8gIm9rIi4gIFRoaXMgcHJvcGVydHkgaXMg bm90Cj4gKyAgICAgIHVzZWQgYnkgdGhlIEhMT1MgaXRzZWxmLgo+ICsKPiArICAgICAgRm9yIGEg ZGV2aWNlIHdpdGggbXVsdGlwbGUgcG90ZW50aWFsIHBhbmVscywgYSBub2RlIGZvciBlYWNoIHBv dGVudGlhbAo+ICsgICAgICBzaG91bGQgYmUgZGVmaW5lZCB3aXRoIHN0YXR1cyA9ICJkaXNhYmxl ZCIsIGFuZCBhbiBhcHByb3ByaWF0ZSBwYW5lbC1pZAo+ICsgICAgICBwcm9wZXJ0eS4gIFRoZSB2 aWRlbyBkYXRhIHByb2R1Y2VyIHNob3VsZCBiZSBzZXR1cCB3aXRoIGVuZHBvaW50cyBnb2luZyB0 bwo+ICsgICAgICBlYWNoIHBvc3NpYmxlIHBhbmVsLiAgVGhlIGZpcm13YXJlIHdpbGwgZmluZCB0 aGUgZHQgbm9kZSB3aXRoIGEgcGFuZWwtaWQKPiArICAgICAgbWF0Y2hpbmcgdGhlIGFjdHVhbCBw YW5lbCBpbnN0YWxsZWQsIGFuZCBjaGFuZ2UgaXQncyBzdGF0dXMgdG8gIm9rIi4KPiArCj4gKyAg ICAgIFRoZSBleGFjdCBtZXRob2QgdGhlIGZpcm13YXJlIHVzZXMgdG8gZGV0ZXJtaW5lIHRoZSBw YW5lbC1pZCBvZiB0aGUgaW5zdGFsbGVkCj4gKyAgICAgIHBhbmVsIGlzIG91dHNpZGUgdGhlIHNj b3BlIG9mIHRoaXMgYmluZGluZywgYnV0IGEgZmV3IGV4YW1wbGVzIGFyZQo+ICsKPiArICAgICAg MSkgdS1ib290IG1vZHVsZSByZWFkaW5nIGEgdmFsdWUgZnJvbSBhIHUtYm9vdCBlbnYgdmFyCj4g KyAgICAgIDIpIEVGSSBkcml2ZXIgbW9kdWxlIHJlYWRpbmcgYSB2YWx1ZSBmcm9tIGFuIEVGSSB2 YXJpYWJsZQo+ICsgICAgICAzKSBkZXZpY2Ugc3BlY2lmaWMgZmlybXdhcmUgcmVhZGluZyBzb21l IGRldmljZSBzcGVjaWZpYyBHUElPcyBvcgo+ICsgICAgICAgICBlLWZ1c2UKPiArCj4gKyAgICAg IFRoZSBwYW5lbC1pZCB2YWx1ZXMgYXJlIGFuIG9wYXF1ZSBpbnRlZ2VyLiAgVGhleSBjYW4gYmUg c3BhcnNlLiAgVGhlIG9ubHkKPiArICAgICAgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgZWFjaCBw b3NzaWJsZSBwYW5lbCBpbiB0aGUgc3lzdGVtIGhhcyBhIHVuaXF1ZQo+ICsgICAgICBwYW5lbC1p ZCwgYW5kIHRoYXQgdGhlIHZhbHVlcyBjb25maWd1cmVkIGluIHRoZSBkZXZpY2UncyBEVEIgbWF0 Y2ggdGhlCj4gKyAgICAgIHZhbHVlcyB0aGF0IHRoZSBmaXJtd2FyZSBpcyBsb29raW5nIGZvci4K PiArCj4gICAgZGRjLWkyYy1idXM6Cj4gICAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9k ZWZpbml0aW9ucy9waGFuZGxlCj4gICAgICBkZXNjcmlwdGlvbjoKPiAtLSAKPiAyLjIzLjAKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs