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 6D869C433EF for ; Thu, 21 Apr 2022 08:42:35 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6tpNZmlyKTq637ap+wpda1JosJWq/hpeD0UJuOo7tRI=; b=o7o93CFGYgqsUP U5EITXjhSTNlVNHg+DVBMobA9+jjbS3GSakbCVDoL5nQgh071xsFtC7jNRsnz5a5p+YB9w81QBNeL XGgISBugy3X7t7mGsH53PTzgyII7NJGiT3X/60u3EsvpmpcWDDNbQPZXzGnvdiIMT9/DL0/oAqcvx NHI4iem7ad7WhYKQ+a2RAeZd8Pw3YFzAoAB88r4w2cP6wWAeW7fewgblvBMNu8IVYA95XOxVdz/PX JFafKMYlUfayuoqbplhNWT2RXdM79nDtHVwCC+FCLDosyJkTnDveAQja5g5Sw52/dXxU7mWosqyY0 Q6bc9JqLSIz71FQKh+1w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhSOR-00CTbs-8N; Thu, 21 Apr 2022 08:42:27 +0000 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhSOD-00CTZS-4A for linux-amlogic@lists.infradead.org; Thu, 21 Apr 2022 08:42:16 +0000 Received: by mail-wr1-x432.google.com with SMTP id m14so5625109wrb.6 for ; Thu, 21 Apr 2022 01:42:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:organization:in-reply-to :content-transfer-encoding; bh=GRwIBMypGJ4494NWv/nvWkZxwyj9l34mQTrjVFs3nzY=; b=FmtPQq61q/vLf+6gBPRqq+MRX63vSqV4YWt5CBayhuRGGRpY+25NdUvIv3lgPEwDtn DAHMetj13rZrKYcHUYjUrb9CDHTo3nV2mJEpJkTVuKBsuCT4GR+0BcVHsFOJJ1XmnxuU yks6djtBVFMx+Gf433/q7AZn9jlDL+EvLDgQJnIRS20aWaNKhOt0eqEmfGk4s6oEyFYi E18d7gzX/qfK50Hiz/oKe1G6kkbhaxJOQkya5+SS1HGsvC3zfdCyD3kXMAnnW5Vxtgf4 nI0W3S6ZCvz6zmQRmSiDMwLspVBU9JgQJDkwUAtO91Jj4E+cROpfgDh4DGzBUdMLgfgj pTIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:organization:in-reply-to :content-transfer-encoding; bh=GRwIBMypGJ4494NWv/nvWkZxwyj9l34mQTrjVFs3nzY=; b=4UvDMESjxSS9M0UaTuxv6CP1WtKoxIjU2a+jknHnUIvystQZX0XiEpPPBH6wSyr3K6 OEOjsnyWnCtxBktpZlTan8ALCd4GWlJ/ZAehJRlbjVRekpqbBGqnxDJsE1UF51spAumj oYNa9BJGnl2eIng9vGXuwEEH8CTBPx2DUiQddxpWjDsgKrdGbUQTBu4vvxL9TaE+ZmEk pR8i/3hvrkfLOsZ6BK4j34VmEcC05mTSNrEf+eIv6xR0pncmw54K97PrZpMsUprOmhDi gCj/pOSR8MRB+xxnwgftZuGwR9JgOpmSDvM20pxoMhtPBFxOX453hJRyrcBhjHxqUG0g j/kw== X-Gm-Message-State: AOAM530w2pn4yGFYDcpRCV7tyKrfSNLlihu8dZio6qYxMy0B7rri8bkU amC+Rb5WmkjaRWUf3TMAWLFhFg== X-Google-Smtp-Source: ABdhPJxMGiOnM4a6GccgNviBwIs30vZ0Evz/RzWJtuueoZFDIBZUiIhW+XXsK22p//lgDquC5LO4RQ== X-Received: by 2002:adf:fb10:0:b0:207:af88:1eb9 with SMTP id c16-20020adffb10000000b00207af881eb9mr19154385wrr.238.1650530528532; Thu, 21 Apr 2022 01:42:08 -0700 (PDT) Received: from ?IPV6:2001:861:44c0:66c0:35ba:2677:956:980d? ([2001:861:44c0:66c0:35ba:2677:956:980d]) by smtp.gmail.com with ESMTPSA id z18-20020a5d6552000000b00207b65f745bsm1710122wrv.83.2022.04.21.01.42.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Apr 2022 01:42:07 -0700 (PDT) Message-ID: <34f0dae0-d23f-2ac0-5f89-873ad71e030c@baylibre.com> Date: Thu, 21 Apr 2022 10:42:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: Fw: [PATCH v2] pwm: meson: external clock configuration for s4 Content-Language: en-US To: "junyi.zhao@amlogic.com" , "jbrunet@baylibre.com" , "thierry.reding@gmail.com" , "u.kleine-koenig@pengutronix.de" , "lee.jones@linaro.org" , "khilman@baylibre.com" , "martin.blumenstingl@googlemail.com" Cc: "linux-arm-kernel@lists.infradead.org" , "linux-amlogic@lists.infradead.org" , "linux-kernel@vger.kernel.org" References: <2022040817000273246011@amlogic.com> <202204191539395284891@amlogic.com> From: Neil Armstrong Organization: Baylibre In-Reply-To: <202204191539395284891@amlogic.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220421_014213_419908_E3A71F05 X-CRM114-Status: GOOD ( 30.21 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGkgSnVueWksDQoNCk9uIDE5LzA0LzIwMjIgMDk6MzksIGp1bnlpLnpoYW9AYW1sb2dpYy5jb20g d3JvdGU6DQo+IA0KPiBIaSBOZWlsIEFybXN0cm9uZ++8jGhhdmXCoHXCoGNoZWNrwqB0aGlz77yf DQo+IEJlY2F1c2XCoG9mwqBqaWF5aSdzIHBlcnNvbm5lbCBjaGFuZ2VzLCB0aGlzwqBwd23CoHVw c3RyZWFtwqBmbG93wqB1bmRlcsKgbXnCoGNoYXJnZcKgbm93Lg0KDQpXaGF0J3MgdGhlIHN0YXRl IG9mIHRoZSBwYXRjaHNldCA/DQoNCk9uIG15IHNpZGUsIEkgZGlkIGEgcmV2aWV3IG9mIHRoZSB2 MiBwYXRjaHNldCwgaWYgeW91IGhhdmUgc29tZSBxdWVzdGlvbnMgb24gbXkNCmNvbW1lbnRzLCBw bGVhc2UgYXNrIHRoZW0gaW4tbGluZS4NCg0KT3ZlcmFsbCwgdGhlIHBhdGNoc2V0IGNvdWxkIGJl IG11Y2ggc2ltcGxlciBzaW5jZSBiYXNpY2FsbHkgdGhlIFBXTSBtdXggaXMNCm5vdyBpbiB0aGUg Y2xvY2sgY29udHJvbGxlci4NCg0KVGhhbmtzLA0KTmVpbA0KDQo+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiBqdW55aS56aGFvQGFtbG9naWMuY29tDQo+IA0KPiAgICAgKkZyb206KiBqaWF5aS56 aG91QGFtbG9naWMuY29tIDxtYWlsdG86amlheWkuemhvdUBhbWxvZ2ljLmNvbT4NCj4gICAgICpE YXRlOirCoDIwMjItMDQtMDjCoDE3OjAwDQo+ICAgICAqVG86KiBqdW55aS56aGFvIDxtYWlsdG86 anVueWkuemhhb0BhbWxvZ2ljLmNvbT4NCj4gICAgICpTdWJqZWN0OirCoEZ3OiBSZTogW1BBVENI IHYyXSBwd206IG1lc29uOiBleHRlcm5hbCBjbG9jayBjb25maWd1cmF0aW9uIGZvciBzNA0KPiAN Cj4gDQo+ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gICAgIGppYXlpLnpob3VAYW1sb2dp Yy5jb20NCj4gDQo+ICAgICAgICAgKkZyb206KiBOZWlsIEFybXN0cm9uZyA8bWFpbHRvOm5hcm1z dHJvbmdAYmF5bGlicmUuY29tPg0KPiAgICAgICAgICpEYXRlOirCoDIwMjItMDEtMTTCoDE4OjE2 DQo+ICAgICAgICAgKlRvOiogSmlheWkuWmhvdSA8bWFpbHRvOkppYXlpLlpob3VAYW1sb2dpYy5j b20+OyBqYnJ1bmV0IDxtYWlsdG86amJydW5ldEBiYXlsaWJyZS5jb20+OyB0aGllcnJ5LnJlZGlu ZyA8bWFpbHRvOnRoaWVycnkucmVkaW5nQGdtYWlsLmNvbT47IHUua2xlaW5lLWtvZW5pZyA8bWFp bHRvOnUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT47IGxlZS5qb25lcyA8bWFpbHRvOmxl ZS5qb25lc0BsaW5hcm8ub3JnPjsga2hpbG1hbiA8bWFpbHRvOmtoaWxtYW5AYmF5bGlicmUuY29t PjsgbWFydGluLmJsdW1lbnN0aW5nbCA8bWFpbHRvOm1hcnRpbi5ibHVtZW5zdGluZ2xAZ29vZ2xl bWFpbC5jb20+DQo+ICAgICAgICAgKkNDOiogbGludXgtYXJtLWtlcm5lbCA8bWFpbHRvOmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZz47IGxpbnV4LWFtbG9naWMgPG1haWx0bzps aW51eC1hbWxvZ2ljQGxpc3RzLmluZnJhZGVhZC5vcmc+OyBsaW51eC1rZXJuZWwgPG1haWx0bzps aW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPg0KPiAgICAgICAgICpTdWJqZWN0OirCoFJlOiBb UEFUQ0ggdjJdIHB3bTogbWVzb246IGV4dGVybmFsIGNsb2NrIGNvbmZpZ3VyYXRpb24gZm9yIHM0 DQo+ICAgICAgICAgWyBFWFRFUk5BTCBFTUFJTCBdDQo+ICAgICAgICAgSGksDQo+ICAgICAgICAg T24gMTQvMDEvMjAyMiAxMDowNywgSmlheWkuWmhvdUBhbWxvZ2ljLmNvbSB3cm90ZToNCj4gICAg ICAgICAgPiBGcm9tOiAiSmlheWkuemhvdSIgPGppYXlpLnpob3VAYW1sb2dpYy5jb20+DQo+ICAg ICAgICAgID4NCj4gICAgICAgICAgPiBGb3IgUFdNIGNvbnRyb2xsZXIgaW4gdGhlIE1lc29uLVM0 IFNvQywNCj4gICAgICAgICAgPiBQV00gbmVlZHMgdG8gb2J0YWluIGFuIGV4dGVybmFsIGNsb2Nr IHNvdXJjZS4NCj4gICAgICAgICAgPiBUaGlzIHBhdGNoIHRyaWVzIHRvIGRlc2NyaWJlIHRoZW0g aW4gdGhlIERUIGNvbXBhdGlibGUgZGF0YS4NCj4gICAgICAgICBDYW4geW91IGJlIG1vcmUgZXhw bGljaXQgaGVyZSA/IE9uIHdoaWNoIFNvQyA/IFdoeSA/DQo+ICAgICAgICAgQXMgSSB1bmRlcnN0 YW5kIHdoaWxlIHJlYWRpbmcgdGhlIFM4MDVYMiBkYXRhc2hlZXQsIG5vdyB0aGUgUFdNIGNsb2Nr IGlucHV0IGlzDQo+ICAgICAgICAgZG9uZSBpbiBpbmRlcGVuZGVudCBDTEtDVFJMIHJlZ2lzdGVy cyBhbmQgbm8gbW9yZSBpbiB0aGUgUFdNIHJlZ2lzdGVycywgcmlnaHQgPw0KPiAgICAgICAgIFNv IHdpdGggUzQsIGluc3RlYWQgb2YgcGFzc2luZyB0aGUgbXV4IGlucHV0IGNsb2NrIG9mIGNsa2lu MCAmIGNsa2luMSwgbm93IHlvdSBwYXNzDQo+ICAgICAgICAgdGhlIFBXTSBtdXggb3V0cHV0IGNs b2NrLg0KPiAgICAgICAgICA+DQo+ICAgICAgICAgID4gU2lnbmVkLW9mZi1ieTogSmlheWkuemhv dSA8amlheWkuemhvdUBhbWxvZ2ljLmNvbT4NCj4gICAgICAgICAgPiAtLS0NCj4gICAgICAgICAg PsKgIGRyaXZlcnMvcHdtL3B3bS1tZXNvbi5jIHwgMTQ1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0NCj4gICAgICAgICAgPsKgIDEgZmlsZSBjaGFuZ2VkLCAxMTAgaW5z ZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pDQo+ICAgICAgICAgID4NCj4gICAgICAgICAgPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vcHdtLW1lc29uLmMgYi9kcml2ZXJzL3B3bS9wd20tbWVz b24uYw0KPiAgICAgICAgICA+IGluZGV4IDNjZjNiY2Y1ZGRmYy4uNTRkYjU2Yzk1YmUyIDEwMDY0 NA0KPiAgICAgICAgICA+IC0tLSBhL2RyaXZlcnMvcHdtL3B3bS1tZXNvbi5jDQo+ICAgICAgICAg ID4gKysrIGIvZHJpdmVycy9wd20vcHdtLW1lc29uLmMNCj4gICAgICAgICAgPiBAQCAtNTEsNiAr NTEsNyBAQA0KPiAgICAgICAgICA+wqAgI2RlZmluZSBSRUdfTUlTQ19BQiAweDgNCj4gICAgICAg ICAgPsKgICNkZWZpbmUgTUlTQ19CX0NMS19FTiBCSVQoMjMpDQo+ICAgICAgICAgID7CoCAjZGVm aW5lIE1JU0NfQV9DTEtfRU4gQklUKDE1KQ0KPiAgICAgICAgICA+ICsNCj4gICAgICAgICAgPsKg ICNkZWZpbmUgTUlTQ19DTEtfRElWX01BU0sgMHg3Zg0KPiAgICAgICAgICA+wqAgI2RlZmluZSBN SVNDX0JfQ0xLX0RJVl9TSElGVCAxNg0KPiAgICAgICAgICA+wqAgI2RlZmluZSBNSVNDX0FfQ0xL X0RJVl9TSElGVCA4DQo+ICAgICAgICAgID4gQEAgLTkzLDExICs5NCwxMyBAQCBzdHJ1Y3QgbWVz b25fcHdtX2NoYW5uZWwgew0KPiAgICAgICAgICA+wqAgc3RydWN0IGNsayAqY2xrX3BhcmVudDsN Cj4gICAgICAgICAgPsKgIHN0cnVjdCBjbGtfbXV4IG11eDsNCj4gICAgICAgICAgPsKgIHN0cnVj dCBjbGsgKmNsazsNCj4gICAgICAgICAgPiArIHN0cnVjdCBjbGsgKmNsa19tdXg7DQo+ICAgICAg ICAgV2h5IGRvIHlvdSBhZGQgYSBtdXggPw0KPiAgICAgICAgICA+wqAgfTsNCj4gICAgICAgICAg Pg0KPiAgICAgICAgICA+wqAgc3RydWN0IG1lc29uX3B3bV9kYXRhIHsNCj4gICAgICAgICAgPsKg IGNvbnN0IGNoYXIgKiBjb25zdCAqcGFyZW50X25hbWVzOw0KPiAgICAgICAgICA+wqAgdW5zaWdu ZWQgaW50IG51bV9wYXJlbnRzOw0KPiAgICAgICAgICA+ICsgdW5zaWduZWQgaW50IGV4dGVybl9j bGs7DQo+ICAgICAgICAgID7CoCB9Ow0KPiAgICAgICAgICA+DQo+ICAgICAgICAgID7CoCBzdHJ1 Y3QgbWVzb25fcHdtIHsNCj4gICAgICAgICAgPiBAQCAtMTA1LDYgKzEwOCw3IEBAIHN0cnVjdCBt ZXNvbl9wd20gew0KPiAgICAgICAgICA+wqAgY29uc3Qgc3RydWN0IG1lc29uX3B3bV9kYXRhICpk YXRhOw0KPiAgICAgICAgICA+wqAgc3RydWN0IG1lc29uX3B3bV9jaGFubmVsIGNoYW5uZWxzW01F U09OX05VTV9QV01TXTsNCj4gICAgICAgICAgPsKgIHZvaWQgX19pb21lbSAqYmFzZTsNCj4gICAg ICAgICAgPiArDQo+ICAgICAgICAgID7CoCAvKg0KPiAgICAgICAgICA+wqAgKiBQcm90ZWN0cyBy ZWdpc3RlciAod3JpdGUpIGFjY2VzcyB0byB0aGUgUkVHX01JU0NfQUIgcmVnaXN0ZXINCj4gICAg ICAgICAgPsKgICogdGhhdCBpcyBzaGFyZWQgYmV0d2VlbiB0aGUgdHdvIFBXTXMuDQo+ICAgICAg ICAgID4gQEAgLTEzMCwxMyArMTM0LDE1IEBAIHN0YXRpYyBpbnQgbWVzb25fcHdtX3JlcXVlc3Qo c3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtKQ0KPiAgICAgICAg ICA+DQo+ICAgICAgICAgID7CoCBjaGFubmVsID0gJm1lc29uLT5jaGFubmVsc1twd20tPmh3cHdt XTsNCj4gICAgICAgICAgPg0KPiAgICAgICAgICA+IC0gaWYgKGNoYW5uZWwtPmNsa19wYXJlbnQp IHsNCj4gICAgICAgICAgPiAtIGVyciA9IGNsa19zZXRfcGFyZW50KGNoYW5uZWwtPmNsaywgY2hh bm5lbC0+Y2xrX3BhcmVudCk7DQo+ICAgICAgICAgID4gLSBpZiAoZXJyIDwgMCkgew0KPiAgICAg ICAgICA+IC0gZGV2X2VycihkZXYsICJmYWlsZWQgdG8gc2V0IHBhcmVudCAlcyBmb3IgJXM6ICVk XG4iLA0KPiAgICAgICAgICA+IC0gX19jbGtfZ2V0X25hbWUoY2hhbm5lbC0+Y2xrX3BhcmVudCks DQo+ICAgICAgICAgID4gLSBfX2Nsa19nZXRfbmFtZShjaGFubmVsLT5jbGspLCBlcnIpOw0KPiAg ICAgICAgICA+IC0gcmV0dXJuIGVycjsNCj4gICAgICAgICAgPiArIGlmICghbWVzb24tPmRhdGEt PmV4dGVybl9jbGspIHsNCj4gICAgICAgICAgPiArIGlmIChjaGFubmVsLT5jbGtfcGFyZW50KSB7 DQo+ICAgICAgICAgID4gKyBlcnIgPSBjbGtfc2V0X3BhcmVudChjaGFubmVsLT5jbGssIGNoYW5u ZWwtPmNsa19wYXJlbnQpOw0KPiAgICAgICAgICA+ICsgaWYgKGVyciA8IDApIHsNCj4gICAgICAg ICAgPiArIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHNldCBwYXJlbnQgJXMgZm9yICVzOiAlZFxu IiwNCj4gICAgICAgICAgPiArIF9fY2xrX2dldF9uYW1lKGNoYW5uZWwtPmNsa19wYXJlbnQpLA0K PiAgICAgICAgICA+ICsgX19jbGtfZ2V0X25hbWUoY2hhbm5lbC0+Y2xrKSwgZXJyKTsNCj4gICAg ICAgICAgPiArIHJldHVybiBlcnI7DQo+ICAgICAgICAgID4gKyB9DQo+ICAgICAgICAgID7CoCB9 DQo+ICAgICAgICAgID7CoCB9DQo+ICAgICAgICAgID4NCj4gICAgICAgICAgPiBAQCAtMTcxLDcg KzE3NywxMSBAQCBzdGF0aWMgaW50IG1lc29uX3B3bV9jYWxjKHN0cnVjdCBtZXNvbl9wd20gKm1l c29uLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLA0KPiAgICAgICAgICA+wqAgaWYgKHN0YXRlLT5w b2xhcml0eSA9PSBQV01fUE9MQVJJVFlfSU5WRVJTRUQpDQo+ICAgICAgICAgID7CoCBkdXR5ID0g cGVyaW9kIC0gZHV0eTsNCj4gICAgICAgICAgPg0KPiAgICAgICAgICA+IC0gZmluX2ZyZXEgPSBj bGtfZ2V0X3JhdGUoY2hhbm5lbC0+Y2xrKTsNCj4gICAgICAgICAgPiArIGlmIChtZXNvbi0+ZGF0 YS0+ZXh0ZXJuX2Nsaykgew0KPiAgICAgICAgICA+ICsgZmluX2ZyZXEgPSBjbGtfZ2V0X3JhdGUo Y2hhbm5lbC0+Y2xrX211eCk7PiArIH0gZWxzZSB7DQo+ICAgICAgICAgID4gKyBmaW5fZnJlcSA9 IGNsa19nZXRfcmF0ZShjaGFubmVsLT5jbGspOw0KPiAgICAgICAgICA+ICsgfQ0KPiAgICAgICAg ICA+wqAgaWYgKGZpbl9mcmVxID09IDApIHsNCj4gICAgICAgICAgPsKgIGRldl9lcnIobWVzb24t PmNoaXAuZGV2LCAiaW52YWxpZCBzb3VyY2UgY2xvY2sgZnJlcXVlbmN5XG4iKTsNCj4gICAgICAg ICAgPsKgIHJldHVybiAtRUlOVkFMOw0KPiAgICAgICAgICA+IEBAIC0yMjgsMTcgKzIzOCwzMiBA QCBzdGF0aWMgdm9pZCBtZXNvbl9wd21fZW5hYmxlKHN0cnVjdCBtZXNvbl9wd20gKm1lc29uLCBz dHJ1Y3QgcHdtX2RldmljZSAqcHdtKQ0KPiAgICAgICAgICA+wqAgc3RydWN0IG1lc29uX3B3bV9j aGFubmVsX2RhdGEgKmNoYW5uZWxfZGF0YTsNCj4gICAgICAgICAgPsKgIHVuc2lnbmVkIGxvbmcg ZmxhZ3M7DQo+ICAgICAgICAgID7CoCB1MzIgdmFsdWU7DQo+ICAgICAgICAgID4gKyB1bnNpZ25l ZCBsb25nIHNldF9jbGs7DQo+ICAgICAgICAgID4gKyB1MzIgZXJyOw0KPiAgICAgICAgICA+DQo+ ICAgICAgICAgID7CoCBjaGFubmVsX2RhdGEgPSAmbWVzb25fcHdtX3Blcl9jaGFubmVsX2RhdGFb cHdtLT5od3B3bV07DQo+ICAgICAgICAgID4NCj4gICAgICAgICAgPiAtIHNwaW5fbG9ja19pcnFz YXZlKCZtZXNvbi0+bG9jaywgZmxhZ3MpOw0KPiAgICAgICAgICA+IC0NCj4gICAgICAgICAgPsKg IHZhbHVlID0gcmVhZGwobWVzb24tPmJhc2UgKyBSRUdfTUlTQ19BQik7DQo+ICAgICAgICAgID4g LSB2YWx1ZSAmPSB+KE1JU0NfQ0xLX0RJVl9NQVNLIDw8IGNoYW5uZWxfZGF0YS0+Y2xrX2Rpdl9z aGlmdCk7DQo+ICAgICAgICAgID4gLSB2YWx1ZSB8PSBjaGFubmVsLT5wcmVfZGl2IDw8IGNoYW5u ZWxfZGF0YS0+Y2xrX2Rpdl9zaGlmdDsNCj4gICAgICAgICAgPiAtIHZhbHVlIHw9IGNoYW5uZWxf ZGF0YS0+Y2xrX2VuX21hc2s7DQo+ICAgICAgICAgID4gLSB3cml0ZWwodmFsdWUsIG1lc29uLT5i YXNlICsgUkVHX01JU0NfQUIpOw0KPiAgICAgICAgICA+ICsgaWYgKG1lc29uLT5kYXRhLT5leHRl cm5fY2xrKSB7DQo+ICAgICAgICAgID4gKyBzZXRfY2xrID0gY2xrX2dldF9yYXRlKGNoYW5uZWwt PmNsa19tdXgpOw0KPiAgICAgICAgICA+ICsNCj4gICAgICAgICAgPiArIGlmIChzZXRfY2xrID09 IDApDQo+ICAgICAgICAgID4gKyBkZXZfZXJyKG1lc29uLT5jaGlwLmRldiwgImludmFsaWQgc291 cmNlIGNsb2NrIGZyZXF1ZW5jeVxuIik7DQo+ICAgICAgICAgID4gKyBzZXRfY2xrIC89IGNoYW5u ZWwtPnByZV9kaXYgKyAxOw0KPiAgICAgICAgICA+ICsgZXJyID0gY2xrX3NldF9yYXRlKGNoYW5u ZWwtPmNsaywgc2V0X2Nsayk7DQo+ICAgICAgICAgID4gKyBpZiAoZXJyKQ0KPiAgICAgICAgICA+ ICsgZGV2X2VycihtZXNvbi0+Y2hpcC5kZXYsICIlczogZXJyb3IgaW4gc2V0dGluZyBwd20gcmF0 ZSFcbiIsIF9fZnVuY19fKTsNCj4gICAgICAgICAgPiArIH0gZWxzZSB7DQo+ICAgICAgICAgID4g KyBzcGluX2xvY2tfaXJxc2F2ZSgmbWVzb24tPmxvY2ssIGZsYWdzKTsNCj4gICAgICAgICAgPiAr DQo+ICAgICAgICAgID4gKyB2YWx1ZSAmPSB+KE1JU0NfQ0xLX0RJVl9NQVNLIDw8IGNoYW5uZWxf ZGF0YS0+Y2xrX2Rpdl9zaGlmdCk7DQo+ICAgICAgICAgID4gKyB2YWx1ZSB8PSBjaGFubmVsLT5w cmVfZGl2IDw8IGNoYW5uZWxfZGF0YS0+Y2xrX2Rpdl9zaGlmdDsNCj4gICAgICAgICAgPiArIHZh bHVlIHw9IGNoYW5uZWxfZGF0YS0+Y2xrX2VuX21hc2s7DQo+ICAgICAgICAgID4gKyB3cml0ZWwo dmFsdWUsIG1lc29uLT5iYXNlICsgUkVHX01JU0NfQUIpOw0KPiAgICAgICAgICA+DQo+ICAgICAg ICAgID4gKyBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtZXNvbi0+bG9jaywgZmxhZ3MpOw0KPiAg ICAgICAgICA+ICsgfQ0KPiAgICAgICAgICA+ICsgc3Bpbl9sb2NrX2lycXNhdmUoJm1lc29uLT5s b2NrLCBmbGFncyk7DQo+ICAgICAgICAgID7CoCB2YWx1ZSA9IEZJRUxEX1BSRVAoUFdNX0hJR0hf TUFTSywgY2hhbm5lbC0+aGkpIHwNCj4gICAgICAgICAgPsKgIEZJRUxEX1BSRVAoUFdNX0xPV19N QVNLLCBjaGFubmVsLT5sbyk7DQo+ICAgICAgICAgID7CoCB3cml0ZWwodmFsdWUsIG1lc29uLT5i YXNlICsgY2hhbm5lbF9kYXRhLT5yZWdfb2Zmc2V0KTsNCj4gICAgICAgICAgPiBAQCAtMjQ2LDcg KzI3MSw2IEBAIHN0YXRpYyB2b2lkIG1lc29uX3B3bV9lbmFibGUoc3RydWN0IG1lc29uX3B3bSAq bWVzb24sIHN0cnVjdCBwd21fZGV2aWNlICpwd20pDQo+ICAgICAgICAgID7CoCB2YWx1ZSA9IHJl YWRsKG1lc29uLT5iYXNlICsgUkVHX01JU0NfQUIpOw0KPiAgICAgICAgICA+wqAgdmFsdWUgfD0g Y2hhbm5lbF9kYXRhLT5wd21fZW5fbWFzazsNCj4gICAgICAgICAgPsKgIHdyaXRlbCh2YWx1ZSwg bWVzb24tPmJhc2UgKyBSRUdfTUlTQ19BQik7DQo+ICAgICAgICAgID4gLQ0KPiAgICAgICAgICA+ wqAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWVzb24tPmxvY2ssIGZsYWdzKTsNCj4gICAgICAg ICAgPsKgIH0NCj4gICAgICAgICAgPg0KPiAgICAgICAgICA+IEBAIC0zMzMsNyArMzU3LDggQEAg c3RhdGljIHZvaWQgbWVzb25fcHdtX2dldF9zdGF0ZShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0 cnVjdCBwd21fZGV2aWNlICpwd20sDQo+ICAgICAgICAgID7CoCBzdHJ1Y3QgbWVzb25fcHdtICpt ZXNvbiA9IHRvX21lc29uX3B3bShjaGlwKTsNCj4gICAgICAgICAgPsKgIHN0cnVjdCBtZXNvbl9w d21fY2hhbm5lbF9kYXRhICpjaGFubmVsX2RhdGE7DQo+ICAgICAgICAgID7CoCBzdHJ1Y3QgbWVz b25fcHdtX2NoYW5uZWwgKmNoYW5uZWw7DQo+ICAgICAgICAgID4gLSB1MzIgdmFsdWUsIHRtcDsN Cj4gICAgICAgICAgPiArIHUzMiB2YWx1ZV9wd20sIHZhbHVlLCB0bXA7DQo+ICAgICAgICAgID4g KyB1bnNpZ25lZCBsb25nIGdhdGVfY2xrLCBmcmU7DQo+ICAgICAgICAgID4NCj4gICAgICAgICAg PsKgIGlmICghc3RhdGUpDQo+ICAgICAgICAgID7CoCByZXR1cm47DQo+ICAgICAgICAgID4gQEAg LTM0MSwzMCArMzY2LDQyIEBAIHN0YXRpYyB2b2lkIG1lc29uX3B3bV9nZXRfc3RhdGUoc3RydWN0 IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLA0KPiAgICAgICAgICA+wqAg Y2hhbm5lbCA9ICZtZXNvbi0+Y2hhbm5lbHNbcHdtLT5od3B3bV07DQo+ICAgICAgICAgID7CoCBj aGFubmVsX2RhdGEgPSAmbWVzb25fcHdtX3Blcl9jaGFubmVsX2RhdGFbcHdtLT5od3B3bV07DQo+ ICAgICAgICAgID4NCj4gICAgICAgICAgPiAtIHZhbHVlID0gcmVhZGwobWVzb24tPmJhc2UgKyBS RUdfTUlTQ19BQik7DQo+ICAgICAgICAgID4gLQ0KPiAgICAgICAgICA+IC0gdG1wID0gY2hhbm5l bF9kYXRhLT5wd21fZW5fbWFzayB8IGNoYW5uZWxfZGF0YS0+Y2xrX2VuX21hc2s7DQo+ICAgICAg ICAgID4gLSBzdGF0ZS0+ZW5hYmxlZCA9ICh2YWx1ZSAmIHRtcCkgPT0gdG1wOw0KPiAgICAgICAg ICA+IC0NCj4gICAgICAgICAgPiAtIHRtcCA9IHZhbHVlID4+IGNoYW5uZWxfZGF0YS0+Y2xrX2Rp dl9zaGlmdDsNCj4gICAgICAgICAgPiAtIGNoYW5uZWwtPnByZV9kaXYgPSBGSUVMRF9HRVQoTUlT Q19DTEtfRElWX01BU0ssIHRtcCk7DQo+ICAgICAgICAgID4gLQ0KPiAgICAgICAgICA+ICsgdmFs dWVfcHdtID0gcmVhZGwobWVzb24tPmJhc2UgKyBSRUdfTUlTQ19BQik7DQo+ICAgICAgICAgID7C oCB2YWx1ZSA9IHJlYWRsKG1lc29uLT5iYXNlICsgY2hhbm5lbF9kYXRhLT5yZWdfb2Zmc2V0KTsN Cj4gICAgICAgICAgPg0KPiAgICAgICAgICA+wqAgY2hhbm5lbC0+bG8gPSBGSUVMRF9HRVQoUFdN X0xPV19NQVNLLCB2YWx1ZSk7DQo+ICAgICAgICAgID7CoCBjaGFubmVsLT5oaSA9IEZJRUxEX0dF VChQV01fSElHSF9NQVNLLCB2YWx1ZSk7DQo+ICAgICAgICAgID4NCj4gICAgICAgICAgPiAtIGlm IChjaGFubmVsLT5sbyA9PSAwKSB7DQo+ICAgICAgICAgID4gLSBzdGF0ZS0+cGVyaW9kID0gbWVz b25fcHdtX2NudF90b19ucyhjaGlwLCBwd20sIGNoYW5uZWwtPmhpKTsNCj4gICAgICAgICAgPiAt IHN0YXRlLT5kdXR5X2N5Y2xlID0gc3RhdGUtPnBlcmlvZDsNCj4gICAgICAgICAgPiAtIH0gZWxz ZSBpZiAoY2hhbm5lbC0+bG8gPj0gY2hhbm5lbC0+aGkpIHsNCj4gICAgICAgICAgPiAtIHN0YXRl LT5wZXJpb2QgPSBtZXNvbl9wd21fY250X3RvX25zKGNoaXAsIHB3bSwNCj4gICAgICAgICAgPiAt IMKgwqDCoCBjaGFubmVsLT5sbyArIGNoYW5uZWwtPmhpKTsNCj4gICAgICAgICAgPiAtIHN0YXRl LT5kdXR5X2N5Y2xlID0gbWVzb25fcHdtX2NudF90b19ucyhjaGlwLCBwd20sDQo+ICAgICAgICAg ID4gLSBjaGFubmVsLT5oaSk7DQo+ICAgICAgICAgID4gKyBpZiAobWVzb24tPmRhdGEtPmV4dGVy bl9jbGspIHsNCj4gICAgICAgICAgPiArIGdhdGVfY2xrID0gY2xrX2dldF9yYXRlKGNoYW5uZWwt PmNsayk7DQo+ICAgICAgICAgID4gKyBmcmUgPSBnYXRlX2NsayAvIChjaGFubmVsLT5sbyArIGNo YW5uZWwtPmhpKTsNCj4gICAgICAgICAgPiArIHN0YXRlLT5wZXJpb2QgPSBkaXZfdTY0KE5TRUNf UEVSX1NFQywgZnJlKTsNCj4gICAgICAgICAgPiArIHN0YXRlLT5kdXR5X2N5Y2xlID0gZGl2X3U2 NChzdGF0ZS0+cGVyaW9kICogY2hhbm5lbC0+aGksIGNoYW5uZWwtPmxvICsgY2hhbm5lbC0+aGkp Ow0KPiAgICAgICAgICA+ICsgdG1wID0gY2hhbm5lbF9kYXRhLT5wd21fZW5fbWFzazsNCj4gICAg ICAgICAgPiArDQo+ICAgICAgICAgID4gKyBpZiAoKCh2YWx1ZV9wd20gJiB0bXApID09IHRtcCkg JiYgX19jbGtfaXNfZW5hYmxlZChjaGFubmVsLT5jbGspKQ0KPiAgICAgICAgICA+ICsgc3RhdGUt PmVuYWJsZWQgPSB0cnVlOw0KPiAgICAgICAgICA+ICsgZWxzZQ0KPiAgICAgICAgICA+ICsgc3Rh dGUtPmVuYWJsZWQgPSBmYWxzZTsNCj4gICAgICAgICAgPsKgIH0gZWxzZSB7DQo+ICAgICAgICAg ID4gLSBzdGF0ZS0+cGVyaW9kID0gMDsNCj4gICAgICAgICAgPiAtIHN0YXRlLT5kdXR5X2N5Y2xl ID0gMDsNCj4gICAgICAgICAgPiArIHRtcCA9IGNoYW5uZWxfZGF0YS0+cHdtX2VuX21hc2sgfCBj aGFubmVsX2RhdGEtPmNsa19lbl9tYXNrOw0KPiAgICAgICAgICA+ICsNCj4gICAgICAgICAgPiAr IHN0YXRlLT5lbmFibGVkID0gKHZhbHVlX3B3bSAmIHRtcCkgPT0gdG1wOw0KPiAgICAgICAgICA+ ICsNCj4gICAgICAgICAgPiArIHRtcCA9IHZhbHVlX3B3bSA+PiBjaGFubmVsX2RhdGEtPmNsa19k aXZfc2hpZnQ7DQo+ICAgICAgICAgID4gKyBjaGFubmVsLT5wcmVfZGl2ID0gRklFTERfR0VUKE1J U0NfQ0xLX0RJVl9NQVNLLCB0bXApOw0KPiAgICAgICAgICA+ICsNCj4gICAgICAgICAgPiArIGlm IChjaGFubmVsLT5sbyA9PSAwKSB7DQo+ICAgICAgICAgID4gKyBzdGF0ZS0+cGVyaW9kID0gbWVz b25fcHdtX2NudF90b19ucyhjaGlwLCBwd20sIGNoYW5uZWwtPmhpKTsNCj4gICAgICAgICAgPiAr IHN0YXRlLT5kdXR5X2N5Y2xlID0gc3RhdGUtPnBlcmlvZDsNCj4gICAgICAgICAgPiArIH0gZWxz ZSBpZiAoY2hhbm5lbC0+bG8gPj0gY2hhbm5lbC0+aGkpIHsNCj4gICAgICAgICAgPiArIHN0YXRl LT5wZXJpb2QgPSBtZXNvbl9wd21fY250X3RvX25zKGNoaXAsIHB3bSwgY2hhbm5lbC0+bG8NCj4g ICAgICAgICAgPiArIMKgwqDCoCArIGNoYW5uZWwtPmhpKTsNCj4gICAgICAgICAgPiArIHN0YXRl LT5kdXR5X2N5Y2xlID0gbWVzb25fcHdtX2NudF90b19ucyhjaGlwLCBwd20sIGNoYW5uZWwtPmhp KTsNCj4gICAgICAgICAgPiArIH0gZWxzZSB7DQo+ICAgICAgICAgID4gKyBzdGF0ZS0+cGVyaW9k ID0gMDsNCj4gICAgICAgICAgPiArIHN0YXRlLT5kdXR5X2N5Y2xlID0gMDsNCj4gICAgICAgICAg PiArIH0NCj4gICAgICAgICAgPsKgIH0NCj4gICAgICAgICAgPsKgIH0NCj4gICAgICAgICBZb3Ug bmVlZCB0byByZXdyaXRlIHRoZSBjbG9jayBjYWxjdWxhdGlvbiBlbnRpcmVseSwgaW5zdGVhZCBv ZiByZWx5aW5nIG9uIGEgZmluX2ZyZXEsIHlvdSBuZWVkDQo+ICAgICAgICAgdG8gc2V0X3JhdGUo KSB0aGUgbmVlZGVkIHJhdGUgdG8gdGhlIGlucHV0IGNsb2NrLCB0aGVuIGNhbGN1bGF0ZSB0aGUg cGVyaW9kcyBvbiB0aGUgcmF0ZQ0KPiAgICAgICAgIHNldCBieSBDQ0YuDQo+ICAgICAgICAgT25l IHdheSBpcyB0byBmb3JnZXQgdHJ5aW5nIHRvIHNldCBhIHJhdGUgb2YgdGhlIGlucHV0IGNsb2Nr LCBzaW1wbHkgZ2V0X3JhdGUoKSBvZiB0aGUgaW5wdXQgY2xvY2sNCj4gICAgICAgICBhbmQgdHJ5 IHRvIGNhbGN1bGF0ZSBwZXJpb2RzIG9uIGl0Lg0KPiAgICAgICAgIEluc3RlYWQgcmVseSBvbiBh c3NpZ25lcy1jbG9jay1wYXJlbnQgJiBhc3NpZ25lZC1jbG9jay1yYXRlIGluIERUIHRvIHNldCB0 aGUgcmlnaHQgcGFyZW50IG9mIHRoZSBtdXgNCj4gICAgICAgICBhbmQgcmF0ZSBvZiB0aGUgbXV4 IHBvc3QgZGl2aWRlciB0byBmZWVkIHRvIGNvcnJlY3QgcmF0ZSB0byB0aGUgUFdNIGNvbnRyb2xs ZXIuDQo+ICAgICAgICAgID4NCj4gICAgICAgICAgPiBAQCAtNDUyLDYgKzQ4OSwxMCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IG1lc29uX3B3bV9kYXRhIHB3bV9nMTJhX2VlX2RhdGEgPSB7DQo+ICAg ICAgICAgID7CoCAubnVtX3BhcmVudHMgPSBBUlJBWV9TSVpFKHB3bV9nMTJhX2VlX3BhcmVudF9u YW1lcyksDQo+ICAgICAgICAgID7CoCB9Ow0KPiAgICAgICAgICA+DQo+ICAgICAgICAgID4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbWVzb25fcHdtX2RhdGEgcHdtX21lc29uX2RhdGEgPSB7DQo+ICAg ICAgICAgID4gKyAuZXh0ZXJuX2NsayA9IHRydWUsDQo+ICAgICAgICAgID4gK307DQo+ICAgICAg ICAgID4gKw0KPiAgICAgICAgICA+wqAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg bWVzb25fcHdtX21hdGNoZXNbXSA9IHsNCj4gICAgICAgICAgPsKgIHsNCj4gICAgICAgICAgPsKg IC5jb21wYXRpYmxlID0gImFtbG9naWMsbWVzb244Yi1wd20iLA0KPiAgICAgICAgICA+IEBAIC00 ODUsNiArNTI2LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uX3B3 bV9tYXRjaGVzW10gPSB7DQo+ICAgICAgICAgID7CoCAuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1l c29uLWcxMmEtYW8tcHdtLWNkIiwNCj4gICAgICAgICAgPsKgIC5kYXRhID0gJnB3bV9nMTJhX2Fv X2NkX2RhdGENCj4gICAgICAgICAgPsKgIH0sDQo+ICAgICAgICAgID4gKyB7DQo+ICAgICAgICAg ID4gKyAuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLXM0LXB3bSIsDQo+ICAgICAgICAgID4g KyAuZGF0YSA9ICZwd21fbWVzb25fZGF0YQ0KPiAgICAgICAgICA+ICsgfSwNCj4gICAgICAgICAg PsKgIHt9LA0KPiAgICAgICAgICA+wqAgfTsNCj4gICAgICAgICAgPsKgIE1PRFVMRV9ERVZJQ0Vf VEFCTEUob2YsIG1lc29uX3B3bV9tYXRjaGVzKTsNCj4gICAgICAgICAgPiBAQCAtNTM0LDYgKzU3 OSwzMyBAQCBzdGF0aWMgaW50IG1lc29uX3B3bV9pbml0X2NoYW5uZWxzKHN0cnVjdCBtZXNvbl9w d20gKm1lc29uKQ0KPiAgICAgICAgICA+wqAgcmV0dXJuIDA7DQo+ICAgICAgICAgID7CoCB9DQo+ ICAgICAgICAgID4NCj4gICAgICAgICAgPiArc3RhdGljIGludCBtZXNvbl9wd21fZXh0ZXJuX2lu aXRfY2hhbm5lbHMoc3RydWN0IG1lc29uX3B3bSAqbWVzb24pDQo+ICAgICAgICAgID4gK3sNCj4g ICAgICAgICAgPiArIHN0cnVjdCBtZXNvbl9wd21fY2hhbm5lbCAqY2hhbm5lbHMgPSBtZXNvbi0+ Y2hhbm5lbHM7DQo+ICAgICAgICAgID4gKyBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBtZXNvbi0+Y2hp cC5kZXY7DQo+ICAgICAgICAgID4gKyB1bnNpZ25lZCBpbnQgaTsNCj4gICAgICAgICAgPiArIGNo YXIgbmFtZVsyNTVdOw0KPiAgICAgICAgICA+ICsNCj4gICAgICAgICAgPiArIGZvciAoaSA9IDA7 IGkgPCBtZXNvbi0+Y2hpcC5ucHdtOyBpKyspIHsNCj4gICAgICAgICAgPiArIHNucHJpbnRmKG5h bWUsIHNpemVvZihuYW1lKSwgImNsa2luJXUiLCBpKTsNCj4gICAgICAgICAgPiArIChjaGFubmVs cyArIGkpLT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBuYW1lKTsNCj4gICAgICAgICAgPiArIGlm IChJU19FUlIoKGNoYW5uZWxzICsgaSktPmNsaykpIHsNCj4gICAgICAgICAgPiArIGRldl9lcnJf cHJvYmUobWVzb24tPmNoaXAuZGV2LCBQVFJfRVJSKChjaGFubmVscyArIGkpLT5jbGspLA0KPiAg ICAgICAgICA+ICsgwqDCoMKgwqDCoCAiY2FuJ3QgZ2V0IGRldmljZSBjbG9ja1xuIik7DQo+ICAg ICAgICAgID4gKyByZXR1cm4gUFRSX0VSUigoY2hhbm5lbHMgKyBpKS0+Y2xrKTsNCj4gICAgICAg ICAgPiArIH0NCj4gICAgICAgICAgPiArIHNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgIm11 eCV1IiwgaSk7DQo+ICAgICAgICAgID4gKyAoY2hhbm5lbHMgKyBpKS0+Y2xrX211eCA9IGRldm1f Y2xrX2dldChkZXYsIG5hbWUpOw0KPiAgICAgICAgICA+ICsgaWYgKElTX0VSUigoY2hhbm5lbHMg KyBpKS0+Y2xrX211eCkpIHsNCj4gICAgICAgICAgPiArIGRldl9lcnJfcHJvYmUobWVzb24tPmNo aXAuZGV2LCBQVFJfRVJSKChjaGFubmVscyArIGkpLT5jbGtfbXV4KSwNCj4gICAgICAgICAgPiAr IMKgwqDCoMKgwqAgImNhbid0IGdldCBkZXZpY2UgY2xvY2tcbiIpOw0KPiAgICAgICAgICA+ICsg cmV0dXJuIFBUUl9FUlIoKGNoYW5uZWxzICsgaSktPmNsa19tdXgpOw0KPiAgICAgICAgIElmIHlv dSBhZGQgbXV4IHlvdSdsbCBuZWVkIHRvIGNoYW5nZXMgdGhlIGJpbmRpbmdzLg0KPiAgICAgICAg ICA+ICsgfQ0KPiAgICAgICAgICA+ICsgfQ0KPiAgICAgICAgICA+ICsNCj4gICAgICAgICAgPiAr IHJldHVybiAwOw0KPiAgICAgICAgICA+ICt9DQo+ICAgICAgICAgID4gKw0KPiAgICAgICAgICA+ wqAgc3RhdGljIGludCBtZXNvbl9wd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikNCj4gICAgICAgICAgPsKgIHsNCj4gICAgICAgICAgPsKgIHN0cnVjdCBtZXNvbl9wd20gKm1l c29uOw0KPiAgICAgICAgICA+IEBAIC01NTMsOCArNjI1LDExIEBAIHN0YXRpYyBpbnQgbWVzb25f cHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ICAgICAgICAgID7CoCBt ZXNvbi0+Y2hpcC5ucHdtID0gTUVTT05fTlVNX1BXTVM7DQo+ICAgICAgICAgID4NCj4gICAgICAg ICAgPsKgIG1lc29uLT5kYXRhID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYp Ow0KPiAgICAgICAgICA+ICsgaWYgKG1lc29uLT5kYXRhLT5leHRlcm5fY2xrKQ0KPiAgICAgICAg ICA+ICsgZXJyID0gbWVzb25fcHdtX2V4dGVybl9pbml0X2NoYW5uZWxzKG1lc29uKTsNCj4gICAg ICAgICAgPiArIGVsc2UNCj4gICAgICAgICAgPiArIGVyciA9IG1lc29uX3B3bV9pbml0X2NoYW5u ZWxzKG1lc29uKTsNCj4gICAgICAgICAgPg0KPiAgICAgICAgICA+IC0gZXJyID0gbWVzb25fcHdt X2luaXRfY2hhbm5lbHMobWVzb24pOw0KPiAgICAgICAgICA+wqAgaWYgKGVyciA8IDApDQo+ICAg ICAgICAgID7CoCByZXR1cm4gZXJyOw0KPiAgICAgICAgICA+DQo+ICAgICAgICAgID4NCj4gDQoN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFt bG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK