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 3EB83EE3F2E for ; Fri, 15 Sep 2023 06:27:08 +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=/3gWPv7PNki9EXJu3L6Y8Cq8+dbcUioK9wFoHvSAsOE=; b=W8RPTFfDIcuIjk xRbwRh/qgqcwER4CQa5TDNPHwHS3APYLmWvLYmgx+/idRRRUzcoJUNrcrNgghJFqc+HVaAntzNfQL 7Z0zZmZxPWLnFsOd2Ww7wHKm+MBgFmNzvvi3HA4zaBX4DYR0yx52Y+Dqs8yZhWjBBkVB9gKmzGuKE KHvEBYlROS0HBLymeWv13HOTGIY3Yy8El7Z9lBd47UMolfRQ82tjZYguImZRsg4dKQJZqh1ReK/Zh 9eJGkmMiqROJR9JppJR11imBJfnOwbpbCLsNiu+TCgP1TBCVTjDsHGAypKzDXw0EamATfOIphQIqt 3P9smyWIp3au6qGpXIPg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qh2Hl-009uFk-03; Fri, 15 Sep 2023 06:26:37 +0000 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qh2Hh-009uEX-1L for linux-arm-kernel@lists.infradead.org; Fri, 15 Sep 2023 06:26:35 +0000 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38F1lfEd008803; Fri, 15 Sep 2023 06:25:52 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=dabR0zH9msN0IkxVCjdJOL3SsPPjpFe2F9XBs410JD0=; b=TVNLWDWGUIp71RuOZ3/YA/ahIRWK75BjQXSXDlU0OFWDtUq36Rh6W4YlIqcs8KE1uwr9 e5T837+P0vfd+f+X5kCHBYvpGU9lV8OBwCvJUNNothi096rDrYwlZwExNN5M2uEgRxJf 4CD6dQm1QuQedtEYJodAdJnDOe6X6uwULLPfiX7G2sclxXKPDU7WWDkKm2ziSCINsl30 /1mHLLcDFUvEqWDsXKnTVu474DLU1spoQEVWl9foXteYsgVqJNckVWVCZkKzaBOZHlqC qFfofsjFsNANijD4PcQx/T+z1bFp8xZI/cwdMaf7NHo9qmrVZJpOR9JLbGpikoAWque/ sg== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3t4dvqrgm8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 15 Sep 2023 06:25:52 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 38F6PpeA011055 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 15 Sep 2023 06:25:51 GMT Received: from [10.216.41.52] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.36; Thu, 14 Sep 2023 23:25:46 -0700 Message-ID: <8a331c88-c7d4-3a14-0ec3-fd616ea24a99@quicinc.com> Date: Fri, 15 Sep 2023 11:55:43 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 Subject: Re: [PATCH 1/3] pwm: driver for qualcomm ipq6018 pwm block Content-Language: en-US To: Baruch Siach , Thierry Reding , =?UTF-8?Q?Uwe_Kleine-K=c3=b6nig?= , Andy Gross , Bjorn Andersson CC: Baruch Siach , Balaji Prakash J , Rob Herring , Robert Marko , Kathiravan T , , , , References: <17dd231f496d09ed8502bdd505eaa77bb6637e4b.1644226245.git.baruch@tkos.co.il> From: Devi Priya In-Reply-To: <17dd231f496d09ed8502bdd505eaa77bb6637e4b.1644226245.git.baruch@tkos.co.il> X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: BAjDZNGnNKNqpgUVx3S2YXOJ8TuQBxia X-Proofpoint-ORIG-GUID: BAjDZNGnNKNqpgUVx3S2YXOJ8TuQBxia X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-15_05,2023-09-14_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 bulkscore=0 clxscore=1011 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309150056 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230914_232633_466026_19E9E8D5 X-CRM114-Status: GOOD ( 50.26 ) 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 CgpPbiAyLzcvMjAyMiAzOjAwIFBNLCBCYXJ1Y2ggU2lhY2ggd3JvdGU6Cj4gRnJvbTogQmFydWNo IFNpYWNoIDxiYXJ1Y2guc2lhY2hAc2lrbHUuY29tPgo+IAo+IERyaXZlciBmb3IgdGhlIFBXTSBi bG9jayBpbiBRdWFsY29tbSBJUFE2MDE4IGxpbmUgb2YgU29Dcy4gQmFzZWQgb24KPiBkcml2ZXIg ZnJvbSBkb3duc3RyZWFtIENvZGVhdXJvcmEga2VybmVsIHRyZWUuIFJlbW92ZWQgc3VwcG9ydCBm b3Igb2xkZXIKPiAoVjEpIHZhcmlhbnRzIGJlY2F1c2UgSSBoYXZlIG5vIGFjY2VzcyB0byB0aGF0 IGhhcmR3YXJlLgo+IAo+IFRlc3RlZCBvbiBJUFE2MDEwIGJhc2VkIGhhcmR3YXJlLgo+IAo+IFNp Z25lZC1vZmYtYnk6IEJhcnVjaCBTaWFjaCA8YmFydWNoLnNpYWNoQHNpa2x1LmNvbT4KPiAtLS0K PiB2MTE6Cj4gCkhpIEJhcnVjaCwKCkp1c3QgY3VyaW91cyB0byBrbm93IGlmIHlvdSBoYXZlIHBs YW5zIHRvIHBvc3QgdGhlIG5leHQgcmV2aXNpb24hCgpUaGFua3MsCkRldmkgUHJpeWEKCj4gQWRk cmVzcyBjb21tZW50IGZyb20gVXdlIEtsZWluZS1Lw7ZuaWc6Cj4gCj4gICAgRHJvcCByZWR1bmRh bnQgcmVnaXN0ZXJzIGZpZWxkIGNvbW1lbnRzCj4gCj4gICAgRml4IHBlcmlvZCBsaW1pdCBjaGVj ayBpbiAuYXBwbHkKPiAKPiAgICBDbGFyaWZ5IHRoZSBjb21tZW50IGV4cGxhaW5pbmcgc2tpcCBv ZiBwcmVfZGl2ID4gcHdtX2RpdiB2YWx1ZXMKPiAKPiAgICBBZGQgZXhwbGljaXQgY2hlY2sgZm9y IGNsb2NrIHJhdGUgd2l0aGluIGxpbWl0Cj4gCj4gICAgQWRkIGNvbW1lbnQgZXhwbGFpbmluZyB0 aGUgc2VsZWN0aW9uIG9mIGluaXRpYWwgcHJlX2Rpdgo+IAo+ICAgIFVzZSBwd21fZGl2IGRpdmlz aW9uIHdpdGggcmVtYWluZGVyIGluc3RlYWQgb2Ygc2VwYXJhdGUgZGlmZiBjYWxjdWxhdGlvbgo+ IAo+ICAgIFJvdW5kIHVwIGR1dHlfY3ljbGUgY2FsY3VsYXRpb24gaW4gLmdldF9zdGF0ZQo+IAo+ IHYxMDoKPiAKPiAgICBSZXN0b3JlIHJvdW5kIHVwIGluIHB3bV9kaXYgY2FsY3VsYXRpb247IG90 aGVyd2lzZSBkaWZmIGlzIGFsd2F5cyA8PQo+ICAgIDAsIHNvIG9ubHkgYmluZ28gbWF0Y2ggd29y a3MKPiAKPiAgICBEb24ndCBvdmVyd3JpdGUgbWluX2RpZmYgb24gZXZlcnkgbG9vcCBpdGVyYXRp b24KPiAKPiB2OToKPiAKPiBBZGRyZXNzIGNvbW1lbnQgZnJvbSBVd2UgS2xlaW5lLUvDtm5pZzoK PiAKPiAgICBVc2UgcGVyaW9kX25zKnJhdGUgaW4gZGl2aWRlcnMgY2FsY3VsYXRpb24gZm9yIGJl dHRlciBhY2N1cmFjeQo+IAo+ICAgIFJvdW5kIGRvd24gcHJlX2RpdiBhbmQgcHdtX2Rpdgo+IAo+ ICAgIEFkZCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgcHdtX2RpdiBjYW4ndCB1bmRlcmZsb3cK PiAKPiAgICBBZGQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHByZV9kaXYgPiBwd21fZGl2IGVu ZCB0aGUgc2VhcmNoIGxvb3AKPiAKPiAgICBEcm9wICdDRkdfJyBmcm9tIHJlZ2lzdGVyIG1hY3Jv cwo+IAo+ICAgIFJlbmFtZSB0b19pcHFfcHdtX2NoaXAoKSB0byBpcHFfcHdtX2Zyb21fY2hpcCgp Cj4gCj4gICAgQ2hhbmdlIGJhcmUgJ3Vuc2lnbmVkJyB0byAndW5zaWduZWQgaW50Jwo+IAo+ICAg IENsYXJpZnkgdGhlIGNvbW1lbnQgb24gc2VwYXJhdGUgUkVHMSB3cml0ZSBmb3IgZW5hYmxlL2Rp c2FibGUKPiAKPiAgICBSb3VuZCB1cCB0aGUgcGVyaW9kIHZhbHVlIGluIC5nZXRfc3RhdGUKPiAK PiAgICBVc2UgZGlyZWN0IHJlYWRsL3dyaXRlbCBzbyBubyBuZWVkIHRvIGNoZWNrIGZvciByZWdt YXAgZXJyb3JzCj4gCj4gdjc6Cj4gCj4gICAgQ2hhbmdlICdvZmZzZXQnIHRvICdyZWcnIGZvciB0 aGUgdGNzciBvZmZzZXQgKFJvYikKPiAKPiAgICBEcm9wIGNsb2NrIG5hbWU7IHRoZXJlIGlzIG9u bHkgb25lIGNsb2NrIChCam9ybikKPiAKPiAgICBTaW1wbGlmeSBwcm9iZSBmYWlsdXJlIGNvZGUg cGF0aCAoQmpvcm4pCj4gCj4gdjY6Cj4gCj4gQWRkcmVzcyBVd2UgS2xlaW5lLUvDtm5pZyByZXZp ZXcgY29tbWVudHM6Cj4gCj4gICAgRHJvcCBJUFFfUFdNX01BWF9ERVZJQ0VTCj4gCj4gICAgUmVs eSBvbiBhc3NpZ25lZC1jbG9jay1yYXRlczsgZHJvcCBJUFFfUFdNX0NMS19TUkNfRlJFUQo+IAo+ ICAgIFNpbXBsaWZ5IHJlZ2lzdGVyIG9mZnNldCBjYWxjdWxhdGlvbgo+IAo+ICAgIENhbGN1bGF0 ZSBkdXR5IGN5Y2xlIG1vcmUgcHJlY2lzZWx5Cj4gCj4gICAgUmVmdXNlIHRvIHNldCBpbnZlcnRl ZCBwb2xhcml0eQo+IAo+ICAgIERyb3AgcmVkdW5kYW50IElQUV9QV01fUkVHMV9FTkFCTEUgYml0 IGNsZWFyCj4gCj4gICAgUmVtb3ZlIHgxMDAwIGZhY3RvciBpbiBwd21fZGl2IGNhbGN1bGF0aW9u LCB1c2UgcmF0ZSBkaXJlY3RseSwgYW5kIHJvdW5kIHVwCj4gCj4gICAgQ2hvb3NlIGluaXRpYWwg cHJlX2RpdiBzdWNoIHRoYXQgcHdtX2RpdiA8IElQUV9QV01fTUFYX0RJVgo+IAo+ICAgIEVuc3Vy ZSBwcmVfZGl2IDw9IHB3bV9kaXYKPiAKPiAgICBSZW5hbWUgY2xvc2VfIHRvIGJlc3RfCj4gCj4g ICAgRXhwbGFpbiBpbiBjb21tZW50IHdoeSBlZmZlY3RpdmVfZGl2IGRvZXNuJ3Qgb3ZlcmZsb3cK PiAKPiAgICBMaW1pdCBwd21fZGl2IHRvIElQUV9QV01fTUFYX0RJViAtIDEgdG8gYWxsb3cgMTAw JSBkdXR5IGN5Y2xlCj4gCj4gICAgRGlzYWJsZSBjbG9jayBvbmx5IGFmdGVyIHB3bWNoaXBfcmVt b3ZlKCkKPiAKPiAgICBjb25zdCBwd21fb3BzCj4gCj4gT3RoZXIgY2hhbmdlczoKPiAKPiAgICBB ZGQgbWlzc2luZyBsaW51eC9iaXRmaWVsZC5oIGhlYWRlciBpbmNsdWRlIChrZXJuZWwgdGVzdCBy b2JvdCkKPiAKPiAgICBBZGp1c3QgY29kZSBmb3IgUFdNIGRldmljZSBub2RlIHVuZGVyIFRDU1Ig KFJvYiBIZXJyaW5nKQo+IAo+IHY1Ogo+IAo+IFVzZSAmdGNzcl9xNiBzeXNjb24gdG8gYWNjZXNz IHJlZ2lzdGVycyAoQmpvcm4gQW5kZXJzc29uKQo+IAo+IEFkZHJlc3MgVXdlIEtsZWluZS1Lw7Zu aWcgcmV2aWV3IGNvbW1lbnRzOgo+IAo+ICAgIEltcGxlbWVudCAuZ2V0X3N0YXRlKCkKPiAKPiAg ICBBZGQgSVBRX1BXTV8gcHJlZml4IHRvIGxvY2FsIG1hY3Jvcwo+IAo+ICAgIFVzZSBHRU5NQVNL L0JJVC9GSUVMRF9QUkVQIGZvciByZWdpc3RlciBmaWVsZHMgYWNjZXNzCj4gCj4gICAgTWFrZSB0 eXBlIG9mIGNvbmZpZ19kaXZfYW5kX2R1dHkoKSBwYXJhbWV0ZXJzIGNvbnNpc3RlbnQKPiAKPiAg ICBEZXJpdmUgSVBRX1BXTV9NSU5fUEVSSU9EX05TIGZyb20gSVBRX1BXTV9DTEtfU1JDX0ZSRVEK PiAKPiAgICBJbnRlZ3JhdGUgZW5hYmxlL2Rpc2FibGUgaW50byBjb25maWdfZGl2X2FuZF9kdXR5 KCkgdG8gc2F2ZSByZWdpc3RlciByZWFkLAo+ICAgIGFuZCByZWR1Y2UgZnJlcXVlbmN5IGdsaXRj aCBvbiB1cGRhdGUKPiAKPiAgICBVc2UgbWluKCkgaW5zdGVhZCBvZiBtaW5fdCgpCj4gCj4gICAg Rml4IGNvbW1lbnQgZm9ybWF0Cj4gCj4gICAgVXNlIGRldl9lcnJfcHJvYmUoKSB0byBpbmRpY2F0 ZSBwcm9iZSBzdGVwIGZhaWx1cmUKPiAKPiAgICBBZGQgbWlzc2luZyBjbGtfZGlzYWJsZV91bnBy ZXBhcmUoKSBpbiAucmVtb3ZlCj4gCj4gICAgRG9uJ3Qgc2V0IC5vd25lcgo+IAo+IHY0Ogo+IAo+ ICAgIFVzZSBkaXY2NF91NjQoKSB0byBmaXggbGluayBmb3IgMzItYml0IHRhcmdldHMgKChrZXJu ZWwgdGVzdCByb2JvdAo+ICAgIDxsa3BAaW50ZWwuY29tPiwgVXdlIEtsZWluZS1Lw7ZuaWcpCj4g Cj4gdjM6Cj4gCj4gICAgcy9xY29tLHB3bS1pcHE2MDE4L3Fjb20saXBxNjAxOC1wd20vIChSb2Ig SGVycmluZykKPiAKPiAgICBGaXggaW50ZWdlciBvdmVyZmxvdyBvbiAzMi1iaXQgdGFyZ2V0cyAo a2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+KQo+IAo+IHYyOgo+IAo+IEFkZHJlc3Mg VXdlIEtsZWluZS1Lw7ZuaWcgcmV2aWV3IGNvbW1lbnRzOgo+IAo+ICAgIEZpeCBwZXJpb2QgY2Fs Y3VsYXRpb24gd2hlbiBvdXQgb2YgcmFuZ2UKPiAKPiAgICBEb24ndCBzZXQgcGVyaW9kIGxhcmdl ciB0aGFuIHJlcXVlc3RlZAo+IAo+ICAgIFJlbW92ZSBQV00gZGlzYWJsZSBvbiBjb25maWd1cmF0 aW9uIGNoYW5nZQo+IAo+ICAgIEltcGxlbWVudCAuYXBwbHkgaW5zdGVhZCBvZiBub24tYXRvbWlj IC5jb25maWcvLmVuYWJsZS8uZGlzYWJsZQo+IAo+ICAgIERvbid0IG1vZGlmeSBQV00gb24gLnJl cXVlc3QvLmZyZWUKPiAKPiAgICBDaGVjayBwd21fZGl2IHVuZGVyZmxvdwo+IAo+ICAgIEZpeCB2 YXJpb3VzIGNvZGUgYW5kIGNvbW1lbnQgZm9ybWF0dGluZyBpc3N1ZXMKPiAKPiBPdGhlciBjaGFu Z2VzOgo+IAo+ICAgIFVzZSB1NjQgZGl2aXNvciBzYWZlIGRpdmlzaW9uCj4gCj4gICAgUmVtb3Zl IG5vdyBlbXB0eSAucmVxdWVzdC8uZnJlZQo+IC0tLQo+ICAgZHJpdmVycy9wd20vS2NvbmZpZyAg IHwgIDEyICsrCj4gICBkcml2ZXJzL3B3bS9NYWtlZmlsZSAgfCAgIDEgKwo+ICAgZHJpdmVycy9w d20vcHdtLWlwcS5jIHwgMjgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAyOTQgaW5zZXJ0aW9ucygrKQo+ICAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvcHdtL3B3bS1pcHEuYwo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3B3bS9LY29uZmlnIGIvZHJpdmVycy9wd20vS2NvbmZpZwo+IGluZGV4IDIxZTNiMDVhNTE1My4u ZTM5NzE4MTM3ZWNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcHdtL0tjb25maWcKPiArKysgYi9k cml2ZXJzL3B3bS9LY29uZmlnCj4gQEAgLTI2MCw2ICsyNjAsMTggQEAgY29uZmlnIFBXTV9JTlRF TF9MR00KPiAgIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBN IGhlcmU6IHRoZSBtb2R1bGUKPiAgIAkgIHdpbGwgYmUgY2FsbGVkIHB3bS1pbnRlbC1sZ20uCj4g ICAKPiArY29uZmlnIFBXTV9JUFEKPiArCXRyaXN0YXRlICJJUFEgUFdNIHN1cHBvcnQiCj4gKwlk ZXBlbmRzIG9uIEFSQ0hfUUNPTSB8fCBDT01QSUxFX1RFU1QKPiArCWRlcGVuZHMgb24gSEFWRV9D TEsgJiYgSEFTX0lPTUVNCj4gKwloZWxwCj4gKwkgIEdlbmVyaWMgUFdNIGZyYW1ld29yayBkcml2 ZXIgZm9yIElQUSBQV00gYmxvY2sgd2hpY2ggc3VwcG9ydHMKPiArCSAgNCBwd20gY2hhbm5lbHMu IEVhY2ggb2YgdGhlIHRoZXNlIGNoYW5uZWxzIGNhbiBiZSBjb25maWd1cmVkCj4gKwkgIGluZGVw ZW5kZW50IG9mIGVhY2ggb3RoZXIuCj4gKwo+ICsJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFz IGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCj4gKwkgIHdpbGwgYmUgY2FsbGVk IHB3bS1pcHEuCj4gKwo+ICAgY29uZmlnIFBXTV9JUVM2MjBBCj4gICAJdHJpc3RhdGUgIkF6b3Rl cSBJUVM2MjBBIFBXTSBzdXBwb3J0Igo+ICAgCWRlcGVuZHMgb24gTUZEX0lRUzYyWCB8fCBDT01Q SUxFX1RFU1QKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vTWFrZWZpbGUgYi9kcml2ZXJzL3B3 bS9NYWtlZmlsZQo+IGluZGV4IDcwODg0MGI3ZmJhOC4uNzQwMmZlYWU0YjM2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvcHdtL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9wd20vTWFrZWZpbGUKPiBA QCAtMjIsNiArMjIsNyBAQCBvYmotJChDT05GSUdfUFdNX0lNWDEpCQkrPSBwd20taW14MS5vCj4g ICBvYmotJChDT05GSUdfUFdNX0lNWDI3KQkJKz0gcHdtLWlteDI3Lm8KPiAgIG9iai0kKENPTkZJ R19QV01fSU1YX1RQTSkJKz0gcHdtLWlteC10cG0ubwo+ICAgb2JqLSQoQ09ORklHX1BXTV9JTlRF TF9MR00pCSs9IHB3bS1pbnRlbC1sZ20ubwo+ICtvYmotJChDT05GSUdfUFdNX0lQUSkJCSs9IHB3 bS1pcHEubwo+ICAgb2JqLSQoQ09ORklHX1BXTV9JUVM2MjBBKQkrPSBwd20taXFzNjIwYS5vCj4g ICBvYmotJChDT05GSUdfUFdNX0paNDc0MCkJKz0gcHdtLWp6NDc0MC5vCj4gICBvYmotJChDT05G SUdfUFdNX0tFRU1CQVkpCSs9IHB3bS1rZWVtYmF5Lm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9w d20vcHdtLWlwcS5jIGIvZHJpdmVycy9wd20vcHdtLWlwcS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjk5NDAyNzI5MGJjYgo+IC0tLSAvZGV2L251bGwKPiAr KysgYi9kcml2ZXJzL3B3bS9wd20taXBxLmMKPiBAQCAtMCwwICsxLDI4MSBAQAo+ICsvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlIE9SIEdQTC0yLjAKPiArLyoKPiArICog Q29weXJpZ2h0IChjKSAyMDE2LTIwMTcsIDIwMjAgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9w d20uaD4KPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4K PiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tYXRoNjQuaD4KPiAr I2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvYml0ZmllbGQu aD4KPiArI2luY2x1ZGUgPGxpbnV4L3VuaXRzLmg+Cj4gKwo+ICsvKiBUaGUgZnJlcXVlbmN5IHJh bmdlIHN1cHBvcnRlZCBpcyAxIEh6IHRvIGNsb2NrIHJhdGUgKi8KPiArI2RlZmluZSBJUFFfUFdN X01BWF9QRVJJT0RfTlMJKCh1NjQpTlNFQ19QRVJfU0VDKQo+ICsKPiArLyoKPiArICogVGhlIG1h eCB2YWx1ZSBzcGVjaWZpZWQgZm9yIGVhY2ggZmllbGQgaXMgYmFzZWQgb24gdGhlIG51bWJlciBv ZiBiaXRzCj4gKyAqIGluIHRoZSBwd20gY29udHJvbCByZWdpc3RlciBmb3IgdGhhdCBmaWVsZAo+ ICsgKi8KPiArI2RlZmluZSBJUFFfUFdNX01BWF9ESVYJCTB4RkZGRgo+ICsKPiArLyoKPiArICog VHdvIDMyLWJpdCByZWdpc3RlcnMgZm9yIGVhY2ggUFdNOiBSRUcwLCBhbmQgUkVHMS4KPiArICog QmFzZSBvZmZzZXQgZm9yIFBXTSAjaSBpcyBhdCA4ICogI2kuCj4gKyAqLwo+ICsjZGVmaW5lIElQ UV9QV01fUkVHMAkJCTAKPiArI2RlZmluZSBJUFFfUFdNX1JFRzBfUFdNX0RJVgkJR0VOTUFTSygx NSwgMCkKPiArI2RlZmluZSBJUFFfUFdNX1JFRzBfSElfRFVSQVRJT04JR0VOTUFTSygzMSwgMTYp Cj4gKwo+ICsjZGVmaW5lIElQUV9QV01fUkVHMQkJCTQKPiArI2RlZmluZSBJUFFfUFdNX1JFRzFf UFJFX0RJVgkJR0VOTUFTSygxNSwgMCkKPiArLyoKPiArICogRW5hYmxlIGJpdCBpcyBzZXQgdG8g ZW5hYmxlIG91dHB1dCB0b2dnbGluZyBpbiBwd20gZGV2aWNlLgo+ICsgKiBVcGRhdGUgYml0IGlz IHNldCB0byByZWZsZWN0IHRoZSBjaGFuZ2VkIGRpdmlkZXIgYW5kIGhpZ2ggZHVyYXRpb24KPiAr ICogdmFsdWVzIGluIHJlZ2lzdGVyLgo+ICsgKi8KPiArI2RlZmluZSBJUFFfUFdNX1JFRzFfVVBE QVRFCQlCSVQoMzApCj4gKyNkZWZpbmUgSVBRX1BXTV9SRUcxX0VOQUJMRQkJQklUKDMxKQo+ICsK PiArCj4gK3N0cnVjdCBpcHFfcHdtX2NoaXAgewo+ICsJc3RydWN0IHB3bV9jaGlwIGNoaXA7Cj4g KwlzdHJ1Y3QgY2xrICpjbGs7Cj4gKwl2b2lkIF9faW9tZW0gKm1lbTsKPiArfTsKPiArCj4gK3N0 YXRpYyBzdHJ1Y3QgaXBxX3B3bV9jaGlwICppcHFfcHdtX2Zyb21fY2hpcChzdHJ1Y3QgcHdtX2No aXAgKmNoaXApCj4gK3sKPiArCXJldHVybiBjb250YWluZXJfb2YoY2hpcCwgc3RydWN0IGlwcV9w d21fY2hpcCwgY2hpcCk7Cj4gK30KPiArCj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgaXBxX3B3bV9y ZWdfcmVhZChzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCB1bnNpZ25lZCBpbnQgcmVnKQo+ICt7Cj4g KwlzdHJ1Y3QgaXBxX3B3bV9jaGlwICppcHFfY2hpcCA9IGlwcV9wd21fZnJvbV9jaGlwKHB3bS0+ Y2hpcCk7Cj4gKwl1bnNpZ25lZCBpbnQgb2ZmID0gOCAqIHB3bS0+aHdwd20gKyByZWc7Cj4gKwo+ ICsJcmV0dXJuIHJlYWRsKGlwcV9jaGlwLT5tZW0gKyBvZmYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBpcHFfcHdtX3JlZ193cml0ZShzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCB1bnNpZ25lZCBp bnQgcmVnLAo+ICsJCQkgICAgICB1bnNpZ25lZCBpbnQgdmFsKQo+ICt7Cj4gKwlzdHJ1Y3QgaXBx X3B3bV9jaGlwICppcHFfY2hpcCA9IGlwcV9wd21fZnJvbV9jaGlwKHB3bS0+Y2hpcCk7Cj4gKwl1 bnNpZ25lZCBpbnQgb2ZmID0gOCAqIHB3bS0+aHdwd20gKyByZWc7Cj4gKwo+ICsJd3JpdGVsKHZh bCwgaXBxX2NoaXAtPm1lbSArIG9mZik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNvbmZpZ19k aXZfYW5kX2R1dHkoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwgdW5zaWduZWQgaW50IHByZV9kaXYs Cj4gKwkJCXVuc2lnbmVkIGludCBwd21fZGl2LCB1bnNpZ25lZCBsb25nIHJhdGUsIHU2NCBkdXR5 X25zLAo+ICsJCQlib29sIGVuYWJsZSkKPiArewo+ICsJdW5zaWduZWQgbG9uZyBoaV9kdXI7Cj4g Kwl1bnNpZ25lZCBsb25nIHZhbCA9IDA7Cj4gKwo+ICsJLyoKPiArCSAqIGhpZ2ggZHVyYXRpb24g PSBwd20gZHV0eSAqIChwd20gZGl2ICsgMSkKPiArCSAqIHB3bSBkdXR5ID0gZHV0eV9ucyAvIHBl cmlvZF9ucwo+ICsJICovCj4gKwloaV9kdXIgPSBkaXY2NF91NjQoZHV0eV9ucyAqIHJhdGUsIChw cmVfZGl2ICsgMSkgKiBOU0VDX1BFUl9TRUMpOwo+ICsKPiArCXZhbCA9IEZJRUxEX1BSRVAoSVBR X1BXTV9SRUcwX0hJX0RVUkFUSU9OLCBoaV9kdXIpIHwKPiArCQlGSUVMRF9QUkVQKElQUV9QV01f UkVHMF9QV01fRElWLCBwd21fZGl2KTsKPiArCWlwcV9wd21fcmVnX3dyaXRlKHB3bSwgSVBRX1BX TV9SRUcwLCB2YWwpOwo+ICsKPiArCXZhbCA9IEZJRUxEX1BSRVAoSVBRX1BXTV9SRUcxX1BSRV9E SVYsIHByZV9kaXYpOwo+ICsJaXBxX3B3bV9yZWdfd3JpdGUocHdtLCBJUFFfUFdNX1JFRzEsIHZh bCk7Cj4gKwo+ICsJLyogUFdNIGVuYWJsZSB0b2dnbGUgbmVlZHMgYSBzZXBhcmF0ZSB3cml0ZSB0 byBSRUcxICovCj4gKwl2YWwgfD0gSVBRX1BXTV9SRUcxX1VQREFURTsKPiArCWlmIChlbmFibGUp Cj4gKwkJdmFsIHw9IElQUV9QV01fUkVHMV9FTkFCTEU7Cj4gKwlpcHFfcHdtX3JlZ193cml0ZShw d20sIElQUV9QV01fUkVHMSwgdmFsKTsKPiArfQo+ICsKPiArc3RhdGljIGludCBpcHFfcHdtX2Fw cGx5KHN0cnVjdCBwd21fY2hpcCAqY2hpcCwgc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwKPiArCQkJ IGNvbnN0IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgaXBxX3B3bV9j aGlwICppcHFfY2hpcCA9IGlwcV9wd21fZnJvbV9jaGlwKGNoaXApOwo+ICsJdW5zaWduZWQgaW50 IHByZV9kaXYsIHB3bV9kaXYsIGJlc3RfcHJlX2RpdiwgYmVzdF9wd21fZGl2Owo+ICsJdW5zaWdu ZWQgbG9uZyByYXRlID0gY2xrX2dldF9yYXRlKGlwcV9jaGlwLT5jbGspOwo+ICsJdTY0IHBlcmlv ZF9ucywgZHV0eV9ucywgcGVyaW9kX3JhdGU7Cj4gKwl1NjQgbWluX2RpZmY7Cj4gKwo+ICsJaWYg KHN0YXRlLT5wb2xhcml0eSAhPSBQV01fUE9MQVJJVFlfTk9STUFMKQo+ICsJCXJldHVybiAtRUlO VkFMOwo+ICsKPiArCWlmIChzdGF0ZS0+cGVyaW9kIDwgRElWNjRfVTY0X1JPVU5EX1VQKE5TRUNf UEVSX1NFQywgcmF0ZSkpCj4gKwkJcmV0dXJuIC1FUkFOR0U7Cj4gKwo+ICsJcGVyaW9kX25zID0g bWluKHN0YXRlLT5wZXJpb2QsIElQUV9QV01fTUFYX1BFUklPRF9OUyk7Cj4gKwlkdXR5X25zID0g bWluKHN0YXRlLT5kdXR5X2N5Y2xlLCBwZXJpb2RfbnMpOwo+ICsKPiArCS8qCj4gKwkgKiBwZXJp b2RfbnMgaXMgMUcgb3IgbGVzcy4gQXMgbG9uZyBhcyByYXRlIGlzIGxlc3MgdGhhbiAxNiBHSHos Cj4gKwkgKiBwZXJpb2RfcmF0ZSBkb2VzIG5vdCBvdmVyZmxvdy4gTWFrZSB0aGF0IGV4cGxpY2l0 Lgo+ICsJICovCj4gKwlpZiAocmF0ZSA+IDE2VUxMICogR0lHQSkKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCXBlcmlvZF9yYXRlID0gcGVyaW9kX25zICogcmF0ZTsKPiArCWJlc3RfcHJlX2RpdiA9 IElQUV9QV01fTUFYX0RJVjsKPiArCWJlc3RfcHdtX2RpdiA9IElQUV9QV01fTUFYX0RJVjsKPiAr CS8qCj4gKwkgKiBXZSBkb24ndCBuZWVkIHRvIGNvbnNpZGVyIHByZV9kaXYgdmFsdWVzIHNtYWxs ZXIgdGhhbgo+ICsJICoKPiArCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyaW9k X3JhdGUKPiArCSAqICBwcmVfZGl2X21pbiA6PSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiArCSAqICAgICAgICAgICAgICAgICBOU0VDX1BFUl9TRUMgKiAoSVBRX1BXTV9N QVhfRElWICsgMSkKPiArCSAqCj4gKwkgKiBiZWNhdXNlIHByZV9kaXYgPSBwcmVfZGl2X21pbiBy ZXN1bHRzIGluIGEgYmV0dGVyCj4gKwkgKiBhcHByb3hpbWF0aW9uLgo+ICsJICovCj4gKwlwcmVf ZGl2ID0gZGl2NjRfdTY0KHBlcmlvZF9yYXRlLAo+ICsJCQkodTY0KU5TRUNfUEVSX1NFQyAqIChJ UFFfUFdNX01BWF9ESVYgKyAxKSk7Cj4gKwltaW5fZGlmZiA9IHBlcmlvZF9yYXRlOwo+ICsKPiAr CWZvciAoOyBwcmVfZGl2IDw9IElQUV9QV01fTUFYX0RJVjsgcHJlX2RpdisrKSB7Cj4gKwkJdTY0 IHJlbWFpbmRlcjsKPiArCj4gKwkJcHdtX2RpdiA9IGRpdjY0X3U2NF9yZW0ocGVyaW9kX3JhdGUs Cj4gKwkJCQkodTY0KU5TRUNfUEVSX1NFQyAqIChwcmVfZGl2ICsgMSksICZyZW1haW5kZXIpOwo+ ICsJCS8qIHB3bV9kaXYgaXMgdW5zaWduZWQ7IHRoZSBjaGVjayBiZWxvdyBjYXRjaGVzIHVuZGVy ZmxvdyAqLwo+ICsJCXB3bV9kaXYtLTsKPiArCj4gKwkJLyoKPiArCQkgKiBTd2FwcGluZyB2YWx1 ZXMgZm9yIHByZV9kaXYgYW5kIHB3bV9kaXYgcHJvZHVjZXMgdGhlIHNhbWUKPiArCQkgKiBwZXJp b2QgbGVuZ3RoLiBTbyB3ZSBjYW4gc2tpcCBhbGwgc2V0dGluZ3Mgd2l0aCBwcmVfZGl2ID4KPiAr CQkgKiBwd21fZGl2IHdoaWNoIHJlc3VsdHMgaW4gYmlnZ2VyIGNvbnN0cmFpbnRzIGZvciBzZWxl Y3RpbmcKPiArCQkgKiB0aGUgZHV0eV9jeWNsZSB0aGFuIHdpdGggdGhlIHR3byB2YWx1ZXMgc3dh cHBlZC4KPiArCQkgKi8KPiArCQlpZiAocHJlX2RpdiA+IHB3bV9kaXYpCj4gKwkJCWJyZWFrOwo+ ICsKPiArCQkvKgo+ICsJCSAqIE1ha2Ugc3VyZSB3ZSBjYW4gZG8gMTAwJSBkdXR5IGN5Y2xlIHdo ZXJlCj4gKwkJICogaGlfZHVyID09IHB3bV9kaXYgKyAxCj4gKwkJICovCj4gKwkJaWYgKHB3bV9k aXYgPiBJUFFfUFdNX01BWF9ESVYgLSAxKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWYgKHJl bWFpbmRlciA8IG1pbl9kaWZmKSB7Cj4gKwkJCWJlc3RfcHJlX2RpdiA9IHByZV9kaXY7Cj4gKwkJ CWJlc3RfcHdtX2RpdiA9IHB3bV9kaXY7Cj4gKwkJCW1pbl9kaWZmID0gcmVtYWluZGVyOwo+ICsK PiArCQkJaWYgKG1pbl9kaWZmID09IDApIC8qIGJpbmdvICovCj4gKwkJCQlicmVhazsKPiArCQl9 Cj4gKwl9Cj4gKwo+ICsJLyogY29uZmlnIGRpdmlkZXIgdmFsdWVzIGZvciB0aGUgY2xvc2VzdCBw b3NzaWJsZSBmcmVxdWVuY3kgKi8KPiArCWNvbmZpZ19kaXZfYW5kX2R1dHkocHdtLCBiZXN0X3By ZV9kaXYsIGJlc3RfcHdtX2RpdiwKPiArCQkJICAgIHJhdGUsIGR1dHlfbnMsIHN0YXRlLT5lbmFi bGVkKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgaXBxX3B3bV9n ZXRfc3RhdGUoc3RydWN0IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLAo+ ICsJCQkgICAgICBzdHJ1Y3QgcHdtX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGlwcV9w d21fY2hpcCAqaXBxX2NoaXAgPSBpcHFfcHdtX2Zyb21fY2hpcChjaGlwKTsKPiArCXVuc2lnbmVk IGxvbmcgcmF0ZSA9IGNsa19nZXRfcmF0ZShpcHFfY2hpcC0+Y2xrKTsKPiArCXVuc2lnbmVkIGlu dCBwcmVfZGl2LCBwd21fZGl2LCBoaV9kdXI7Cj4gKwl1NjQgZWZmZWN0aXZlX2RpdiwgaGlfZGl2 Owo+ICsJdTMyIHJlZzAsIHJlZzE7Cj4gKwo+ICsJcmVnMCA9IGlwcV9wd21fcmVnX3JlYWQocHdt LCBJUFFfUFdNX1JFRzApOwo+ICsJcmVnMSA9IGlwcV9wd21fcmVnX3JlYWQocHdtLCBJUFFfUFdN X1JFRzEpOwo+ICsKPiArCXN0YXRlLT5wb2xhcml0eSA9IFBXTV9QT0xBUklUWV9OT1JNQUw7Cj4g KwlzdGF0ZS0+ZW5hYmxlZCA9IHJlZzEgJiBJUFFfUFdNX1JFRzFfRU5BQkxFOwo+ICsKPiArCXB3 bV9kaXYgPSBGSUVMRF9HRVQoSVBRX1BXTV9SRUcwX1BXTV9ESVYsIHJlZzApOwo+ICsJaGlfZHVy ID0gRklFTERfR0VUKElQUV9QV01fUkVHMF9ISV9EVVJBVElPTiwgcmVnMCk7Cj4gKwlwcmVfZGl2 ID0gRklFTERfR0VUKElQUV9QV01fUkVHMV9QUkVfRElWLCByZWcxKTsKPiArCj4gKwkvKiBObyBv dmVyZmxvdyBoZXJlLCBib3RoIHByZV9kaXYgYW5kIHB3bV9kaXYgPD0gMHhmZmZmICovCj4gKwll ZmZlY3RpdmVfZGl2ID0gKHU2NCkocHJlX2RpdiArIDEpICogKHB3bV9kaXYgKyAxKTsKPiArCXN0 YXRlLT5wZXJpb2QgPSBESVY2NF9VNjRfUk9VTkRfVVAoZWZmZWN0aXZlX2RpdiAqIE5TRUNfUEVS X1NFQywgcmF0ZSk7Cj4gKwo+ICsJaGlfZGl2ID0gaGlfZHVyICogKHByZV9kaXYgKyAxKTsKPiAr CXN0YXRlLT5kdXR5X2N5Y2xlID0gRElWNjRfVTY0X1JPVU5EX1VQKGhpX2RpdiAqIE5TRUNfUEVS X1NFQywgcmF0ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdtX29wcyBpcHFf cHdtX29wcyA9IHsKPiArCS5hcHBseSA9IGlwcV9wd21fYXBwbHksCj4gKwkuZ2V0X3N0YXRlID0g aXBxX3B3bV9nZXRfc3RhdGUsCj4gKwkub3duZXIgPSBUSElTX01PRFVMRSwKPiArfTsKPiArCj4g K3N0YXRpYyBpbnQgaXBxX3B3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ICt7Cj4gKwlzdHJ1Y3QgaXBxX3B3bV9jaGlwICpwd207Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYg PSAmcGRldi0+ZGV2Owo+ICsJaW50IHJldDsKPiArCj4gKwlwd20gPSBkZXZtX2t6YWxsb2MoZGV2 LCBzaXplb2YoKnB3bSksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFwd20pCj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gKwo+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHdtKTsKPiArCj4gKwlw d20tPm1lbSA9IGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKPiArCWlm IChJU19FUlIocHdtLT5tZW0pKQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VS Uihwd20tPm1lbSksCj4gKwkJCQkicmVncyBtYXAgZmFpbGVkIik7Cj4gKwo+ICsJcHdtLT5jbGsg PSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxMKTsKPiArCWlmIChJU19FUlIocHdtLT5jbGspKQo+ICsJ CXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwd20tPmNsayksCj4gKwkJCQkiZmFp bGVkIHRvIGdldCBjbG9jayIpOwo+ICsKPiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShwd20t PmNsayk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAi Y2xvY2sgZW5hYmxlIGZhaWxlZCIpOwo+ICsKPiArCXB3bS0+Y2hpcC5kZXYgPSBkZXY7Cj4gKwlw d20tPmNoaXAub3BzID0gJmlwcV9wd21fb3BzOwo+ICsJcHdtLT5jaGlwLm5wd20gPSA0Owo+ICsK PiArCXJldCA9IHB3bWNoaXBfYWRkKCZwd20tPmNoaXApOwo+ICsJaWYgKHJldCA8IDApIHsKPiAr CQlkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAicHdtY2hpcF9hZGQoKSBmYWlsZWRcbiIpOwo+ICsJ CWNsa19kaXNhYmxlX3VucHJlcGFyZShwd20tPmNsayk7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHJl dDsKPiArfQo+ICsKPiArc3RhdGljIGludCBpcHFfcHdtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgaXBxX3B3bV9jaGlwICpwd20gPSBwbGF0Zm9y bV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiArCj4gKwlwd21jaGlwX3JlbW92ZSgmcHdtLT5jaGlwKTsK PiArCWNsa19kaXNhYmxlX3VucHJlcGFyZShwd20tPmNsayk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHB3bV9pcHFfZHRfbWF0 Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAicWNvbSxpcHE2MDE4LXB3bSIsIH0sCj4gKwl7 fQo+ICt9Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBwd21faXBxX2R0X21hdGNoKTsKPiAr Cj4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlwcV9wd21fZHJpdmVyID0gewo+ICsJ LmRyaXZlciA9IHsKPiArCQkubmFtZSA9ICJpcHEtcHdtIiwKPiArCQkub2ZfbWF0Y2hfdGFibGUg PSBwd21faXBxX2R0X21hdGNoLAo+ICsJfSwKPiArCS5wcm9iZSA9IGlwcV9wd21fcHJvYmUsCj4g KwkucmVtb3ZlID0gaXBxX3B3bV9yZW1vdmUsCj4gK307Cj4gKwo+ICttb2R1bGVfcGxhdGZvcm1f ZHJpdmVyKGlwcV9wd21fZHJpdmVyKTsKPiArCj4gK01PRFVMRV9MSUNFTlNFKCJEdWFsIEJTRC9H UEwiKTsKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK