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 8EB8AE7717F for ; Tue, 17 Dec 2024 14:53:44 +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=a2N9aXDS5iHxLH3XP4065v5C8mTamH30M0qi2Xf9JW0=; b=KOPDX4PZNjYWL8YiP84E+rTw5b FypZ3S0P7DK2IUW4ua8ciL+N/vNQMDBeUZsbl8mKzu/abzmed3ckhHYN61Jr/eS03on2efcNODbOS 0jkzI2Ek/YESLWuOfnE855rduq6VOqxQOI1nKcbTaPutyOWfXVesNRf6zyyBhgLmAGRH4ZmzBhLLi XxYRKG3HN34usH4qChZAsJ796OV+SmHDPS/0OQh0hhONSd0gBVHzm0Hz6jcRTZJLbhNcH4uVWb/dT xnLDqJ9dw2VO6qyTyyz1gzHPP8oYzqQg34c4G17hjVidqDwZbAOP0wJ/Bl6rDp87/GlXqMwmILbZa Fts4e4mw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tNYxA-0000000Dq8n-3bbM; Tue, 17 Dec 2024 14:53:40 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tNYwj-0000000Dq0s-1bPp for linux-amlogic@lists.infradead.org; Tue, 17 Dec 2024 14:53:14 +0000 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-385e1fcb0e1so2958378f8f.2 for ; Tue, 17 Dec 2024 06:53:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1734447192; x=1735051992; darn=lists.infradead.org; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:references:cc:to:subject:reply-to:from:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=j1tz7BJRUwJXSa3Suo3gJKXsFFPCsySj/Okq0VxzRW4=; b=gB2YJ/L4BjXTf8cOM60X9mFeGx4NhSNnZuXZSsE3lBP/Ik9e6qTOvkuCs1VOM2NL9P L9m84VLYfJWFGkPIWR+H7X6XiAzttz193rPqWMTCpBrGj4x70qZxyuWoOn/QVlEekCTj b7OZymL9jk0/ddXp+8bbO0oSc5+F12bngOwyF+uIGzRGjW8KpSZ//1dR0tfU5vKu0t0b DD50++KDMzKxLpPa+Nx/Y3EpHSW7xPzGlBM5kdUkaTIDeo4Q31eP6M65GqXujgxJVI73 wnqRbEl9nYIV7EXSqIXyG56WCYkY18xXCfV9E/DnFuuEIKnvpWJg+04tTx3wTmx5aVrI adzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734447192; x=1735051992; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:references:cc:to: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=j1tz7BJRUwJXSa3Suo3gJKXsFFPCsySj/Okq0VxzRW4=; b=UPcpBZ+QDHDAjae4HO2ubtO+be9NMQ6rWYon9v/n1cBHkGSkrJKzXrDnw3kHipK9CQ oQo5J0dmRSnraTlilRXRYepHwAEufxSSoPX9oViyxpc1a+0NS4/8na4rpBTdOrq6FNJA gXvMkzp5jq4lpvUxlAlL/ZC/hofehEyEQOaVWEuOYGPJRHaHBqE7KehY2P2DVI9FiAtz V7tKCMnS8zbB9zg81PpqT2bxCyYcF6sHIFyiG1Bo0L83lHSAMEJQEcBqeXvb1mOc1FmD /mTKITOUAy5OR+yty2pJ5gi3RZuhXYSQRzNDM+rcS9BIrzepR/dr9MoJcTGlIEENcdlj cmYQ== X-Forwarded-Encrypted: i=1; AJvYcCV6xO2uLx6yC0UrDiPytpXIjtigL/iJXg8Nab3ykT2ezn7zs7xYJB6up9h8CqhuaVtOqLNWXBAL0s+3im5q@lists.infradead.org X-Gm-Message-State: AOJu0YyLXtzI1lY8ErsBON1wNbuxqxmXJo3QQfXsRsSnNLdSuvu+J9H9 fWVvtr47i87tH8SnVU4HGNSs+SU6pripEKLh45b2b8g7lkpXDjyBPio+fc8DIZM= X-Gm-Gg: ASbGnctH3Ul0YwLpvrMBj8y9F4z/N6Ln6T4B3x0YCZ3NTzim7tVGyHoDOVb9x/9mlRw k3w2AyZJXLwDFNTa1FDP7fmaOuOLyyLqQqS66UnxpbdT3EkOIwORq8DLNXd0340agzQ+NUgrxdR h5T/Tf34g7bDeWUIc1wUWpu9tHbt1Ds9AYFu1mxy9f28/mL0ZsQWSX8kq0nQozvRvHK6nziP893 lOuQN17CvAJ0ZDzbLMVQsCDCZsdKsmV28K4ZQ4ZO7OVNjOTL0YJyxfaPWkE6/ZaiQ7ZPulvS4md pKsFXPKUOZVr8KwTZWLpVdASvn/uaQo= X-Google-Smtp-Source: AGHT+IG5GTGpPbAS3DHo+ja0XGeUh4sbl11Qq10hVbOptwLvXE2zJoBNLuQgiep+WuXjibhAmUjEng== X-Received: by 2002:a05:6000:1544:b0:385:f060:b7fc with SMTP id ffacd0b85a97d-388da3a1286mr3600391f8f.25.1734447191589; Tue, 17 Dec 2024 06:53:11 -0800 (PST) Received: from ?IPV6:2a01:e0a:982:cbb0:167:46b9:e709:12b5? ([2a01:e0a:982:cbb0:167:46b9:e709:12b5]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-388c8012105sm11290506f8f.16.2024.12.17.06.53.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 17 Dec 2024 06:53:11 -0800 (PST) Message-ID: <168829c7-fd56-4fd2-80b0-07c768779559@linaro.org> Date: Tue, 17 Dec 2024 15:53:10 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Neil Armstrong Subject: Re: [PATCH RFC 2/3] pinctrl: Add driver support for Amlogic SoCs To: Linus Walleij , xianwei.zhao@amlogic.com Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org References: <20241211-amlogic-pinctrl-v1-0-410727335119@amlogic.com> <20241211-amlogic-pinctrl-v1-2-410727335119@amlogic.com> Content-Language: en-US, fr Autocrypt: addr=neil.armstrong@linaro.org; keydata= xsBNBE1ZBs8BCAD78xVLsXPwV/2qQx2FaO/7mhWL0Qodw8UcQJnkrWmgTFRobtTWxuRx8WWP GTjuhvbleoQ5Cxjr+v+1ARGCH46MxFP5DwauzPekwJUD5QKZlaw/bURTLmS2id5wWi3lqVH4 BVF2WzvGyyeV1o4RTCYDnZ9VLLylJ9bneEaIs/7cjCEbipGGFlfIML3sfqnIvMAxIMZrvcl9 qPV2k+KQ7q+aXavU5W+yLNn7QtXUB530Zlk/d2ETgzQ5FLYYnUDAaRl+8JUTjc0CNOTpCeik 80TZcE6f8M76Xa6yU8VcNko94Ck7iB4vj70q76P/J7kt98hklrr85/3NU3oti3nrIHmHABEB AAHNKk5laWwgQXJtc3Ryb25nIDxuZWlsLmFybXN0cm9uZ0BsaW5hcm8ub3JnPsLAkQQTAQoA OwIbIwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgBYhBInsPQWERiF0UPIoSBaat7Gkz/iuBQJk Q5wSAhkBAAoJEBaat7Gkz/iuyhMIANiD94qDtUTJRfEW6GwXmtKWwl/mvqQtaTtZID2dos04 YqBbshiJbejgVJjy+HODcNUIKBB3PSLaln4ltdsV73SBcwUNdzebfKspAQunCM22Mn6FBIxQ GizsMLcP/0FX4en9NaKGfK6ZdKK6kN1GR9YffMJd2P08EO8mHowmSRe/ExAODhAs9W7XXExw UNCY4pVJyRPpEhv373vvff60bHxc1k/FF9WaPscMt7hlkbFLUs85kHtQAmr8pV5Hy9ezsSRa GzJmiVclkPc2BY592IGBXRDQ38urXeM4nfhhvqA50b/nAEXc6FzqgXqDkEIwR66/Gbp0t3+r yQzpKRyQif3OwE0ETVkGzwEIALyKDN/OGURaHBVzwjgYq+ZtifvekdrSNl8TIDH8g1xicBYp QTbPn6bbSZbdvfeQPNCcD4/EhXZuhQXMcoJsQQQnO4vwVULmPGgtGf8PVc7dxKOeta+qUh6+ SRh3vIcAUFHDT3f/Zdspz+e2E0hPV2hiSvICLk11qO6cyJE13zeNFoeY3ggrKY+IzbFomIZY 4yG6xI99NIPEVE9lNBXBKIlewIyVlkOaYvJWSV+p5gdJXOvScNN1epm5YHmf9aE2ZjnqZGoM Mtsyw18YoX9BqMFInxqYQQ3j/HpVgTSvmo5ea5qQDDUaCsaTf8UeDcwYOtgI8iL4oHcsGtUX oUk33HEAEQEAAcLAXwQYAQIACQUCTVkGzwIbDAAKCRAWmrexpM/4rrXiB/sGbkQ6itMrAIfn M7IbRuiSZS1unlySUVYu3SD6YBYnNi3G5EpbwfBNuT3H8//rVvtOFK4OD8cRYkxXRQmTvqa3 3eDIHu/zr1HMKErm+2SD6PO9umRef8V82o2oaCLvf4WeIssFjwB0b6a12opuRP7yo3E3gTCS KmbUuLv1CtxKQF+fUV1cVaTPMyT25Od+RC1K+iOR0F54oUJvJeq7fUzbn/KdlhA8XPGzwGRy 4zcsPWvwnXgfe5tk680fEKZVwOZKIEuJC3v+/yZpQzDvGYJvbyix0lHnrCzq43WefRHI5XTT QbM0WUIBIcGmq38+OgUsMYu4NzLu7uZFAcmp6h8g Organization: Linaro In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241217_065313_427408_8B7111C5 X-CRM114-Status: GOOD ( 28.79 ) 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: , Reply-To: neil.armstrong@linaro.org 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 SGksCgpPbiAxNy8xMi8yMDI0IDE1OjQ5LCBMaW51cyBXYWxsZWlqIHdyb3RlOgo+IEhpIFhpYW53 ZWksCj4gCj4gdGhhbmtzIGZvciB5b3VyIHBhdGNoIQo+IAo+IE9uIFdlZCwgRGVjIDExLCAyMDI0 IGF0IDc6NDjigK9BTSBYaWFud2VpIFpoYW8gdmlhIEI0IFJlbGF5Cj4gPGRldm51bGwreGlhbndl aS56aGFvLmFtbG9naWMuY29tQGtlcm5lbC5vcmc+IHdyb3RlOgo+IAo+PiBGcm9tOiBYaWFud2Vp IFpoYW8gPHhpYW53ZWkuemhhb0BhbWxvZ2ljLmNvbT4KPj4KPj4gQWRkIGEgbmV3IHBpbmN0cmwg ZHJpdmVyIGZvciBBbWxvZ2ljIFNvQ3MuIEFsbCBmdXR1cmUgQW1sb2dpYwo+PiBTb0NzIHBpbmN0 cmwgZHJpdmVzIHVzZSB0aGlzLCBzdWNoIEE0LCBBNSwgUzYsIFM3IGV0Yy4gVG8gc3VwcG9ydAo+ PiBuZXcgQW1sb2dpYyBTb0NzLCBvbmx5IG5lZWQgdG8gYWRkIHRoZSBjb3JyZXNwb25kaW5nIGR0 cyBmaWxlLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBYaWFud2VpIFpoYW8gPHhpYW53ZWkuemhhb0Bh bWxvZ2ljLmNvbT4KPiAKPiBGaXJzdDogYXJlIHdlIHN1cmUgdGhlc2UgbmV3IFNvQ3MgaGF2ZSBu b3RoaW5nIGluIGNvbW1vbgo+IHdpdGggc3VueGk/IEJlY2F1c2UgdGhlbiB0aGUgc3VueGkgY29k ZSBzaG91bGQgYmUgcmV1c2VkLgo+IAo+IEluIGFueSB3YXkgSSByZWNvbW1lbmQ6Cj4gCj4gLSBS ZW5hbWluZyBkcml2ZXJzL3BpbmN0cmwvc3VueGkgdG8gZHJpdmVycy9waW5jdHJsL2FtbG9naWMK PiAgICBzbyB3ZSBrZWVwIHRoaXMgc29ydGVkIGJ5IGFjdHVhbCB2ZW5kb3IsIHN1bnhpIGlzIGFw cGFyZW50bHkKPiAgICB5b3VycyAoQU1sb2dpYzpzKSBpc24ndCBpdD8KClN1bnhpIGlzIEFsbHdp bm5lciBTb0NzLgoKTmVpbAoKPiAKPiAtIEFsc28gZml4IE1BSU5UQUlORVJTIGFjY29yZGluZ2x5 Lgo+IAo+IC0gQWRkIG5ldyBkcml2ZXIgdW5kZXIgZHJpdmVycy9waW5jdHJsL2FtbG9naWMKPiAK PiAtIERvIG5vdCBjaGFuZ2UgdGhlIEtjb25maWcgc3ltYm9scyBmb3Igc3VueGkgYW5kCj4gICAg d2Ugc2hvdWxkIGJlIGZpbmUuCj4gCj4+ICtzdGF0aWMgaW50IGFtbF9kdF9ub2RlX3RvX21hcChz dHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBwaW5jdHJsX21hcCAqKm1hcCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50ICpudW1fbWFwcykKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgYW1s X3BpbmN0cmwgKmluZm8gPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsKPj4gKyAg ICAgICBjb25zdCBzdHJ1Y3QgYW1sX3BjdGxfZ3JvdXAgKmdycDsKPj4gKyAgICAgICBzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSBpbmZvLT5kZXY7Cj4+ICsgICAgICAgc3RydWN0IHBpbmN0cmxfbWFwICpu ZXdfbWFwOwo+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFyZW50Owo+PiArICAgICAg IGludCBtYXBfbnVtLCBpOwo+PiArCj4+ICsgICAgICAgZ3JwID0gYW1sX3BjdGxfZmluZF9ncm91 cF9ieV9uYW1lKGluZm8sIG5wLT5uYW1lKTsKPj4gKyAgICAgICBpZiAoIWdycCkgewo+PiArICAg ICAgICAgICAgICAgZGV2X2VycihkZXYsICJ1bmFibGUgdG8gZmluZCBncm91cCBmb3Igbm9kZSAl cE9GblxuIiwgbnApOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsgICAg ICAgfQo+PiArCj4+ICsgICAgICAgaWYgKGdycC0+bnVtX2NvbmZpZ3MpCj4+ICsgICAgICAgICAg ICAgICBtYXBfbnVtID0gZ3JwLT5ucGlucyArIDE7Cj4+ICsgICAgICAgZWxzZQo+PiArICAgICAg ICAgICAgICAgbWFwX251bSA9IDE7Cj4+ICsgICAgICAgbmV3X21hcCA9IGRldm1fa2NhbGxvYyhk ZXYsIG1hcF9udW0sIHNpemVvZigqbmV3X21hcCksIEdGUF9LRVJORUwpOwo+PiArICAgICAgIGlm ICghbmV3X21hcCkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiArCj4+ICsg ICAgICAgcGFyZW50ID0gb2ZfZ2V0X3BhcmVudChucCk7Cj4+ICsgICAgICAgaWYgKCFwYXJlbnQp IHsKPj4gKyAgICAgICAgICAgICAgIGRldm1fa2ZyZWUoZGV2LCBuZXdfbWFwKTsKPj4gKyAgICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgICpt YXAgPSBuZXdfbWFwOwo+PiArICAgICAgICpudW1fbWFwcyA9IG1hcF9udW07Cj4+ICsgICAgICAg bmV3X21hcFswXS50eXBlID0gUElOX01BUF9UWVBFX01VWF9HUk9VUDsKPj4gKyAgICAgICBuZXdf bWFwWzBdLmRhdGEubXV4LmZ1bmN0aW9uID0gcGFyZW50LT5uYW1lOwo+PiArICAgICAgIG5ld19t YXBbMF0uZGF0YS5tdXguZ3JvdXAgPSBucC0+bmFtZTsKPj4gKyAgICAgICBvZl9ub2RlX3B1dChw YXJlbnQpOwo+PiArCj4+ICsgICAgICAgaWYgKGdycC0+bnVtX2NvbmZpZ3MpIHsKPj4gKyAgICAg ICAgICAgICAgIG5ld19tYXArKzsKPj4gKyAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBn cnAtPm5waW5zOyBpKyspIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgbmV3X21hcFtpXS50 eXBlID0gUElOX01BUF9UWVBFX0NPTkZJR1NfUElOOwo+PiArICAgICAgICAgICAgICAgICAgICAg ICBuZXdfbWFwW2ldLmRhdGEuY29uZmlncy5ncm91cF9vcl9waW4gPQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBpbl9nZXRfbmFtZShwY3RsZGV2LCBncnAtPnBpbnNbaV0pOwo+ PiArICAgICAgICAgICAgICAgICAgICAgICBuZXdfbWFwW2ldLmRhdGEuY29uZmlncy5jb25maWdz ID0gZ3JwLT5jb25maWdzOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBuZXdfbWFwW2ldLmRh dGEuY29uZmlncy5udW1fY29uZmlncyA9IGdycC0+bnVtX2NvbmZpZ3M7Cj4+ICsgICAgICAgICAg ICAgICB9Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgZGV2X2luZm8oZGV2LCAibWFwczog ZnVuY3Rpb24gJXMgZ3JvdXAgJXMgbnVtICVkXG4iLAo+PiArICAgICAgICAgICAgICAgICgqbWFw KS0+ZGF0YS5tdXguZnVuY3Rpb24sIGdycC0+bmFtZSwgbWFwX251bSk7Cj4+ICsKPj4gKyAgICAg ICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgYW1sX2R0X2ZyZWVfbWFwKHN0 cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBwaW5jdHJsX21hcCAqbWFwLCB1bnNpZ25lZCBpbnQgbnVtX21hcHMpCj4+ICt7Cj4+ ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGFtbF9waW5fZGJnX3Nob3coc3RydWN0IHBpbmN0cmxf ZGV2ICpwY2Rldiwgc3RydWN0IHNlcV9maWxlICpzLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQpCj4+ICt7Cj4+ICsgICAgICAgc2VxX3ByaW50Zihz LCAiICVzIiwgZGV2X25hbWUocGNkZXYtPmRldikpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IHBpbmN0cmxfb3BzIGFtbF9wY3RybF9vcHMgPSB7Cj4+ICsgICAgICAgLmdldF9n cm91cHNfY291bnQgICAgICAgPSBhbWxfZ2V0X2dyb3Vwc19jb3VudCwKPj4gKyAgICAgICAuZ2V0 X2dyb3VwX25hbWUgICAgICAgICA9IGFtbF9nZXRfZ3JvdXBfbmFtZSwKPj4gKyAgICAgICAuZ2V0 X2dyb3VwX3BpbnMgICAgICAgICA9IGFtbF9nZXRfZ3JvdXBfcGlucywKPj4gKyAgICAgICAuZHRf bm9kZV90b19tYXAgICAgICAgICA9IGFtbF9kdF9ub2RlX3RvX21hcCwKPj4gKyAgICAgICAuZHRf ZnJlZV9tYXAgICAgICAgICAgICA9IGFtbF9kdF9mcmVlX21hcCwKPj4gKyAgICAgICAucGluX2Ri Z19zaG93ICAgICAgICAgICA9IGFtbF9waW5fZGJnX3Nob3csCj4+ICt9Owo+PiArCj4+ICtzdGF0 aWMgaW50IGFtbF9wY3RsX2R0X2NhbGN1bGF0ZV9waW4oc3RydWN0IGFtbF9waW5jdHJsICppbmZv LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJh bmtfaWR4LCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBhbWxf Z3Bpb19iYW5rICpiYW5rOwo+PiArICAgICAgIGludCByZXR2YWwgPSAtRUlOVkFMOwo+PiArICAg ICAgIGludCBpOwo+PiArCj4+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IGluZm8tPm5iYW5rczsg aSsrKSB7Cj4+ICsgICAgICAgICAgICAgICBiYW5rID0gJmluZm8tPmJhbmtzW2ldOwo+PiArICAg ICAgICAgICAgICAgaWYgKGJhbmstPmJhbmtfaWR4ID09IGJhbmtfaWR4KSB7Cj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPCBiYW5rLT5ncGlvX2NoaXAubmdwaW8pCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gYmFuay0+cGluX2Jhc2UgKyBv ZmZzZXQ7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICAgICAg ICAgfQo+PiArICAgICAgIH0KPj4gKyAgICAgICBpZiAocmV0dmFsID09IC1FSU5WQUwpCj4+ICsg ICAgICAgICAgICAgICBkZXZfZXJyKGluZm8tPmRldiwgInBpbiBbYmFuazolZCwgb2Zmc2V0OiVk XSBpcyBub3QgcHJlc2VudFxuIiwgYmFua19pZHgsIG9mZnNldCk7Cj4+ICsKPj4gKyAgICAgICBy ZXR1cm4gcmV0dmFsOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGFtbF9wY3RsX2R0X3BhcnNl X2dyb3VwcyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgYW1sX3BjdGxfZ3JvdXAgKmdycCwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFtbF9waW5jdHJsICppbmZvLCBpbnQgaWR4 KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IGluZm8tPmRldjsKPj4gKyAg ICAgICBzdHJ1Y3QgYW1sX3BpbmNvbmYgKmNvbmY7Cj4+ICsgICAgICAgc3RydWN0IHByb3BlcnR5 ICpvZl9waW5zOwo+PiArICAgICAgIHVuc2lnbmVkIGludCBiYW5rX2lkeDsKPj4gKyAgICAgICB1 bnNpZ25lZCBpbnQgb2Zmc2V0LCBucGluczsKPj4gKyAgICAgICBpbnQgaSA9IDA7Cj4+ICsgICAg ICAgaW50IHJldDsKPj4gKwo+PiArICAgICAgIG9mX3BpbnMgPSBvZl9maW5kX3Byb3BlcnR5KG5w LCAicGlubXV4IiwgTlVMTCk7Cj4+ICsgICAgICAgaWYgKCFvZl9waW5zKSB7Cj4+ICsgICAgICAg ICAgICAgICBkZXZfaW5mbyhkZXYsICJNaXNzaW5nIHBpbm11eCBwcm9wZXJ0eVxuIik7Cj4+ICsg ICAgICAgICAgICAgICByZXR1cm4gLUVOT0VOVDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAg ICBucGlucyA9IG9mX3BpbnMtPmxlbmd0aCAvIHNpemVvZih1MzIpOwo+PiArICAgICAgIGdycC0+ bnBpbnMgPSBucGluczsKPj4gKyAgICAgICBncnAtPm5hbWUgPSBucC0+bmFtZTsKPj4gKyAgICAg ICBncnAtPnBpbnMgPSBkZXZtX2tjYWxsb2MoZGV2LCBucGlucywgc2l6ZW9mKCpncnAtPnBpbnMp LCBHRlBfS0VSTkVMKTsKPj4gKyAgICAgICBncnAtPnBpbl9jb25mID0gZGV2bV9rY2FsbG9jKGRl diwgbnBpbnMsIHNpemVvZigqZ3JwLT5waW5fY29uZiksIEdGUF9LRVJORUwpOwo+PiArCj4+ICsg ICAgICAgaWYgKCFncnAtPnBpbnMgfHwgIWdycC0+cGluX2NvbmYpCj4+ICsgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArICAgICAgIHJldCA9IHBpbmNvbmZfZ2VuZXJpY19w YXJzZV9kdF9jb25maWcobnAsIGluZm8tPnBjdGwsICZncnAtPmNvbmZpZ3MsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ3JwLT5udW1fY29uZmlncyk7 Cj4gCj4gQnV0IGNhbid0IHlvdSBqdXN0IG1vdmUgdGhpcyBjb2RlIGFyb3VuZD8gZ3JwLT5udW1f Y29uZmlncyBnaXZlIHRoZQo+IG51bWJlciBvZiBjb25maWdzLCBzbyB3aHkgZG8geW91IGhhdmUg dG8gZ28gYW5kIGxvb2sgdXAgcGlubXV4Cj4gYWJvdmUsIGNhbid0IHlvdSBqdXN0IHVzZSBncnAt Pm51bV9jb25maWdzIGluc3RlYWQgb2Ygb2ZfcGlucwo+IGFuZCBucGlucyBhYm92ZT8KPiAKPj4g K3N0YXRpYyBpbnQgYW1sX3BjdGxfcGFyc2VfZnVuY3Rpb25zKHN0cnVjdCBkZXZpY2Vfbm9kZSAq bnAsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbWxfcGlu Y3RybCAqaW5mbywgdTMyIGluZGV4LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgKmdycF9pbmRleCkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYg PSBpbmZvLT5kZXY7Cj4+ICsgICAgICAgc3RydWN0IGFtbF9wbXhfZnVuYyAqZnVuYzsKPj4gKyAg ICAgICBzdHJ1Y3QgYW1sX3BjdGxfZ3JvdXAgKmdycDsKPj4gKyAgICAgICBpbnQgcmV0LCBpOwo+ PiArCj4+ICsgICAgICAgZnVuYyA9ICZpbmZvLT5mdW5jdGlvbnNbaW5kZXhdOwo+PiArICAgICAg IGZ1bmMtPm5hbWUgPSBucC0+bmFtZTsKPj4gKyAgICAgICBmdW5jLT5uZ3JvdXBzID0gb2ZfZ2V0 X2NoaWxkX2NvdW50KG5wKTsKPj4gKyAgICAgICBpZiAoZnVuYy0+bmdyb3VwcyA9PSAwKQo+PiAr ICAgICAgICAgICAgICAgcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRUlOVkFMLCAiTm8gZ3Jv dXBzIGRlZmluZWRcbiIpOwo+PiArCj4+ICsgICAgICAgZnVuYy0+Z3JvdXBzID0gZGV2bV9rY2Fs bG9jKGRldiwgZnVuYy0+bmdyb3Vwcywgc2l6ZW9mKCpmdW5jLT5ncm91cHMpLCBHRlBfS0VSTkVM KTsKPj4gKyAgICAgICBpZiAoIWZ1bmMtPmdyb3VwcykKPj4gKyAgICAgICAgICAgICAgIHJldHVy biAtRU5PTUVNOwo+PiArCj4+ICsgICAgICAgaSA9IDA7Cj4+ICsgICAgICAgZm9yX2VhY2hfY2hp bGRfb2Zfbm9kZV9zY29wZWQobnAsIGNoaWxkKSB7Cj4+ICsgICAgICAgICAgICAgICBmdW5jLT5n cm91cHNbaV0gPSBjaGlsZC0+bmFtZTsKPj4gKyAgICAgICAgICAgICAgIGdycCA9ICZpbmZvLT5n cm91cHNbKmdycF9pbmRleF07Cj4+ICsgICAgICAgICAgICAgICAqZ3JwX2luZGV4ICs9IDE7Cj4+ ICsgICAgICAgICAgICAgICByZXQgPSBhbWxfcGN0bF9kdF9wYXJzZV9ncm91cHMoY2hpbGQsIGdy cCwgaW5mbywgaSsrKTsKPj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICsgICAgICAgfQo+PiArICAgICAgIGRldl9pbmZv KGRldiwgIkZ1bmN0aW9uWyVkXHQgbmFtZTolcyxcdGdyb3VwczolZF1cbiIsIGluZGV4LCBmdW5j LT5uYW1lLCBmdW5jLT5uZ3JvdXBzKTsKPj4gKwo+PiArICAgICAgIHJldHVybiAwOwo+PiArfQo+ PiArCj4+ICtzdGF0aWMgdTMyIGFtbF9iYW5rX3BpbnMoc3RydWN0IGRldmljZV9ub2RlICpucCkK Pj4gK3sKPj4gKyAgICAgICB1MzIgdmFsdWU7Cj4+ICsKPj4gKyAgICAgICBpZiAob2ZfcHJvcGVy dHlfcmVhZF91MzIobnAsICJucGlucyIsICZ2YWx1ZSkgPCAwKQo+PiArICAgICAgICAgICAgICAg cmV0dXJuIDA7Cj4+ICsgICAgICAgZWxzZQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVl Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgdTMyIGFtbF9iYW5rX3JlZ19ncGlvX29mZnNldChzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiArewo+PiArICAgICAgIHUzMiB2YWx1ZTsKPj4gKwo+PiAr ICAgICAgIGlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgInJlZy1ncGlvLW9mZnNldCIsICZ2 YWx1ZSkgPCAwKQo+PiArICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4+ICsgICAgICAgZWxzZQo+ PiArICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdTMy IGFtbF9iYW5rX3JlZ19tdXhfb2Zmc2V0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4+ICt7Cj4+ ICsgICAgICAgdTMyIHZhbHVlOwo+PiArCj4+ICsgICAgICAgaWYgKG9mX3Byb3BlcnR5X3JlYWRf dTMyKG5wLCAicmVnLW11eC1vZmZzZXQiLCAmdmFsdWUpIDwgMCkKPj4gKyAgICAgICAgICAgICAg IHJldHVybiAwOwo+PiArICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAgICAgIHJldHVybiB2YWx1 ZTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHUzMiBhbWxfYmFua19iaXRfbXV4X29mZnNldChzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wKQo+PiArewo+PiArICAgICAgIHUzMiB2YWx1ZTsKPj4gKwo+PiAr ICAgICAgIGlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImJpdC1tdXgtb2Zmc2V0IiwgJnZh bHVlKSA8IDApCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gKyAgICAgICBlbHNlCj4+ ICsgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB1MzIg YW1sX2JhbmtfaW5kZXgoc3RydWN0IGRldmljZV9ub2RlICpucCkKPj4gK3sKPj4gKyAgICAgICB1 MzIgdmFsdWU7Cj4+ICsKPj4gKyAgICAgICBpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJi YW5rLWluZGV4IiwgJnZhbHVlKSA8IDApCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4g KyAgICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7Cj4+ICt9Cj4gCj4g RG8gd2UgcmVhbGx5IG5lZWQgaGVscGVycyBmb3IgYWxsIG9mIHRoaXM/IENhbid0IHlvdSBqdXN0 Cj4gb3BlbiBjb2RlIGl0LCBhdCBsZWFzdCBpZiBpdCdzIGp1c3QgdXNlZCBpbiBvbmUgcGxhY2U/ Cj4gCj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IGFtbF9jb3VudF9waW5zKHN0cnVjdCBkZXZpY2Vf bm9kZSAqbnApCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpjaGlsZDsKPj4g KyAgICAgICB1bnNpZ25lZCBpbnQgcGlucyA9IDA7Cj4+ICsKPj4gKyAgICAgICBmb3JfZWFjaF9j aGlsZF9vZl9ub2RlKG5wLCBjaGlsZCkgewo+PiArICAgICAgICAgICAgICAgaWYgKG9mX3Byb3Bl cnR5X3JlYWRfYm9vbChjaGlsZCwgImdwaW8tY29udHJvbGxlciIpKQo+PiArICAgICAgICAgICAg ICAgICAgICAgICBwaW5zICs9IGFtbF9iYW5rX3BpbnMoY2hpbGQpOwo+PiArICAgICAgIH0KPj4g Kwo+PiArICAgICAgIHJldHVybiBwaW5zOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBhbWxf cGN0bF9kdF9jaGlsZF9jb3VudChzdHJ1Y3QgYW1sX3BpbmN0cmwgKmluZm8sCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4+ICt7 Cj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpjaGlsZDsKPj4gKwo+PiArICAgICAgIGZv cl9lYWNoX2NoaWxkX29mX25vZGUobnAsIGNoaWxkKSB7Cj4+ICsgICAgICAgICAgICAgICBpZiAo b2ZfcHJvcGVydHlfcmVhZF9ib29sKGNoaWxkLCAiZ3Bpby1jb250cm9sbGVyIikpIHsKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgaW5mby0+bmJhbmtzKys7Cj4+ICsgICAgICAgICAgICAgICB9 IGVsc2Ugewo+PiArICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5uZnVuY3Rpb25zKys7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPm5ncm91cHMgKz0gb2ZfZ2V0X2NoaWxkX2Nv dW50KGNoaWxkKTsKPj4gKyAgICAgICAgICAgICAgIH0KPj4gKyAgICAgICB9Cj4+ICt9Cj4gCj4g VGhpcyBsb29rcyBsaWtlIGEgd2VpcmQgZGVwZW5kZW5jeSBiZXR3ZWVuIGdwaW8gY2hpcHMgYW5k Cj4gcGlucyB0aGF0IEkgZG9uJ3QgcXVpdGUgdW5kZXJzdGFuZC4gU29tZSBjb21tZW50cyBhbmQK PiByZWZlcmVuY2VzIHRvIHRoZSBiaW5kaW5ncyB3aWxsIGJlIG5lZWRlZCBzbyBpdCBpcyBjbGVh cgo+IHdoYXQgaXMgZ29pbmcgb24uCj4gCj4+ICtzdGF0aWMgc3RydWN0IHJlZ21hcCAqYW1sX21h cF9yZXNvdXJjZShzdHJ1Y3QgYW1sX3BpbmN0cmwgKmluZm8sCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgY2hhciAqbmFt ZSkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgcmVzOwo+PiArICAgICAgIHZvaWQg X19pb21lbSAqYmFzZTsKPj4gKyAgICAgICBpbnQgaTsKPj4gKwo+PiArICAgICAgIGkgPSBvZl9w cm9wZXJ0eV9tYXRjaF9zdHJpbmcobm9kZSwgInJlZy1uYW1lcyIsIG5hbWUpOwo+PiArICAgICAg IGlmIChvZl9hZGRyZXNzX3RvX3Jlc291cmNlKG5vZGUsIGksICZyZXMpKQo+PiArICAgICAgICAg ICAgICAgcmV0dXJuIE5VTEw7Cj4+ICsKPj4gKyAgICAgICBiYXNlID0gZGV2bV9pb3JlbWFwX3Jl c291cmNlKGluZm8tPmRldiwgJnJlcyk7Cj4+ICsgICAgICAgaWYgKElTX0VSUihiYXNlKSkKPj4g KyAgICAgICAgICAgICAgIHJldHVybiBFUlJfQ0FTVChiYXNlKTsKPiAKPiBUaGlzIGxvb2tzIGxp a2UgcmVpbXBsZW1lbnRhdGlvbiBvZgo+IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZV9i eW5hbWUoKSwgY2FuJ3QgeW91IGp1c3QKPiBwYXNzIHlvdXIgcGxhdGZvcm0gZGV2aWNlIGhlcmU/ Cj4gCj4+ICtzdGF0aWMgaW50IGFtbF9wY3RsX3Byb2JlX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBpbmN0cmxf ZGVzYyAqcGN0bF9kZXNjLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBh bWxfcGluY3RybCAqaW5mbykKPiAKPiBCZWNhdXNlIHRoZXJlIGlzIGNsZWFybHkgYSBwbGF0Zm9y bSBkZXZpY2UgaW52b2x2ZWQuCj4gCj4gSSBndWVzcyBJIHdpbGwgaGF2ZSBtb3JlIGNvbW1lbnRz IGFzIHRoZSBzZXJpZXMgcHJvZ3Jlc3MsIGJ1dCB0aGlzCj4gaXMgYSBnb29kIHN0YXJ0aW5nIHBv aW50IQo+IAo+IFlvdXJzLAo+IExpbnVzIFdhbGxlaWoKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51 eC1hbWxvZ2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg==