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 8CE57C433FE for ; Wed, 26 Oct 2022 22:34:30 +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:In-Reply-To:References:Cc:To:Subject: MIME-Version:Date:Message-ID:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lG5QOp9EKdPHB7dJHPSXilnlidHUrFzEOus/i7Dln88=; b=eaqg/I75br7A1Q Hic01rT/KhkJ66J/Ncd6wjuDLGWxgR6lnFFc2foJX1WWQL8MngrTcF4ZFf0SgOxhcFBO8UFMNgtxu uYBdaLbJuur6xEaje2/orM64dT0PbmkvAtUML1oQ6iS7C1VuJboIpN5q0yNiUeZgCy9kD5UTL7asQ fADGmx21RtkWAWVfDLrmRnErrZ+5O7WO6ko6jNMpXaakrLk9t1mgmdZ8UnuPh70K4W10h1UYJciQD 8GhjehQmJSKUED5wkV0GAOTvTgxGmg8rptwsGC8faJIdQrWW+pcQpdyE66B0dUIXbV+/gFSizXnMx nReJuNIqI5tc6uPgmwNw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1onoxJ-00B9Nc-E0; Wed, 26 Oct 2022 22:33:01 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1onoxF-00B9Mx-20 for linux-arm-kernel@lists.infradead.org; Wed, 26 Oct 2022 22:32:59 +0000 Received: by mail-lf1-x12e.google.com with SMTP id bp15so31760191lfb.13 for ; Wed, 26 Oct 2022 15:32:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=avrg0p0zcjNQXnwku7LjBEc26ITlI2L8ZDmV7YUxLHk=; b=hNP1eWcSKtSWB1d/Pitcegm6aBvNbn9ZZwOPfvyAHeLfSpWgKviYSn4HdfxqpmVxLx 3hqUT8rGLCtA1WbTsRwnPe5u3UcMos9xSnD5TZv+rOmijKDGBBCh8NVOtzeenY0qOWJW oh4drqCKFAmxuzjfWyqczkgGVY4e/XY9DK8cne6pWop/CZJOjY5RUV1N/4OKtEk0nxJO UC4dx27z4ITheuTf5vkslf5rQZRUk0qCvLfi1+DCcHCbS9nB8ML9tKunPxRfZ0ivAOEf qxDLwB203CFgLYKKW5ACXrIXmtd/8O6FmrNt5N5n34ARyUZHAOHdwbczBPdcJL3R4Gsa ONMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=avrg0p0zcjNQXnwku7LjBEc26ITlI2L8ZDmV7YUxLHk=; b=mjkGhzSL0+UeeRA1XR63et60HBeuASaoBvgEdU8ysqAWLCZ07xa/jVHg+iLZ1r2fX0 ikpx526R1GHnySk+k1Jp5ui1dFhlZ/oFgkACQGppDfBS3xoP7ApI4XIaY1bXZuKlyMfL DwchRr3rAvcR0lQQwqvKnc4pQ00e3UJQ37oC2c9bi3mV+TgLiN+HC0EXnIjbAZ+uJaYg LApFLbk2Qyk13ZsuSKNwwnIRAwaBGHjFUkpAWSE2yHmmvazSfvpUggkkpSDH3A3LewRf nM3FzCdaEoCvxJkIYON/uHLjRVqCOyTHHGE8AqAsuyodjgWFwlQX9CfJ44Tfm5RcgtJ1 BB9Q== X-Gm-Message-State: ACrzQf1hUWUMEaXjdNvYow0TBbHQlTMEDGl6BfWYOmA6i7vQztdgxXMa iGD/fbAAnmkAzFhpyQ6B8ec= X-Google-Smtp-Source: AMsMyM52ijLmTwWqEjQAFcbPkrpP0UqjyCZnJDRwDtXnieH2RtRbTOsPad5/gfZTaDZK85qSTqo5mQ== X-Received: by 2002:ac2:4c47:0:b0:4a2:c07b:4b62 with SMTP id o7-20020ac24c47000000b004a2c07b4b62mr15855128lfk.426.1666823572924; Wed, 26 Oct 2022 15:32:52 -0700 (PDT) Received: from ?IPV6:2a02:a31a:a240:1700:c898:de98:30b3:a07? ([2a02:a31a:a240:1700:c898:de98:30b3:a07]) by smtp.googlemail.com with ESMTPSA id n11-20020ac2490b000000b004979df1c1fasm994280lfi.61.2022.10.26.15.32.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 26 Oct 2022 15:32:52 -0700 (PDT) From: Mateusz Kwiatkowski X-Google-Original-From: Mateusz Kwiatkowski Message-ID: Date: Thu, 27 Oct 2022 00:32:50 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Subject: Re: [PATCH v6 22/23] drm/vc4: vec: Add support for more analog TV standards Content-Language: pl To: maxime@cerno.tech, Karol Herbst , Emma Anholt , Ben Skeggs , Chen-Yu Tsai , Rodrigo Vivi , Maarten Lankhorst , Jani Nikula , Daniel Vetter , Thomas Zimmermann , Tvrtko Ursulin , Samuel Holland , Jernej Skrabec , David Airlie , Maxime Ripard , Joonas Lahtinen , Lyude Paul Cc: linux-sunxi@lists.linux.dev, intel-gfx@lists.freedesktop.org, Phil Elwell , linux-arm-kernel@lists.infradead.org, nouveau@lists.freedesktop.org, Hans de Goede , Dom Cobley , dri-devel@lists.freedesktop.org, Dave Stevenson , linux-kernel@vger.kernel.org, =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , Geert Uytterhoeven References: <20220728-rpi-analog-tv-properties-v6-0-e7792734108f@cerno.tech> <20220728-rpi-analog-tv-properties-v6-22-e7792734108f@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v6-22-e7792734108f@cerno.tech> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221026_153257_147503_125BD3D7 X-CRM114-Status: GOOD ( 43.37 ) 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 SGkgTWF4aW1lLAoKSSd2ZSBzZWVuIHRoYXQgeW91J3ZlIGluY29ycG9yYXRlZCBteSBQQUw2MCBw YXRjaC4gVGhhbmtzIQoKSSBzdGlsbCB5ZXQgbmVlZCB0byB0ZXN0IHlvdXIgdjYgY2hhbmdlcywg YnV0IGxvb2tpbmcgYXQgdGhpcyBjb2RlIHdpdGgganVzdCBteQptZW50YWwgc3RhdGljIGFuYWx5 c2lzLCBpdCBzZWVtcyB0byBtZSB0aGF0IHRoZSB2YzRfdmVjX2VuY29kZXJfYXRvbWljX2NoZWNr KCkKc2hvdWxkIGhhdmUgdGhlIHR2X21vZGUgdmFsaWRhdGlvbi4gSSBzaG91bGQndmUgYWRkZWQg aXQgdG8gdGhlIFBBTDYwIHBhdGNoLApidXQgaXQgc29tZWhvdyBzbGlwcGVkIG15IG1pbmQgdGhl bi4KCkFueXdheSwgSSBtZW50aW9uZWQgaXQgcHJldmlvdXNseSBoZXJlOgpodHRwczovL2xvcmUu a2VybmVsLm9yZy9kcmktZGV2ZWwvMGYyYmVlYzItYWU4ZS01NTc5LWYwYjYtYTczZDlkYWUxYWY0 QGdtYWlsLmNvbS8KCkl0IHdvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2UgdGhpcywgaW5zaWRlIHZj NF92ZWNfZW5jb2Rlcl9hdG9taWNfY2hlY2soKToKCisJY29uc3Qgc3RydWN0IHZjNF92ZWNfdHZf bW9kZSAqdHZfbW9kZSA9CisJCXZjNF92ZWNfdHZfbW9kZV9sb29rdXAoY29ubl9zdGF0ZS0+dHYu bW9kZSk7CisKKwlpZiAoIXR2X21vZGUpCisJCXJldHVybiAtRUlOVkFMOwoKV2l0aG91dCB0aGlz LCBpdCdzIHBvc3NpYmxlIHRvIHNldCBlLmcuIDQ4MGkgbW9kZSBhbmQgU0VDQU0sIHdoaWNoIHdp bGwgZmFpbCAtCmJ1dCB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gaXQgd2lsbCBvbmx5IGZhaWwg aW4gdmM0X3ZlY19lbmNvZGVyX2VuYWJsZSgpLAp3aGljaCBjYW5ub3QgcmV0dXJuIGFuIGVycm9y LCBhbmQgaW4gbXkgZXhwZXJpZW5jZSB0aGF0IGNhdXNlcyBhIHJhdGhlciBsZW5ndGh5CmxvY2t1 cC4KCkJ1dCwgbGlrZSBJIHNhaWQsIEkgc3RpbGwgbmVlZCB0byBhY3R1YWxseSB0ZXN0IHRoYXQg d2l0aCB0aGlzIHZlcnNpb24uCgpBbnl3YXksIEkgd2FzIGFsc28gdGhpbmtpbmcgYWJvdXQgYWRk aW5nIHN1cHBvcnQgZm9yIHRoZSBtb3JlICJleG90aWMiCm5vbi1zdGFuZGFyZCBtb2Rlcy4gTlRT Qy01MCBpcywgdW5mb3J0dW5hdGVseSwgaW1wb3NzaWJsZSB3aXRoIFZFQywgYnV0ClBBTC1OLTYw IGFuZCBQQUwtTS01MCBzaG91bGQgd29yay4gVGhlIG5lY2Vzc2FyeSB2YzRfdmVjX3R2X21vZGVz IGVudHJpZXMgd291bGQKbG9vayBzb21ldGhpbmcgbGlrZToKCkBAIC0zMjUsMTIgKzMyNSwyOCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHZjNF92ZWNfdHZfbW9kZSB2YzRfdmVjX3R2X21vZGVzW10g PSB7CiAJCS5jb25maWcwID0gVkVDX0NPTkZJRzBfUEFMX01fU1RELAogCQkuY29uZmlnMSA9IFZF Q19DT05GSUcxX0NfQ1ZCU19DVkJTLAogCX0sCisJeworCQkvKiBQQUwtTS01MCAqLworCQkubW9k ZSA9IERSTV9NT0RFX1RWX01PREVfUEFMLAorCQkuZXhwZWN0ZWRfaHRvdGFsID0gODY0LAorCQku Y29uZmlnMCA9IFZFQ19DT05GSUcwX1BBTF9CREdISV9TVEQsCisJCS5jb25maWcxID0gVkVDX0NP TkZJRzFfQ19DVkJTX0NWQlMgfCBWRUNfQ09ORklHMV9DVVNUT01fRlJFUSwKKwkJLmN1c3RvbV9m cmVxID0gMHgyMWU2ZWZlMywKKwl9LAogCXsKIAkJLm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1BB TF9OLAogCQkuZXhwZWN0ZWRfaHRvdGFsID0gODY0LAogCQkuY29uZmlnMCA9IFZFQ19DT05GSUcw X1BBTF9OX1NURCwKIAkJLmNvbmZpZzEgPSBWRUNfQ09ORklHMV9DX0NWQlNfQ1ZCUywKIAl9LAor CXsKKwkJLyogUEFMLU4tNjAgKi8KKwkJLm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1BBTF9OLAor CQkuZXhwZWN0ZWRfaHRvdGFsID0gODU4LAorCQkuY29uZmlnMCA9IFZFQ19DT05GSUcwX1BBTF9N X1NURCwKKwkJLmNvbmZpZzEgPSBWRUNfQ09ORklHMV9DX0NWQlNfQ1ZCUyB8IFZFQ19DT05GSUcx X0NVU1RPTV9GUkVRLAorCQkuY3VzdG9tX2ZyZXEgPSAweDIxZjY5NDQ2LAorCX0sCiAJewogCQku bW9kZSA9IERSTV9NT0RFX1RWX01PREVfU0VDQU0sCiAJCS5leHBlY3RlZF9odG90YWwgPSA4NjQs CgpJJ20gbm90IHN1cmUgaWYgd2UgYWN0dWFsbHkgd2FudCB0byBhZGQgdGhhdC4gVGhlIHR3byBh cmd1bWVudHMgZm9yIGRvaW5nIHNvCkkgY2FuIHRoaW5rIG9mIGlzIDEuIGl0IHNob3VsZCB3b3Jr LCBzbyAid2h5IG5vdCIsIDIuIGl0IG1lYW5zIHRoYXQgbW9yZSBtb2Rlcwp3aWxsIHJlc3VsdCBp biBfc29tZV8ga2luZCBvZiBhIHZhbGlkIHNpZ25hbCwgcmF0aGVyIHRoYW4gZXJyb3Jpbmcgb3V0 LCB3aGljaAppcyBhbHdheXMgYSBwbHVzIGluIG15IGJvb2suIEkgY2FuIGFsc28gdGhpbmsgb2Yg YSBoeXBvdGhldGljYWwgdXNlIGNhc2UsIGxpa2UKc29tZW9uZSBpbiBTb3V0aCBBbWVyaWNhIHdp dGggYW4gb2xkIFBBTC1OLW9ubHkgc2V0IHRoYXQgd291bGQgbmV2ZXJ0aGVsZXNzCnN0aWxsIHN5 bmMgYXQgNjAgSHogKHBlcmhhcHMgd2l0aCB0aGUgaGVscCBvZiBtZXNzaW5nIHdpdGggdmVydGlj YWwgaG9sZCBrbm9iKSwKd2hvIHdvdWxkIGxpa2UgdG8gcGxheSByZXRybyBnYW1lcyBhdCA2MCBI eiBpbiBjb2xvci4KCkJ1dCBvbiB0aGUgb3RoZXIgaGFuZCwgSSBhZG1pdCB0aGF0IHRoaXMgc2Nl bmFyaW8gaXMgbGlrZWx5IGEgc3RyZXRjaCBhbmQgdGhlCm51bWJlciBvZiBwZW9wbGUgd2hvIHdv dWxkIGFjdHVhbGx5IHVzZSBpdCBpcyBwcm9iYWJseSBjbG9zZSB0byB0aGUgcHJvdmVyYmlhbAp0 d28gOykgU28gaXQncyB5b3VyIGNhbGwsIEknbSBqdXN0IGxlYXZpbmcgdGhvc2Ugc2V0dGluZ3Mg aGVyZSBqdXN0IGluIGNhc2UuCgpJJ2xsIGdldCBiYWNrIGluIGEgY291cGxlIG9mIGRheXMgd2hl biBJIGRvIHNvbWUgdGVzdGluZyBvZiB0aGlzIHY2IHBhdGNoc2V0LgoKQmVzdCByZWdhcmRzLApN YXRldXN6IEt3aWF0a293c2tpCgpXIGRuaXUgMjYuMTAuMjAyMiBvIDE3OjMzLCBtYXhpbWVAY2Vy bm8udGVjaCBwaXN6ZToKPiBGcm9tOiBNYXRldXN6IEt3aWF0a293c2tpIDxrZnlhdGVrK3B1Ymxp Y2dpdEBnbWFpbC5jb20+Cj4KPiBBZGQgc3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyBjb21wb3Np dGUgb3V0cHV0IG1vZGVzIChhbGwgb2YgdGhlbSBhcmUKPiBzb21ld2hhdCBtb3JlIG9ic2N1cmUg dGhhbiB0aGUgcHJldmlvdXNseSBkZWZpbmVkIG9uZXMpOgo+Cj4gLSBOVFNDXzQ0MyAtIE5UU0Mt c3R5bGUgc2lnbmFsIHdpdGggdGhlIGNocm9tYSBzdWJjYXJyaWVyIHNoaWZ0ZWQgdG8KPiAgIDQu NDMzNjE4NzUgTUh6ICh0aGUgUEFMIHN1YmNhcnJpZXIgZnJlcXVlbmN5KS4gTmV2ZXIgdXNlZCBm b3IKPiAgIGJyb2FkY2FzdGluZywgYnV0IHNvbWV0aW1lcyB1c2VkIGFzIGEgaGFjayB0byBwbGF5 IE5UU0MgY29udGVudCBpbiBQQUwKPiAgIHJlZ2lvbnMgKGUuZy4gb24gVkNScykuCj4gLSBQQUxf TiAtIFBBTCB3aXRoIGFsdGVybmF0aXZlIGNocm9tYSBzdWJjYXJyaWVyIGZyZXF1ZW5jeSwKPiAg IDMuNTgyMDU2MjUgTUh6LiBVc2VkIGFzIGEgYnJvYWRjYXN0IHN0YW5kYXJkIGluIEFyZ2VudGlu YSwgUGFyYWd1YXkKPiAgIGFuZCBVcnVndWF5IHRvIGZpdCA1NzZpNTAgd2l0aCBjb2xvdXIgaW4g NiBNSHogY2hhbm5lbCByYXN0ZXIuCj4gLSBQQUw2MCAtIDQ4MGk2MCBzaWduYWwgd2l0aCBQQUwt c3R5bGUgY29sb3IgYXQgbm9ybWFsIEV1cm9wZWFuIFBBTAo+ICAgZnJlcXVlbmN5LiBBbm90aGVy IG5vbi1zdGFuZGFyZCwgbm9uLWJyb2FkY2FzdCBtb2RlLCB1c2VkIGluIHNpbWlsYXIKPiAgIGNv bnRleHRzIGFzIE5UU0NfNDQzLiBTb21lIGRpc3BsYXlzIHN1cHBvcnQgb25lIGJ1dCBub3QgdGhl IG90aGVyLgo+IC0gU0VDQU0gLSBGcmVuY2ggZnJlcXVlbmN5LW1vZHVsYXRlZCBhbmFsb2cgY29s b3Igc3RhbmRhcmQ7IGFsc28gaGF2ZQo+ICAgYmVlbiBicm9hZGNhc3QgaW4gRWFzdGVybiBFdXJv cGUgYW5kIHZhcmlvdXMgcGFydHMgb2YgQWZyaWNhIGFuZCBBc2lhLgo+ICAgVXNlcyB0aGUgc2Ft ZSA1NzZpNTAgdGltaW5ncyBhcyBQQUwuCj4KPiBBbHNvIGFkZGVkIHNvbWUgY29tbWVudHMgZXhw bGFpbmluZyBjb2xvciBzdWJjYXJyaWVyIGZyZXF1ZW5jeQo+IHJlZ2lzdGVycy4KPgo+IEFja2Vk LWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPiBTaWduZWQtb2ZmLWJ5 OiBNYXRldXN6IEt3aWF0a293c2tpIDxrZnlhdGVrK3B1YmxpY2dpdEBnbWFpbC5jb20+Cj4gU2ln bmVkLW9mZi1ieTogTWF4aW1lIFJpcGFyZCA8bWF4aW1lQGNlcm5vLnRlY2g+Cj4KPiAtLS0KPiBD aGFuZ2VzIGluIHY2Ogo+IC0gU3VwcG9ydCBQQUw2MCBhZ2Fpbgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vdmM0L3ZjNF92ZWMuYyB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3ZlYy5jIGIv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdmVjLmMKPiBpbmRleCAxZGRhNDUxYzhkZWYuLmQ4MmFl ZjE2ODA3NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92ZWMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3ZlYy5jCj4gQEAgLTQ2LDYgKzQ2LDcgQEAKPiAg I2RlZmluZSBWRUNfQ09ORklHMF9ZREVMKHgpCQkoKHgpIDw8IDI2KQo+ICAjZGVmaW5lIFZFQ19D T05GSUcwX0NERUxfTUFTSwkJR0VOTUFTSygyNSwgMjQpCj4gICNkZWZpbmUgVkVDX0NPTkZJRzBf Q0RFTCh4KQkJKCh4KSA8PCAyNCkKPiArI2RlZmluZSBWRUNfQ09ORklHMF9TRUNBTV9TVEQJCUJJ VCgyMSkKPiAgI2RlZmluZSBWRUNfQ09ORklHMF9QQlBSX0ZJTAkJQklUKDE4KQo+ICAjZGVmaW5l IFZFQ19DT05GSUcwX0NIUk9NQV9HQUlOX01BU0sJR0VOTUFTSygxNywgMTYpCj4gICNkZWZpbmUg VkVDX0NPTkZJRzBfQ0hST01BX0dBSU5fVU5JVFkJKDAgPDwgMTYpCj4gQEAgLTc2LDYgKzc3LDI3 IEBACj4gICNkZWZpbmUgVkVDX1NPRlRfUkVTRVQJCQkweDEwYwo+ICAjZGVmaW5lIFZFQ19DTE1Q MF9TVEFSVAkJCTB4MTQ0Cj4gICNkZWZpbmUgVkVDX0NMTVAwX0VORAkJCTB4MTQ4Cj4gKwo+ICsv Kgo+ICsgKiBUaGVzZSBzZXQgdGhlIGNvbG9yIHN1YmNhcnJpZXIgZnJlcXVlbmN5Cj4gKyAqIGlm IFZFQ19DT05GSUcxX0NVU1RPTV9GUkVRIGlzIGVuYWJsZWQuCj4gKyAqCj4gKyAqIFZFQ19GUkVR MV8wIGNvbnRhaW5zIHRoZSBtb3N0IHNpZ25pZmljYW50IDE2LWJpdCBoYWxmLXdvcmQsCj4gKyAq IFZFQ19GUkVRM18yIGNvbnRhaW5zIHRoZSBsZWFzdCBzaWduaWZpY2FudCAxNi1iaXQgaGFsZi13 b3JkLgo+ICsgKiAweDgwMDAwMDAwIHNlZW1zIHRvIGJlIGVxdWl2YWxlbnQgdG8gdGhlIHBpeGVs IGNsb2NrCj4gKyAqICh3aGljaCBpdHNlbGYgaXMgdGhlIFZFQyBjbG9jayBkaXZpZGVkIGJ5IDgp Lgo+ICsgKgo+ICsgKiBSZWZlcmVuY2UgdmFsdWVzICh3aXRoIHRoZSBkZWZhdWx0IHBpeGVsIGNs b2NrIG9mIDEzLjUgTUh6KToKPiArICoKPiArICogTlRTQyAgKDM1Nzk1NDUuWzQ1XSBIeikgICAg IC0gMHgyMUYwN0MxRgo+ICsgKiBQQUwgICAoNDQzMzYxOC43NSBIeikgICAgICAgLSAweDJBMDk4 QUNCCj4gKyAqIFBBTC1NICgzNTc1NjExLls4ODgxMTFdIEh6KSAtIDB4MjFFNkVGRTMKPiArICog UEFMLU4gKDM1ODIwNTYuMjUgSHopICAgICAgIC0gMHgyMUY2OTQ0Ngo+ICsgKgo+ICsgKiBOT1RF OiBGb3IgU0VDQU0sIGl0IGlzIHVzZWQgYXMgdGhlIERyIGNlbnRlciBmcmVxdWVuY3ksCj4gKyAq IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBWRUNfQ09ORklHMV9DVVNUT01fRlJFUSBpcyBlbmFibGVk IG9yIG5vdDsKPiArICogdGhhdCBpcyBzcGVjaWZpZWQgYXMgNDQwNjI1MCBIeiwgd2hpY2ggY29y cmVzcG9uZHMgdG8gMHgyOUM3MUM3Mi4KPiArICovCj4gICNkZWZpbmUgVkVDX0ZSRVEzXzIJCQkw eDE4MAo+ICAjZGVmaW5lIFZFQ19GUkVRMV8wCQkJMHgxODQKPiAgCj4gQEAgLTExOCw2ICsxNDAs MTQgQEAKPiAgCj4gICNkZWZpbmUgVkVDX0lOVEVSUlVQVF9DT05UUk9MCQkweDE5MAo+ICAjZGVm aW5lIFZFQ19JTlRFUlJVUFRfU1RBVFVTCQkweDE5NAo+ICsKPiArLyoKPiArICogRGIgY2VudGVy IGZyZXF1ZW5jeSBmb3IgU0VDQU07IHRoZSBjbG9jayBmb3IgdGhpcyBpcyB0aGUgc2FtZSBhcyBm b3IKPiArICogVkVDX0ZSRVEzXzIvVkVDX0ZSRVExXzAsIHdoaWNoIGlzIHVzZWQgZm9yIERyIGNl bnRlciBmcmVxdWVuY3kuCj4gKyAqCj4gKyAqIFRoaXMgaXMgc3BlY2lmaWVkIGFzIDQyNTAwMDAg SHosIHdoaWNoIGNvcnJlc3BvbmRzIHRvIDB4Mjg0QkRBMTMuCj4gKyAqIFRoYXQgaXMgYWxzbyB0 aGUgZGVmYXVsdCB2YWx1ZSwgc28gbm8gbmVlZCB0byBzZXQgaXQgZXhwbGljaXRseS4KPiArICov Cj4gICNkZWZpbmUgVkVDX0ZDV19TRUNBTV9CCQkJMHgxOTgKPiAgI2RlZmluZSBWRUNfU0VDQU1f R0FJTl9WQUwJCTB4MTljCj4gIAo+IEBAIC0xOTcsMTAgKzIyNywxNSBAQCBlbnVtIHZjNF92ZWNf dHZfbW9kZV9pZCB7Cj4gIAlWQzRfVkVDX1RWX01PREVfTlRTQ19KLAo+ICAJVkM0X1ZFQ19UVl9N T0RFX1BBTCwKPiAgCVZDNF9WRUNfVFZfTU9ERV9QQUxfTSwKPiArCVZDNF9WRUNfVFZfTU9ERV9O VFNDXzQ0MywKPiArCVZDNF9WRUNfVFZfTU9ERV9QQUxfNjAsCj4gKwlWQzRfVkVDX1RWX01PREVf UEFMX04sCj4gKwlWQzRfVkVDX1RWX01PREVfU0VDQU0sCj4gIH07Cj4gIAo+ICBzdHJ1Y3QgdmM0 X3ZlY190dl9tb2RlIHsKPiAgCXVuc2lnbmVkIGludCBtb2RlOwo+ICsJdTE2IGV4cGVjdGVkX2h0 b3RhbDsKPiAgCXUzMiBjb25maWcwOwo+ICAJdTMyIGNvbmZpZzE7Cj4gIAl1MzIgY3VzdG9tX2Zy ZXE7Cj4gQEAgLTIzNiwzNSArMjcxLDY4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGVidWdmc19y ZWczMiB2ZWNfcmVnc1tdID0gewo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHZjNF92ZWNfdHZfbW9k ZSB2YzRfdmVjX3R2X21vZGVzW10gPSB7Cj4gIAl7Cj4gIAkJLm1vZGUgPSBEUk1fTU9ERV9UVl9N T0RFX05UU0MsCj4gKwkJLmV4cGVjdGVkX2h0b3RhbCA9IDg1OCwKPiAgCQkuY29uZmlnMCA9IFZF Q19DT05GSUcwX05UU0NfU1REIHwgVkVDX0NPTkZJRzBfUERFTiwKPiAgCQkuY29uZmlnMSA9IFZF Q19DT05GSUcxX0NfQ1ZCU19DVkJTLAo+ICAJfSwKPiArCXsKPiArCQkubW9kZSA9IERSTV9NT0RF X1RWX01PREVfTlRTQ180NDMsCj4gKwkJLmV4cGVjdGVkX2h0b3RhbCA9IDg1OCwKPiArCQkuY29u ZmlnMCA9IFZFQ19DT05GSUcwX05UU0NfU1RELAo+ICsJCS5jb25maWcxID0gVkVDX0NPTkZJRzFf Q19DVkJTX0NWQlMgfCBWRUNfQ09ORklHMV9DVVNUT01fRlJFUSwKPiArCQkuY3VzdG9tX2ZyZXEg PSAweDJhMDk4YWNiLAo+ICsJfSwKPiAgCXsKPiAgCQkubW9kZSA9IERSTV9NT0RFX1RWX01PREVf TlRTQ19KLAo+ICsJCS5leHBlY3RlZF9odG90YWwgPSA4NTgsCj4gIAkJLmNvbmZpZzAgPSBWRUNf Q09ORklHMF9OVFNDX1NURCwKPiAgCQkuY29uZmlnMSA9IFZFQ19DT05GSUcxX0NfQ1ZCU19DVkJT LAo+ICAJfSwKPiAgCXsKPiAgCQkubW9kZSA9IERSTV9NT0RFX1RWX01PREVfUEFMLAo+ICsJCS5l eHBlY3RlZF9odG90YWwgPSA4NjQsCj4gIAkJLmNvbmZpZzAgPSBWRUNfQ09ORklHMF9QQUxfQkRH SElfU1RELAo+ICAJCS5jb25maWcxID0gVkVDX0NPTkZJRzFfQ19DVkJTX0NWQlMsCj4gIAl9LAo+ ICsJewo+ICsJCS8qIFBBTC02MCAqLwo+ICsJCS5tb2RlID0gRFJNX01PREVfVFZfTU9ERV9QQUws Cj4gKwkJLmV4cGVjdGVkX2h0b3RhbCA9IDg1OCwKPiArCQkuY29uZmlnMCA9IFZFQ19DT05GSUcw X1BBTF9NX1NURCwKPiArCQkuY29uZmlnMSA9IFZFQ19DT05GSUcxX0NfQ1ZCU19DVkJTIHwgVkVD X0NPTkZJRzFfQ1VTVE9NX0ZSRVEsCj4gKwkJLmN1c3RvbV9mcmVxID0gMHgyYTA5OGFjYiwKPiAr CX0sCj4gIAl7Cj4gIAkJLm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1BBTF9NLAo+ICsJCS5leHBl Y3RlZF9odG90YWwgPSA4NTgsCj4gIAkJLmNvbmZpZzAgPSBWRUNfQ09ORklHMF9QQUxfTV9TVEQs Cj4gIAkJLmNvbmZpZzEgPSBWRUNfQ09ORklHMV9DX0NWQlNfQ1ZCUywKPiAgCX0sCj4gKwl7Cj4g KwkJLm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1BBTF9OLAo+ICsJCS5leHBlY3RlZF9odG90YWwg PSA4NjQsCj4gKwkJLmNvbmZpZzAgPSBWRUNfQ09ORklHMF9QQUxfTl9TVEQsCj4gKwkJLmNvbmZp ZzEgPSBWRUNfQ09ORklHMV9DX0NWQlNfQ1ZCUywKPiArCX0sCj4gKwl7Cj4gKwkJLm1vZGUgPSBE Uk1fTU9ERV9UVl9NT0RFX1NFQ0FNLAo+ICsJCS5leHBlY3RlZF9odG90YWwgPSA4NjQsCj4gKwkJ LmNvbmZpZzAgPSBWRUNfQ09ORklHMF9TRUNBTV9TVEQsCj4gKwkJLmNvbmZpZzEgPSBWRUNfQ09O RklHMV9DX0NWQlNfQ1ZCUywKPiArCQkuY3VzdG9tX2ZyZXEgPSAweDI5YzcxYzcyLAo+ICsJfSwK PiAgfTsKPiAgCj4gIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IHZjNF92ZWNfdHZfbW9kZSAq Cj4gLXZjNF92ZWNfdHZfbW9kZV9sb29rdXAodW5zaWduZWQgaW50IG1vZGUpCj4gK3ZjNF92ZWNf dHZfbW9kZV9sb29rdXAodW5zaWduZWQgaW50IG1vZGUsIHUxNiBodG90YWwpCj4gIHsKPiAgCXVu c2lnbmVkIGludCBpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHZjNF92ZWNf dHZfbW9kZXMpOyBpKyspIHsKPiAgCQljb25zdCBzdHJ1Y3QgdmM0X3ZlY190dl9tb2RlICp0dl9t b2RlID0gJnZjNF92ZWNfdHZfbW9kZXNbaV07Cj4gIAo+IC0JCWlmICh0dl9tb2RlLT5tb2RlID09 IG1vZGUpCj4gKwkJaWYgKHR2X21vZGUtPm1vZGUgPT0gbW9kZSAmJgo+ICsJCSAgICB0dl9tb2Rl LT5leHBlY3RlZF9odG90YWwgPT0gaHRvdGFsKQo+ICAJCQlyZXR1cm4gdHZfbW9kZTsKPiAgCX0K PiAgCj4gQEAgLTI3Myw5ICszNDEsMTMgQEAgdmM0X3ZlY190dl9tb2RlX2xvb2t1cCh1bnNpZ25l ZCBpbnQgbW9kZSkKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0 IGxlZ2FjeV90dl9tb2RlX25hbWVzW10gPSB7Cj4gIAl7IFZDNF9WRUNfVFZfTU9ERV9OVFNDLCAi TlRTQyIsIH0sCj4gKwl7IFZDNF9WRUNfVFZfTU9ERV9OVFNDXzQ0MywgIk5UU0MtNDQzIiwgfSwK PiAgCXsgVkM0X1ZFQ19UVl9NT0RFX05UU0NfSiwgIk5UU0MtSiIsIH0sCj4gIAl7IFZDNF9WRUNf VFZfTU9ERV9QQUwsICJQQUwiLCB9LAo+ICsJeyBWQzRfVkVDX1RWX01PREVfUEFMXzYwLCAiUEFM LTYwIiwgfSwKPiAgCXsgVkM0X1ZFQ19UVl9NT0RFX1BBTF9NLCAiUEFMLU0iLCB9LAo+ICsJeyBW QzRfVkVDX1RWX01PREVfUEFMX04sICJQQUwtTiIsIH0sCj4gKwl7IFZDNF9WRUNfVFZfTU9ERV9T RUNBTSwgIlNFQ0FNIiwgfSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jf c3RhdHVzCj4gQEAgLTMwNiwxMSArMzc4LDE2IEBAIHZjNF92ZWNfY29ubmVjdG9yX3NldF9wcm9w ZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCXN0YXRlLT50di5tb2Rl ID0gRFJNX01PREVfVFZfTU9ERV9OVFNDOwo+ICAJCWJyZWFrOwo+ICAKPiArCWNhc2UgVkM0X1ZF Q19UVl9NT0RFX05UU0NfNDQzOgo+ICsJCXN0YXRlLT50di5tb2RlID0gRFJNX01PREVfVFZfTU9E RV9OVFNDXzQ0MzsKPiArCQlicmVhazsKPiArCj4gIAljYXNlIFZDNF9WRUNfVFZfTU9ERV9OVFND X0o6Cj4gIAkJc3RhdGUtPnR2Lm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX05UU0NfSjsKPiAgCQli cmVhazsKPiAgCj4gIAljYXNlIFZDNF9WRUNfVFZfTU9ERV9QQUw6Cj4gKwljYXNlIFZDNF9WRUNf VFZfTU9ERV9QQUxfNjA6Cj4gIAkJc3RhdGUtPnR2Lm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1BB TDsKPiAgCQlicmVhazsKPiAgCj4gQEAgLTMxOCw2ICszOTUsMTQgQEAgdmM0X3ZlY19jb25uZWN0 b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJc3Rh dGUtPnR2Lm1vZGUgPSBEUk1fTU9ERV9UVl9NT0RFX1BBTF9NOwo+ICAJCWJyZWFrOwo+ICAKPiAr CWNhc2UgVkM0X1ZFQ19UVl9NT0RFX1BBTF9OOgo+ICsJCXN0YXRlLT50di5tb2RlID0gRFJNX01P REVfVFZfTU9ERV9QQUxfTjsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIFZDNF9WRUNfVFZfTU9E RV9TRUNBTToKPiArCQlzdGF0ZS0+dHYubW9kZSA9IERSTV9NT0RFX1RWX01PREVfU0VDQU07Cj4g KwkJYnJlYWs7Cj4gKwo+ICAJZGVmYXVsdDoKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiBA QCAtMzQxLDYgKzQyNiwxMCBAQCB2YzRfdmVjX2Nvbm5lY3Rvcl9nZXRfcHJvcGVydHkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkqdmFsID0gVkM0X1ZFQ19UVl9NT0RFX05U U0M7Cj4gIAkJYnJlYWs7Cj4gIAo+ICsJY2FzZSBEUk1fTU9ERV9UVl9NT0RFX05UU0NfNDQzOgo+ ICsJCSp2YWwgPSBWQzRfVkVDX1RWX01PREVfTlRTQ180NDM7Cj4gKwkJYnJlYWs7Cj4gKwo+ICAJ Y2FzZSBEUk1fTU9ERV9UVl9NT0RFX05UU0NfSjoKPiAgCQkqdmFsID0gVkM0X1ZFQ19UVl9NT0RF X05UU0NfSjsKPiAgCQlicmVhazsKPiBAQCAtMzUzLDYgKzQ0MiwxNCBAQCB2YzRfdmVjX2Nvbm5l Y3Rvcl9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkq dmFsID0gVkM0X1ZFQ19UVl9NT0RFX1BBTF9NOwo+ICAJCWJyZWFrOwo+ICAKPiArCWNhc2UgRFJN X01PREVfVFZfTU9ERV9QQUxfTjoKPiArCQkqdmFsID0gVkM0X1ZFQ19UVl9NT0RFX1BBTF9OOwo+ ICsJCWJyZWFrOwo+ICsKPiArCWNhc2UgRFJNX01PREVfVFZfTU9ERV9TRUNBTToKPiArCQkqdmFs ID0gVkM0X1ZFQ19UVl9NT0RFX1NFQ0FNOwo+ICsJCWJyZWFrOwo+ICsKPiAgCWRlZmF1bHQ6Cj4g IAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gQEAgLTQ0OCwxMyArNTQ1LDE2IEBAIHN0YXRpYyB2 b2lkIHZjNF92ZWNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZ2ZWMtPmNvbm5lY3RvcjsKPiAg CXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlID0KPiAgCQlkcm1fYXRvbWlj X2dldF9uZXdfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICsJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ICsJCSZlbmNvZGVyLT5jcnRjLT5zdGF0 ZS0+YWRqdXN0ZWRfbW9kZTsKPiAgCWNvbnN0IHN0cnVjdCB2YzRfdmVjX3R2X21vZGUgKnR2X21v ZGU7Cj4gIAlpbnQgaWR4LCByZXQ7Cj4gIAo+ICAJaWYgKCFkcm1fZGV2X2VudGVyKGRybSwgJmlk eCkpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCXR2X21vZGUgPSB2YzRfdmVjX3R2X21vZGVfbG9va3Vw KGNvbm5fc3RhdGUtPnR2Lm1vZGUpOwo+ICsJdHZfbW9kZSA9IHZjNF92ZWNfdHZfbW9kZV9sb29r dXAoY29ubl9zdGF0ZS0+dHYubW9kZSwKPiArCQkJCQkgYWRqdXN0ZWRfbW9kZS0+aHRvdGFsKTsK PiAgCWlmICghdHZfbW9kZSkKPiAgCQlnb3RvIGVycl9kZXZfZXhpdDsKPiAgCj4gQEAgLTY0Myw5 ICs3NDMsMTIgQEAgc3RhdGljIGludCB2YzRfdmVjX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIAo+ICAJcmV0ID0gZHJtX21vZGVf Y3JlYXRlX3R2X3Byb3BlcnRpZXMoZHJtLAo+ICAJCQkJCSAgICBCSVQoRFJNX01PREVfVFZfTU9E RV9OVFNDKSB8Cj4gKwkJCQkJICAgIEJJVChEUk1fTU9ERV9UVl9NT0RFX05UU0NfNDQzKSB8Cj4g IAkJCQkJICAgIEJJVChEUk1fTU9ERV9UVl9NT0RFX05UU0NfSikgfAo+ICAJCQkJCSAgICBCSVQo RFJNX01PREVfVFZfTU9ERV9QQUwpIHwKPiAtCQkJCQkgICAgQklUKERSTV9NT0RFX1RWX01PREVf UEFMX00pKTsKPiArCQkJCQkgICAgQklUKERSTV9NT0RFX1RWX01PREVfUEFMX00pIHwKPiArCQkJ CQkgICAgQklUKERSTV9NT0RFX1RWX01PREVfUEFMX04pIHwKPiArCQkJCQkgICAgQklUKERSTV9N T0RFX1RWX01PREVfU0VDQU0pKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4K CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1h cm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0t a2VybmVsCg==