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 F2144C04A94 for ; Thu, 10 Aug 2023 07:22:31 +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=9mPHAbfpqXtuTIoKeqa/bNJ+kYYYlMwqeYqgxLuyltA=; b=TceT/M5O+l8pxi bXvVTre3TCVvUGoWIHz/p7LUFU84A9xhBhI5F4sG76Gf8qKUBaFIy2wL6Gn8G1kAEyxdK3Gi3pu6a zjoSdJVubFYekfv3rVrQ6JPKGdnv44J+rGzTI5tGdHm1zeF+WPaPkQ3Fq31lYWJtuiaxLO9rk4W0i tmnLQF6kTQ2+Gf990ZHdXw9F71GM0lObiZ+EU2LGaJUC+mNI9RKpkXipw3lVSe37ToGE/JP/S75WK 7cn5m5wpwW3svdyMh2vpKUQfIzVhCk743Zr4V9C/UI+pFjhhx4j46XLSgj0X1r3BxeutVfyMvf6pW nDjWtGdI7zbeU0vAUH6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qTzze-006k0q-0K; Thu, 10 Aug 2023 07:22:02 +0000 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qTzzZ-006jzX-0I for linux-arm-kernel@lists.infradead.org; Thu, 10 Aug 2023 07:21:59 +0000 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1bda9207132so634045ad.0 for ; Thu, 10 Aug 2023 00:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691652112; x=1692256912; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=oMXI6kTVHPxuRl+9l/keZ7XvudCxl6pTTJO/Mk4iK5I=; b=PMtCNdYX/cUbPbFvOJNQorAyZG8d+0gVK0ec85K7ToAj9D7wEMyo8aIYvWKdFMMRTO DIKdzAF5L1uMK351ZC5QV9WDr5PeZQi6/l6+9iRlZDsRZgSJOm51Bwrp6xB6DofqW+DL KrSVk5lME250ueWWkdLydJCjNL8wry1I1/9T0IpUYHsTo12JEpiQmYqL66gfbhChEUAw HO10Xq4ttk30ndwx0e6angG4MxrmtFOYe7R3BumOCJHo2o/GqMN6Vgi9xRO9fbbYAd9N 1r+I8vTL07CAHLlBnVeS4od3XUkWqLQ6LJotTw3YqNAcw0mJEC5EQj+KEN0X6LoVTI8r 9Wkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691652112; x=1692256912; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oMXI6kTVHPxuRl+9l/keZ7XvudCxl6pTTJO/Mk4iK5I=; b=cgB9mLvyH4KYfIUS0iCDCwLL1aQGODAy4TwOrH7fTKfN85mA8g8yKucM0IpmNqOCDV g53JB5OwQSc83zMrrPU2tbEOTUDuUdaT43rv/L+A/W6eyZg5TLPcYDauHMYJ+mOmvNEZ UWyC5SzyBpe+PkC+sbA/jlEK+5Dc99PI4XaiKiFWlsHqheS+AT6hkscTl21MW15M+l6+ KCaOkchYPxGdfdRIK6gc4eQE/6adfEvS1RNEF7JexKdragCG7KuEpzLxfsPdRm106cmt FMUSieta6QC92F2Oi7SffKzD+/hoKmmLFrtDWML6Rgt/oSH+78+uH2WcH2xB7oMqspqq dhtA== X-Gm-Message-State: AOJu0Yw/ScI5l1VBV4yGTP2dPy6WweP48DJfloZHHbleUT8gUChUQoIr OkAfNmtVChkcsGZ1FqeDhW0O9g9AlFE= X-Google-Smtp-Source: AGHT+IFW163EGmWvkpVnmKqAq23ut6gjOXWOT/PTXKFunpEYWbUnnsyG8OtoKetxK9h+JY8mIdRrkA== X-Received: by 2002:a17:902:f7ce:b0:1bd:a50a:e32d with SMTP id h14-20020a170902f7ce00b001bda50ae32dmr527359plw.68.1691652112361; Thu, 10 Aug 2023 00:21:52 -0700 (PDT) Received: from [172.19.1.47] (60-250-192-107.hinet-ip.hinet.net. [60.250.192.107]) by smtp.gmail.com with ESMTPSA id b1-20020a170902d50100b001bc445e249asm877783plg.124.2023.08.10.00.21.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Aug 2023 00:21:51 -0700 (PDT) Message-ID: <347cf148-bda8-852b-768c-fa2b57ce5bcb@gmail.com> Date: Thu, 10 Aug 2023 15:21:47 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 Subject: Re: [RESEND PATCH v2 3/3] rtc: Add driver for Nuvoton ma35d1 rtc controller To: Alexandre Belloni Cc: a.zummo@towertech.it, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, soc@kernel.org, mjchen@nuvoton.com, schung@nuvoton.com, Jacky Huang References: <20230809011542.429945-1-ychuang570808@gmail.com> <20230809011542.429945-4-ychuang570808@gmail.com> <20230809021025a7c0daec@mail.local> <426130f6-7b8a-91f9-559b-afc5afdc656e@gmail.com> <2023080922515326db190e@mail.local> Content-Language: en-US From: Jacky Huang In-Reply-To: <2023080922515326db190e@mail.local> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230810_002157_140054_EACB95E9 X-CRM114-Status: GOOD ( 38.97 ) 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 CgpPbiAyMDIzLzgvMTAg5LiK5Y2IIDA2OjUxLCBBbGV4YW5kcmUgQmVsbG9uaSB3cm90ZToKPiBP biAwOS8wOC8yMDIzIDE2OjEyOjU0KzA4MDAsIEphY2t5IEh1YW5nIHdyb3RlOgo+Pgo+PiBPbiAy MDIzLzgvOSDkuIrljYggMTA6MTAsIEFsZXhhbmRyZSBCZWxsb25pIHdyb3RlOgo+Pj4gSGVsbG8s Cj4+Pgo+Pj4gT24gMDkvMDgvMjAyMyAwMToxNTo0MiswMDAwLCBKYWNreSBIdWFuZyB3cm90ZToK Pj4+PiArCj4+Pj4gK3N0cnVjdCBtYTM1X2JjZF90aW1lIHsKPj4+PiArCWludCBiY2Rfc2VjOwo+ Pj4+ICsJaW50IGJjZF9taW47Cj4+Pj4gKwlpbnQgYmNkX2hvdXI7Cj4+Pj4gKwlpbnQgYmNkX21k YXk7Cj4+Pj4gKwlpbnQgYmNkX21vbjsKPj4+PiArCWludCBiY2RfeWVhcjsKPj4+PiArfTsKPj4+ IEkgZG9uJ3QgZ2V0IHdoeSB0aGlzIHN0cnVjdCBpcyB1c2VmdWwuCj4+IEkgd2lsbCByZW1vdmUg dGhpcyBhbmQgbW9kaWZ5IGNvZGUuCj4+Cj4+Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgaXJxcmV0dXJu X3QgbWEzNWQxX3J0Y19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGF0YSkKPj4+PiArewo+Pj4+ ICsJc3RydWN0IG1hMzVfcnRjICpydGMgPSAoc3RydWN0IG1hMzVfcnRjICopZGF0YTsKPj4+PiAr CXVuc2lnbmVkIGxvbmcgZXZlbnRzID0gMCwgcnRjX2lycTsKPj4+PiArCj4+Pj4gKwlydGNfaXJx ID0gcnRjX3JlZ19yZWFkKHJ0YywgTUEzNV9SRUdfUlRDX0lOVFNUUyk7Cj4+Pj4gKwo+Pj4+ICsJ aWYgKHJ0Y19pcnEgJiBSVENfSU5UU1RTX0FMTUlGKSB7Cj4+Pj4gKwkJcnRjX3JlZ193cml0ZShy dGMsIE1BMzVfUkVHX1JUQ19JTlRTVFMsIFJUQ19JTlRTVFNfQUxNSUYpOwo+Pj4+ICsJCWV2ZW50 cyB8PSBSVENfQUYgfCBSVENfSVJRRjsKPj4+PiArCX0KPj4+PiArCj4+Pj4gKwlpZiAocnRjX2ly cSAmIFJUQ19JTlRTVFNfVElDS0lGKSB7Cj4+Pj4gKwkJcnRjX3JlZ193cml0ZShydGMsIE1BMzVf UkVHX1JUQ19JTlRTVFMsIFJUQ19JTlRTVFNfVElDS0lGKTsKPj4+PiArCQlldmVudHMgfD0gUlRD X1VGIHwgUlRDX0lSUUY7Cj4+PiBIb3cgZGlkIHlvdSB0ZXN0IHRoaXMgcGF0aD8KPj4gV2UgdXNl IEJ1c3lCb3ggJ2RhdGUnIGNvbW1hbmQgdG8gb2JzZXJ2ZSB0aGUgdGltZSBjaGFuZ2VkLgo+PiBJ biBhZGRpdGlvbiwgd2Ugd3JvdGUgYSBzaW1wbGUgY29kZSB0byB0ZXN0IGl0Lgo+PiAoaHR0cHM6 Ly9naXRodWIuY29tL09wZW5OdXZvdG9uL01BMzVEMV9MaW51eF9BcHBsaWNhdGlvbnMvdHJlZS9t YXN0ZXIvZXhhbXBsZXMvcnRjKQo+Pgo+IFlvdSBzaG91bGQgcHJvYmFibHkgcnVuIHJ0Y3Rlc3Q6 Cj4KPiBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90b3J2 YWxkcy9saW51eC5naXQvdHJlZS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9ydGMvcnRjdGVzdC5j CgpUaGFuayB5b3UgZm9yIHByb3ZpZGluZyB0aGlzIGluZm9ybWF0aW9uLgpXZSB3aWxsIHJ1biB0 aGlzIHRlc3QgYmVmb3JlIHN1Ym1pdHRpbmcgdGhlIG5leHQgdmVyc2lvbi4KCj4KPj4+PiArCWlm IChzZXR0bS0+dG1feWVhciA8IDEwMCkgewo+Pj4+ICsJCWRldl93YXJuKGRldiwgIlRoZSB5ZWFy IHdpbGwgYmUgYmV0d2VlbiAxOTcwLTE5OTksIHJpZ2h0P1xuIik7Cj4+PiBObywgZG9uJ3QgZG8g dGhhdCwgcHJvcGVybHkgc2V0IHRoZSBydGMgaGFyZHdhcmUgcmFuZ2UgYW5kIGxldCB0aGUgdXNl cgo+Pj4gY2hvb3NlIHRoZWlyIHRpbWUgb2Zmc2V0L3dpbmRvdy4KPj4gV2Ugd2lsbCBtb2RpZnkg dGhlIGNvZGUgYXM6Cj4+Cj4+ICNkZWZpbmUgTUEzNV9CQVNFX1lFQVIgMjAwMCAvKiBhc3N1bWUg MjBZWSBub3QgMTlZWSAqLwo+Pgo+PiBpbnQgeWVhcjsKPj4KPj4geWVhciA9IHRtLT50bV95ZWFy ICsgMTkwMCDigJMgTUEzNV9CQVNFX1lFQVI7Cj4+IGlmICh5ZWFyIDwgMCkgewo+PiAgwqDCoMKg IGRldl9lcnIoZGV2LCAiaW52YWxpZCB5ZWFyOiAlZFxuIiwgeWVhcik7Cj4+ICDCoMKgwqAgcmV0 dXJuIC1FSU5WQUw7Cj4+IH0KPiBUaGlzIGlzIG5vdCBuZWVkZWQgYXMgdGhlIHJ0YyBjb3JlIGlz IGdvaW5nIHRvIGNoZWNrIHRoZSB2YWx1ZSBpcyBpbiB0aGUKPiByYW5nZSBvbmNlIHlvdSBzZXQg aXQuCgpPSywgSSB3aWxsIGRyb3AgdGhlICJpZiAoeWVhciA8IDApIiBjaGVjay4KCj4+Pj4gKwl0 aW1lID0gcnRjX3JlZ19yZWFkKHJ0YywgTUEzNV9SRUdfUlRDX1RJTUUpOwo+Pj4+ICsJY2FsICA9 IHJ0Y19yZWdfcmVhZChydGMsIE1BMzVfUkVHX1JUQ19DQUwpOwo+Pj4+ICsJd2RheSA9IHJ0Y19y ZWdfcmVhZChydGMsIE1BMzVfUkVHX1JUQ19XRUVLREFZKTsKPj4+IEFyZSB0aGUgcmVnaXN0ZXJz IHByb3Blcmx5IGxhdGNoZWQgd2hlbiByZWFkaW5nPyBIb3cgZG8geW91IGVuc3VyZSB0aGF0Cj4+ PiBNQTM1X1JFR19SVENfVElNRSBkaWRuJ3QgY2hhbmdlIGJlZm9yZSByZWFkaW5nIE1BMzVfUkVH X1JUQ19DQUwgPwo+PiBXZSB3aWxsIHVwZGF0ZSB0aGUgY29kZSBhcwo+Pgo+PiBkbyB7Cj4+ICDC oMKgIMKgdGltZSA9IHJ0Y19yZWdfcmVhZChydGMsIE1BMzVfUkVHX1JUQ19USU1FKTsKPj4gIMKg wqAgwqBjYWzCoCA9IHJ0Y19yZWdfcmVhZChydGMsIE1BMzVfUkVHX1JUQ19DQUwpOwo+PiAgwqDC oCDCoHdkYXkgPSBydGNfcmVnX3JlYWQocnRjLCBNQTM1X1JFR19SVENfV0VFS0RBWSk7Cj4+IH0g d2hpbGUgKCh0aW1lICE9IHJ0Y19yZWdfcmVhZChydGMsIE1BMzVfUkVHX1JUQ19USU1FKSkgfHwK Pj4gIMKgwqAgwqDCoMKgwqDCoCAoY2FsICE9IHJ0Y19yZWdfcmVhZChydGMsIE1BMzVfUkVHX1JU Q19DQUwpKSB8fAo+PiAgwqDCoCDCoMKgwqDCoMKgICh3ZGF5ICE9ID0gcnRjX3JlZ19yZWFkKHJ0 YywgTUEzNV9SRUdfUlRDX1dFRUtEQVkpKSApOwo+IE9rLCBzbyB0aGlzIG1lYW4geW91ciBoYXJk d2FyZSBkb2Vzbid0IGRvIGxhdGNoaW5nLiBJIGRvbid0IHRoaW5rIGl0IGlzCj4gbmVjZXNzYXJ5 IHRvIGNoZWNrIE1BMzVfUkVHX1JUQ19XRUVLREFZLgoKT0ssIEkgd2lsbCByZW1vdmUgdGhlIE1B MzVfUkVHX1JUQ19XRUVLREFZIGNoZWNrLgo+Pgo+Pj4+ICsKPj4+PiArCXJldHVybiBtYTM1ZDFf cnRjX2JjZDJiaW4odGltZSwgY2FsLCB3ZGF5LCB0bSk7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0 YXRpYyBpbnQgbWEzNWQxX3J0Y19zZXRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBy dGNfdGltZSAqdG0pCj4+Pj4gK3sKPj4+PiArCXN0cnVjdCBtYTM1X3J0YyAqcnRjID0gZGV2X2dl dF9kcnZkYXRhKGRldik7Cj4+Pj4gKwlzdHJ1Y3QgbWEzNV9iY2RfdGltZSBnZXR0bTsKPj4+PiAr CXUzMiB2YWw7Cj4+Pj4gKwo+Pj4+ICsJbWEzNWQxX3J0Y19iaW4yYmNkKGRldiwgdG0sICZnZXR0 bSk7Cj4+Pj4gKwo+Pj4+ICsJdmFsID0gZ2V0dG0uYmNkX21kYXkgfCBnZXR0bS5iY2RfbW9uIHwg Z2V0dG0uYmNkX3llYXI7Cj4+Pj4gKwlydGNfcmVnX3dyaXRlKHJ0YywgTUEzNV9SRUdfUlRDX0NB TCwgdmFsKTsKPj4+PiArCj4+Pj4gKwl2YWwgPSBnZXR0bS5iY2Rfc2VjIHwgZ2V0dG0uYmNkX21p biB8IGdldHRtLmJjZF9ob3VyOwo+Pj4+ICsJcnRjX3JlZ193cml0ZShydGMsIE1BMzVfUkVHX1JU Q19USU1FLCB2YWwpOwo+Pj4+ICsKPj4+IFNhbWUgcXVlc3Rpb24gYWJvdXQgbGF0Y2hpbmcsIHNo b3VsZG4ndCB5b3Ugc3RvcCB0aGUgcnRjIHdoaWxlIGRvaW5nCj4+PiB0aGlzPwo+PiBJbiBmYWN0 LCBvbmNlIGVuYWJsZWQsIHRoZSBSVEMgaGFyZHdhcmUgb2YgTUEzNUQxIGNhbm5vdCBiZSBzdG9w cGVkOyB0aGlzIGlzCj4+IGhvdyB0aGUgaGFyZHdhcmUgaXMgZGVzaWduZWQuCj4+IEluc2lkZSB0 aGUgTUEzNUQxIFJUQywgdGhlcmUncyBhbiBpbnRlcm5hbCBjb3VudGVyIHRoYXQgYWR2YW5jZXMg YnkgMTI4Cj4+IGNvdW50cyBwZXIgc2Vjb25kLgo+PiBXaGVuIHRoZSB0aW1lIG9yIGRhdGUgcmVn aXN0ZXIgaXMgdXBkYXRlZCwgdGhlIGludGVybmFsIGNvdW50ZXIgb2YgdGhlIFJUQwo+PiBoYXJk d2FyZSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzZXQgdG8gMCwKPj4gc28gdGhlcmUgaXMgbm8gbmVl ZCB0byB3b3JyeSBhYm91dCBtZW1vcnkgbGF0Y2ggaXNzdWVzLgo+IE9rLCBncmVhdAo+Cj4+Cj4+ Pj4gKwl2YWwgPSB0bS0+dG1fd2RheTsKPj4+PiArCXJ0Y19yZWdfd3JpdGUocnRjLCBNQTM1X1JF R19SVENfV0VFS0RBWSwgdmFsKTsKPj4+PiArCj4+Pj4gKwlyZXR1cm4gMDsKPj4+PiArfQo+Pj4+ ICsKPj4+PiArc3RhdGljIGludCBtYTM1ZDFfcnRjX3NldF9hbGFybShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBydGNfd2thbHJtICphbHJtKQo+Pj4+ICt7Cj4+Pj4gKwlzdHJ1Y3QgbWEzNV9y dGMgKnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+Pj4+ICsJc3RydWN0IG1hMzVfYmNkX3Rp bWUgdG07Cj4+Pj4gKwl1bnNpZ25lZCBsb25nIHZhbDsKPj4+PiArCj4+Pj4gKwltYTM1ZDFfcnRj X2JpbjJiY2QoZGV2LCAmYWxybS0+dGltZSwgJnRtKTsKPj4+PiArCj4+Pj4gKwl2YWwgPSB0bS5i Y2RfbWRheSB8IHRtLmJjZF9tb24gfCB0bS5iY2RfeWVhcjsKPj4+PiArCXJ0Y19yZWdfd3JpdGUo cnRjLCBNQTM1X1JFR19SVENfQ0FMTSwgdmFsKTsKPj4+PiArCj4+Pj4gKwl2YWwgPSB0bS5iY2Rf c2VjIHwgdG0uYmNkX21pbiB8IHRtLmJjZF9ob3VyOwo+Pj4+ICsJcnRjX3JlZ193cml0ZShydGMs IE1BMzVfUkVHX1JUQ19UQUxNLCB2YWwpOwo+Pj4+ICsKPj4+IFdoYXQgYWJvdXQgaGFuZGxpbmcg YWxybS5lbmFibGVkIGhlcmU/Cj4+IFRoZSBNQTM1RDEgUlRDIGhhcmR3YXJlIGRlc2lnbiBkb2Vz IG5vdCBoYXZlIGFuIGFsYXJtIGVuYWJsZS9kaXNhYmxlIGJpdC4KPj4gVGhlIGRlY2lzaW9uIHRv IHV0aWxpemUgdGhlIGFsYXJtIGNhbiBvbmx5IGJlIG1hZGUgdGhyb3VnaCBlbmFibGluZyBvcgo+ PiBkaXNhYmxpbmcgdGhlIGFsYXJtIGludGVycnVwdC4KPiBFeGFjdGx5LCB5b3Ugc2hvdWxkIHVz ZSBhbHJtLmVuYWJsZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGFsYXJtCj4gaW50ZXJydXB0 LiBZb3UgY2FuIHNpbXBseSBjYWxsIG1hMzVkMV9hbGFybV9pcnFfZW5hYmxlLCBtYW55IGRyaXZl cnMgYXJlCj4gZG9pbmcgdGhpcy4KCk9LLCB3ZSB3aWxsIHVzZSBpcnEgZW5hYmxlL2Rpc2FibGUg dG8gc3VwcG9ydCBhbHJtLmVuYWJsZWQuCgo+Pj4+ICsJcmV0dXJuIDA7Cj4+Pj4gK30KPj4+PiAr Cj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRjX2NsYXNzX29wcyBtYTM1ZDFfcnRjX29wcyA9 IHsKPj4+PiArCS5yZWFkX3RpbWUgPSBtYTM1ZDFfcnRjX3JlYWRfdGltZSwKPj4+PiArCS5zZXRf dGltZSA9IG1hMzVkMV9ydGNfc2V0X3RpbWUsCj4+Pj4gKwkucmVhZF9hbGFybSA9IG1hMzVkMV9y dGNfcmVhZF9hbGFybSwKPj4+PiArCS5zZXRfYWxhcm0gPSBtYTM1ZDFfcnRjX3NldF9hbGFybSwK Pj4+PiArCS5hbGFybV9pcnFfZW5hYmxlID0gbWEzNWQxX2FsYXJtX2lycV9lbmFibGUsCj4+Pj4g K307Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgaW50IG1hMzVkMV9ydGNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPj4+PiArewo+Pj4+ICsJc3RydWN0IG1hMzVfcnRjICpydGM7Cj4+ Pj4gKwlzdHJ1Y3QgY2xrICpjbGs7Cj4+Pj4gKwl1MzIgcmVndmFsOwo+Pj4+ICsJaW50IGVycjsK Pj4+PiArCj4+Pj4gKwlydGMgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpydGMp LCBHRlBfS0VSTkVMKTsKPj4+PiArCWlmICghcnRjKQo+Pj4+ICsJCXJldHVybiAtRU5PTUVNOwo+ Pj4+ICsKPj4+PiArCXJ0Yy0+cnRjX3JlZyA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJj ZShwZGV2LCAwKTsKPj4+PiArCWlmIChJU19FUlIocnRjLT5ydGNfcmVnKSkKPj4+PiArCQlyZXR1 cm4gUFRSX0VSUihydGMtPnJ0Y19yZWcpOwo+Pj4+ICsKPj4+PiArCWNsayA9IG9mX2Nsa19nZXQo cGRldi0+ZGV2Lm9mX25vZGUsIDApOwo+Pj4+ICsJaWYgKElTX0VSUihjbGspKQo+Pj4+ICsJCXJl dHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIFBUUl9FUlIoY2xrKSwgImZhaWxlZCB0byBm aW5kIHJ0YyBjbG9ja1xuIik7Cj4+Pj4gKwo+Pj4+ICsJZXJyID0gY2xrX3ByZXBhcmVfZW5hYmxl KGNsayk7Cj4+Pj4gKwlpZiAoZXJyKQo+Pj4+ICsJCXJldHVybiAtRU5PRU5UOwo+Pj4+ICsKPj4+ PiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHJ0Yyk7Cj4+Pj4gKwo+Pj4+ICsJcnRjLT5y dGNkZXYgPSBkZXZtX3J0Y19kZXZpY2VfcmVnaXN0ZXIoJnBkZXYtPmRldiwgcGRldi0+bmFtZSwK Pj4+PiArCQkJCQkgICAgICAgJm1hMzVkMV9ydGNfb3BzLCBUSElTX01PRFVMRSk7Cj4+Pj4gKwlp ZiAoSVNfRVJSKHJ0Yy0+cnRjZGV2KSkKPj4+PiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRl di0+ZGV2LCBQVFJfRVJSKHJ0Yy0+cnRjZGV2KSwKPj4+PiArCQkJCSAgICAgImZhaWxlZCB0byBy ZWdpc3RlciBydGMgZGV2aWNlXG4iKTsKPj4+IFRoaXMgTVVTVCBiZSBkb25lIGxhc3QgaW4gcHJv YmUsIGVsc2UgeW91IG9wZW4gYSByYWNlIHdpdGggdXNlcnNwYWNlLgo+Pj4KPj4gWWVzLCBJIHdp bGwgbW92ZWQgaXQgdG8gbGFzdCBpbiBwcm9iZS4KPj4KPj4KPj4+PiArCj4+Pj4gKwllcnIgPSBt YTM1ZDFfcnRjX2luaXQocnRjLCBSVENfSU5JVF9USU1FT1VUKTsKPj4+PiArCWlmIChlcnIpCj4+ Pj4gKwkJcmV0dXJuIGVycjsKPj4+PiArCj4+PiBJIGRvbid0IGJlbGlldmUgeW91IHNob3VsZCBk byB0aGlzIG9uIGV2ZXJ5IHByb2JlIGJ1dCBvbmx5IHdoZW4gdGhpcwo+Pj4gaGFzbid0IGJlZW4g ZG9uZSB5ZXQuCj4+Pgo+Pj4+ICsJcmVndmFsID0gcnRjX3JlZ19yZWFkKHJ0YywgTUEzNV9SRUdf UlRDX0NMS0ZNVCk7Cj4+Pj4gKwlyZWd2YWwgfD0gUlRDX0NMS0ZNVF8yNEhFTjsKPj4+PiArCXJ0 Y19yZWdfd3JpdGUocnRjLCBNQTM1X1JFR19SVENfQ0xLRk1ULCByZWd2YWwpOwo+Pj4+ICsKPj4+ IGRpdHRvCj4+IEkgd2lsbCBtb2RpZnkgdGhlbSBhczoKPj4KPj4gSWYgKCEocnRjX3JlZ19yZWFk KHJ0YywgTUEzNV9SRUdfUlRDX0lOSVQpICYgUlRDX0lOSVRfQUNLKSkgewo+PiAgwqDCoCDCoGVy ciA9IG1hMzVkMV9ydGNfaW5pdChydGMsIFJUQ19JTklUX1RJTUVPVVQpOwo+PiAgwqDCoCDCoGlm IChlcnIpCj4+ICDCoMKgIMKgwqDCoMKgIHJldHVybiBlcnI7Cj4+ICDCoMKgIMKgcmVndmFsID0g cnRjX3JlZ19yZWFkKHJ0YywgTUEzNV9SRUdfUlRDX0NMS0ZNVCk7Cj4+ICDCoMKgIMKgcmVndmFs IHw9IFJUQ19DTEtGTVRfMjRIRU47Cj4+ICDCoMKgIMKgcnRjX3JlZ193cml0ZShydGMsIE1BMzVf UkVHX1JUQ19DTEtGTVQsIHJlZ3ZhbCk7fQo+PiB9Cj4+Cj4+Cj4+Pj4gKwlydGMtPmlycV9udW0g PSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwo+Pj4+ICsKPj4+PiArCWVyciA9IGRldm1fcmVx dWVzdF9pcnEoJnBkZXYtPmRldiwgcnRjLT5pcnFfbnVtLCBtYTM1ZDFfcnRjX2ludGVycnVwdCwK Pj4+PiArCQkJICAgICAgIElSUUZfTk9fU1VTUEVORCwgIm1hMzVkMXJ0YyIsIHJ0Yyk7Cj4+Pj4g KwlpZiAoZXJyKQo+Pj4+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIGVyciwg IkZhaWxlZCB0byByZXF1ZXN0IHJ0YyBpcnFcbiIpOwo+Pj4+ICsKPj4+PiArCXJlZ3ZhbCA9IHJ0 Y19yZWdfcmVhZChydGMsIE1BMzVfUkVHX1JUQ19JTlRFTik7Cj4+Pj4gKwlyZWd2YWwgfD0gUlRD X0lOVEVOX1RJQ0tJRU47Cj4+Pj4gKwlydGNfcmVnX3dyaXRlKHJ0YywgTUEzNV9SRUdfUlRDX0lO VEVOLCByZWd2YWwpOwo+Pj4+ICsKPj4+PiArCWRldmljZV9pbml0X3dha2V1cCgmcGRldi0+ZGV2 LCB0cnVlKTsKPj4+PiArCj4+PiBZb3UgbXVzdCBzZXQgdGhlIHJ0YyByYW5nZSBoZXJlLgo+PiBJ IHdpbGwgYWRkOgo+PiBtYTM1ZDFfcnRjLT5ydGNkZXYtPnJhbmdlX21pbiA9IFJUQ19USU1FU1RB TVBfQkVHSU5fMjAwMDsKPj4gbWEzNWQxX3J0Yy0+cnRjZGV2LT5yYW5nZV9tYXggPSBSVENfVElN RVNUQU1QX0VORF8yMDk5Owo+Pgo+IFBlcmZlY3QuIE1heWJlIHlvdSBzaG91bGQgcnVuIHJ0Yy1y YW5nZSB0byBjaGVjayBmb3IgcHJvcGVyIG9wZXJhdGlvbiBpbgo+IHRoZSByYW5nZToKPiBodHRw czovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9hYmVsbG9uaS9ydGMt dG9vbHMuZ2l0L3RyZWUvcnRjLXJhbmdlLmMKCldlIHdpbGwgcnVuIHRoaXMgdGVzdC4KVGhhbmtz IGZvciBwcm92aWRpbmcgdGhpcyBpbmZvcm1hdGlvbi4KCj4+Pj4gKwlyZXR1cm4gMDsKPj4+PiAr fQo+Pj4+ICsKPj4+PiArc3RhdGljIGludCBtYTM1ZDFfcnRjX3N1c3BlbmQoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQo+Pj4+ICt7Cj4+Pj4gKwlzdHJ1 Y3QgbWEzNV9ydGMgKnJ0YyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+Pj4+ICsJdTMy IHJlZ3ZhbDsKPj4+PiArCj4+Pj4gKwlpZiAoZGV2aWNlX21heV93YWtldXAoJnBkZXYtPmRldikp Cj4+Pj4gKwkJZW5hYmxlX2lycV93YWtlKHJ0Yy0+aXJxX251bSk7Cj4+Pj4gKwo+Pj4+ICsJcmVn dmFsID0gcnRjX3JlZ19yZWFkKHJ0YywgTUEzNV9SRUdfUlRDX0lOVEVOKTsKPj4+PiArCXJlZ3Zh bCAmPSB+UlRDX0lOVEVOX1RJQ0tJRU47Cj4+Pj4gKwlydGNfcmVnX3dyaXRlKHJ0YywgTUEzNV9S RUdfUlRDX0lOVEVOLCByZWd2YWwpOwo+Pj4gVGhpcyBpcyBub3Qgd2hhdCB0aGUgdXNlciBpcyBh c2tpbmcsIGRvbid0IGRvIHRoaXMuIEFsc28sIGhvdyB3YXMgdGhpcwo+Pj4gdGVzdGVkPwo+PiBT dXJlLCBJIHdpbGwgcmVtb3ZlIHRoZXNlIHRocmVlIGxpbmVzIG9mIGNvZGUuCj4+Cj4+IFdlIHRl c3QgaXQgd2l0aCAiZWNobyBtZW0gPiAvc3lzL3Bvd2VyL3N0YXRlIi4KPj4KPiBZZXMsIG15IHBv aW50IGlzIHRoYXQgaWYgVUlFIGlzIGVuYWJsZWQsIHRoZW4gdGhlIHVzZXIgd2FudHMgdG8gYmUg d29rZW4KPiB1cCBldmVyeSBzZWNvbmQuIElmIHRoaXMgaXMgbm90IHdoYXQgaXMgd2FudGVkLCB0 aGVuIFVJRSBoYXMgdG8gYmUKPiBkaXNhYmxlZCBiZWZvcmUgZ29pbmcgdG8gc3VzcGVuZC4KPgo+ IE15IHF1ZXN0aW9uIGlzIHdoeSBhcmUgeW91IGVuYWJsaW5nIFJUQ19JTlRFTl9USUNLSUVOIGlu IHByb2JlPyBJIGRvbid0Cj4gZXhwZWN0IGFueW9uZSB0byB1c2UgYW4gYWN0dWFsIGhhcmR3YXJl IHRpY2sgaW50ZXJydXB0LCB1bmxlc3MgdGhlIGFsYXJtCj4gaXMgYnJva2VuIGFuZCBjYW4ndCBi ZSBzZXQgZXZlcnkgc2Vjb25kLiBUaGlzIGlzIHdoeSBJIHF1ZXN0aW9uZWQgdGhlCj4gUlRDX1VG IHBhdGggYmVjYXVzZSBJIGRvbid0IGV4cGVjdCBpdCB0byBiZSB0YWtlbiBhdCBhbGwuCgpZZXMs IHdlIHdpbGwgcmVtb3ZlIFRJQ0tJRU4gZnJvbSBwcm9iZSBhbmQgbW9kaWZ5IG1hMzVkMV9hbGFy bV9pcnFfZW5hYmxlKCkuClRJQ0tJRU4gd2lsbCBiZSBlbmFibGVkIG9ubHkgaWYgVUlFIGlzIGVu YWJsZWQuCgpzdGF0aWMgaW50IG1hMzVkMV9hbGFybV9pcnFfZW5hYmxlKHN0cnVjdCBkZXZpY2Ug KmRldiwgdW5zaWduZWQgaW50IGVuYWJsZWQpCnsKIMKgwqAgwqBzdHJ1Y3QgbWEzNWQxX3J0YyAq cnRjID0gZGV2X2dldF9kcnZkYXRhKGRldik7CgogwqDCoCDCoGlmIChlbmFibGVkKSB7CiDCoMKg IMKgwqDCoMKgIGlmIChydGMtPnJ0Yy0+dWllX3J0Y3RpbWVyLmVuYWJsZWQpCiDCoMKgIMKgwqDC oMKgIMKgwqDCoCBydGNfcmVnX3dyaXRlKHJ0YywgTlZUX1JUQ19JTlRFTiwKIMKgwqAgwqDCoMKg wqAgwqDCoMKgIMKgwqDCoCDCoMKgwqDCoMKgIChydGNfcmVnX3JlYWQocnRjLCAKTlZUX1JUQ19J TlRFTil8KFJUQ19JTlRFTl9USUNLSUVOKSkpOwogwqDCoCDCoMKgwqDCoCBpZiAocnRjLT5ydGMt PmFpZV90aW1lci5lbmFibGVkKQogwqDCoCDCoMKgwqDCoCDCoMKgwqAgcnRjX3JlZ193cml0ZShy dGMsIE5WVF9SVENfSU5URU4sCiDCoMKgIMKgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgwqDC oCAocnRjX3JlZ19yZWFkKHJ0YywgCk5WVF9SVENfSU5URU4pfChSVENfSU5URU5fQUxNSUVOKSkp OwogwqDCoCDCoH0gZWxzZSB7CiDCoMKgIMKgwqDCoMKgIGlmIChydGMtPnJ0Yy0+dWllX3J0Y3Rp bWVyLmVuYWJsZWQpCiDCoMKgIMKgwqDCoMKgIMKgwqDCoCBydGNfcmVnX3dyaXRlKHJ0YywgTlZU X1JUQ19JTlRFTiwKIMKgwqAgwqDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqDCoMKgIChydGNf cmVnX3JlYWQocnRjLCBOVlRfUlRDX0lOVEVOKSAmIAooflJUQ19JTlRFTl9USUNLSUVOKSkpOwog wqDCoCDCoMKgwqDCoCBpZiAocnRjLT5ydGMtPmFpZV90aW1lci5lbmFibGVkKQogwqDCoCDCoMKg wqDCoCDCoMKgwqAgcnRjX3JlZ193cml0ZShydGMsIE5WVF9SVENfSU5URU4sCiDCoMKgIMKgwqDC oMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgwqDCoCAocnRjX3JlZ19yZWFkKHJ0YywgTlZUX1JUQ19J TlRFTikgJiAKKH5SVENfSU5URU5fQUxNSUVOKSkpOwogwqDCoCDCoH0KIMKgwqAgwqByZXR1cm4g MDsKfQoKCgo+Pj4+ICsKPj4+PiArCXJldHVybiAwOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtzdGF0 aWMgaW50IG1hMzVkMV9ydGNfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ Pj4gK3sKPj4+PiArCXN0cnVjdCBtYTM1X3J0YyAqcnRjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEo cGRldik7Cj4+Pj4gKwl1MzIgcmVndmFsOwo+Pj4+ICsKPj4+PiArCWlmIChkZXZpY2VfbWF5X3dh a2V1cCgmcGRldi0+ZGV2KSkKPj4+PiArCQlkaXNhYmxlX2lycV93YWtlKHJ0Yy0+aXJxX251bSk7 Cj4+Pj4gKwo+Pj4+ICsJcmVndmFsID0gcnRjX3JlZ19yZWFkKHJ0YywgTUEzNV9SRUdfUlRDX0lO VEVOKTsKPj4+PiArCXJlZ3ZhbCB8PSBSVENfSU5URU5fVElDS0lFTjsKPj4+PiArCXJ0Y19yZWdf d3JpdGUocnRjLCBNQTM1X1JFR19SVENfSU5URU4sIHJlZ3ZhbCk7Cj4+Pj4gKwo+Pj4+ICsJcmV0 dXJuIDA7Cj4+Pj4gK30KPj4+PiArCj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkIG1hMzVkMV9ydGNfb2ZfbWF0Y2hbXSA9IHsKPj4+PiArCXsgLmNvbXBhdGlibGUgPSAibnV2 b3RvbixtYTM1ZDEtcnRjIiwgfSwKPj4+PiArCXt9LAo+Pj4+ICt9Owo+Pj4+ICtNT0RVTEVfREVW SUNFX1RBQkxFKG9mLCBtYTM1ZDFfcnRjX29mX21hdGNoKTsKPj4+PiArCj4+Pj4gK3N0YXRpYyBz dHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1hMzVkMV9ydGNfZHJpdmVyID0gewo+Pj4+ICsJLnN1c3Bl bmQgICAgPSBtYTM1ZDFfcnRjX3N1c3BlbmQsCj4+Pj4gKwkucmVzdW1lICAgICA9IG1hMzVkMV9y dGNfcmVzdW1lLAo+Pj4+ICsJLnByb2JlICAgICAgPSBtYTM1ZDFfcnRjX3Byb2JlLAo+Pj4+ICsJ LmRyaXZlcgkJPSB7Cj4+Pj4gKwkJLm5hbWUJPSAicnRjLW1hMzVkMSIsCj4+Pj4gKwkJLm9mX21h dGNoX3RhYmxlID0gbWEzNWQxX3J0Y19vZl9tYXRjaCwKPj4+PiArCX0sCj4+Pj4gK307Cj4+Pj4g Kwo+Pj4+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG1hMzVkMV9ydGNfZHJpdmVyKTsKPj4+PiAr Cj4+Pj4gK01PRFVMRV9BVVRIT1IoIk1pbi1KZW4gQ2hlbiA8bWpjaGVuQG51dm90b24uY29tPiIp Owo+Pj4+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1BMzVEMSBSVEMgZHJpdmVyIik7Cj4+Pj4gK01P RFVMRV9MSUNFTlNFKCJHUEwiKTsKPj4+PiAtLSAKPj4+PiAyLjM0LjEKPj4+Pgo+Pgo+PiBCZXN0 IFJlZ2FyZHMsCj4+IEphY2t5IEh1YW5nCj4+CgpCZXN0IFJlZ2FyZHMsCkphY2t5IEh1YW5nCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=