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 634F8C636CC for ; Wed, 8 Feb 2023 01:08: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=tD/kpYQ28Q8gG5Y7zaztDz/9CBzCeUaJnBZFu0rHvd8=; b=orpqB7yAOTEMbG Y6il7oaczmS3ATNTl1e8YKOodYUaTeoeH2ticBxi+qUUe/ReAgqz/EAwre6nfhXqTte+/ZzNY4kp8 UGuq5hHefh0Q6DvjXQGysRWpr6KZ1I/0XNF+SBoISnY8BnLomTIfA2U7FHZTgopWHnm5xYhzrhjWV lib/Vi5dsTgmrHZ43ieD9eDc9KUP5oWAYR5LHOx6HVLWCOFigq6mdeG5p6q3J2gtjNw4KSpcM4GUf wYQriNTGq6rhBEHJNfVxQBMlDxfuuxy8WS/TCc/0maKA0qCJRTICmSCI6/RHYuXyJrDANdWH4OeMe eHYqok1vgc1ujG1eBCpg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pPYvg-00DlCw-Ms; Wed, 08 Feb 2023 01:07:20 +0000 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pPYvc-00DlCI-Ao for linux-arm-kernel@lists.infradead.org; Wed, 08 Feb 2023 01:07:18 +0000 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 317NxCih016065; Wed, 8 Feb 2023 01:06:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=qcppdkim1; bh=A/rUYM7Oy2gqIk2+4nucnYXjlkyZyJwm07fM+yH74bw=; b=Nia7wKTo3rOuq+4tzTl1MYUVWArR711UjFbPVAhVTtNK32mdlkDWgAASWSQ9X4MUlGce LYCeQSO6F07xBoK43xjWywO2Nnr9vQ2jP9dkdRVw+VCS4U/LiwaxNWi4qrC2rVyifIOW ZvK67IUZYw5TknGs9DlqsOYNpkne9Msktq7djw/4tHuhENx1jF2R63uiLoGKCLCf0t/p 89AGCayZe7UpSoCp4QNnrxOCsfzQBuwaKCf5a+RBYMVGhx039EFpPGXLcCDjqMgbIoIb lo23F/KhQfr97Um62jVPQj0LkUsqtx+zqHxlPRJA5Inm5C1NUWR1x4PtMkMorjL7hW2U zw== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3nkeny2qhh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 08 Feb 2023 01:06:58 +0000 Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 31816vrA011215 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 8 Feb 2023 01:06:57 GMT Received: from [10.134.67.48] (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Tue, 7 Feb 2023 17:06:57 -0800 Message-ID: Date: Tue, 7 Feb 2023 17:06:56 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH v9 18/27] firmware: qcom_scm: Register Gunyah platform ops Content-Language: en-US To: Srinivas Kandagatla , Bjorn Andersson , Alex Elder , Andy Gross , Bjorn Andersson , Konrad Dybcio CC: Murali Nalajala , Trilok Soni , Srivatsa Vaddagiri , Carl van Schaik , Prakruthi Deepak Heragu , Dmitry Baryshkov , Arnd Bergmann , Greg Kroah-Hartman , Rob Herring , "Krzysztof Kozlowski" , Jonathan Corbet , Bagas Sanjaya , Catalin Marinas , Will Deacon , Marc Zyngier , Jassi Brar , Sudeep Holla , , , , , References: <20230120224627.4053418-1-quic_eberman@quicinc.com> <20230120224627.4053418-19-quic_eberman@quicinc.com> <5564746d-2221-8c3e-0c81-b320716ad114@linaro.org> From: Elliot Berman In-Reply-To: <5564746d-2221-8c3e-0c81-b320716ad114@linaro.org> X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: YGZHJBdOSvu19cF_7VjgrvQHYmGGwXHs X-Proofpoint-ORIG-GUID: YGZHJBdOSvu19cF_7VjgrvQHYmGGwXHs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-07_15,2023-02-06_03,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 clxscore=1015 phishscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302080009 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230207_170716_441543_268E55F9 X-CRM114-Status: GOOD ( 30.36 ) 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 CgpPbiAyLzcvMjAyMyAzOjUyIEFNLCBTcmluaXZhcyBLYW5kYWdhdGxhIHdyb3RlOgo+IAo+IAo+ IE9uIDIwLzAxLzIwMjMgMjI6NDYsIEVsbGlvdCBCZXJtYW4gd3JvdGU6Cj4+IFF1YWxjb21tIHBs YXRmb3JtcyBoYXZlIGEgZmlybXdhcmUgZW50aXR5IHdoaWNoIHBlcmZvcm1zIGFjY2VzcyBjb250 cm9sCj4+IHRvIHBoeXNpY2FsIHBhZ2VzLiBEeW5hbWljYWxseSBzdGFydGVkIEd1bnlhaCB2aXJ0 dWFsIG1hY2hpbmVzIHVzZSB0aGUKPj4gUUNPTV9TQ01fUk1fTUFOQUdFRF9WTUlEIGZvciBhY2Nl c3MuIExpbnV4IHRodXMgbmVlZHMgdG8gYXNzaWduIGFjY2Vzcwo+PiB0byB0aGUgbWVtb3J5IHVz ZWQgYnkgZ3Vlc3QgVk1zLiBHdW55YWggZG9lc24ndCBkbyB0aGlzIG9wZXJhdGlvbiBmb3IgdXMK Pj4gc2luY2UgaXQgaXMgdGhlIGN1cnJlbnQgVk0gKHR5cGljYWxseSBWTUlEX0hMT1MpIGRlbGVn YXRpbmcgdGhlIGFjY2Vzcwo+PiBhbmQgbm90IEd1bnlhaCBpdHNlbGYuIFVzZSB0aGUgR3VueWFo IHBsYXRmb3JtIG9wcyB0byBhY2hpZXZlIHRoaXMgc28KPj4gdGhhdCBvbmx5IFF1YWxjb21tIHBs YXRmb3JtcyBhdHRlbXB0IHRvIG1ha2UgdGhlIG5lZWRlZCBTQ00gY2FsbHMuCj4+Cj4+IENvLWRl dmVsb3BlZC1ieTogUHJha3J1dGhpIERlZXBhayBIZXJhZ3UgPHF1aWNfcGhlcmFndUBxdWljaW5j LmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogUHJha3J1dGhpIERlZXBhayBIZXJhZ3UgPHF1aWNfcGhl cmFndUBxdWljaW5jLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogRWxsaW90IEJlcm1hbiA8cXVpY19l YmVybWFuQHF1aWNpbmMuY29tPgo+PiAtLS0KPj4gwqAgZHJpdmVycy9maXJtd2FyZS9LY29uZmln wqDCoMKgIHzCoMKgIDIgKwo+PiDCoCBkcml2ZXJzL2Zpcm13YXJlL3Fjb21fc2NtLmMgfCAxMDAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+IMKgIDIgZmlsZXMgY2hhbmdl ZCwgMTAyIGluc2VydGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUv S2NvbmZpZyBiL2RyaXZlcnMvZmlybXdhcmUvS2NvbmZpZwo+PiBpbmRleCBiNTllMzA0MWZkNjIu LmI4ODgwNjhmZjZmMiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9maXJtd2FyZS9LY29uZmlnCj4+ ICsrKyBiL2RyaXZlcnMvZmlybXdhcmUvS2NvbmZpZwo+PiBAQCAtMjE0LDYgKzIxNCw4IEBAIGNv bmZpZyBNVEtfQURTUF9JUEMKPj4gwqAgY29uZmlnIFFDT01fU0NNCj4+IMKgwqDCoMKgwqAgdHJp c3RhdGUKPj4gK8KgwqDCoCBzZWxlY3QgVklSVF9EUklWRVJTCj4+ICvCoMKgwqAgc2VsZWN0IEdV TllBSF9QTEFURk9STV9IT09LUwo+IAo+IFNvIGZhciBTQ00gdXNhZ2UgaGFzIGJlZW4gYXMgbGli cmFyeSBvZiBmdW5jdGlvbnMgdG8gdGFsayB0byBTZWN1cmUgCj4gd29ybGQsIG5vdyB3aHkgaXMg dGhpcyBzZWxlY3RpbmcgR1VOWUFILCBpdCBzaG91bGQgYmUgb3RoZXIgd2F5IHJvdW5kLgo+IAoK R3VueWFoIHJ1bnMgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4gUXVhbGNvbW0gaGFyZHdhcmUgKFFF TVUgaXMgcmVhbCwgCmV4aXN0aW5nIGV4YW1wbGUpLiBUaGUgU0NNIGNhbGxzIG5lZWRlZCBvbiBR dWFsY29tbSBwbGF0Zm9ybXMgYXJlbid0IApuZWVkZWQvYXZhaWxhYmxlIG9uIFFFTVUgYW5kIHdv dWxkIGVycm9yIG91dCB0aGVyZS4KCkkgdHJpZWQgYXZvaWRpbmcgdGhlICJzZWxlY3QiIGFuZCBl dmVuICJkZXBlbmRzIG9uIiwgYnV0IEkgd2FzIGZhY2luZyAKaXNzdWVzIHdoZW4gUUNPTV9TQ009 eSBhbmQgR1VOWUFIPW0uIFdoZW4gdGhpcyBoYXBwZW5zLCAKR1VOWUFIX1BMQVRGT1JNX0hPT0tT IHNob3VsZCBiZSA9eSwgYW5kIHRoZSBvbmx5IHdheSBJIGNvdWxkIGZpZ3VyZSBvdXQgCnRvIGVu c3VyZSB0aGF0IGhhcHBlbnMgd2FzIGJ5IHNlbGVjdGluZyBpdCBmcm9tIFFDT01fU0NNLgoKPiAK Pj4gwqAgY29uZmlnIFFDT01fU0NNX0RPV05MT0FEX01PREVfREVGQVVMVAo+PiDCoMKgwqDCoMKg IGJvb2wgIlF1YWxjb21tIGRvd25sb2FkIG1vZGUgZW5hYmxlZCBieSBkZWZhdWx0Igo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9xY29tX3NjbS5jIGIvZHJpdmVycy9maXJtd2FyZS9x Y29tX3NjbS5jCj4+IGluZGV4IDkyNzYzZGNlNjQ3Ny4uMjBhMTQzNDA4N2ViIDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2Zpcm13YXJlL3Fjb21fc2NtLmMKPj4gKysrIGIvZHJpdmVycy9maXJtd2Fy ZS9xY29tX3NjbS5jCj4+IEBAIC0xNyw2ICsxNyw3IEBACj4+IMKgICNpbmNsdWRlIDxsaW51eC9j bGsuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L3Jlc2V0LWNvbnRyb2xsZXIuaD4KPj4gwqAgI2lu Y2x1ZGUgPGxpbnV4L2FybS1zbWNjYy5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L2d1bnlhaF9yc2Nf bWdyLmg+Cj4+IMKgICNpbmNsdWRlICJxY29tX3NjbS5oIgo+PiBAQCAtMjcsNiArMjgsOSBAQCBt b2R1bGVfcGFyYW0oZG93bmxvYWRfbW9kZSwgYm9vbCwgMCk7Cj4+IMKgICNkZWZpbmUgU0NNX0hB U19JRkFDRV9DTEvCoMKgwqAgQklUKDEpCj4+IMKgICNkZWZpbmUgU0NNX0hBU19CVVNfQ0xLwqDC oMKgwqDCoMKgwqAgQklUKDIpCj4+ICsjZGVmaW5lIFFDT01fU0NNX1JNX01BTkFHRURfVk1JRMKg wqDCoCAweDNBCj4+ICsjZGVmaW5lIFFDT01fU0NNX01BWF9NQU5BR0VEX1ZNSUTCoMKgwqAgMHgz Rgo+PiArCj4+IMKgIHN0cnVjdCBxY29tX3NjbSB7Cj4+IMKgwqDCoMKgwqAgc3RydWN0IGRldmlj ZSAqZGV2Owo+PiDCoMKgwqDCoMKgIHN0cnVjdCBjbGsgKmNvcmVfY2xrOwo+PiBAQCAtMTI5Miw2 ICsxMjk2LDk5IEBAIGludCBxY29tX3NjbV9sbWhfZGN2c2godTMyIHBheWxvYWRfZm4sIHUzMiAK Pj4gcGF5bG9hZF9yZWcsIHUzMiBwYXlsb2FkX3ZhbCwKPj4gwqAgfQo+PiDCoCBFWFBPUlRfU1lN Qk9MKHFjb21fc2NtX2xtaF9kY3ZzaCk7Cj4+ICtzdGF0aWMgaW50IHFjb21fc2NtX2doX3JtX3By ZV9tZW1fc2hhcmUoc3RydWN0IGdoX3JtICpybSwgc3RydWN0IAo+PiBnaF9ybV9tZW1fcGFyY2Vs ICptZW1fcGFyY2VsKQo+IHdoeSBjYW4ndCB0aGlzIGJlIGFuIGV4cG9ydGVkIGZ1bmN0aW9uIGxp a2Ugb3RoZXIgc2NtIGludGVyZmFjZXM/Cj4gCj4gV2UgZG8gbm90IG5lZWQgYSByZWRpcmVjdGlv biBoZXJlIHRiaC4KPiAKPiBUaGF0IHdpbGwgYWxzbyByZW1vdmUgdGhlIG5lZWQgb2YgZ3VueWFo X3BsYXRmb3JtX2hvb2tzLmMgYWx0b2dldGhlciwgCj4gYW5kIHlvdSBjb3VsZCBjYWxsIHNjbSBm dW5jdGlvbnMgZGlyZWN0bHkuCj4gQ29ycmVjdCBtZSBpZiB0aGlzIGlzIG5vdCB0aGUgY2FzZS4K PiAKPiAKClNhbWUgYXMgYWJvdmUgY29tbWVudCBhYm91dCBydW5uaW5nIG9uIFFFTVUuCgpUaGFu a3MsCkVsbGlvdAoKPiAKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1Y3QgcWNvbV9zY21fdm1wZXJtICpu ZXdfcGVybXM7Cj4+ICvCoMKgwqAgdTY0IHNyYywgc3JjX2NweTsKPj4gK8KgwqDCoCBpbnQgcmV0 ID0gMCwgaSwgbjsKPj4gK8KgwqDCoCB1MTYgdm1pZDsKPj4gKwo+PiArwqDCoMKgIG5ld19wZXJt cyA9IGtjYWxsb2MobWVtX3BhcmNlbC0+bl9hY2xfZW50cmllcywgCj4+IHNpemVvZigqbmV3X3Bl cm1zKSwgR0ZQX0tFUk5FTCk7Cj4+ICvCoMKgwqAgaWYgKCFuZXdfcGVybXMpCj4+ICvCoMKgwqDC oMKgwqDCoCByZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArwqDCoMKgIGZvciAobiA9IDA7IG4gPCBt ZW1fcGFyY2VsLT5uX2FjbF9lbnRyaWVzOyBuKyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHZtaWQg PSBsZTE2X3RvX2NwdShtZW1fcGFyY2VsLT5hY2xfZW50cmllc1tuXS52bWlkKTsKPj4gK8KgwqDC oMKgwqDCoMKgIGlmICh2bWlkIDw9IFFDT01fU0NNX01BWF9NQU5BR0VEX1ZNSUQpCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG5ld19wZXJtc1tuXS52bWlkID0gdm1pZDsKPj4gK8KgwqDCoMKg wqDCoMKgIGVsc2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbmV3X3Blcm1zW25dLnZtaWQg PSBRQ09NX1NDTV9STV9NQU5BR0VEX1ZNSUQ7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAobWVtX3Bh cmNlbC0+YWNsX2VudHJpZXNbbl0ucGVybXMgJiBHSF9STV9BQ0xfWCkKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgbmV3X3Blcm1zW25dLnBlcm0gfD0gUUNPTV9TQ01fUEVSTV9FWEVDOwo+PiAr wqDCoMKgwqDCoMKgwqAgaWYgKG1lbV9wYXJjZWwtPmFjbF9lbnRyaWVzW25dLnBlcm1zICYgR0hf Uk1fQUNMX1cpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5ld19wZXJtc1tuXS5wZXJtIHw9 IFFDT01fU0NNX1BFUk1fV1JJVEU7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAobWVtX3BhcmNlbC0+ YWNsX2VudHJpZXNbbl0ucGVybXMgJiBHSF9STV9BQ0xfUikKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgbmV3X3Blcm1zW25dLnBlcm0gfD0gUUNPTV9TQ01fUEVSTV9SRUFEOwo+PiArwqDCoMKg IH0KPj4gKwo+PiArwqDCoMKgIHNyYyA9ICgxdWxsIDw8IFFDT01fU0NNX1ZNSURfSExPUyk7Cj4+ ICsKPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgbWVtX3BhcmNlbC0+bl9tZW1fZW50cmllczsg aSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBzcmNfY3B5ID0gc3JjOwo+PiArwqDCoMKgwqDCoMKg wqAgcmV0ID0gCj4+IHFjb21fc2NtX2Fzc2lnbl9tZW0obGU2NF90b19jcHUobWVtX3BhcmNlbC0+ bWVtX2VudHJpZXNbaV0uaXBhX2Jhc2UpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBsZTY0X3RvX2NwdShtZW1fcGFyY2VsLT5tZW1fZW50cmllc1tp XS5zaXplKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgJnNyY19jcHksIG5ld19wZXJtcywgbWVtX3BhcmNlbC0+bl9hY2xfZW50cmllcyk7Cj4+ICvC oMKgwqDCoMKgwqDCoCBpZiAocmV0KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNyYyA9 IDA7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAobiA9IDA7IG4gPCBtZW1fcGFyY2Vs LT5uX2FjbF9lbnRyaWVzOyBuKyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB2bWlkID0gbGUxNl90b19jcHUobWVtX3BhcmNlbC0+YWNsX2VudHJpZXNbbl0udm1pZCk7Cj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHZtaWQgPD0gUUNPTV9TQ01fTUFY X01BTkFHRURfVk1JRCkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNyYyB8PSAoMXVsbCA8PCB2bWlkKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBlbHNlCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzcmMgfD0g KDF1bGwgPDwgUUNPTV9TQ01fUk1fTUFOQUdFRF9WTUlEKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfQo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5ld19wZXJtc1swXS52bWlk ID0gUUNPTV9TQ01fVk1JRF9ITE9TOwo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZv ciAoaS0tOyBpID49IDA7IGktLSkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNyY19jcHkgPSBzcmM7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0g cWNvbV9zY21fYXNzaWduX21lbSgKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIAo+PiBsZTY0 X3RvX2NwdShtZW1fcGFyY2VsLT5tZW1fZW50cmllc1tpXS5pcGFfYmFzZSksCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxlNjRfdG9fY3B1KG1lbV9w YXJjZWwtPm1lbV9lbnRyaWVzW2ldLnNpemUpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmc3JjX2NweSwgbmV3X3Blcm1zLCAxKTsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBXQVJOX09OX09OQ0UocmV0KTsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4gK8Kg wqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCBrZnJlZShuZXdfcGVy bXMpOwo+PiArwqDCoMKgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgcWNv bV9zY21fZ2hfcm1fcG9zdF9tZW1fcmVjbGFpbShzdHJ1Y3QgZ2hfcm0gKnJtLCBzdHJ1Y3QgCj4+ IGdoX3JtX21lbV9wYXJjZWwgKm1lbV9wYXJjZWwpCj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0IHFj b21fc2NtX3ZtcGVybSBuZXdfcGVybXM7Cj4+ICvCoMKgwqAgdTY0IHNyYyA9IDA7Cj4+ICvCoMKg wqAgaW50IHJldCA9IDAsIGksIG47Cj4+ICvCoMKgwqAgdTE2IHZtaWQ7Cj4+ICsKPj4gK8KgwqDC oCBuZXdfcGVybXMudm1pZCA9IFFDT01fU0NNX1ZNSURfSExPUzsKPj4gK8KgwqDCoCBuZXdfcGVy bXMucGVybSA9IFFDT01fU0NNX1BFUk1fRVhFQyB8IFFDT01fU0NNX1BFUk1fV1JJVEUgfCAKPj4g UUNPTV9TQ01fUEVSTV9SRUFEOwo+PiArCj4+ICvCoMKgwqAgZm9yIChuID0gMDsgbiA8IG1lbV9w YXJjZWwtPm5fYWNsX2VudHJpZXM7IG4rKykgewo+PiArwqDCoMKgwqDCoMKgwqAgdm1pZCA9IGxl MTZfdG9fY3B1KG1lbV9wYXJjZWwtPmFjbF9lbnRyaWVzW25dLnZtaWQpOwo+PiArwqDCoMKgwqDC oMKgwqAgaWYgKHZtaWQgPD0gUUNPTV9TQ01fTUFYX01BTkFHRURfVk1JRCkKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3JjIHw9ICgxdWxsIDw8IHZtaWQpOwo+PiArwqDCoMKgwqDCoMKgwqAg ZWxzZQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzcmMgfD0gKDF1bGwgPDwgUUNPTV9TQ01f Uk1fTUFOQUdFRF9WTUlEKTsKPj4gK8KgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoCBmb3IgKGkgPSAw OyBpIDwgbWVtX3BhcmNlbC0+bl9tZW1fZW50cmllczsgaSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDC oCByZXQgPSAKPj4gcWNvbV9zY21fYXNzaWduX21lbShsZTY0X3RvX2NwdShtZW1fcGFyY2VsLT5t ZW1fZW50cmllc1tpXS5pcGFfYmFzZSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGxlNjRfdG9fY3B1KG1lbV9wYXJjZWwtPm1lbV9lbnRyaWVzW2ld LnNpemUpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAmc3JjLCAmbmV3X3Blcm1zLCAxKTsKPj4gK8KgwqDCoMKgwqDCoMKgIFdBUk5fT05fT05DRShy ZXQpOwo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsK Pj4gK3N0YXRpYyBzdHJ1Y3QgZ3VueWFoX3JtX3BsYXRmb3JtX29wcyBxY29tX3NjbV9naF9ybV9w bGF0Zm9ybV9vcHMgPSB7Cj4+ICvCoMKgwqAgLnByZV9tZW1fc2hhcmUgPSBxY29tX3NjbV9naF9y bV9wcmVfbWVtX3NoYXJlLAo+PiArwqDCoMKgIC5wb3N0X21lbV9yZWNsYWltID0gcWNvbV9zY21f Z2hfcm1fcG9zdF9tZW1fcmVjbGFpbSwKPj4gK307Cj4+ICsKPj4gwqAgc3RhdGljIGludCBxY29t X3NjbV9maW5kX2Rsb2FkX2FkZHJlc3Moc3RydWN0IGRldmljZSAqZGV2LCB1NjQgKmFkZHIpCj4+ IMKgIHsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRjc3I7Cj4+IEBAIC0xNDE0 LDYgKzE1MTEsOSBAQCBzdGF0aWMgaW50IHFjb21fc2NtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgCj4+ICpwZGV2KQo+PiDCoMKgwqDCoMKgIGlmIChkb3dubG9hZF9tb2RlKQo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgcWNvbV9zY21fc2V0X2Rvd25sb2FkX21vZGUodHJ1ZSk7Cj4+ICvCoMKg wqAgaWYgKGdoX3JtX3JlZ2lzdGVyX3BsYXRmb3JtX29wcygmcWNvbV9zY21fZ2hfcm1fcGxhdGZv cm1fb3BzKSkKPj4gK8KgwqDCoMKgwqDCoMKgIGRldl93YXJuKF9fc2NtLT5kZXYsICJHdW55YWgg Uk0gcGxhdGZvcm0gb3BzIHdlcmUgYWxyZWFkeSAKPj4gcmVnaXN0ZXJlZFxuIik7Cj4+ICsKPj4g wqDCoMKgwqDCoCByZXR1cm4gMDsKPj4gwqAgfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=