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 03805C4167B for ; Wed, 29 Nov 2023 04:19:14 +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=GfyuYpZjQdTibmLOz+4rTRRygnqxp/oy+/Sh+7/0nQA=; b=J/GxYH6a82C5Gi /sA2dnK2U48yFI+YMUQy6bTzVtHOrgfjXqjVv+dFbG/bxvDW4KAL1ZF6psLapDlrS53JyCsh8OUaQ NP8Dj9pID0+OCGRhy5zR8Ar5eeldeZQ2yJ+uf15QcL1Wytw2VmyPZa+UkVqB+xnX4VJtJmJNJYRU9 TT87LV7x5+dGFuDBycp6cnCzVfaorjDDJUq3miLXanvlAW2eWFBwYMT10CVYGko8lPyc3pQmjyxPF kQenZ8C6JjbDs4T/hHRot+c+7PYRr2VtEVLvsvH8QgLKvnPpAcQKm2S0BIW+vNP8xy+aONpppJc4i 7VfMBTsmom+1rp7EmxBg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r8C29-006zQp-0I; Wed, 29 Nov 2023 04:18:45 +0000 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r8C25-006zQL-0y for linux-arm-kernel@lists.infradead.org; Wed, 29 Nov 2023 04:18:43 +0000 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-3b843b61d8aso3664101b6e.0 for ; Tue, 28 Nov 2023 20:18:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701231518; x=1701836318; darn=lists.infradead.org; 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=uQo9/9z5ggX4xvrA9jYEd4qbwec1eXPiYblNhuRPU8Q=; b=BMGGclXODr7ahe3dklRqnsmj0IKFt/lcYretKY2/ySxe+jT8F0hthzhatrDLSTQt3k IVm0rOOB4VqADtSZ6C/QLmjeq2/IZwp96cuJPaAcpRpF4vWE7I4MU8G4TboBrW2wHeui 6qbYE2sSQX/i30rAryS/ib9mv4Pnxs9xFw2DcYwTandLVcQndZH3RjBYjz1jM6J0nNY7 mQU1PmFvJSZmUrWEINNaf0M/uFgnxgEwyR8UDPX96fga7B0YODmDisneyST0pyoGuHgQ 4QvMUGhJfvu1xNxLCb90nlZYwY6q+yqO0EVmDlV1K1fpez6limxwBoqUY17Q58x4io3R J8Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701231518; x=1701836318; 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=uQo9/9z5ggX4xvrA9jYEd4qbwec1eXPiYblNhuRPU8Q=; b=uFisR3nvqvh7B0vLCVjoDoBb/BwsW1CYSFGeQlcrUFwaaSTchx0BLyIsW1KajGWAfN JQ23KROA0KjeOSfgqpN5nknpeM/6hYTQEcon9wGT5lqTmGnQ0JOEkUFa1PVGs+qqYFtV v/zasZGZNTC+2VVsh9JtN7xfE+HzipcNNEpC7Jc7COYjxQhFrrOuNJPE9OeSNMbyrT/o tYWM04LOwYuxBoQtJRXby0z/fxdu7O6G/4V2aKEIv0LpQl2mwb1GdU1BLlRBe86L3uoR WtULAW/Y+K/QVimmGoTVyo5z3z201EqnV2+6CDYhLzA+u4PTXhMqEfKjsM9mee7pt2+t uuiw== X-Gm-Message-State: AOJu0YzYf7sXsFUyXUJKiepw0Lp/GHcVurchYbOZ0EOboxUOA1O1I85U h9mavZOvnLBQTtHnrBkEuog= X-Google-Smtp-Source: AGHT+IGnbvVFFBxz/r0jd3vOISqjQ9c742jdHZS/2oKmIVYMzg5ICvEH2oj6E+QhWt6z/F8775/vkQ== X-Received: by 2002:a05:6808:1313:b0:3b8:63ff:7dc7 with SMTP id y19-20020a056808131300b003b863ff7dc7mr14461300oiv.36.1701231518069; Tue, 28 Nov 2023 20:18:38 -0800 (PST) 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 e21-20020a656495000000b005b8ebef9fa0sm8889922pgv.83.2023.11.28.20.18.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Nov 2023 20:18:37 -0800 (PST) Message-ID: <832e76a4-6881-4bc8-af17-4a449ebbea30@gmail.com> Date: Wed, 29 Nov 2023 12:18:34 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 4/4] pinctrl: nuvoton: Add ma35d1 pinctrl and GPIO driver To: Linus Walleij Cc: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, p.zabel@pengutronix.de, j.neuschaefer@gmx.net, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, ychuang3@nuvoton.com, schung@nuvoton.com References: <20231128061118.575847-1-ychuang570808@gmail.com> <20231128061118.575847-5-ychuang570808@gmail.com> Content-Language: en-US From: Jacky Huang In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231128_201841_341571_D783B2EB X-CRM114-Status: GOOD ( 45.15 ) 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 RGVhciBMaW51cywKClRoYW5rcyBmb3IgeW91ciByZXZpZXcuCgpPbiAyMDIzLzExLzI4IOS4i+WN iCAwNjoxNCwgTGludXMgV2FsbGVpaiB3cm90ZToKPiBIaSBKYWNreSwKPgo+IHRoYW5rcyBmb3Ig eW91ciBwYXRjaCEKPgo+IFRoaXMgaXMgYW4gaW50ZXJlc3RpbmcgbmV3IGRyaXZlci4gVGhlIGlu aXRpYWwgcmV2aWV3IHBhc3Mgd2lsbCBiZQo+IGFsb25nIHRoZSBsaW5lcyAidXRpbGl6ZSBoZWxw ZXJzIGFuZCBsaWJyYXJ5IGZ1bmN0aW9ucyBwbGVhc2UiLgo+IFlvdSB3aWxsIHNlZSB0aGF0IHRo aXMgd2lsbCBzaHJpbmsgdGhlIGNvcmUgZHJpdmVyIGFuZCBtYWtlIGl0Cj4gcmVseSBvbiBjb3Jl IGNvZGUgaGVscGVycyBtYWtpbmcgaXQgbXVjaCBlYXNpZXIgdG8gbWFpbnRhaW4KPiBpbiB0aGUg bG9uZyBydW4gKEkgdGhpbmspLgo+Cj4gT24gVHVlLCBOb3YgMjgsIDIwMjMgYXQgNzoxMeKAr0FN IEphY2t5IEh1YW5nIDx5Y2h1YW5nNTcwODA4QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPj4gK2lmIEFS Q0hfTUEzNSB8fCBDT01QSUxFX1RFU1QKPiBJc24ndCBpdCBjbGVhbmVyIHRvIHB1dCB0aGUgZGVw ZW5kcyBvbiBpbnNpZGUgdGhlIEtjb25maWcgZW50cmllcz8KPiBUaGlzIGxvb2tzIGEgYml0IGNv bnZvbHV0ZWQuCj4KPj4gK2NvbmZpZyBQSU5DVFJMX01BMzUKPj4gKyAgICAgICBib29sCj4+ICsg ICAgICAgZGVwZW5kcyBvbiBPRgo+IFNvCj4gZGVwZW5kcyBvbiBBUkNIX01BMzUgfHwgQ09NUElM RV9URVNUIGhlcmUKPgo+PiArICAgICAgIHNlbGVjdCBHRU5FUklDX1BJTkNUUkxfR1JPVVBTCj4+ ICsgICAgICAgc2VsZWN0IEdFTkVSSUNfUElOTVVYX0ZVTkNUSU9OUwo+PiArICAgICAgIHNlbGVj dCBHRU5FUklDX1BJTkNPTkYKPj4gKyAgICAgICBzZWxlY3QgR1BJT0xJQgo+PiArICAgICAgIHNl bGVjdCBHUElPX0dFTkVSSUMKPj4gKyAgICAgICBzZWxlY3QgR1BJT0xJQl9JUlFDSElQCj4+ICsg ICAgICAgc2VsZWN0IE1GRF9TWVNDT04KPj4gKwo+PiArY29uZmlnIFBJTkNUUkxfTUEzNUQxCj4+ ICsgICAgICAgYm9vbCAiUGluY3RybCBhbmQgR1BJTyBkcml2ZXIgZm9yIE51dm90b24gTUEzNUQx Igo+PiArICAgICAgIGRlcGVuZHMgb24gT0YKPiBOb3cgZGVwZW5kcyBvbiBPRiBnZXRzIGxpc3Rl ZCB0d2ljZSwgd2hpY2ggaXMgY29uZnVzaW5nCj4KPj4gKyAgICAgICBzZWxlY3QgUElOQ1RSTF9N QTM1Cj4gU28gdXNlCj4gZGVwZW5kcyBvbiBQSU5DVFJMX01BMzUKPgo+IGluc3RlYWQsIGFuZCB0 aGlzIGJlY29tZXMgYSBzdWItY2hvaWNlLgoKT0ssIEkgd2lsbCBmaXggdGhlIGFib3ZlIGlzc3Vl cy4gSXQgd2lsbCBiZToKCmNvbmZpZyBQSU5DVFJMX01BMzUKIMKgwqAgwqBib29sICJQaW5jdHJs IGFuZCBHUElPIGRyaXZlciBmb3IgTnV2b3RvbiBNQTM1IHNlcmllcyIKIMKgwqAgwqBkZXBlbmRz IG9uIChBUkNIX01BMzUgfHwgQ09NUElMRV9URVNUKSAmJiBPRgogwqDCoCDCoHNlbGVjdCBHRU5F UklDX1BJTkNUUkxfR1JPVVBTCiDCoMKgIMKgc2VsZWN0IEdFTkVSSUNfUElOTVVYX0ZVTkNUSU9O UwogwqDCoCDCoHNlbGVjdCBHRU5FUklDX1BJTkNPTkYKIMKgwqAgwqBzZWxlY3QgR1BJT0xJQgog wqDCoCDCoHNlbGVjdCBHUElPX0dFTkVSSUMKIMKgwqAgwqBzZWxlY3QgR1BJT0xJQl9JUlFDSElQ CiDCoMKgIMKgc2VsZWN0IE1GRF9TWVNDT04KCmNvbmZpZyBQSU5DVFJMX01BMzVEMQogwqDCoCDC oGJvb2wgIlBpbmN0cmwgYW5kIEdQSU8gZHJpdmVyIGZvciBOdXZvdG9uIE1BMzVEMSIKIMKgwqAg wqBkZXBlbmRzIG9uIFBJTkNUUkxfTUEzNQogwqDCoCDCoGhlbHAKIMKgwqAgwqDCoCBTYXkgWSBo ZXJlIHRvIGVuYWJsZSBwaW4gY29udHJvbGxlciBhbmQgR1BJTyBzdXBwb3J0CiDCoMKgIMKgwqAg Zm9yIE51dm90b24gTUEzNUQxIFNvQy4KCj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4+ICsj aW5jbHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4+ ICsjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNl Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgo+IERvIHlvdSByZWFsbHkgbmVl ZCB0aGVtIGFsbD8KPgo+IFRoZW4gSSB0aGluayB5b3UgbmVlZCA8bGludXgvcGxhdGZvcm1fZGV2 aWNlLmg+IGJlY2F1c2UKPiBtYTM1ZDFfcGluY3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQo+IHBhc3NlcyBhIHBsYXRmb3JtX2RldmljZSBpbnRvIHRoaXMgZmlsZS4KCkkg d2lsbCBoYXZlIGEgY29tcGlsZSB0ZXN0IGFuZCByZW1vdmUgdW5uZWNlc3Nhcnkgb25lcyBhbmQK YWRkIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4uCgo+PiArc3RydWN0IG1hMzVfcGluX2Jhbmsg ewo+PiArICAgICAgIHZvaWQgX19pb21lbSAgICAgICAgICAgICpyZWdfYmFzZTsKPj4gKyAgICAg ICBzdHJ1Y3QgY2xrICAgICAgICAgICAgICAqY2xrOwo+PiArICAgICAgIGludCAgICAgICAgICAg ICAgICAgICAgIGlycTsKPj4gKyAgICAgICB1OCAgICAgICAgICAgICAgICAgICAgICBucl9waW5z Owo+PiArICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICAgICpuYW1lOwo+PiArICAgICAgIHU4 ICAgICAgICAgICAgICAgICAgICAgIGJhbmtfbnVtOwo+PiArICAgICAgIGJvb2wgICAgICAgICAg ICAgICAgICAgIHZhbGlkOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAgICAgICpvZl9u b2RlOwo+IEp1c3QgY2FsbCB0aGUgdmFyaWFibGUgKm5wICAoIm5vaWRlIHBvaW50ZXIiKQo+IHRo aXMgaXMgdGhlIG1vc3QgdXN1YWwgcHJhY3RpY2UgZGVzcGl0ZSBzdHJ1Y3QgZGV2aWNlCj4gdXNp bmcgdGh1cyBsb25nICJvZl9ub2RlIiBuYW1lLgoKT0ssIEkgd2lsbCB1c2UgJ3N0cnVjdCBkZXZp Y2Vfbm9kZSAqbnAnLgoKPj4gKyAgICAgICBzdHJ1Y3QgZ3Bpb19jaGlwICAgICAgICBjaGlwOwo+ PiArICAgICAgIHN0cnVjdCBpcnFfY2hpcCAgICAgICAgIGlycWM7Cj4gUGxlYXNlIGRvIG5vdCB1 c2UgZHluYW1pYyBpcnFfY2hpcHMgYW55bW9yZSwgdXNlIGFuIGltbXV0YWJsZQo+IGlycV9jaGlw LCBsb29rIGluIG90aGVyIGRyaXZlcnMgaG93IHRvIGRvIHRoaXMgYmVjYXVzZSB3ZSBjaGFuZ2Vk Cj4gYWxtb3N0IGFsbCBvZiB0aGVtLgoKSSB3aWxsIHVzZSBpbW11dGFibGUgaW5zdGVhZC4KPj4g K3N0YXRpYyBpbnQgbWEzNV9nZXRfZ3JvdXBfcGlucyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxk ZXYsIHVuc2lnbmVkIGludCBzZWxlY3RvciwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHVuc2lnbmVkIGludCAqKnBpbnMsIHVuc2lnbmVkIGludCAqbnBpbnMpCj4+ICt7 Cj4+ICsgICAgICAgc3RydWN0IG1hMzVfcGluY3RybCAqbnBjdGwgPSBwaW5jdHJsX2Rldl9nZXRf ZHJ2ZGF0YShwY3RsZGV2KTsKPj4gKwo+PiArICAgICAgIGlmIChzZWxlY3RvciA+PSBucGN0bC0+ bmdyb3VwcykKPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsgICAg ICAgKnBpbnMgPSBucGN0bC0+Z3JvdXBzW3NlbGVjdG9yXS5waW5zOwo+PiArICAgICAgICpucGlu cyA9IG5wY3RsLT5ncm91cHNbc2VsZWN0b3JdLm5waW5zOwo+PiArCj4+ICsgICAgICAgcmV0dXJu IDA7Cj4+ICt9Cj4gSG0gaXQgbG9va3Mgc2ltcGxlLgo+Cj4gSGF2ZSB5b3UgbG9va2VkIGludG8g dXNpbmcgQ09ORklHX0dFTkVSSUNfUElOQ1RSTF9HUk9VUFMKPiBhbmQgdGhlbiB5b3UgZ2V0IGEg YnVuY2ggb2YgdGhlc2UgZnVuY3Rpb25zIHN1Y2ggYXMKPiBwaW5jdHJsX2dlbmVyaWNfZ2V0X2dy b3VwX2NvdW50Cj4gcGluY3RybF9nZW5lcmljX2dldF9ncm91cF9uYW1lCj4gcGluY3RybF9nZW5l cmljX2dldF9ncm91cF9uYW1lKHRoaXMgZnVuY3Rpb24pCj4gcGluY3RybF9nZW5lcmljX2dldF9n cm91cAo+IHBpbmN0cmxfZ2VuZXJpY19ncm91cF9uYW1lX3RvX3NlbGVjdG9yCj4gKGV0YykKPgo+ IGZvciBGUkVFLCBhbHNvIHVzaW5nIGEgcmFkaXggdHJlZSB3aGljaCBpcyBuZWF0LgoKVGhhbmsg eW91IGZvciB5b3VyIHJlbWluZGVyLiBJIHdpbGwgbG9vayBpbnRvIGhvdyB0byB1c2UgCkNPTkZJ R19HRU5FUklDX1BJTkNUUkxfR1JPVVBTLgoKPj4gK3N0YXRpYyBpbnQgbWEzNV9waW5jdHJsX2R0 X25vZGVfdG9fbWFwX2Z1bmMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAq bnAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHBpbmN0cmxfbWFwICoqbWFwLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCAqbnVtX21hcHMpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0 IG1hMzVfcGluY3RybCAqbnBjdGwgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsK Pj4gKyAgICAgICBzdHJ1Y3QgbWEzNV9waW5fZ3JvdXAgKmdycDsKPj4gKyAgICAgICBzdHJ1Y3Qg cGluY3RybF9tYXAgKm5ld19tYXA7Cj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpwYXJl bnQ7Cj4+ICsgICAgICAgaW50IG1hcF9udW0gPSAxOwo+PiArICAgICAgIGludCBpOwo+PiArCj4+ ICsgICAgICAgLyoKPj4gKyAgICAgICAgKiBmaXJzdCBmaW5kIHRoZSBncm91cCBvZiB0aGlzIG5v ZGUgYW5kIGNoZWNrIGlmIHdlIG5lZWQgY3JlYXRlCj4+ICsgICAgICAgICogY29uZmlnIG1hcHMg Zm9yIHBpbnMKPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBncnAgPSBtYTM1X3BpbmN0cmxfZmlu ZF9ncm91cF9ieV9uYW1lKG5wY3RsLCBucC0+bmFtZSk7Cj4+ICsgICAgICAgaWYgKCFncnApIHsK Pj4gKyAgICAgICAgICAgICAgIGRldl9lcnIobnBjdGwtPmRldiwgInVuYWJsZSB0byBmaW5kIGdy b3VwIGZvciBub2RlICVzXG4iLCBucC0+bmFtZSk7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICBtYXBfbnVtICs9IGdycC0+bnBp bnM7Cj4+ICsgICAgICAgbmV3X21hcCA9IGRldm1fa3phbGxvYyhwY3RsZGV2LT5kZXYsIHNpemVv ZigqbmV3X21hcCkgKiBtYXBfbnVtLCBHRlBfS0VSTkVMKTsKPj4gKyAgICAgICBpZiAoIW5ld19t YXApCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArICAgICAgICpt YXAgPSBuZXdfbWFwOwo+PiArICAgICAgICpudW1fbWFwcyA9IG1hcF9udW07Cj4+ICsgICAgICAg LyogY3JlYXRlIG11eCBtYXAgKi8KPj4gKyAgICAgICBwYXJlbnQgPSBvZl9nZXRfcGFyZW50KG5w KTsKPj4gKyAgICAgICBpZiAoIXBhcmVudCkgewo+PiArICAgICAgICAgICAgICAgZGV2bV9rZnJl ZShwY3RsZGV2LT5kZXYsIG5ld19tYXApOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgbmV3X21hcFswXS50eXBlID0gUElOX01B UF9UWVBFX01VWF9HUk9VUDsKPj4gKyAgICAgICBuZXdfbWFwWzBdLmRhdGEubXV4LmZ1bmN0aW9u ID0gcGFyZW50LT5uYW1lOwo+PiArICAgICAgIG5ld19tYXBbMF0uZGF0YS5tdXguZ3JvdXAgPSBu cC0+bmFtZTsKPj4gKyAgICAgICBvZl9ub2RlX3B1dChwYXJlbnQpOwo+PiArCj4+ICsgICAgICAg bmV3X21hcCsrOwo+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBncnAtPm5waW5zOyBpKyspIHsK Pj4gKyAgICAgICAgICAgICAgIG5ld19tYXBbaV0udHlwZSA9IFBJTl9NQVBfVFlQRV9DT05GSUdT X1BJTjsKPj4gKyAgICAgICAgICAgICAgIG5ld19tYXBbaV0uZGF0YS5jb25maWdzLmdyb3VwX29y X3BpbiA9IHBpbl9nZXRfbmFtZShwY3RsZGV2LCBncnAtPnBpbnNbaV0pOwo+PiArICAgICAgICAg ICAgICAgbmV3X21hcFtpXS5kYXRhLmNvbmZpZ3MuY29uZmlncyA9IGdycC0+c2V0dGluZ3NbaV0u Y29uZmlnczsKPj4gKyAgICAgICAgICAgICAgIG5ld19tYXBbaV0uZGF0YS5jb25maWdzLm51bV9j b25maWdzID0gZ3JwLT5zZXR0aW5nc1tpXS5uY29uZmlnczsKPj4gKyAgICAgICB9Cj4+ICsgICAg ICAgZGV2X2RiZyhwY3RsZGV2LT5kZXYsICJtYXBzOiBmdW5jdGlvbiAlcyBncm91cCAlcyBudW0g JWRcbiIsCj4+ICsgICAgICAgICAgICAgICAoKm1hcCktPmRhdGEubXV4LmZ1bmN0aW9uLCAoKm1h cCktPmRhdGEubXV4Lmdyb3VwLCBtYXBfbnVtKTsKPj4gKwo+PiArICAgICAgIHJldHVybiAwOwo+ PiArfQo+IFRoaXMgbG9va3MgbGlrZSBpdCBjb3VsZCBiZSByZXBsYWNlZCB3aXRoOgo+IHBpbmNv bmZfZ2VuZXJpY19kdF9ub2RlX3RvX21hcF9ncm91cAo+IHBpbmNvbmZfZ2VuZXJpY19kdF9ub2Rl X3RvX21hcF9hbGwKPgo+IHBsZWFzZSBjaGVjayB0aGUgZ2VuZXJpYyBoZWxwZXJzIGNsb3NlbHku CgpBbHJpZ2h0LCBJIHdpbGwgdHJ5IHVzaW5nIHRoZXNlIGhlbHBlcnMgdG8gc2ltcGxpZnkgdGhl IGNvZGUuCgo+PiArc3RhdGljIHZvaWQgbWEzNV9kdF9mcmVlX21hcChzdHJ1Y3QgcGluY3RybF9k ZXYgKnBjdGxkZXYsIHN0cnVjdCBwaW5jdHJsX21hcCAqbWFwLAo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBudW1fbWFwcykKPj4gK3sKPj4gKyAgICAgICBkZXZt X2tmcmVlKHBjdGxkZXYtPmRldiwgbWFwKTsKPj4gK30KPiBwaW5jb25mX2dlbmVyaWNfZHRfZnJl ZV9tYXAKCkkgd2lsbCBmaXggaXQuCgo+Cj4+ICtzdGF0aWMgaW50IG1hMzVfcGlubXV4X2dldF9m dW5jX2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKPj4gK3sKPj4gKyAgICAgICBz dHJ1Y3QgbWEzNV9waW5jdHJsICpucGN0bCA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxk ZXYpOwo+PiArCj4+ICsgICAgICAgcmV0dXJuIG5wY3RsLT5uZnVuY3Rpb25zOwo+PiArfQo+IHBp bm11eF9nZW5lcmljX2dldF9mdW5jdGlvbl9jb3VudAo+IHBpbm11eF9nZW5lcmljX2dldF9mdW5j dGlvbl9uYW1lCj4gcGlubXV4X2dlbmVyaWNfZ2V0X2Z1bmN0aW9uX2dyb3Vwcwo+IChldGMpCj4K PiBQbGVhc2UgY2hlY2sgdGhlIENPTkZJR19HRU5FUklDX1BJTk1VWF9GVU5DVElPTlMKPiBvcHRp b24gYmVjYXVzZSB0aGVzZSBhcmUgYWdhaW4gYWxsIHZlcnkgZ2VuZXJpYy4KCkkgd2lsbCB0cnkg dG8gdXNlIHRoZXNlIGhlbHBlcnMgYW5kIGhhdmUgYSB0ZXN0LgoKPj4gK3N0YXRpYyBpbnQgbWEz NV9ncGlvX2NvcmVfZGlyZWN0aW9uX2luKHN0cnVjdCBncGlvX2NoaXAgKmdjLCB1bnNpZ25lZCBp bnQgZ3BpbykKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgbWEzNV9waW5fYmFuayAqYmFuayA9IGdw aW9jaGlwX2dldF9kYXRhKGdjKTsKPj4gKyAgICAgICB2b2lkIF9faW9tZW0gKnJlZ19tb2RlID0g YmFuay0+cmVnX2Jhc2UgKyBNQTM1X0dQX1JFR19NT0RFOwo+PiArICAgICAgIHVuc2lnbmVkIGxv bmcgZmxhZ3M7Cj4+ICsgICAgICAgdW5zaWduZWQgaW50IHJlZ3ZhbDsKPj4gKwo+PiArICAgICAg IHNwaW5fbG9ja19pcnFzYXZlKCZiYW5rLT5sb2NrLCBmbGFncyk7Cj4+ICsKPj4gKyAgICAgICBy ZWd2YWwgPSByZWFkbChyZWdfbW9kZSk7Cj4+ICsKPj4gKyAgICAgICByZWd2YWwgJj0gfkdFTk1B U0soZ3BpbyAqIDIgKyAxLCBncGlvICogMik7Cj4+ICsgICAgICAgcmVndmFsIHw9IE1BMzVfR1Bf TU9ERV9JTlBVVCA8PCBncGlvICogMjsKPj4gKwo+PiArICAgICAgIHdyaXRlbChyZWd2YWwsIHJl Z19tb2RlKTsKPj4gKwo+PiArICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmJhbmstPmxv Y2ssIGZsYWdzKTsKPj4gKwo+PiArICAgICAgIHJldHVybiAwOwo+PiArfQo+IFRoZSBwaW5jdHJs IHNldF9tdXggaXMgdXNpbmcgYSByZWdtYXAgYnV0IG5vdCB0aGUgR1BJTyB3aGljaCBpcyBhIGJp dAo+IG9mIGEgd2VpcmQgbWl4Lgo+Cj4gRnVydGhlciwgaWYgeW91IHdlcmUgdXNpbmcgcmVnbWFw LW1taW8gZm9yIEdQSU8sIHlvdSBjb3VsZCBwcm9iYWJseQo+IHV0aWxpemUgQ09ORklHX0dQSU9f UkVHTUFQIHRvIHNpbXBsaWZ5IGFsc28gdGhpcyBwYXJ0IG9mIHRoZQo+IGNvZGUgd2l0aCBhIGxp YnJhcnkuIExvb2sgYXQgb3RoZXIgZHJpdmVycyB1c2luZyB0aGlzIQoKU29ycnksIEknbSBub3Qg cXVpdGUgY2xlYXIgb24gdGhlIGlzc3VlLiBUaGlzIGZ1bmN0aW9uIGlzIGp1c3Qgc2V0dGluZyAK dGhlIGlucHV0L291dHB1dApkaXJlY3Rpb24gZm9yIGEgR1BJTyBwaW4uIFRoZSBjb2RlIGhlcmUg aXMgb25seSBjb25maWd1cmluZyB0aGUgR1BJTyAKY29udHJvbCByZWdpc3Rlci4KSSd2ZSBvYnNl cnZlZCBzaW1pbGFyIGltcGxlbWVudGF0aW9ucyBpbiBvdGhlciBkcml2ZXJzLCBzdWNoIGFzIGlu IApwaW5jdHJsLWFtZC5jLgoKCj4+ICsgICAgICAgICAgICAgICBpZiAoYmFuay0+aXJxID4gMCkg ewo+PiArICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ3Bpb19pcnFfY2hpcCAqZ2lycTsK Pj4gKwo+PiArICAgICAgICAgICAgICAgICAgICAgICBnaXJxID0gJmJhbmstPmNoaXAuaXJxOwo+ PiArICAgICAgICAgICAgICAgICAgICAgICBnaXJxLT5jaGlwID0gJmJhbmstPmlycWM7Cj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIGdpcnEtPmNoaXAtPm5hbWUgPSBiYW5rLT5uYW1lOwo+PiAr ICAgICAgICAgICAgICAgICAgICAgICBnaXJxLT5jaGlwLT5pcnFfZGlzYWJsZSA9IG1hMzVfaXJx X2dwaW9fbWFzazsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ2lycS0+Y2hpcC0+aXJxX2Vu YWJsZSA9IG1hMzVfaXJxX2dwaW9fdW5tYXNrOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBn aXJxLT5jaGlwLT5pcnFfc2V0X3R5cGUgPSBtYTM1X2lycV9pcnF0eXBlOwo+PiArICAgICAgICAg ICAgICAgICAgICAgICBnaXJxLT5jaGlwLT5pcnFfbWFzayA9IG1hMzVfaXJxX2dwaW9fbWFzazsK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ2lycS0+Y2hpcC0+aXJxX3VubWFzayA9IG1hMzVf aXJxX2dwaW9fdW5tYXNrOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBnaXJxLT5jaGlwLT5m bGFncyA9IElSUUNISVBfTUFTS19PTl9TVVNQRU5EIHwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgSVJRQ0hJUF9TS0lQX1NFVF9XQUtFIHwgSVJRQ0hJUF9JTU1VVEFCTEU7Cj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIGdpcnEtPnBhcmVudF9oYW5kbGVyID0gbWEzNV9pcnFfZGVtdXhfaW50 Z3JvdXA7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGdpcnEtPm51bV9wYXJlbnRzID0gMTsK Pj4gKwo+PiArICAgICAgICAgICAgICAgICAgICAgICBnaXJxLT5wYXJlbnRzID0gZGV2bV9rY2Fs bG9jKCZwZGV2LT5kZXYsIDEsIHNpemVvZigqZ2lycS0+cGFyZW50cyksCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2lycS0+cGFyZW50cykKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArICAgICAgICAg ICAgICAgICAgICAgICBnaXJxLT5wYXJlbnRzWzBdID0gYmFuay0+aXJxOwo+PiArICAgICAgICAg ICAgICAgICAgICAgICBnaXJxLT5kZWZhdWx0X3R5cGUgPSBJUlFfVFlQRV9OT05FOwo+PiArICAg ICAgICAgICAgICAgICAgICAgICBnaXJxLT5oYW5kbGVyID0gaGFuZGxlX2xldmVsX2lycTsKPj4g KyAgICAgICAgICAgICAgIH0KPiBBcyBtZW5pb25lZCwgcmVwbGFjZSB0aGlzIHdpdGggYW4gaW1t dXRhYmxlIGlycV9jaGlwLgoKT0ssIEkgd2lsbCBmaXggaXQuCgo+IFlvdXJzLAo+IExpbnVzIFdh bGxlaWoKCkJlc3QgUmVnYXJkcywKSmFja3kgSHVhbmcKCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=