From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 03160EA6 for ; Thu, 28 Apr 2022 08:09:40 +0000 (UTC) Received: by mail-ed1-f48.google.com with SMTP id y21so4606008edo.2 for ; Thu, 28 Apr 2022 01:09:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6jNeearvH+hhGDjLkKRhMtvv9bKx6EoH/x/e7DTa8KY=; b=o56ujL31V7wnkN7VUd9hMJAvi4RE+WM7gseNBy/zWj3rLUkXCUQPYEz9oPUeqUUdKy VhMAAOL7HzhILMEpRyn3EoXNBVUpONutknkQVIk2ZvqE68qZQO/EGedE+xpx7oyJlcAh wnZBOqi8SjCB9pK1dnDZsspnaqhZnYIe10Fl7eMD8JQqLYGsmFDJRajprTllxjEjTl0v rpQ58PfZQXK/y8efND2yLShSuFuIbVFJRNE7Iyb0jwlkova0ywmF1vfSNju8MQiYT1TT byiLiHdCk1OkS0l1/V2fx+Jb/frp/dE8x3NJpTWDAzHztDB4HNABOkTYhTjcd0TArHU3 aY2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6jNeearvH+hhGDjLkKRhMtvv9bKx6EoH/x/e7DTa8KY=; b=TxJ4INlaDkDEyHpvMmi+bn858Pup1iSEEhMxgazk8UkGYGjBSfMJkBBDpqgDM/katz eQPNx5LwTs65Wjd5b94fskY382uUvHvNj4suNfWeYdFlCwpATDJJt08rp83nWe9nenMx F6yKRFA16qjaE/orHADxqtzK5YCjgfw0ukfGInRdM+m6o8qusnIZV7GrxSXXyQsEqh52 XWR2B6JN/BMmsvXSeMSk5wWDpq/fWEGF3Rp4lyhVNCyrlbDNvKvW/Qqmu/4IXl9N1Apz FZs7cIXKpmM5Qw4yrBktijhbk02lAQePyewBYFs/Y97rt0j+tEaV5PKJTmnwD2dnOlBb XPZw== X-Gm-Message-State: AOAM5320av4E62wQVr9DCo+gQEEwqLa41QpNvhiJwcn54WCEvlrDepV9 pL2VnhQXcDo6sOGRT6PSioQ= X-Google-Smtp-Source: ABdhPJztZ8+oV4qu6hJupS3cSC9OJkpEoajvHWbIk6ZrA7gAfI5DNOsmUdXa9+0qvACKdhuKUqf1SA== X-Received: by 2002:a05:6402:298b:b0:41d:675f:8b44 with SMTP id eq11-20020a056402298b00b0041d675f8b44mr34705939edb.377.1651133379069; Thu, 28 Apr 2022 01:09:39 -0700 (PDT) Received: from jernej-laptop.localnet (89-212-118-115.static.t-2.net. [89.212.118.115]) by smtp.gmail.com with ESMTPSA id g2-20020a056402114200b0042617ba637fsm1130681edw.9.2022.04.28.01.09.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Apr 2022 01:09:38 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Paul Kocialkowski Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, Yong Deng , Mauro Carvalho Chehab , Chen-Yu Tsai , Samuel Holland , Laurent Pinchart , Maxime Ripard , Thomas Petazzoni Subject: Re: [PATCH v4 43/45] media: sun6i-csi: Detect the availability of the ISP Date: Thu, 28 Apr 2022 10:09:37 +0200 Message-ID: <5794263.alqRGMn8q6@jernej-laptop> In-Reply-To: References: <20220415152811.636419-1-paul.kocialkowski@bootlin.com> <2029179.KlZ2vcFHjT@jernej-laptop> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" Dne =C4=8Detrtek, 28. april 2022 ob 09:55:56 CEST je Paul Kocialkowski napi= sal(a): > Hi Jernej, >=20 > Thanks a lot for all your reviews! >=20 > On Wed 27 Apr 22, 22:07, Jernej =C5=A0krabec wrote: > > Dne petek, 15. april 2022 ob 17:28:09 CEST je Paul Kocialkowski=20 napisal(a): > > > Add a helper to detect whether the ISP is available and connected > > > and store the indication in a driver-wide variable. > > >=20 > > > Signed-off-by: Paul Kocialkowski > > > --- > > >=20 > > > .../platform/sunxi/sun6i-csi/sun6i_csi.c | 33 +++++++++++++++++= ++ > > > .../platform/sunxi/sun6i-csi/sun6i_csi.h | 3 ++ > > > 2 files changed, 36 insertions(+) > > >=20 > > > diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c > > > b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c index > > > a88deb8ba1e7..f185cbd113c7 100644 > > > --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c > > > +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c > > > @@ -25,6 +25,35 @@ > > >=20 > > > #include "sun6i_csi_capture.h" > > > #include "sun6i_csi_reg.h" > > >=20 > > > +/* ISP */ > > > + > > > +static bool sun6i_csi_isp_detect(struct sun6i_csi_device *csi_dev) > > > +{ > > > + struct device *dev =3D csi_dev->dev; > > > + struct fwnode_handle *handle =3D NULL; > > > + > > > + /* ISP is not available if disabled in kernel config. */ > > > + if (!IS_ENABLED(CONFIG_VIDEO_SUN6I_ISP)) > >=20 > > Where is this symbol defined? >=20 > That is defined through Kconfig's auto-generated header, from the associa= ted > option for the ISP driver. It is defined in the ISP support series so this > will effectively always be false for now. Well, then, that driver should be merged before this patch. While I underst= and=20 that it's likely that ISP driver with such name will eventually materialize= in=20 kernel, I don't want to rely on things that are not set in stone, e.g. alre= ady=20 merged. Best regards, Jernej >=20 > > Best regards, > > Jernej > >=20 > > > + return 0; > > > + > > > + /* > > > + * ISP is not available if not connected via fwnode graph. > > > + * This weill also check that the remote parent node is available. > > > + */ > > > + handle =3D fwnode_graph_get_endpoint_by_id(dev_fwnode(dev), > > > + > >=20 > > SUN6I_CSI_PORT_ISP, 0, > >=20 > > > + > >=20 > > FWNODE_GRAPH_ENDPOINT_NEXT); > >=20 > > > + if (!handle) > > > + return 0; > > > + > > > + fwnode_handle_put(handle); > > > + > > > + dev_info(dev, "ISP link is available\n"); > > > + csi_dev->isp_available =3D true; > > > + > > > + return 0; > > > +} > > > + > > >=20 > > > /* Media */ > > > =20 > > > static const struct media_device_ops sun6i_csi_media_ops =3D { > > >=20 > > > @@ -306,6 +335,10 @@ static int sun6i_csi_probe(struct platform_device > > > *platform_dev) if (ret) > > >=20 > > > return ret; > > >=20 > > > + ret =3D sun6i_csi_isp_detect(csi_dev); > > > + if (ret) > > > + goto error_resources; > > > + > > >=20 > > > ret =3D sun6i_csi_v4l2_setup(csi_dev); > > > if (ret) > > > =09 > > > goto error_resources; > > >=20 > > > diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h > > > b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h index > > > 6aa83dd11684..9b105c341047 100644 > > > --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h > > > +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h > > > @@ -22,6 +22,7 @@ > > >=20 > > > enum sun6i_csi_port { > > > =20 > > > SUN6I_CSI_PORT_PARALLEL =3D 0, > > > SUN6I_CSI_PORT_MIPI_CSI2 =3D 1, > > >=20 > > > + SUN6I_CSI_PORT_ISP =3D 2, > > >=20 > > > }; > > > =20 > > > struct sun6i_csi_buffer { > > >=20 > > > @@ -46,6 +47,8 @@ struct sun6i_csi_device { > > >=20 > > > struct clk *clock_mod; > > > struct clk *clock_ram; > > > struct reset_control *reset; > > >=20 > > > + > > > + bool isp_available; > > >=20 > > > }; > > > =20 > > > struct sun6i_csi_variant { 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A143AC433FE for ; Thu, 28 Apr 2022 08:10:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Txm1hHxY0Xb39Y7UyDReacp3+n1ah8zsUmjT6l4bVM0=; b=RaKdd4gJvgYCh0 NS7Hl+rUGdWydzoG6eiVdFXrrbFpip2b8gHN0nAcwmgMN4kESCHr71rlAUJPdvAC4ptmteQQ6Qohp zY77bQ8t1TGTJSJGMolR8pYAK2dCFYLlq8y1vEZhyjeGiG5fLwdrch13UXyQihh7AAkmXfD53X9+d t6z9K0lfaT0HgWi4YmhtzqkqPcocD7loWYEBUv+9WsqSqIcDuTUi49ZBebCEjsXpXuNcxyMbCPat8 idEr6IXWSTJifIkROZ+iYI1MkCteUorbjOKmBkZXm62Ra5KfNjLAjmdBPpc1RC18eVg2nQqdSEYt/ jTRMSF8jn4/PUcx5Ub6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1njzDd-005Q4f-C1; Thu, 28 Apr 2022 08:09:45 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1njzDa-005Q2z-Bq for linux-arm-kernel@lists.infradead.org; Thu, 28 Apr 2022 08:09:43 +0000 Received: by mail-ed1-x52d.google.com with SMTP id z19so4567679edx.9 for ; Thu, 28 Apr 2022 01:09:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6jNeearvH+hhGDjLkKRhMtvv9bKx6EoH/x/e7DTa8KY=; b=o56ujL31V7wnkN7VUd9hMJAvi4RE+WM7gseNBy/zWj3rLUkXCUQPYEz9oPUeqUUdKy VhMAAOL7HzhILMEpRyn3EoXNBVUpONutknkQVIk2ZvqE68qZQO/EGedE+xpx7oyJlcAh wnZBOqi8SjCB9pK1dnDZsspnaqhZnYIe10Fl7eMD8JQqLYGsmFDJRajprTllxjEjTl0v rpQ58PfZQXK/y8efND2yLShSuFuIbVFJRNE7Iyb0jwlkova0ywmF1vfSNju8MQiYT1TT byiLiHdCk1OkS0l1/V2fx+Jb/frp/dE8x3NJpTWDAzHztDB4HNABOkTYhTjcd0TArHU3 aY2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6jNeearvH+hhGDjLkKRhMtvv9bKx6EoH/x/e7DTa8KY=; b=JshyW+744uBWDGWsNUzRa5/RQbw1UCUzheoIVUGbYFBlq4NXUFJXw+4pRMIo9GYyQC I0WLshZruGKabq5QdayKrZ1NZbA50RpCuFipdZ/e0KNYJn5P63EuE+u6aupNJcTL+dEu RUsywW/FwUWT1NY2KdzG1nSm9wWpmCgb+hLSQr6Tj8KC0zfNAqusJTSurr+dpNtLOVM0 9Ox9O8Pfq0cPYnqg1pAKCpqsqfy0CNVb8lVjxUPULn7GhYwo7q23or+UIS9Zuy23Akvk bKTyuBOHSdfDUM3ivH6uD/M9Huy7FihOdk48hzXqGUaCHAQLSuFWR9CtS4XCQQMdv0Ok e8UA== X-Gm-Message-State: AOAM5338zlyqCb+BGzsNDg6jf3p1cSG981arv4UtfC87IYJ28FIN0/DE h++RMbl68ZiJyr7PjtqNCWI= X-Google-Smtp-Source: ABdhPJztZ8+oV4qu6hJupS3cSC9OJkpEoajvHWbIk6ZrA7gAfI5DNOsmUdXa9+0qvACKdhuKUqf1SA== X-Received: by 2002:a05:6402:298b:b0:41d:675f:8b44 with SMTP id eq11-20020a056402298b00b0041d675f8b44mr34705939edb.377.1651133379069; Thu, 28 Apr 2022 01:09:39 -0700 (PDT) Received: from jernej-laptop.localnet (89-212-118-115.static.t-2.net. [89.212.118.115]) by smtp.gmail.com with ESMTPSA id g2-20020a056402114200b0042617ba637fsm1130681edw.9.2022.04.28.01.09.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Apr 2022 01:09:38 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Paul Kocialkowski Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, Yong Deng , Mauro Carvalho Chehab , Chen-Yu Tsai , Samuel Holland , Laurent Pinchart , Maxime Ripard , Thomas Petazzoni Subject: Re: [PATCH v4 43/45] media: sun6i-csi: Detect the availability of the ISP Date: Thu, 28 Apr 2022 10:09:37 +0200 Message-ID: <5794263.alqRGMn8q6@jernej-laptop> In-Reply-To: References: <20220415152811.636419-1-paul.kocialkowski@bootlin.com> <2029179.KlZ2vcFHjT@jernej-laptop> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220428_010942_440439_46787D28 X-CRM114-Status: GOOD ( 30.07 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RG5lIMSNZXRydGVrLCAyOC4gYXByaWwgMjAyMiBvYiAwOTo1NTo1NiBDRVNUIGplIFBhdWwgS29j aWFsa293c2tpIG5hcGlzYWwoYSk6Cj4gSGkgSmVybmVqLAo+IAo+IFRoYW5rcyBhIGxvdCBmb3Ig YWxsIHlvdXIgcmV2aWV3cyEKPiAKPiBPbiBXZWQgMjcgQXByIDIyLCAyMjowNywgSmVybmVqIMWg a3JhYmVjIHdyb3RlOgo+ID4gRG5lIHBldGVrLCAxNS4gYXByaWwgMjAyMiBvYiAxNzoyODowOSBD RVNUIGplIFBhdWwgS29jaWFsa293c2tpIApuYXBpc2FsKGEpOgo+ID4gPiBBZGQgYSBoZWxwZXIg dG8gZGV0ZWN0IHdoZXRoZXIgdGhlIElTUCBpcyBhdmFpbGFibGUgYW5kIGNvbm5lY3RlZAo+ID4g PiBhbmQgc3RvcmUgdGhlIGluZGljYXRpb24gaW4gYSBkcml2ZXItd2lkZSB2YXJpYWJsZS4KPiA+ ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtv d3NraUBib290bGluLmNvbT4KPiA+ID4gLS0tCj4gPiA+IAo+ID4gPiAgLi4uL3BsYXRmb3JtL3N1 bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuYyAgICAgIHwgMzMgKysrKysrKysrKysrKysrKysrKwo+ ID4gPiAgLi4uL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuaCAgICAgIHwgIDMg KysKPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKQo+ID4gPiAKPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3VueGkvc3VuNmktY3NpL3N1bjZp X2NzaS5jCj4gPiA+IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zdW54aS9zdW42aS1jc2kvc3Vu NmlfY3NpLmMgaW5kZXgKPiA+ID4gYTg4ZGViOGJhMWU3Li5mMTg1Y2JkMTEzYzcgMTAwNjQ0Cj4g PiA+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3VueGkvc3VuNmktY3NpL3N1bjZpX2Nz aS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3VueGkvc3VuNmktY3NpL3N1 bjZpX2NzaS5jCj4gPiA+IEBAIC0yNSw2ICsyNSwzNSBAQAo+ID4gPiAKPiA+ID4gICNpbmNsdWRl ICJzdW42aV9jc2lfY2FwdHVyZS5oIgo+ID4gPiAgI2luY2x1ZGUgInN1bjZpX2NzaV9yZWcuaCIK PiA+ID4gCj4gPiA+ICsvKiBJU1AgKi8KPiA+ID4gKwo+ID4gPiArc3RhdGljIGJvb2wgc3VuNmlf Y3NpX2lzcF9kZXRlY3Qoc3RydWN0IHN1bjZpX2NzaV9kZXZpY2UgKmNzaV9kZXYpCj4gPiA+ICt7 Cj4gPiA+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gY3NpX2Rldi0+ZGV2Owo+ID4gPiArCXN0cnVj dCBmd25vZGVfaGFuZGxlICpoYW5kbGUgPSBOVUxMOwo+ID4gPiArCj4gPiA+ICsJLyogSVNQIGlz IG5vdCBhdmFpbGFibGUgaWYgZGlzYWJsZWQgaW4ga2VybmVsIGNvbmZpZy4gKi8KPiA+ID4gKwlp ZiAoIUlTX0VOQUJMRUQoQ09ORklHX1ZJREVPX1NVTjZJX0lTUCkpCj4gPiAKPiA+IFdoZXJlIGlz IHRoaXMgc3ltYm9sIGRlZmluZWQ/Cj4gCj4gVGhhdCBpcyBkZWZpbmVkIHRocm91Z2ggS2NvbmZp ZydzIGF1dG8tZ2VuZXJhdGVkIGhlYWRlciwgZnJvbSB0aGUgYXNzb2NpYXRlZAo+IG9wdGlvbiBm b3IgdGhlIElTUCBkcml2ZXIuIEl0IGlzIGRlZmluZWQgaW4gdGhlIElTUCBzdXBwb3J0IHNlcmll cyBzbyB0aGlzCj4gd2lsbCBlZmZlY3RpdmVseSBhbHdheXMgYmUgZmFsc2UgZm9yIG5vdy4KCldl bGwsIHRoZW4sIHRoYXQgZHJpdmVyIHNob3VsZCBiZSBtZXJnZWQgYmVmb3JlIHRoaXMgcGF0Y2gu IFdoaWxlIEkgdW5kZXJzdGFuZCAKdGhhdCBpdCdzIGxpa2VseSB0aGF0IElTUCBkcml2ZXIgd2l0 aCBzdWNoIG5hbWUgd2lsbCBldmVudHVhbGx5IG1hdGVyaWFsaXplIGluIAprZXJuZWwsIEkgZG9u J3Qgd2FudCB0byByZWx5IG9uIHRoaW5ncyB0aGF0IGFyZSBub3Qgc2V0IGluIHN0b25lLCBlLmcu IGFscmVhZHkgCm1lcmdlZC4KCkJlc3QgcmVnYXJkcywKSmVybmVqCgo+IAo+ID4gQmVzdCByZWdh cmRzLAo+ID4gSmVybmVqCj4gPiAKPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwkv Kgo+ID4gPiArCSAqIElTUCBpcyBub3QgYXZhaWxhYmxlIGlmIG5vdCBjb25uZWN0ZWQgdmlhIGZ3 bm9kZSBncmFwaC4KPiA+ID4gKwkgKiBUaGlzIHdlaWxsIGFsc28gY2hlY2sgdGhhdCB0aGUgcmVt b3RlIHBhcmVudCBub2RlIGlzIGF2YWlsYWJsZS4KPiA+ID4gKwkgKi8KPiA+ID4gKwloYW5kbGUg PSBmd25vZGVfZ3JhcGhfZ2V0X2VuZHBvaW50X2J5X2lkKGRldl9md25vZGUoZGV2KSwKPiA+ID4g Kwo+ID4gCj4gPiBTVU42SV9DU0lfUE9SVF9JU1AsIDAsCj4gPiAKPiA+ID4gKwo+ID4gCj4gPiBG V05PREVfR1JBUEhfRU5EUE9JTlRfTkVYVCk7Cj4gPiAKPiA+ID4gKwlpZiAoIWhhbmRsZSkKPiA+ ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gKwlmd25vZGVfaGFuZGxlX3B1dChoYW5kbGUp Owo+ID4gPiArCj4gPiA+ICsJZGV2X2luZm8oZGV2LCAiSVNQIGxpbmsgaXMgYXZhaWxhYmxlXG4i KTsKPiA+ID4gKwljc2lfZGV2LT5pc3BfYXZhaWxhYmxlID0gdHJ1ZTsKPiA+ID4gKwo+ID4gPiAr CXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+IAo+ID4gPiAgLyogTWVkaWEgKi8KPiA+ ID4gIAo+ID4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYV9kZXZpY2Vfb3BzIHN1bjZpX2Nz aV9tZWRpYV9vcHMgPSB7Cj4gPiA+IAo+ID4gPiBAQCAtMzA2LDYgKzMzNSwxMCBAQCBzdGF0aWMg aW50IHN1bjZpX2NzaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlCj4gPiA+ICpwbGF0Zm9y bV9kZXYpIGlmIChyZXQpCj4gPiA+IAo+ID4gPiAgCQlyZXR1cm4gcmV0Owo+ID4gPiAKPiA+ID4g KwlyZXQgPSBzdW42aV9jc2lfaXNwX2RldGVjdChjc2lfZGV2KTsKPiA+ID4gKwlpZiAocmV0KQo+ ID4gPiArCQlnb3RvIGVycm9yX3Jlc291cmNlczsKPiA+ID4gKwo+ID4gPiAKPiA+ID4gIAlyZXQg PSBzdW42aV9jc2lfdjRsMl9zZXR1cChjc2lfZGV2KTsKPiA+ID4gIAlpZiAocmV0KQo+ID4gPiAg CQo+ID4gPiAgCQlnb3RvIGVycm9yX3Jlc291cmNlczsKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuaAo+ID4g PiBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaS5oIGlu ZGV4Cj4gPiA+IDZhYTgzZGQxMTY4NC4uOWIxMDVjMzQxMDQ3IDEwMDY0NAo+ID4gPiAtLS0gYS9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuaAo+ID4gPiAr KysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuaAo+ ID4gPiBAQCAtMjIsNiArMjIsNyBAQAo+ID4gPiAKPiA+ID4gIGVudW0gc3VuNmlfY3NpX3BvcnQg ewo+ID4gPiAgCj4gPiA+ICAJU1VONklfQ1NJX1BPUlRfUEFSQUxMRUwJCT0gMCwKPiA+ID4gIAlT VU42SV9DU0lfUE9SVF9NSVBJX0NTSTIJPSAxLAo+ID4gPiAKPiA+ID4gKwlTVU42SV9DU0lfUE9S VF9JU1AJCT0gMiwKPiA+ID4gCj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+ICBzdHJ1Y3Qgc3VuNmlf Y3NpX2J1ZmZlciB7Cj4gPiA+IAo+ID4gPiBAQCAtNDYsNiArNDcsOCBAQCBzdHJ1Y3Qgc3VuNmlf Y3NpX2RldmljZSB7Cj4gPiA+IAo+ID4gPiAgCXN0cnVjdCBjbGsJCQkqY2xvY2tfbW9kOwo+ID4g PiAgCXN0cnVjdCBjbGsJCQkqY2xvY2tfcmFtOwo+ID4gPiAgCXN0cnVjdCByZXNldF9jb250cm9s CQkqcmVzZXQ7Cj4gPiA+IAo+ID4gPiArCj4gPiA+ICsJYm9vbAkJCQlpc3BfYXZhaWxhYmxlOwo+ ID4gPiAKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ID4gIHN0cnVjdCBzdW42aV9jc2lfdmFyaWFudCB7 CgoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo=