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 82F45C433EF for ; Fri, 10 Jun 2022 13:44:42 +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=9eHezEKdnVxKa4S3T0XltTJSo5JzI8iR0JAth8UqxvU=; b=gUZehKDcwoY6tw FxlbJf6a89FgcqNVy0y2KTbrZdrbMv2L8PNtICKvc/dKNau7pD8PVB1bBcLf1kQSiwkCXIBV7k9qE wtMbL7vJPhWKevfIdqG9F1BfIXu/Dkb/dN71HN2x7d3eUFuqxPNqFReO194PnGZSHDdhQRGDTURuR 76yf2BBB7TI56BrSQSwUK7VC0qrcJXV94AsWh2bZQrcGRKuGUh5Ut9xoGM9gV334Jzk2yeGf+QJSs VJMqSbN8h5f+aGF2CGFdbiIcr1hYgdp7dEu2d5r7n/NTV4Bg5BLWG9XzWmevuZL9+Gy3kLcJAdlst fb+275jMR9tYhxS0YV3Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzev5-008P6i-Ii; Fri, 10 Jun 2022 13:43:23 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nzev1-008P4Y-Ut for linux-arm-kernel@lists.infradead.org; Fri, 10 Jun 2022 13:43:21 +0000 Received: by mail-wr1-x430.google.com with SMTP id u8so32259899wrm.13 for ; Fri, 10 Jun 2022 06:43:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=MUhIkPArPHIPy06gz4cSE3aTOOxY2nSP5WV+XoCfzRk=; b=gfEantf23UcbfjS8pXanrdVio9fVjQjgt2UwdfPJxIu8MnoMYfTfDEx2DaaKfE//wp eMI/uB72kj0DwmR527jsT2ngw1guB6kcJ0KAXW+9z1P0HLo0LyEVQIT7NJwpf9FTqGDI CUfeLlawkfomFRlCGp03nHLu+g31TiSeZvDoh2trJNtU/Bn371/PjHgwG6eG8n1ctDxB w6aKoLPIgZQCIy0iDGvbYzDUGTWhpisZXZy9RG0Gts/AQ2YMN19hPptomhtZE1tofr8k NjzsXOqQSRBuLZlXE8oqlkwo8mQh71BSu/Tq4gYi+XKNaHx66Y3MNSPJ1MMvs0vZgukU BI3g== 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:in-reply-to :content-transfer-encoding; bh=MUhIkPArPHIPy06gz4cSE3aTOOxY2nSP5WV+XoCfzRk=; b=xxu1hok83VZtuXXx8SkfFDFWIGkRh0FO4xuCNv9VwhWHFKgKsU7LNBUGS062PZ/10F QaJ9PWbavs3XLcfmy+W088AMgV4VbsMxBhIXa8CJr+WKnlMW8jbc9ijF2afgB6uBxYs6 7LoxoGh8XyvM5yPSelTTOtd3qzS/xJFdD5oBMtBbakK9VyH624SNCnRiUA8hx3CixYuF UHbWFrIU49ViilZFnI43buww6aupWw59MJsbio7/I5jtCc4PrB7m0yB1janCxVBY0JRH XbRqr6qBiDAK5Z7lOw0Hx9pn/j553G21++udZfB5S/9QiN6WHQLXWe8sxqCG9arDV35H Km8g== X-Gm-Message-State: AOAM533x/aOoE44VwOZIwvkm64z+tUsSrQW7tmochAmWAkexh2G58uJC K21uQYPQzcjtI6qyM+gdXxKI0CFL1po= X-Google-Smtp-Source: ABdhPJx4aZn9694mJK4XN6HyC801doDfIPOi9jbg69UBn5J6e6C9uw4xjG7rsstJPoeOdA7qMBTgvw== X-Received: by 2002:adf:e488:0:b0:20f:d981:4b42 with SMTP id i8-20020adfe488000000b0020fd9814b42mr44429368wrm.455.1654868596987; Fri, 10 Jun 2022 06:43:16 -0700 (PDT) Received: from ?IPV6:2a01:e0a:181:90d0:6ce1:d6aa:6a23:353b? ([2a01:e0a:181:90d0:6ce1:d6aa:6a23:353b]) by smtp.gmail.com with ESMTPSA id s13-20020a5d6a8d000000b0020c5253d8f7sm27652541wru.67.2022.06.10.06.43.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 Jun 2022 06:43:16 -0700 (PDT) Message-ID: Date: Fri, 10 Jun 2022 15:43:15 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH 2/3] tty: serial: atmel: improve clock management Content-Language: en-US To: Claudiu.Beznea@microchip.com, gregkh@linuxfoundation.org, jirislaby@kernel.org, Nicolas.Ferre@microchip.com, alexandre.belloni@bootlin.com, patrice.chotard@foss.st.com Cc: linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20220525133733.1051714-1-claudiu.beznea@microchip.com> <20220525133733.1051714-3-claudiu.beznea@microchip.com> <5dae58ca-487a-cbd8-00f8-9951a425f70e@gmail.com> <4a189186-9871-09ab-d7e1-9346f7af0bfe@microchip.com> From: Richard Genoud In-Reply-To: <4a189186-9871-09ab-d7e1-9346f7af0bfe@microchip.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220610_064320_038034_63AECC42 X-CRM114-Status: GOOD ( 28.77 ) 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-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 SGksCkxlIDA4LzA2LzIwMjIgw6AgMTA6MTgsIENsYXVkaXUuQmV6bmVhQG1pY3JvY2hpcC5jb20g YSDDqWNyaXTCoDoKPiBIaSwKPiAKPiBPbiAwMi4wNi4yMDIyIDEyOjI5LCBSaWNoYXJkIEdlbm91 ZCB3cm90ZToKPj4KPj4gSGksCj4+Cj4+IExlIDI1LzA1LzIwMjIgw6AgMTU6MzcsIENsYXVkaXUg QmV6bmVhIGEgw6ljcml0IDoKPj4+IGF0bWVsX3BvcnQtPmNsayB3YXMgcmVxdWVzdGVkIGluIGF0 bWVsX2luaXRfcG9ydCgpICh3aGljaCBpcyBjYWxsZWQgb25seQo+Pj4gb24gcHJvYmUgcGF0aCkg b25seSBpZiBhdG1lbF9wb3J0LT5jbGsgd2FzIE5VTEwuIEJ1dCBhdG1lbF9wb3J0LT5jbGsgaXMK Pj4+IE5VTEwgb24gcHJvYmluZyBwYXRoLiBUaHVzIGRvbid0IGNoZWNrIHRoaXMuIEFsb25nIHdp dGggdGhpcyB0aGUgY2xvY2sgaXMKPj4+IG5vdyByZXF1ZXN0ZWQgd2l0aCBkZXZtX2Nsa19nZXQo KSBhbmQgdGhlIGNsb2NrIHJlcXVlc3QgaGFzIGJlZW4gbW92ZWQgaW4KPj4+IGF0bWVsX3Nlcmlh bF9wcm9iZSgpIGZ1bmN0aW9uIHRvIGF2b2lkIGRpc2FibGluZy9yZS1lbmFibGluZyBpdCBvbiBw cm9iZQo+Pj4gcGF0aCBmb3IgbXVsdGlwbGUgdGltZXMuIEFsbCB0aGUgY2hlY2tzIG9mIGF0bWVs X3BvcnQtPmNsayB3ZXJlIHJlbW92ZWQKPj4+IGFsb25nIHdpdGggY2xrX3B1dCgpIGFuZCBhdG1l bF9wb3J0LT5jbGsgPSBOVUxMLiBOb3csIG9uIHByb2JpbmcgdGltZSB0aGUKPj4+IGNsb2NrIGlz IGVuYWJsZWQgYXQgdGhlIGJlZ2lubmluZyBhbmQgZGlzYWJsZWQgYXQgdGhlIGVuZCBvZiBwcm9i ZS4gQXMKPj4+IGF0bWVsX2NvbnNvbGVfc2V0dXAoKSBpcyBjYWxsZWQgaW4gdGhlIG1pZGRsZSBv ZiBwcm9iZSBhbmQgY2xvY2sgaXMKPj4+IGFscmVhZHkgZW5hYmxlZCBhdCB0aGF0IHRpbWUgdGhl IGNsa19wcmVwYXJlX2VuYWJsZSgpIGluCj4+PiBhdG1lbF9jb25zb2xlX3NldHVwKCkgaGFzIGFs c28gYmVlbiByZW1vdmVkLgo+PiBDb3VsZCB5b3Ugc3BsaXQgdGhpcyBwYXRjaCBpbnRvIHNtYWxs ZXIgc3RlcHMgPwo+PiBJIHRoaW5rIGl0IHdpbGwgYmUgZWFzaWVyIHRvIHJlYWQgYW5kIHJldmll dy4KPiAKPiBJIGtlcHQgaXQgYXMgYSBzaW5nbGUgcGF0Y2ggYXMgaXQgaXMgYWxsIHJlbGF0ZWQg dG8gY2xvY2sgbWFuYWdlbWVudC4KPiAKPiBIYXZpbmcgdGhlIGNsb2NrIGVuYWJsZWQgb25seSBh dCB0aGUgYmVnaW5uaW5nIG9mIHByb2JlIGFuZCBkaXNhYmxlZCBhdCB0aGUKPiBlbmQgb2YgcHJv YmUgbGVhZCB0byByZW1vdmluZyB0aGUgY29kZSBpbiBhdG1lbF9pbml0X3BvcnQoKSwgYWxzbyBy ZW1vdmluZwo+IHRoZSBjb2RlIHVuZGVyIENPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRSBpbiBw cm9iZS4gU2FtZSBmb3IgdGhlIHJlc3Qgb2YKPiB0aGUgcmVtb3ZlZCBjb2RlLgo+IAo+IFdpdGgg dGhpcywgd291bGQgeW91IHN0aWxsIHdhbnQgdG8gc3BsaXQgaXQgaW4gbXVsdGlwbGUgcGF0Y2hl cz8KCkkgdGhpbmsgdGhhdCwgYXQgbGVhc3QsIHRoZSBzd2l0Y2ggZnJvbSBjbGtfZ2V0KCkgdG8g ZGV2bV9jbGtfZ2V0KCkgY2FuIApiZSBpbiBhIHNlcGFyYXRlIHBhdGNoLgpCdXQgaW4gZ2VuZXJh bCwgSSBwcmVmZXIgd2hlbiBwYXRjaGVzIGFyZSBzZWxmLWV4cGxhaW5pbmcgcmF0aGVyIHRoYW4g YSAKYmlnZ2VyIHBhdGNoIHdpdGggYSBsb25nZXIgZXhwbGFuYXRpb24gb2Ygd2hhdCBpdCBkb2Vz IGluIHRoZSBjb21taXQgCm1lc3NhZ2UuCgpSZWdhcmRzLApSaWNoYXJkCgo+IAo+IFRoYW5rIHlv dSwKPiBDbGF1ZGl1IEJlem5lYQo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IENsYXVkaXUgQmV6bmVh IDxjbGF1ZGl1LmJlem5lYUBtaWNyb2NoaXAuY29tPgo+Pj4gLS0tCj4+PiAgwqAgZHJpdmVycy90 dHkvc2VyaWFsL2F0bWVsX3NlcmlhbC5jIHwgNjUgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+Pj4gIMKgIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlv bnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL2F0bWVsX3Nlcmlh bC5jCj4+PiBiL2RyaXZlcnMvdHR5L3NlcmlhbC9hdG1lbF9zZXJpYWwuYwo+Pj4gaW5kZXggNWM3 OTNhMjNkYzU0Li4yOTU1YjEwMTIwMTQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL3R0eS9zZXJp YWwvYXRtZWxfc2VyaWFsLmMKPj4+ICsrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9hdG1lbF9zZXJp YWwuYwo+Pj4gQEAgLTI1MDEsMjQgKzI1MDEsNyBAQCBzdGF0aWMgaW50IGF0bWVsX2luaXRfcG9y dChzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0Cj4+PiAqYXRtZWxfcG9ydCwKPj4+ICDCoMKgwqDCoMKg IGlmIChyZXQpCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4+ Cj4+PiAtwqDCoMKgwqAgLyogZm9yIGNvbnNvbGUsIHRoZSBjbG9jayBjb3VsZCBhbHJlYWR5IGJl IGNvbmZpZ3VyZWQgKi8KPj4+IC3CoMKgwqDCoCBpZiAoIWF0bWVsX3BvcnQtPmNsaykgewo+Pj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdG1lbF9wb3J0LT5jbGsgPSBjbGtfZ2V0KCZtcGRl di0+ZGV2LCAidXNhcnQiKTsKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKElTX0VS UihhdG1lbF9wb3J0LT5jbGspKSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCByZXQgPSBQVFJfRVJSKGF0bWVsX3BvcnQtPmNsayk7Cj4+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdG1lbF9wb3J0LT5jbGsgPSBOVUxMOwo+ Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsK Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoYXRtZWxfcG9ydC0+Y2xrKTsKPj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldCkgewo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgY2xrX3B1dChhdG1lbF9wb3J0LT5jbGspOwo+Pj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXRtZWxfcG9ydC0+Y2xrID0gTlVM TDsKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBy ZXQ7Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgcG9ydC0+dWFydGNsayA9IGNsa19nZXRfcmF0ZShhdG1lbF9wb3J0LT5jbGspOwo+ Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUoYXRtZWxf cG9ydC0+Y2xrKTsKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogb25seSBlbmFibGUg Y2xvY2sgd2hlbiBVU0FSVCBpcyBpbiB1c2UgKi8KPj4+IC3CoMKgwqDCoCB9Cj4+PiArwqDCoMKg wqAgcG9ydC0+dWFydGNsayA9IGNsa19nZXRfcmF0ZShhdG1lbF9wb3J0LT5jbGspOwo+Pj4KPj4+ ICDCoMKgwqDCoMKgIC8qCj4+PiAgwqDCoMKgwqDCoMKgICogVXNlIFRYRU1QVFkgZm9yIGludGVy cnVwdCB3aGVuIHJzNDg1IG9yIElTTzc4MTYgZWxzZSBUWFJEWSBvcgo+Pj4gQEAgLTI2NDAsMTAg KzI2MjMsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBhdG1lbF9jb25zb2xlX3NldHVwKHN0cnVjdAo+ Pj4gY29uc29sZSAqY28sIGNoYXIgKm9wdGlvbnMpCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIC1FTk9ERVY7Cj4+PiAgwqDCoMKgwqDCoCB9Cj4+Pgo+Pj4gLcKgwqDCoMKg IHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShhdG1lbF9wb3J0c1tjby0+aW5kZXhdLmNsayk7Cj4+ PiAtwqDCoMKgwqAgaWYgKHJldCkKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJu IHJldDsKPj4+IC0KPj4gTm93LCAiaW50IHJldDsiIGlzIHVudXNlZCwgeW91IGNhbiByZW1vdmUg aXQuCj4+Cj4+PiAgwqDCoMKgwqDCoCBhdG1lbF91YXJ0X3dyaXRlbChwb3J0LCBBVE1FTF9VU19J RFIsIC0xKTsKPj4+ICDCoMKgwqDCoMKgIGF0bWVsX3VhcnRfd3JpdGVsKHBvcnQsIEFUTUVMX1VT X0NSLCBBVE1FTF9VU19SU1RTVEEgfAo+Pj4gQVRNRUxfVVNfUlNUUlgpOwo+Pj4gIMKgwqDCoMKg wqAgYXRtZWxfdWFydF93cml0ZWwocG9ydCwgQVRNRUxfVVNfQ1IsIEFUTUVMX1VTX1RYRU4gfCBB VE1FTF9VU19SWEVOKTsKPj4+IEBAIC0yODg5LDE0ICsyODY4LDIzIEBAIHN0YXRpYyBpbnQgYXRt ZWxfc2VyaWFsX3Byb2JlKHN0cnVjdAo+Pj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4gIMKg wqDCoMKgwqAgYXRvbWljX3NldCgmYXRtZWxfcG9ydC0+dGFza2xldF9zaHV0ZG93biwgMCk7Cj4+ PiAgwqDCoMKgwqDCoCBzcGluX2xvY2tfaW5pdCgmYXRtZWxfcG9ydC0+bG9ja19zdXNwZW5kZWQp Owo+Pj4KPj4+ICvCoMKgwqDCoCBhdG1lbF9wb3J0LT5jbGsgPSBkZXZtX2Nsa19nZXQoJnBkZXYt PmRldiwgInVzYXJ0Iik7Cj4+PiArwqDCoMKgwqAgaWYgKElTX0VSUihhdG1lbF9wb3J0LT5jbGsp KSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IFBUUl9FUlIoYXRtZWxfcG9y dC0+Y2xrKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnI7Cj4+PiArwqDC oMKgwqAgfQo+Pj4gK8KgwqDCoMKgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShhdG1lbF9wb3J0 LT5jbGspOwo+Pj4gK8KgwqDCoMKgIGlmIChyZXQpCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGdvdG8gZXJyOwo+Pj4gKwo+Pj4gIMKgwqDCoMKgwqAgcmV0ID0gYXRtZWxfaW5pdF9wb3J0 KGF0bWVsX3BvcnQsIHBkZXYpOwo+Pj4gIMKgwqDCoMKgwqAgaWYgKHJldCkKPj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJfY2xlYXJfYml0Owo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBnb3RvIGVycl9jbGtfZGlzYWJsZV91bnByZXBhcmU7Cj4+Pgo+Pj4gIMKgwqDC oMKgwqAgYXRtZWxfcG9ydC0+Z3Bpb3MgPSBtY3RybF9ncGlvX2luaXQoJmF0bWVsX3BvcnQtPnVh cnQsIDApOwo+Pj4gIMKgwqDCoMKgwqAgaWYgKElTX0VSUihhdG1lbF9wb3J0LT5ncGlvcykpIHsK Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBQVFJfRVJSKGF0bWVsX3BvcnQt PmdwaW9zKTsKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJfY2xlYXJfYml0 Owo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9jbGtfZGlzYWJsZV91bnBy ZXBhcmU7Cj4+PiAgwqDCoMKgwqDCoCB9Cj4+Pgo+Pj4gIMKgwqDCoMKgwqAgaWYgKCFhdG1lbF91 c2VfcGRjX3J4KCZhdG1lbF9wb3J0LT51YXJ0KSkgewo+Pj4gQEAgLTI5MDUsNyArMjg5Myw3IEBA IHN0YXRpYyBpbnQgYXRtZWxfc2VyaWFsX3Byb2JlKHN0cnVjdAo+Pj4gcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVvZihzdHJ1Y3QgYXRtZWxfdWFydF9jaGFyKSwK Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBHRlBfS0VSTkVMKTsKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpZiAoIWRhdGEpCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBnb3RvIGVycl9hbGxvY19yaW5nOwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZ290byBlcnJfY2xrX2Rpc2FibGVfdW5wcmVwYXJlOwo+Pj4gIMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF0bWVsX3BvcnQtPnJ4X3JpbmcuYnVmID0gZGF0YTsKPj4+ ICDCoMKgwqDCoMKgIH0KPj4+Cj4+PiBAQCAtMjkxNSwyNiArMjkwMyw5IEBAIHN0YXRpYyBpbnQg YXRtZWxfc2VyaWFsX3Byb2JlKHN0cnVjdAo+Pj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4g IMKgwqDCoMKgwqAgaWYgKHJldCkKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3Rv IGVycl9hZGRfcG9ydDsKPj4+Cj4+PiAtI2lmZGVmIENPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09M RQo+Pj4gLcKgwqDCoMKgIGlmICh1YXJ0X2NvbnNvbGUoJmF0bWVsX3BvcnQtPnVhcnQpCj4+PiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmJiBBVE1FTF9DT05TT0xF X0RFVklDRS0+ZmxhZ3MgJiBDT05fRU5BQkxFRCkgewo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAvKgo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogVGhlIHNlcmlhbCBjb3Jl IGVuYWJsZWQgdGhlIGNsb2NrIGZvciB1cywgc28gdW5kbwo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICogdGhlIGNsa19wcmVwYXJlX2VuYWJsZSgpIGluIGF0bWVsX2NvbnNvbGVfc2V0 dXAoKQo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICovCj4+PiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGNsa19kaXNhYmxlX3VucHJlcGFyZShhdG1lbF9wb3J0LT5jbGspOwo+Pj4g LcKgwqDCoMKgIH0KPj4+IC0jZW5kaWYKPj4+IC0KPj4+ICDCoMKgwqDCoMKgIGRldmljZV9pbml0 X3dha2V1cCgmcGRldi0+ZGV2LCAxKTsKPj4+ICDCoMKgwqDCoMKgIHBsYXRmb3JtX3NldF9kcnZk YXRhKHBkZXYsIGF0bWVsX3BvcnQpOwo+Pj4KPj4+IC3CoMKgwqDCoCAvKgo+Pj4gLcKgwqDCoMKg wqAgKiBUaGUgcGVyaXBoZXJhbCBjbG9jayBoYXMgYmVlbiBkaXNhYmxlZCBieSBhdG1lbF9pbml0 X3BvcnQoKToKPj4+IC3CoMKgwqDCoMKgICogZW5hYmxlIGl0IGJlZm9yZSBhY2Nlc3NpbmcgSS9P IHJlZ2lzdGVycwo+Pj4gLcKgwqDCoMKgwqAgKi8KPj4+IC3CoMKgwqDCoCBjbGtfcHJlcGFyZV9l bmFibGUoYXRtZWxfcG9ydC0+Y2xrKTsKPj4+IC0KPj4+ICDCoMKgwqDCoMKgIGlmIChyczQ4NV9l bmFibGVkKSB7Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXRtZWxfdWFydF93cml0 ZWwoJmF0bWVsX3BvcnQtPnVhcnQsIEFUTUVMX1VTX01SLAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFUTUVMX1VTX1VT TU9ERV9OT1JNQUwpOwo+Pj4gQEAgLTI5NTgsMTIgKzI5MjksOCBAQCBzdGF0aWMgaW50IGF0bWVs X3NlcmlhbF9wcm9iZShzdHJ1Y3QKPj4+IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+ICDCoCBl cnJfYWRkX3BvcnQ6Cj4+PiAgwqDCoMKgwqDCoCBrZnJlZShhdG1lbF9wb3J0LT5yeF9yaW5nLmJ1 Zik7Cj4+PiAgwqDCoMKgwqDCoCBhdG1lbF9wb3J0LT5yeF9yaW5nLmJ1ZiA9IE5VTEw7Cj4+PiAt ZXJyX2FsbG9jX3Jpbmc6Cj4+PiAtwqDCoMKgwqAgaWYgKCF1YXJ0X2NvbnNvbGUoJmF0bWVsX3Bv cnQtPnVhcnQpKSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNsa19wdXQoYXRtZWxf cG9ydC0+Y2xrKTsKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXRtZWxfcG9ydC0+Y2xr ID0gTlVMTDsKPj4+IC3CoMKgwqDCoCB9Cj4+PiAtZXJyX2NsZWFyX2JpdDoKPj4+ICtlcnJfY2xr X2Rpc2FibGVfdW5wcmVwYXJlOgo+Pj4gK8KgwqDCoMKgIGNsa19kaXNhYmxlX3VucHJlcGFyZShh dG1lbF9wb3J0LT5jbGspOwo+Pj4gIMKgwqDCoMKgwqAgY2xlYXJfYml0KGF0bWVsX3BvcnQtPnVh cnQubGluZSwgYXRtZWxfcG9ydHNfaW5fdXNlKTsKPj4+ICDCoCBlcnI6Cj4+PiAgwqDCoMKgwqDC oCByZXR1cm4gcmV0Owo+Pj4gQEAgLTI5OTcsOCArMjk2NCw2IEBAIHN0YXRpYyBpbnQgYXRtZWxf c2VyaWFsX3JlbW92ZShzdHJ1Y3QKPj4+IHBsYXRmb3JtX2RldmljZSAqcGRldikKPj4+Cj4+PiAg wqDCoMKgwqDCoCBjbGVhcl9iaXQocG9ydC0+bGluZSwgYXRtZWxfcG9ydHNfaW5fdXNlKTsKPj4+ Cj4+PiAtwqDCoMKgwqAgY2xrX3B1dChhdG1lbF9wb3J0LT5jbGspOwo+Pj4gLcKgwqDCoMKgIGF0 bWVsX3BvcnQtPmNsayA9IE5VTEw7Cj4+PiAgwqDCoMKgwqDCoCBwZGV2LT5kZXYub2Zfbm9kZSA9 IE5VTEw7Cj4+Pgo+Pj4gIMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4gVGhhbmtzICEKPj4KPj4g UmVnYXJkcywKPj4gUmljaGFyZAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=