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 E81AEC77B76 for ; Mon, 17 Apr 2023 10:01:00 +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:Reply-To:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:References:Cc:To:Subject: From:MIME-Version:Date:Message-ID:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dem0/1EzpVUJ1CIo3sOvGVqbULPRG90o4fXo/0u/ghU=; b=b9HreU4qugxgIJAEmG+MnAGwt7 AVtl3L/uNKQqV9y1PbeYuzBBFRpwbyv4wGoWbufL1pcypsYyqNu8nGbRvVhmlzHTAJpVPytH02A31 CLO1vm1P3x6eLot5ORRusNVbrEUljVALiPssc4dhIySaBJ5auLt/E03yMLRm+WuJEA46j+BlEpV3N x71fy/a8CRhgdikmnTQ6OP2tMf9hwWr162PF1suOrNBlWPg8nl6+QWRpCR7fqWEjxHg+5z78PWVTY RSTfiwRpEuJ1/Kta89d6lEDx1m3Ftcos6oBPu+uk7FrywNDosDyw+C3LagdXb7Fv6GvPffpSCcCgu z357z9mA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1poLeY-00FeHe-1V; Mon, 17 Apr 2023 10:00:06 +0000 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1poLeT-00FeGS-0S for linux-arm-kernel@lists.infradead.org; Mon, 17 Apr 2023 10:00:04 +0000 Received: by mail-wm1-x333.google.com with SMTP id l31-20020a05600c1d1f00b003f1718d89b2so1713852wms.0 for ; Mon, 17 Apr 2023 03:00:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1681725599; x=1684317599; h=content-transfer-encoding:in-reply-to:organization:references:cc:to :content-language:subject:reply-to:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=Fo7MS6HWbYJrBipOcAD/YfNaEqKye8Lj55pJIWG42Cs=; b=kH2+5iCQYVun39Kd30sWg8zrIxXzIzPa38breMVgVcTJt32TEWrrQXpVY3SPkwax/s AAa1me3/3m5rV/SsI4FB9SnZuCjvvgRARZ1YBXbclYbKNXynlV2A5lgREfBGCaT7cZP7 0oLHTbhImutN3fmf0fJN+NiK16rZm6y1gOtU2G0f20jg7CfZsYYlnpKksx07YNtNucWS DXUXkMyntqJ3uuivWj0nsDBQLCSG8sbzVjsyccckQz1ib21A5jGF3ZwNfnXgjQ5H7SEt RTbsw0K5P1/ej6JzAFDQG7wEajmLUE7BWfSYYhzmNsF4WzYupqN1GbRwDWU0c/PQXudl samw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681725599; x=1684317599; h=content-transfer-encoding:in-reply-to:organization:references:cc:to :content-language:subject:reply-to:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Fo7MS6HWbYJrBipOcAD/YfNaEqKye8Lj55pJIWG42Cs=; b=DpackAXL1u5Q/DfaLK7QNjPqf3nKF+2FDVVFxlJSzBryf2I+eSx60LpE1moSRfKA8K yUH0VVVx5vjTWc74UJvWhM395ORGwQjgZfDGB3wcszzlQKKXWsgjXE9fRKvNPNn+Xb2V parrCkj2UPr3lamC0YVBqp7BrjYJ72vRmerqbbA7838v+RfHI8O2nI8gZrVYREpo32rH 0t1RXe7w+2sza10IKyM2PkTE4g+rsxmW2Am9TSBFVxf+T0QwoMdxcnvpdiJjZKIMglZw AwtAXABJOjYYi1GD0euXQiHZ6bQbedX0oHUrahpyZ9lvjmrsqWjwWlHIjSULZkqoknVQ HHcA== X-Gm-Message-State: AAQBX9eDteewpOwN/m8bPCDBZllQi74X2j22r9giV5FdLhIaDx8Drngk o6gs2YCGUnjnmqxvj49uFe56Rg== X-Google-Smtp-Source: AKy350YGOYGaoYFUCs/bav+F14O2zsMEdQh4p/g2R9qkvfhg60hk5M/CUolnLL8Rq8Ee1lRsMHZB6Q== X-Received: by 2002:a05:600c:2201:b0:3f1:72e8:1492 with SMTP id z1-20020a05600c220100b003f172e81492mr2876030wml.11.1681725598903; Mon, 17 Apr 2023 02:59:58 -0700 (PDT) Received: from ?IPV6:2a01:e0a:982:cbb0:a1e1:81a8:1acc:2b91? ([2a01:e0a:982:cbb0:a1e1:81a8:1acc:2b91]) by smtp.gmail.com with ESMTPSA id h7-20020a05600c314700b003f07ef4e3e0sm20798128wmo.0.2023.04.17.02.59.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 17 Apr 2023 02:59:58 -0700 (PDT) Message-ID: <22b6f870-8dfd-c01b-a7cd-383a9d9ece20@linaro.org> Date: Mon, 17 Apr 2023 11:59:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 From: neil.armstrong@linaro.org Subject: Re: [PATCH v4 4/4] pwm: meson: make full use of common clock framework Content-Language: en-US To: Heiner Kallweit , Jerome Brunet , Martin Blumenstingl , Neil Armstrong , Kevin Hilman , =?UTF-8?Q?Uwe_Kleine-K=c3=b6nig?= , "thierry.reding@gmail.com" Cc: "linux-arm-kernel@lists.infradead.org" , "open list:ARM/Amlogic Meson..." , linux-pwm@vger.kernel.org References: <9faca2e6-b7a1-4748-7eb0-48f8064e323e@gmail.com> <73a52391-b380-e491-0e96-5c51c7be487c@gmail.com> Organization: Linaro Developer Services In-Reply-To: <73a52391-b380-e491-0e96-5c51c7be487c@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230417_030001_190277_676FBF44 X-CRM114-Status: GOOD ( 34.30 ) 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: , Reply-To: neil.armstrong@linaro.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTcvMDQvMjAyMyAxMTo1MywgSGVpbmVyIEthbGx3ZWl0IHdyb3RlOgo+IE9uIDE3LjA0LjIw MjMgMDk6MjMsIE5laWwgQXJtc3Ryb25nIHdyb3RlOgo+PiBPbiAxMy8wNC8yMDIzIDA3OjU0LCBI ZWluZXIgS2FsbHdlaXQgd3JvdGU6Cj4+PiBOZXdlciB2ZXJzaW9ucyBvZiB0aGUgUFdNIGJsb2Nr IHVzZSBhIGNvcmUgY2xvY2sgd2l0aCBleHRlcm5hbCBtdXgsCj4+PiBkaXZpZGVyLCBhbmQgZ2F0 ZS4gVGhlc2UgY29tcG9uZW50cyBlaXRoZXIgZG9uJ3QgZXhpc3QgYW55IGxvbmdlciBpbgo+Pj4g dGhlIFBXTSBibG9jaywgb3IgdGhleSBhcmUgYnlwYXNzZWQuCj4+PiBUbyBtaW5pbWl6ZSBuZWVk ZWQgY2hhbmdlcyBmb3Igc3VwcG9ydGluZyB0aGUgbmV3IHZlcnNpb24sIHRoZSBpbnRlcm5hbAo+ Pj4gZGl2aWRlciBhbmQgZ2F0ZSBzaG91bGQgYmUgaGFuZGxlZCBieSBDQ0YgdG9vLgo+Pj4KPj4+ IEkgZGlkbid0IHNlZSBhIGdvb2Qgd2F5IHRvIHNwbGl0IHRoZSBwYXRjaCwgdGhlcmVmb3JlIGl0 J3Mgc29tZXdoYXQKPj4+IGJpZ2dlci4gV2hhdCBpdCBkb2VzOgo+Pj4KPj4+IC0gVGhlIGludGVy bmFsIG11eCBpcyBoYW5kbGVkIGJ5IENDRiBhbHJlYWR5LiBSZWdpc3RlciBhbHNvIGludGVybmFs Cj4+PiAgwqDCoCBkaXZpZGVyIGFuZCBnYXRlIHdpdGggQ0NGLCBzbyB0aGF0IHdlIGhhdmUgb25l IHJlcHJlc2VudGF0aW9uIG9mIHRoZQo+Pj4gIMKgwqAgaW5wdXQgY2xvY2s6IFttdXhdIHBhcmVu dCBvZiBbZGl2aWRlcl0gcGFyZW50IG9mIFtnYXRlXQo+Pj4gIMKgwqAgLSBOb3cgdGhhdCBDQ0Yg c2VsZWN0cyBhbiBhcHByb3ByaWF0ZSBtdXggcGFyZW50LCB3ZSBkb24ndCBuZWVkIHRoZQo+Pj4g IMKgwqAgRFQtcHJvdmlkZWQgZGVmYXVsdCBwYXJlbnQgYW55IGxvbmdlci4gQWNjb3JkaW5nbHkg d2UgY2FuIGFsc28gb21pdAo+Pj4gIMKgwqAgc2V0dGluZyB0aGUgbXV4IHBhcmVudCBkaXJlY3Rs eSBpbiB0aGUgZHJpdmVyLgo+Pj4gIMKgwqAgLSBJbnN0ZWFkIG9mIG1hbnVhbGx5IGhhbmRsaW5n IHRoZSBwcmUtZGl2IGRpdmlkZXIgdmFsdWUsIGxldCBDQ0YKPj4+ICDCoMKgIHNldCB0aGUgaW5w dXQgY2xvY2suIFRhcmdldGVkIGlucHV0IGNsb2NrIGZyZXF1ZW5jeSBpcwo+Pj4gIMKgwqAgMHhm ZmZmICogMS9wZXJpb2QgZm9yIGJlc3QgcHJlY2lzaW9uLgo+Pj4gIMKgwqAgLSBGb3IgdGhlICJp bnZlcnRlZCBwd20gZGlzYWJsZWQiIHNjZW5hcmlvIHRhcmdldCBhbiBpbnB1dCBjbG9jawo+Pj4g IMKgwqAgZnJlcXVlbmN5IG9mIDFHSHouIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSByZW1haW5pbmcg bG93IHB1bHNlcwo+Pj4gIMKgwqAgaGF2ZSBtaW5pbXVtIGxlbmd0aC4KPj4+Cj4+PiBJIGRvbid0 IGhhdmUgaHcgd2l0aCB0aGUgb2xkIFBXTSBibG9jaywgdGhlcmVmb3JlIEkgY291bGRuJ3QgdGVz dCB0aGlzCj4+PiBwYXRjaC4gV2l0aCB0aGUgbm90IHlldCBpbmNsdWRlZCBleHRlbnNpb24gZm9y IHRoZSBuZXcgUFdNIGJsb2NrCj4+PiAoY2hhbm5lbC0+Y2xrIGNvbWluZyBkaXJlY3RseSBmcm9t IGdldF9jbGsoZXh0ZXJuYWxfY2xrKSkgSSBkaWRuJ3QKPj4+IG5vdGljZSBhbnkgcHJvYmxlbS4g TXkgc3lzdGVtIHVzZXMgUFdNIGZvciB0aGUgQ1BVIHZvbHRhZ2UgcmVndWxhdG9yCj4+PiBhbmQg Zm9yIHRoZSBTRElPIDMya0h6IGNsb2NrLgo+Pj4KPj4+IE5vdGU6IFRoZSBjbG9jayBnYXRlIGlu IHRoZSBvbGQgUFdNIGJsb2NrIGlzIHBlcm1hbmVudGx5IGRpc2FibGVkLgo+Pj4gVGhpcyBzZWVt cyB0byBpbmRpY2F0ZSB0aGF0IGl0J3Mgbm90IHVzZWQgYnkgdGhlIG5ldyBQV00gYmxvY2suCj4+ Pgo+Pj4gVGVzdGVkLWJ5OiBNYXJ0aW4gQmx1bWVuc3RpbmdsIDxtYXJ0aW4uYmx1bWVuc3Rpbmds QGdvb2dsZW1haWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogSGVpbmVyIEthbGx3ZWl0IDxoa2Fs bHdlaXQxQGdtYWlsLmNvbT4KPj4+IC0tLQo+Pj4gQ2hhbmdlcyB0byBSRlQvUkZDIHZlcnNpb246 Cj4+PiAtIHVzZSBwYXJlbnRfaHdzIGluc3RlYWQgb2YgcGFyZW50X25hbWVzIGZvciBkaXYvZ2F0 ZSBjbG9jawo+Pj4gLSB1c2UgZGV2bV9jbGtfaHdfcmVnaXN0ZXIgd2hlcmUgdGhlIHN0cnVjdCBj bGsgKiByZXR1cm5lZCBieQo+Pj4gIMKgwqAgZGV2bV9jbGtfcmVnaXN0ZXIgaXNuJ3QgbmVlZGVk Cj4+Pgo+Pj4gdjI6Cj4+PiAtIGFkZCBwYXRjaCAxCj4+PiAtIGFkZCBwYXRjaCAzCj4+PiAtIHN3 aXRjaCB0byB1c2luZyBjbGtfcGFyZW50X2RhdGEgaW4gYWxsIHJlbGV2YW50IHBsYWNlcwo+Pj4g djM6Cj4+PiAtIGFkZCBmbGFnIENMS19JR05PUkVfVU5VU0VECj4+PiB2NDoKPj4+IC0gcmVtb3Zl IHZhcmlhYmxlIHRtcCBpbiBtZXNvbl9wd21fZ2V0X3N0YXRlCj4+PiAtIGRvbid0IHVzZSBkZXBy ZWNhdGVkIGZ1bmN0aW9uIGRldm1fY2xrX3JlZ2lzdGVyCj4+PiAtLS0KPj4+ICDCoCBkcml2ZXJz L3B3bS9wd20tbWVzb24uYyB8IDE0MiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tCj4+PiAgwqAgMSBmaWxlIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDU5IGRlbGV0 aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9wd20tbWVzb24uYyBiL2Ry aXZlcnMvcHdtL3B3bS1tZXNvbi5jCj4+PiBpbmRleCA0MGE4NzA5ZmYuLjgwYWM3MWNiYyAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvcHdtL3B3bS1tZXNvbi5jCj4+PiArKysgYi9kcml2ZXJzL3B3 bS9wd20tbWVzb24uYwo+Pj4gQEAgLTUxLDcgKzUxLDcgQEAKPj4+ICDCoCAjZGVmaW5lIFJFR19N SVNDX0FCwqDCoMKgwqDCoMKgwqAgMHg4Cj4+PiAgwqAgI2RlZmluZSBNSVNDX0JfQ0xLX0VOwqDC oMKgwqDCoMKgwqAgMjMKPj4+ICDCoCAjZGVmaW5lIE1JU0NfQV9DTEtfRU7CoMKgwqDCoMKgwqDC oCAxNQo+Pj4gLSNkZWZpbmUgTUlTQ19DTEtfRElWX01BU0vCoMKgwqAgMHg3Zgo+Pj4gKyNkZWZp bmUgTUlTQ19DTEtfRElWX1dJRFRIwqDCoMKgIDcKPj4+ICDCoCAjZGVmaW5lIE1JU0NfQl9DTEtf RElWX1NISUZUwqDCoMKgIDE2Cj4+PiAgwqAgI2RlZmluZSBNSVNDX0FfQ0xLX0RJVl9TSElGVMKg wqDCoCA4Cj4+PiAgwqAgI2RlZmluZSBNSVNDX0JfQ0xLX1NFTF9TSElGVMKgwqDCoCA2Cj4+PiBA QCAtODcsMTIgKzg3LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgbWVzb25fcHdtX2NoYW5uZWxfZGF0YSB7 Cj4+PiAgwqAgfTsKPj4+ICDCoCDCoCBzdHJ1Y3QgbWVzb25fcHdtX2NoYW5uZWwgewo+Pj4gK8Kg wqDCoCB1bnNpZ25lZCBsb25nIHJhdGU7Cj4+PiAgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgaGk7 Cj4+PiAgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgbG87Cj4+PiAtwqDCoMKgIHU4IHByZV9kaXY7 Cj4+PiAgwqAgLcKgwqDCoCBzdHJ1Y3QgY2xrICpjbGtfcGFyZW50Owo+Pj4gIMKgwqDCoMKgwqAg c3RydWN0IGNsa19tdXggbXV4Owo+Pj4gK8KgwqDCoCBzdHJ1Y3QgY2xrX2RpdmlkZXIgZGl2Owo+ Pj4gK8KgwqDCoCBzdHJ1Y3QgY2xrX2dhdGUgZ2F0ZTsKPj4+ICDCoMKgwqDCoMKgIHN0cnVjdCBj bGsgKmNsazsKPj4+ICDCoCB9Owo+Pj4gIMKgIEBAIC0xMjUsMTYgKzEyNiw2IEBAIHN0YXRpYyBp bnQgbWVzb25fcHdtX3JlcXVlc3Qoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2Rl dmljZSAqcHdtKQo+Pj4gIMKgwqDCoMKgwqAgc3RydWN0IGRldmljZSAqZGV2ID0gY2hpcC0+ZGV2 Owo+Pj4gIMKgwqDCoMKgwqAgaW50IGVycjsKPj4+ICDCoCAtwqDCoMKgIGlmIChjaGFubmVsLT5j bGtfcGFyZW50KSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqAgZXJyID0gY2xrX3NldF9wYXJlbnQoY2hh bm5lbC0+Y2xrLCBjaGFubmVsLT5jbGtfcGFyZW50KTsKPj4+IC3CoMKgwqDCoMKgwqDCoCBpZiAo ZXJyIDwgMCkgewo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2VycihkZXYsICJmYWls ZWQgdG8gc2V0IHBhcmVudCAlcyBmb3IgJXM6ICVkXG4iLAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBfX2Nsa19nZXRfbmFtZShjaGFubmVsLT5jbGtfcGFyZW50KSwKPj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19jbGtfZ2V0X25hbWUoY2hhbm5lbC0+Y2xr KSwgZXJyKTsKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+PiAtwqDC oMKgwqDCoMKgwqAgfQo+Pj4gLcKgwqDCoCB9Cj4+PiAtCj4+PiAgwqDCoMKgwqDCoCBlcnIgPSBj bGtfcHJlcGFyZV9lbmFibGUoY2hhbm5lbC0+Y2xrKTsKPj4+ICDCoMKgwqDCoMKgIGlmIChlcnIg PCAwKSB7Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGVu YWJsZSBjbG9jayAlczogJWRcbiIsCj4+PiBAQCAtMTU3LDggKzE0OCw5IEBAIHN0YXRpYyBpbnQg bWVzb25fcHdtX2NhbGMoc3RydWN0IG1lc29uX3B3bSAqbWVzb24sIHN0cnVjdCBwd21fZGV2aWNl ICpwd20sCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCBw d21fc3RhdGUgKnN0YXRlKQo+Pj4gIMKgIHsKPj4+ICDCoMKgwqDCoMKgIHN0cnVjdCBtZXNvbl9w d21fY2hhbm5lbCAqY2hhbm5lbCA9ICZtZXNvbi0+Y2hhbm5lbHNbcHdtLT5od3B3bV07Cj4+PiAt wqDCoMKgIHVuc2lnbmVkIGludCBkdXR5LCBwZXJpb2QsIHByZV9kaXYsIGNudCwgZHV0eV9jbnQ7 Cj4+PiArwqDCoMKgIHVuc2lnbmVkIGludCBkdXR5LCBwZXJpb2QsIGNudCwgZHV0eV9jbnQ7Cj4+ PiAgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGZpbl9mcmVxOwo+Pj4gK8KgwqDCoCB1NjQgZnJl cTsKPj4+ICDCoCDCoMKgwqDCoMKgIGR1dHkgPSBzdGF0ZS0+ZHV0eV9jeWNsZTsKPj4+ICDCoMKg wqDCoMKgIHBlcmlvZCA9IHN0YXRlLT5wZXJpb2Q7Cj4+PiBAQCAtMTY2LDcgKzE1OCwxMSBAQCBz dGF0aWMgaW50IG1lc29uX3B3bV9jYWxjKHN0cnVjdCBtZXNvbl9wd20gKm1lc29uLCBzdHJ1Y3Qg cHdtX2RldmljZSAqcHdtLAo+Pj4gIMKgwqDCoMKgwqAgaWYgKHN0YXRlLT5wb2xhcml0eSA9PSBQ V01fUE9MQVJJVFlfSU5WRVJTRUQpCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIGR1dHkgPSBwZXJp b2QgLSBkdXR5Owo+Pj4gIMKgIC3CoMKgwqAgZmluX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2hhbm5l bC0+Y2xrKTsKPj4+ICvCoMKgwqAgZnJlcSA9IGRpdjY0X3U2NChOU0VDX1BFUl9TRUMgKiAodTY0 KTB4ZmZmZiwgcGVyaW9kKTsKPj4+ICvCoMKgwqAgaWYgKGZyZXEgPiBVTE9OR19NQVgpCj4+PiAr wqDCoMKgwqDCoMKgwqAgZnJlcSA9IFVMT05HX01BWDsKPj4+ICsKPj4+ICvCoMKgwqAgZmluX2Zy ZXEgPSBjbGtfcm91bmRfcmF0ZShjaGFubmVsLT5jbGssIGZyZXEpOwo+Pj4gIMKgwqDCoMKgwqAg aWYgKGZpbl9mcmVxID09IDApIHsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2VycihtZXNv bi0+Y2hpcC5kZXYsICJpbnZhbGlkIHNvdXJjZSBjbG9jayBmcmVxdWVuY3lcbiIpOwo+Pj4gIMKg wqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4+IEBAIC0xNzQsNDYgKzE3MCwzNSBA QCBzdGF0aWMgaW50IG1lc29uX3B3bV9jYWxjKHN0cnVjdCBtZXNvbl9wd20gKm1lc29uLCBzdHJ1 Y3QgcHdtX2RldmljZSAqcHdtLAo+Pj4gIMKgIMKgwqDCoMKgwqAgZGV2X2RiZyhtZXNvbi0+Y2hp cC5kZXYsICJmaW5fZnJlcTogJWx1IEh6XG4iLCBmaW5fZnJlcSk7Cj4+PiAgwqAgLcKgwqDCoCBw cmVfZGl2ID0gZGl2NjRfdTY0KGZpbl9mcmVxICogKHU2NClwZXJpb2QsIE5TRUNfUEVSX1NFQyAq IDB4ZmZmZkxMKTsKPj4+IC3CoMKgwqAgaWYgKHByZV9kaXYgPiBNSVNDX0NMS19ESVZfTUFTSykg ewo+Pj4gLcKgwqDCoMKgwqDCoMKgIGRldl9lcnIobWVzb24tPmNoaXAuZGV2LCAidW5hYmxlIHRv IGdldCBwZXJpb2QgcHJlX2RpdlxuIik7Cj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5W QUw7Cj4+PiAtwqDCoMKgIH0KPj4+IC0KPj4+IC3CoMKgwqAgY250ID0gZGl2NjRfdTY0KGZpbl9m cmVxICogKHU2NClwZXJpb2QsIE5TRUNfUEVSX1NFQyAqIChwcmVfZGl2ICsgMSkpOwo+Pj4gK8Kg wqDCoCBjbnQgPSBkaXY2NF91NjQoZmluX2ZyZXEgKiAodTY0KXBlcmlvZCwgTlNFQ19QRVJfU0VD KTsKPj4+ICDCoMKgwqDCoMKgIGlmIChjbnQgPiAweGZmZmYpIHsKPj4+ICDCoMKgwqDCoMKgwqDC oMKgwqAgZGV2X2VycihtZXNvbi0+Y2hpcC5kZXYsICJ1bmFibGUgdG8gZ2V0IHBlcmlvZCBjbnRc biIpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4+ICDCoMKgwqDC oMKgIH0KPj4+ICDCoCAtwqDCoMKgIGRldl9kYmcobWVzb24tPmNoaXAuZGV2LCAicGVyaW9kPSV1 IHByZV9kaXY9JXUgY250PSV1XG4iLCBwZXJpb2QsCj4+PiAtwqDCoMKgwqDCoMKgwqAgcHJlX2Rp diwgY250KTsKPj4+ICvCoMKgwqAgZGV2X2RiZyhtZXNvbi0+Y2hpcC5kZXYsICJwZXJpb2Q9JXUg Y250PSV1XG4iLCBwZXJpb2QsIGNudCk7Cj4+PiAgwqAgwqDCoMKgwqDCoCBpZiAoZHV0eSA9PSBw ZXJpb2QpIHsKPj4+IC3CoMKgwqDCoMKgwqDCoCBjaGFubmVsLT5wcmVfZGl2ID0gcHJlX2RpdjsK Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgY2hhbm5lbC0+aGkgPSBjbnQ7Cj4+PiAgwqDCoMKgwqDC oMKgwqDCoMKgIGNoYW5uZWwtPmxvID0gMDsKPj4+ICDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoZHV0 eSA9PSAwKSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqAgY2hhbm5lbC0+cHJlX2RpdiA9IHByZV9kaXY7 Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgIGNoYW5uZWwtPmhpID0gMDsKPj4+ICDCoMKgwqDCoMKg wqDCoMKgwqAgY2hhbm5lbC0+bG8gPSBjbnQ7Cj4+PiAgwqDCoMKgwqDCoCB9IGVsc2Ugewo+Pj4g LcKgwqDCoMKgwqDCoMKgIC8qIFRoZW4gY2hlY2sgaXMgd2UgY2FuIGhhdmUgdGhlIGR1dHkgd2l0 aCB0aGUgc2FtZSBwcmVfZGl2ICovCj4+PiAtwqDCoMKgwqDCoMKgwqAgZHV0eV9jbnQgPSBkaXY2 NF91NjQoZmluX2ZyZXEgKiAodTY0KWR1dHksCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBOU0VDX1BFUl9TRUMgKiAocHJlX2RpdiArIDEpKTsKPj4+ICvCoMKg wqDCoMKgwqDCoCBkdXR5X2NudCA9IGRpdjY0X3U2NChmaW5fZnJlcSAqICh1NjQpZHV0eSwgTlNF Q19QRVJfU0VDKTsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGR1dHlfY250ID4gMHhmZmZm KSB7Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X2VycihtZXNvbi0+Y2hpcC5k ZXYsICJ1bmFibGUgdG8gZ2V0IGR1dHkgY3ljbGVcbiIpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+PiAg wqAgLcKgwqDCoMKgwqDCoMKgIGRldl9kYmcobWVzb24tPmNoaXAuZGV2LCAiZHV0eT0ldSBwcmVf ZGl2PSV1IGR1dHlfY250PSV1XG4iLAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZHV0eSwg cHJlX2RpdiwgZHV0eV9jbnQpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGRldl9kYmcobWVzb24tPmNo aXAuZGV2LCAiZHV0eT0ldSBkdXR5X2NudD0ldVxuIiwgZHV0eSwgZHV0eV9jbnQpOwo+Pj4gIMKg IC3CoMKgwqDCoMKgwqDCoCBjaGFubmVsLT5wcmVfZGl2ID0gcHJlX2RpdjsKPj4+ICDCoMKgwqDC oMKgwqDCoMKgwqAgY2hhbm5lbC0+aGkgPSBkdXR5X2NudDsKPj4+ICDCoMKgwqDCoMKgwqDCoMKg wqAgY2hhbm5lbC0+bG8gPSBjbnQgLSBkdXR5X2NudDsKPj4+ICDCoMKgwqDCoMKgIH0KPj4+ICDC oCArwqDCoMKgIGNoYW5uZWwtPnJhdGUgPSBmaW5fZnJlcTsKPj4+ICsKPj4+ICDCoMKgwqDCoMKg IHJldHVybiAwOwo+Pj4gIMKgIH0KPj4+ICDCoCBAQCAtMjIzLDE2ICsyMDgsMTUgQEAgc3RhdGlj IHZvaWQgbWVzb25fcHdtX2VuYWJsZShzdHJ1Y3QgbWVzb25fcHdtICptZXNvbiwgc3RydWN0IHB3 bV9kZXZpY2UgKnB3bSkKPj4+ICDCoMKgwqDCoMKgIHN0cnVjdCBtZXNvbl9wd21fY2hhbm5lbF9k YXRhICpjaGFubmVsX2RhdGE7Cj4+PiAgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ Pj4gIMKgwqDCoMKgwqAgdTMyIHZhbHVlOwo+Pj4gK8KgwqDCoCBpbnQgZXJyOwo+Pj4gIMKgIMKg wqDCoMKgwqAgY2hhbm5lbF9kYXRhID0gJm1lc29uX3B3bV9wZXJfY2hhbm5lbF9kYXRhW3B3bS0+ aHdwd21dOwo+Pj4gIMKgIC3CoMKgwqAgc3Bpbl9sb2NrX2lycXNhdmUoJm1lc29uLT5sb2NrLCBm bGFncyk7Cj4+PiArwqDCoMKgIGVyciA9IGNsa19zZXRfcmF0ZShjaGFubmVsLT5jbGssIGNoYW5u ZWwtPnJhdGUpOwo+Pj4gK8KgwqDCoCBpZiAoZXJyKQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGRldl9l cnIobWVzb24tPmNoaXAuZGV2LCAic2V0dGluZyBjbG9jayByYXRlIGZhaWxlZFxuIik7Cj4+PiAg wqAgLcKgwqDCoCB2YWx1ZSA9IHJlYWRsKG1lc29uLT5iYXNlICsgUkVHX01JU0NfQUIpOwo+Pj4g LcKgwqDCoCB2YWx1ZSAmPSB+KE1JU0NfQ0xLX0RJVl9NQVNLIDw8IGNoYW5uZWxfZGF0YS0+Y2xr X2Rpdl9zaGlmdCk7Cj4+PiAtwqDCoMKgIHZhbHVlIHw9IGNoYW5uZWwtPnByZV9kaXYgPDwgY2hh bm5lbF9kYXRhLT5jbGtfZGl2X3NoaWZ0Owo+Pj4gLcKgwqDCoCB2YWx1ZSB8PSBCSVQoY2hhbm5l bF9kYXRhLT5jbGtfZW5fYml0KTsKPj4+IC3CoMKgwqAgd3JpdGVsKHZhbHVlLCBtZXNvbi0+YmFz ZSArIFJFR19NSVNDX0FCKTsKPj4+ICvCoMKgwqAgc3Bpbl9sb2NrX2lycXNhdmUoJm1lc29uLT5s b2NrLCBmbGFncyk7Cj4+PiAgwqAgwqDCoMKgwqDCoCB2YWx1ZSA9IEZJRUxEX1BSRVAoUFdNX0hJ R0hfTUFTSywgY2hhbm5lbC0+aGkpIHwKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqAgRklFTERfUFJF UChQV01fTE9XX01BU0ssIGNoYW5uZWwtPmxvKTsKPj4+IEBAIC0yNzEsMTYgKzI1NSwxNiBAQCBz dGF0aWMgaW50IG1lc29uX3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBw d21fZGV2aWNlICpwd20sCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyoKPj4+ICDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogVGhpcyBJUCBibG9jayByZXZpc2lvbiBkb2Vz bid0IGhhdmUgYW4gImFsd2F5cyBoaWdoIgo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKiBzZXR0aW5nIHdoaWNoIHdlIGNhbiB1c2UgZm9yICJpbnZlcnRlZCBkaXNhYmxlZCIuCj4+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogSW5zdGVhZCB3ZSBhY2hpZXZlIHRoaXMgdXNp bmcgdGhlIHNhbWUgc2V0dGluZ3MKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiB0aGF0 IHdlIHVzZSBhIHByZV9kaXYgb2YgMCAodG8gZ2V0IHRoZSBzaG9ydGVzdAo+Pj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAqIHBvc3NpYmxlIGR1cmF0aW9uIGZvciBvbmUgImNvdW50IikgYW5k Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogSW5zdGVhZCB3ZSBhY2hpZXZlIHRoaXMg Ynkgc2V0dGluZyBhbiBhcmJpdHJhcnksCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICog dmVyeSBoaWdoIGZyZXF1ZW5jeSwgcmVzdWx0aW5nIGluIHRoZSBzaG9ydGVzdAo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAqIHBvc3NpYmxlIGR1cmF0aW9uIGZvciBvbmUgImNvdW50IiBh bmQKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogInBlcmlvZCA9PSBkdXR5X2N5 Y2xlIi4gVGhpcyByZXN1bHRzIGluIGEgc2lnbmFsCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqIHdoaWNoIGlzIExPVyBmb3Igb25lICJjb3VudCIsIHdoaWxlIGJlaW5nIEhJR0gg Zm9yCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIHRoZSByZXN0IG9mIHRoZSAo c28gdGhlIHNpZ25hbCBpcyBISUdIIGZvciBzbGlnaHRseQo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKiBsZXNzIHRoYW4gMTAwJSBvZiB0aGUgcGVyaW9kLCBidXQgdGhpcyBpcyB0 aGUgYmVzdAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiB3ZSBjYW4gYWNoaWV2 ZSkuCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY2hhbm5lbC0+cHJlX2RpdiA9IDA7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBjaGFubmVsLT5yYXRlID0gMTAwMDAwMDAwMDsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjaGFubmVsLT5oaSA9IH4wOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGNoYW5uZWwtPmxvID0gMDsKPj4KPj4gVGhpcyBsb29rcyBsaWtlIGEgcmVhbGx5IGJhZCBpZGVh Li4uIHBsZWFzZSBkb24ndCBkbyB0aGF0IGFuZCBpbnN0ZWFkIGludHJvZHVjZQo+PiBzb21lIHBp bmN0cmwgc3RhdGVzIHdoZXJlIHdlIHNldCB0aGUgUFdNIHBpbiBhcyBHUElPIG1vZGUgaGlnaC9s b3cgc3RhdGUgbGlrZSB3ZQo+PiBkaWQgZm9yIFNQSToKPj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvci8yMDIyMTAwNC11cC1hbWwtZml4LXNwaS12NC0yLTAzNDJkOGUxMGM0OUBiYXlsaWJyZS5j b20KPj4KPiAKPiBUaGVyZSdzIG5vIGJlaGF2aW9yIGNoYW5nZSBpbiB0aGlzIHBhdGNoIHNldC4g U28gbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHlvdSdkCj4gbGlrZSB0byBjaGFuZ2UgdGhlIGN1 cnJlbnQgYmVoYXZpb3IgaW5kZXBlbmRlbnQgb2YgdGhlIENDRi1yZWxhdGVkIGNoYW5nZXMuCgpU aGVyZSdzIGEgYmVoYXZpb3IgY2hhbmdlIHNpbmNlIHlvdSBjaGFuZ2UgdGhlIGNhbGN1bGF0aW9u IHdpdGggYSByYWRpY2FsbHkgZGlmZmVyZW50CmFsZ29yaXRobS4KCk5laWwKCj4gCj4gRm9yIHRo ZSB1cGRhdGVkIFBXTSBibG9jayAoYXQgbGVhc3QgZm9yIFM5MDVYMywgbm90IHN1cmUgd2l0aCB3 aGljaCBmYW1pbHkgQW1sb2dpYwo+IGV4dGVuZGVkIHRoZSBQV00gYmxvY2spIHdlIGhhdmUgYW4g aW50ZWdyYXRlZCBvcHRpb24gdG8gYWNoaWV2ZSBjb25zdGFudCBsb3cvaGlnaAo+IG91dHB1dC4g SXQncyBqdXN0IG5vdCBpbXBsZW1lbnRlZCB5ZXQsIGl0J3Mgc29tZXRoaW5nIEkgbWF5IGRvIGFz IG5leHQgc3RlcC4KPiBUaGUgZXh0ZW5kZWQgUFdNIGJsb2NrIGFkZGVkIG5ldyBiaXRzIHB3bV9B L0JfY29uc3RhbnRfZW4gdGhhdCBwcmV2ZW50IHRoZSBkZWZhdWx0Cj4gaW5jcmVtZW50IG9mIHRo ZSBoaS9sbyBwZXJpb2QuIEJ5IHN1cHBvcnRpbmcgdGhlc2UgYml0cyB3ZSBjYW4gYWNoaWV2ZSB2 YWx1ZSAwCj4gZm9yIGhpL2xvLgo+IElNTyB0aGF0J3MgZWFzaWVyIHRoYW4gYWRkaW5nIHBpbmN0 cmwgaGFuZGxpbmcuIFRoZSByZW1haW5pbmcgcXVlc3Rpb24gd291bGQgYmUKPiB3aGV0aGVyIGl0 J3Mgd29ydGggaXQgdG8gYWRkIHBpbmN0cmwgaGFuZGxpbmcganVzdCBmb3IgdGhlIGxlZ2FjeSB2 ZXJzaW9uIG9mIHRoZQo+IFBXTSBibG9jay4KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==