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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 86B68C6FD1D for ; Tue, 14 Mar 2023 10:35:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230304AbjCNKfl (ORCPT ); Tue, 14 Mar 2023 06:35:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52256 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229868AbjCNKer (ORCPT ); Tue, 14 Mar 2023 06:34:47 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 90A4990083; Tue, 14 Mar 2023 03:34:20 -0700 (PDT) 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 32E3W47Y014252; Tue, 14 Mar 2023 10:23:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=qcppdkim1; bh=DSt5WNPdgBdbXirXcKdJ5LGfPfk/JLgsUB2VAtQWyas=; b=mHaZ94tUd2XXj2SkvF1PE0BELSBb0drKnqxvs5jU0QKoRdMumBLCt8bEs5g2yzYcuKSt 9IKE+6nzvvltOea5eYj15VwBicLx4q76JvK5dVkHPGNEx+YAKPK5iIEm96/kYjkV2+D8 8iWUumXwDj3edoBXs0qdXbODsF+rdP/nwNKy5rigVxX55/m/+i/v6d/qFWpao5ZKutbm lgyNTuF1A5B56ZiVcJ0JesZDG5QWFu6WVu+0ZuURfrd/ZNxhQG6+jua+QYbPyXveHNXf 47NUuYFXrBKt0wWwQeIwxK0VHf4El0hC+hdvKpRz5PknzBAh1ry+IuFNfLwh9XwLaEjS 3g== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pa1qgufvk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Mar 2023 10:23:22 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 32EANMPo022678 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 14 Mar 2023 10:23:22 GMT Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 14 Mar 2023 03:23:21 -0700 Received: from nalasex01a.na.qualcomm.com ([fe80::96c7:affa:94e1:ece3]) by nalasex01a.na.qualcomm.com ([fe80::96c7:affa:94e1:ece3%4]) with mapi id 15.02.0986.041; Tue, 14 Mar 2023 03:23:21 -0700 From: "Sankeerth Billakanti (QUIC)" To: "dmitry.baryshkov@linaro.org" CC: "dri-devel@lists.freedesktop.org" , "linux-arm-msm@vger.kernel.org" , "freedreno@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "robdclark@gmail.com" , "seanpaul@chromium.org" , "swboyd@chromium.org" , "Kalyan Thota (QUIC)" , "Abhinav Kumar (QUIC)" , "dianders@chromium.org" , "Kuogee Hsieh (QUIC)" , "Bjorn Andersson (QUIC)" , "sean@poorly.run" , "airlied@linux.ie" , "daniel@ffwll.ch" , "Vishnuvardhan Prodduturi (QUIC)" Subject: RE: [RFC PATCH 1/2] drm/msm/dp: enumerate edp panel during driver probe Thread-Topic: [RFC PATCH 1/2] drm/msm/dp: enumerate edp panel during driver probe Thread-Index: AQHZR467FssNTZzZyEK1D3A6Ue8YH67dJcgAgAhN8vCAANbwgIAT2bDQ Date: Tue, 14 Mar 2023 10:23:21 +0000 Message-ID: <60a96e55bb1048c4974f185bf4547fbe@quicinc.com> References: <20230223135635.30659-1-quic_sbillaka@quicinc.com> <20230223135635.30659-2-quic_sbillaka@quicinc.com> <72b9c34357a443df8cbb55c6eddd8a21@quicinc.com> <5453e551-340a-ce98-1c8e-2ca32ff5b7c5@linaro.org> In-Reply-To: <5453e551-340a-ce98-1c8e-2ca32ff5b7c5@linaro.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.204.67.12] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: k6cmZRfJqFU6Qvupt2ZrBgVYQ9UOuXXG X-Proofpoint-GUID: k6cmZRfJqFU6Qvupt2ZrBgVYQ9UOuXXG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-14_04,2023-03-14_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 mlxscore=0 suspectscore=0 phishscore=0 bulkscore=0 priorityscore=1501 mlxlogscore=999 spamscore=0 clxscore=1011 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303140088 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgRG1pdHJ5LA0KDQo+Pj4+DQo+Pj4+IFRoZSBlRFAgcGFuZWwgaXMgaWRlbnRpZmllZCBhbmQg ZW51bWVyYXRlZCBkdXJpbmcgcHJvYmUgb2YgdGhlDQo+Pj4+IHBhbmVsLWVkcCBkcml2ZXIuIFRo ZSBjdXJyZW50IERQIGRyaXZlciB0cmlnZ2VycyB0aGlzIHBhbmVsLWVkcA0KPj4+PiBkcml2ZXIg cHJvYmUgd2hpbGUgZ2V0dGluZyB0aGUgcGFuZWwtYnJpZGdlIGFzc29jaWF0ZWQgd2l0aCB0aGUg ZURQDQo+Pj4+IHBhbmVsIGZyb20gdGhlIHBsYXRmb3JtIGRyaXZlciBiaW5kLiBJZiB0aGUgcGFu ZWwtZWRwIHByb2JlIGlzDQo+Pj4+IGRlZmVycmVkLCB0aGVuIHRoZSB3aG9sZSBidW5jaCBvZiBN RFNTIHBhcmVudCBhbmQgY2hpbGQgZHJpdmVycyBoYXZlDQo+Pj4+IHRvIGRlZmVyIGFuZA0KPj4+ IHJvbGwgYmFjay4NCj4+Pg0KPj4+IE5vLCBNRFNTIGhhcyBub3QgYmVlbiByb2xsZWQgYmFjayBz aW5jZSA1LjE5LiBQbGVhc2Ugc2hpZnQgeW91cg0KPj4+IGRldmVsb3BtZW50IG9uIHRvcCBvZiB0 aGUgY3VycmVudCBtc20tbmV4dC4NCj4+Pg0KPj4NCj4+IE9rYXksIEkgd2lsbCBtb3ZlIHRvIHRo ZSBtc20tbmV4dCB0aXAuDQo+Pg0KPj4+Pg0KPj4+PiBTbywgd2Ugd2FudCB0byBtb3ZlIHRoZSBw YW5lbCBlbnVtZXJhdGlvbiBmcm9tIGJpbmQgdG8gcHJvYmUgc28gdGhhdA0KPj4+PiB0aGUgcHJv YmUgZGVmZXIgaXMgZWFzaWVyIHRvIGhhbmRsZSBhbmQgYWxzbyBib3RoIHRoZSBkcml2ZXJzIGFw cGVhcg0KPj4+PiBjb25zaXN0ZW50IGluIHBhbmVsIGVudW1lcmF0aW9uLiBUaGlzIGNoYW5nZSBt b3ZlcyB0aGUgRFAgZHJpdmVyDQo+Pj4+IHBhbmVsLWJyaWRnZSBlbnVtZXJhdGlvbiB0byBwcm9i ZS4NCj4+Pj4NCj4+Pj4gU2lnbmVkLW9mZi1ieTogU2Fua2VlcnRoIEJpbGxha2FudGkgPHF1aWNf c2JpbGxha2FAcXVpY2luYy5jb20+DQo+Pj4+IC0tLQ0KPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9t c20vZHAvZHBfYXV4LmMgICAgIHwgMTQ5DQo+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKyst LQ0KPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0YWxvZy5jIHwgIDEyICsrKw0K Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0YWxvZy5oIHwgICAxICsNCj4+Pj4g ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2Rpc3BsYXkuYyB8ICA4MCArKysrKystLS0tLS0t LS0NCj4+Pj4gICA0IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlv bnMoLSkNCj4+Pj4NCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBf YXV4LmMNCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2F1eC5jIGluZGV4DQo+Y2Mz ZWZlZDU5M2FhLi41ZGE5NWRmZGVlZGUNCj4+Pj4gMTAwNjQ0DQo+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZHAvZHBfYXV4LmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k cC9kcF9hdXguYw0KPj4+PiBAQCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyBzc2l6ZV90IGRwX2F1 eF93cml0ZShzdHJ1Y3QNCj4+Pj4gZHBfYXV4X3ByaXZhdGUgKmF1eCwgIH0NCj4+Pj4NCj4+Pj4g ICBzdGF0aWMgc3NpemVfdCBkcF9hdXhfY21kX2ZpZm9fdHgoc3RydWN0IGRwX2F1eF9wcml2YXRl ICphdXgsDQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZHBf YXV4X21zZyAqbXNnKQ0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2RwX2F1eF9tc2cgKm1zZywgYm9vbCBwb2xsKQ0KPj4+DQo+Pj4gV2hhdCBpcyB0aGUgcmVh c29uIGZvciB3b3JraW5nIGluIHBvbGxlZCBtb2RlIHJhdGhlciB0aGFuIGFsd2F5cw0KPj4+IHVz aW5nIHRoZSBpbnRlcnJ1cHRzPw0KPj4+DQo+Pg0KPj4gVGhlIG1kc3MgaW50ZXJydXB0cyB3aWxs IGJlIGVuYWJsZWQgYW5kIGNhbiBiZSB1c2VkIGFmdGVyIG1zbV9pcnFfaW5zdGFsbA0KPmZyb20g bXNtX2RybV9iaW5kLg0KPj4gV2Ugd2FudCB0byBwZXJmb3JtIGF1eCB0cmFuc2FjdGlvbnMgZHVy aW5nIHByb2JlLiBUaGUgYXV4IGRhdGENCj4+IHRyYW5zbWlzc2lvbiBpcyBmb2xsb3dlZCBieSBh biBpbnRlcnJ1cHQgdG8gaW5kaWNhdGUgc3VjY2Vzc2Z1bCB0cmFuc21pc3Npb24NCj5zdGF0dXMg YW5kIHJlcGx5IGluZm9ybWF0aW9uLg0KPg0KPlRoaXMgaXMgdGhlIHByaWNlIG9mIGRldmVsb3Bp bmcgb24sIGxldCBtZSBndWVzcywgNS4xNS4gTm93YWRheXMgTURTUw0KPmludGVycnVwdHMgYXJl IGVuYWJsZWQgYW5kIGNhbiBiZSB1c2VkIGR1cmluZyBkcF9kaXNwbGF5X3Byb2JlKCkgYW5kDQo+ ZHBfZGlzcGxheV9iaW5kKCkuIElmIHRoZXkgY2FuIG5vdCBmb3Igc29tZSByZWFzb24sIHRoaXMg aXMgYW4gaXNzdWUgdGhhdCBtdXN0DQo+YmUgZml4ZWQuIFBsZWFzZSByZWNvbnNpZGVyIHlvdXIg YXBwcm9hY2ggYWZ0ZXIgcmViYXNpbmcgb250byBtc20tbmV4dCBvcg0KPjYuMy1yYzEuDQo+DQoN Ck9uIHRoZSBtc20tbmV4dCBhbHNvLCBJIHNlZSB0aGUgbWRzcyBpcnEgaXMgZW5hYmxlZCBmcm9t IGJpbmQgKGluIG1zbV9kcnYuYykuIA0KbXNtX2RybV9iaW5kIC0+IG1zbV9kcm1faW5pdCAtPiBt c21faXJxX2luc3RhbGwNCg0KQ3VycmVudGx5LCBpbnRlcnJ1cHRzIHdpbGwgbm90IGJlIGF2YWls YWJsZSBkdXJpbmcgdGhlIGRwX2Rpc3BsYXlfcHJvYmUuDQpJcyB0aGVyZSBhIHBhdGNoIHNlcmll cyB3aGljaCBpcyBlbmFibGluZyBJUlFzIGR1cmluZyBtZHNzIHByb2JlPw0KDQo+Pg0KPj4gQXMg aW50ZXJydXB0cyBhcmUgbm90IGVuYWJsZWQsIEkgdG9vayB0aGlzIHBvbGxpbmcgYXBwcm9hY2gg Zm9yIGF1eCBpbnRlcnJ1cHRzDQo+ZHVyaW5nIHByb2JlLg0KPj4NCj4+Pj4gICB7DQo+Pj4+ICAg ICAgICAgIHNzaXplX3QgcmV0Ow0KPj4+PiAgICAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVfbGVm dDsNCj4+Pj4gQEAgLTEyMSwxMCArMTIxLDE2IEBAIHN0YXRpYyBzc2l6ZV90IGRwX2F1eF9jbWRf Zmlmb190eChzdHJ1Y3QNCj4+PiBkcF9hdXhfcHJpdmF0ZSAqYXV4LA0KPj4+PiAgICAgICAgICBp ZiAocmV0IDwgMCkNCj4+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4+Pg0KPj4+ PiAtICAgICAgIHRpbWVfbGVmdCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmYXV4LT5j b21wLA0KPj4+PiArICAgICAgIGlmICghcG9sbCkgew0KPj4+PiArICAgICAgICAgICAgICAgdGlt ZV9sZWZ0ID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZhdXgtPmNvbXAsDQo+Pj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2Vjc190b19q aWZmaWVzKDI1MCkpOw0KPj4+PiAtICAgICAgIGlmICghdGltZV9sZWZ0KQ0KPj4+PiAtICAgICAg ICAgICAgICAgcmV0dXJuIC1FVElNRURPVVQ7DQo+Pj4+ICsgICAgICAgICAgICAgICBpZiAoIXRp bWVfbGVmdCkNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FVElNRURPVVQ7 DQo+Pj4+ICsgICAgICAgfSBlbHNlIHsNCj4+Pj4gKyAgICAgICAgICAgICAgIHJldCA9IGRwX2Nh dGFsb2dfYXV4X3BvbGxfYW5kX2dldF9od19pbnRlcnJ1cHQoYXV4LQ0KPj5jYXRhbG9nKTsNCj4+ Pj4gKyAgICAgICAgICAgICAgIGlmICghcmV0KQ0KPj4+PiArICAgICAgICAgICAgICAgICAgICAg ICBkcF9hdXhfaXNyKCZhdXgtPmRwX2F1eCk7DQo+Pj4+ICsgICAgICAgfQ0KPj4+Pg0KPj4+PiAg ICAgICAgICByZXR1cm4gcmV0Ow0KPj4+PiAgIH0NCj4+Pj4gQEAgLTIzOCw3ICsyNDQsNyBAQCBz dGF0aWMgdm9pZA0KPj4+IGRwX2F1eF91cGRhdGVfb2Zmc2V0X2FuZF9zZWdtZW50KHN0cnVjdCBk cF9hdXhfcHJpdmF0ZSAqYXV4LA0KPj4+PiAgICAqLw0KPj4+PiAgIHN0YXRpYyB2b2lkIGRwX2F1 eF90cmFuc2Zlcl9oZWxwZXIoc3RydWN0IGRwX2F1eF9wcml2YXRlICphdXgsDQo+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZHBfYXV4X21zZyAqaW5w dXRfbXNnLA0KPj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2Vu ZF9zZWcpDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzZW5k X3NlZywgYm9vbCBwb2xsKQ0KPj4+PiAgIHsNCj4+Pj4gICAgICAgICAgc3RydWN0IGRybV9kcF9h dXhfbXNnIGhlbHBlcl9tc2c7DQo+Pj4+ICAgICAgICAgIHUzMiBtZXNzYWdlX3NpemUgPSAweDEw Ow0KPj4+PiBAQCAtMjc4LDcgKzI4NCw3IEBAIHN0YXRpYyB2b2lkIGRwX2F1eF90cmFuc2Zlcl9o ZWxwZXIoc3RydWN0DQo+Pj4gZHBfYXV4X3ByaXZhdGUgKmF1eCwNCj4+Pj4gICAgICAgICAgICAg ICAgICBoZWxwZXJfbXNnLmFkZHJlc3MgPSBzZWdtZW50X2FkZHJlc3M7DQo+Pj4+ICAgICAgICAg ICAgICAgICAgaGVscGVyX21zZy5idWZmZXIgPSAmYXV4LT5zZWdtZW50Ow0KPj4+PiAgICAgICAg ICAgICAgICAgIGhlbHBlcl9tc2cuc2l6ZSA9IDE7DQo+Pj4+IC0gICAgICAgICAgICAgICBkcF9h dXhfY21kX2ZpZm9fdHgoYXV4LCAmaGVscGVyX21zZyk7DQo+Pj4+ICsgICAgICAgICAgICAgICBk cF9hdXhfY21kX2ZpZm9fdHgoYXV4LCAmaGVscGVyX21zZywgcG9sbCk7DQo+Pj4+ICAgICAgICAg IH0NCj4+Pj4NCj4+Pj4gICAgICAgICAgLyoNCj4+Pj4gQEAgLTI5Miw3ICsyOTgsNyBAQCBzdGF0 aWMgdm9pZCBkcF9hdXhfdHJhbnNmZXJfaGVscGVyKHN0cnVjdA0KPj4+IGRwX2F1eF9wcml2YXRl ICphdXgsDQo+Pj4+ICAgICAgICAgIGhlbHBlcl9tc2cuYWRkcmVzcyA9IGlucHV0X21zZy0+YWRk cmVzczsNCj4+Pj4gICAgICAgICAgaGVscGVyX21zZy5idWZmZXIgPSAmYXV4LT5vZmZzZXQ7DQo+ Pj4+ICAgICAgICAgIGhlbHBlcl9tc2cuc2l6ZSA9IDE7DQo+Pj4+IC0gICAgICAgZHBfYXV4X2Nt ZF9maWZvX3R4KGF1eCwgJmhlbHBlcl9tc2cpOw0KPj4+PiArICAgICAgIGRwX2F1eF9jbWRfZmlm b190eChhdXgsICZoZWxwZXJfbXNnLCBwb2xsKTsNCj4+Pj4NCj4+Pj4gICBlbmQ6DQo+Pj4+ICAg ICAgICAgIGF1eC0+b2Zmc2V0ICs9IG1lc3NhZ2Vfc2l6ZTsgQEAgLTMwMCw2ICszMDYsMTIyIEBA IHN0YXRpYw0KPj4+PiB2b2lkIGRwX2F1eF90cmFuc2Zlcl9oZWxwZXIoc3RydWN0DQo+Pj4gZHBf YXV4X3ByaXZhdGUgKmF1eCwNCj4+Pj4gICAgICAgICAgICAgICAgICBhdXgtPnNlZ21lbnQgPSAw eDA7IC8qIHJlc2V0IHNlZ21lbnQgYXQgZW5kIG9mDQo+Pj4+IGJsb2NrICovICB9DQo+Pj4+DQo+ Pj4+ICsvKg0KPj4+PiArICogVGhpcyBmdW5jdGlvbiBkb2VzIHRoZSByZWFsIGpvYiB0byBwcm9j ZXNzIGFuIEFVWCB0cmFuc2FjdGlvbi4NCj4+Pj4gKyAqIEl0IHdpbGwgY2FsbCBhdXhfcmVzZXQo KSBmdW5jdGlvbiB0byByZXNldCB0aGUgQVVYIGNoYW5uZWwsDQo+Pj4+ICsgKiBpZiB0aGUgd2Fp dGluZyBpcyB0aW1lb3V0Lg0KPj4+PiArICovDQo+Pj4+ICtzdGF0aWMgc3NpemVfdCBkcF9hdXhf dHJhbnNmZXJfaW5pdChzdHJ1Y3QgZHJtX2RwX2F1eCAqZHBfYXV4LA0KPj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cpIHsNCj4+Pj4g KyAgICAgICBzc2l6ZV90IHJldDsNCj4+Pj4gKyAgICAgICBpbnQgY29uc3QgYXV4X2NtZF9uYXRp dmVfbWF4ID0gMTY7DQo+Pj4+ICsgICAgICAgaW50IGNvbnN0IGF1eF9jbWRfaTJjX21heCA9IDEy ODsNCj4+Pj4gKyAgICAgICBzdHJ1Y3QgZHBfYXV4X3ByaXZhdGUgKmF1eDsNCj4+Pj4gKw0KPj4+ PiArICAgICAgIGF1eCA9IGNvbnRhaW5lcl9vZihkcF9hdXgsIHN0cnVjdCBkcF9hdXhfcHJpdmF0 ZSwgZHBfYXV4KTsNCj4+Pj4gKw0KPj4+PiArICAgICAgIGF1eC0+bmF0aXZlID0gbXNnLT5yZXF1 ZXN0ICYgKERQX0FVWF9OQVRJVkVfV1JJVEUgJg0KPj4+PiArIERQX0FVWF9OQVRJVkVfUkVBRCk7 DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAvKiBJZ25vcmUgYWRkcmVzcyBvbmx5IG1lc3NhZ2UgKi8N Cj4+Pj4gKyAgICAgICBpZiAobXNnLT5zaXplID09IDAgfHwgIW1zZy0+YnVmZmVyKSB7DQo+Pj4+ ICsgICAgICAgICAgICAgICBtc2ctPnJlcGx5ID0gYXV4LT5uYXRpdmUgPw0KPj4+PiArICAgICAg ICAgICAgICAgICAgICAgICBEUF9BVVhfTkFUSVZFX1JFUExZX0FDSyA6IERQX0FVWF9JMkNfUkVQ TFlfQUNLOw0KPj4+PiArICAgICAgICAgICAgICAgcmV0dXJuIG1zZy0+c2l6ZTsNCj4+Pj4gKyAg ICAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAvKiBtc2cgc2FuaXR5IGNoZWNrICovDQo+Pj4+ ICsgICAgICAgaWYgKChhdXgtPm5hdGl2ZSAmJiBtc2ctPnNpemUgPiBhdXhfY21kX25hdGl2ZV9t YXgpIHx8DQo+Pj4+ICsgICAgICAgICAgIG1zZy0+c2l6ZSA+IGF1eF9jbWRfaTJjX21heCkgew0K Pj4+PiArICAgICAgICAgICAgICAgRFJNX0VSUk9SKCIlczogaW52YWxpZCBtc2c6IHNpemUoJXp1 KSwgcmVxdWVzdCgleClcbiIsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19f LCBtc2ctPnNpemUsIG1zZy0+cmVxdWVzdCk7DQo+Pj4+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsNCj4+Pj4gKyAgICAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICBtdXRleF9sb2Nr KCZhdXgtPm11dGV4KTsNCj4+Pj4gKyAgICAgICBpZiAoIWF1eC0+aW5pdHRlZCkgew0KPj4+PiAr ICAgICAgICAgICAgICAgcmV0ID0gLUVJTzsNCj4+Pj4gKyAgICAgICAgICAgICAgIGdvdG8gZXhp dDsNCj4+Pj4gKyAgICAgICB9DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAvKg0KPj4+PiArICAgICAg ICAqIEZvciBlRFAgaXQncyBpbXBvcnRhbnQgdG8gZ2l2ZSBhIHJlYXNvbmFibHkgbG9uZyB3YWl0 IGhlcmUgZm9yIEhQRA0KPj4+PiArICAgICAgICAqIHRvIGJlIGFzc2VydGVkLiBUaGlzIGlzIGJl Y2F1c2UgdGhlIHBhbmVsIGRyaXZlciBtYXkgaGF2ZSBfanVzdF8NCj4+Pj4gKyAgICAgICAgKiB0 dXJuZWQgb24gdGhlIHBhbmVsIGFuZCB0aGVuIHRyaWVkIHRvIGRvIGFuIEFVWCB0cmFuc2Zlci4g VGhlDQo+cGFuZWwNCj4+Pj4gKyAgICAgICAgKiBkcml2ZXIgaGFzIG5vIHdheSBvZiBrbm93aW5n IHdoZW4gdGhlIHBhbmVsIGlzIHJlYWR5LCBzbyBpdCdzIHVwDQo+Pj4+ICsgICAgICAgICogdG8g dXMgdG8gd2FpdC4gRm9yIERQIHdlIG5ldmVyIGdldCBpbnRvIHRoaXMgc2l0dWF0aW9uIHNvIGxl dCdzDQo+Pj4+ICsgICAgICAgICogYXZvaWQgZXZlciBkb2luZyB0aGUgZXh0cmEgbG9uZyB3YWl0 IGZvciBEUC4NCj4+Pj4gKyAgICAgICAgKi8NCj4+Pj4gKyAgICAgICBpZiAoYXV4LT5pc19lZHAp IHsNCj4+Pj4gKyAgICAgICAgICAgICAgIHJldCA9IGRwX2NhdGFsb2dfYXV4X3dhaXRfZm9yX2hw ZF9jb25uZWN0X3N0YXRlKGF1eC0NCj4+Y2F0YWxvZyk7DQo+Pj4+ICsgICAgICAgICAgICAgICBp ZiAocmV0KSB7DQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19EUCgiUGFu ZWwgbm90IHJlYWR5IGZvciBhdXggdHJhbnNhY3Rpb25zXG4iKTsNCj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgZ290byBleGl0Ow0KPj4+PiArICAgICAgICAgICAgICAgfQ0KPj4+PiArICAg ICAgIH0NCj4+Pj4gKw0KPj4+PiArICAgICAgIGRwX2F1eF91cGRhdGVfb2Zmc2V0X2FuZF9zZWdt ZW50KGF1eCwgbXNnKTsNCj4+Pj4gKyAgICAgICBkcF9hdXhfdHJhbnNmZXJfaGVscGVyKGF1eCwg bXNnLCB0cnVlLCB0cnVlKTsNCj4+Pj4gKw0KPj4+PiArICAgICAgIGF1eC0+cmVhZCA9IG1zZy0+ cmVxdWVzdCAmIChEUF9BVVhfSTJDX1JFQUQgJg0KPj4+IERQX0FVWF9OQVRJVkVfUkVBRCk7DQo+ Pj4+ICsgICAgICAgYXV4LT5jbWRfYnVzeSA9IHRydWU7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICBp ZiAoYXV4LT5yZWFkKSB7DQo+Pj4+ICsgICAgICAgICAgICAgICBhdXgtPm5vX3NlbmRfYWRkciA9 IHRydWU7DQo+Pj4+ICsgICAgICAgICAgICAgICBhdXgtPm5vX3NlbmRfc3RvcCA9IGZhbHNlOw0K Pj4+PiArICAgICAgIH0gZWxzZSB7DQo+Pj4+ICsgICAgICAgICAgICAgICBhdXgtPm5vX3NlbmRf YWRkciA9IHRydWU7DQo+Pj4+ICsgICAgICAgICAgICAgICBhdXgtPm5vX3NlbmRfc3RvcCA9IHRy dWU7DQo+Pj4+ICsgICAgICAgfQ0KPj4+PiArDQo+Pj4+ICsgICAgICAgcmV0ID0gZHBfYXV4X2Nt ZF9maWZvX3R4KGF1eCwgbXNnLCB0cnVlKTsNCj4+Pj4gKw0KPj4+PiArICAgICAgIC8qIFRPRE86 IHdoeSBpcyBmaWZvX3J4IG5lY2Vzc2FyeSBoZXJlPw0KPj4+PiArICAgICAgICAqIElkZWFsbHkg Zmlmb19yeCBuZWVkIG5vdCBiZSBleGVjdXRlZCBmb3IgYW4gYXV4IHdyaXRlDQo+Pj4+ICsgICAg ICAgICovDQo+Pj4+ICsgICAgICAgcmV0ID0gZHBfYXV4X2NtZF9maWZvX3J4KGF1eCwgbXNnKTsN Cj4+Pj4gKw0KPj4+PiArICAgICAgIGlmIChyZXQgPCAwKSB7DQo+Pj4+ICsgICAgICAgICAgICAg ICBpZiAoYXV4LT5uYXRpdmUpIHsNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgYXV4LT5y ZXRyeV9jbnQrKzsNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoYXV4LT5yZXRy eV9jbnQgJSBNQVhfQVVYX1JFVFJJRVMpKQ0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRwX2NhdGFsb2dfYXV4X3VwZGF0ZV9jZmcoYXV4LT5jYXRhbG9nKTsNCj4+Pj4gKyAg ICAgICAgICAgICAgIH0NCj4+Pj4gKyAgICAgICAgICAgICAgIC8qIHJlc2V0IGF1eCBpZiBsaW5r IGlzIGluIGNvbm5lY3RlZCBzdGF0ZSAqLw0KPj4+PiArICAgICAgICAgICAgICAgaWYgKGRwX2Nh dGFsb2dfbGlua19pc19jb25uZWN0ZWQoYXV4LT5jYXRhbG9nKSkNCj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgZHBfY2F0YWxvZ19hdXhfcmVzZXQoYXV4LT5jYXRhbG9nKTsNCj4+Pj4gKyAg ICAgICB9IGVsc2Ugew0KPj4+PiArICAgICAgICAgICAgICAgYXV4LT5yZXRyeV9jbnQgPSAwOw0K Pj4+PiArICAgICAgICAgICAgICAgc3dpdGNoIChhdXgtPmF1eF9lcnJvcl9udW0pIHsNCj4+Pj4g KyAgICAgICAgICAgICAgIGNhc2UgRFBfQVVYX0VSUl9OT05FOg0KPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICBpZiAoYXV4LT5yZWFkKQ0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldCA9IGRwX2F1eF9jbWRfZmlmb19yeChhdXgsIG1zZyk7DQo+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIG1zZy0+cmVwbHkgPSBhdXgtPm5hdGl2ZSA/IERQX0FVWF9OQVRJVkVf UkVQTFlfQUNLIDoNCj4+PiBEUF9BVVhfSTJDX1JFUExZX0FDSzsNCj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7DQo+Pj4+ICsgICAgICAgICAgICAgICBjYXNlIERQX0FVWF9FUlJf REVGRVI6DQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+cmVwbHkgPSBhdXgtPm5h dGl2ZSA/DQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBfQVVYX05BVElW RV9SRVBMWV9ERUZFUiA6DQo+Pj4gRFBfQVVYX0kyQ19SRVBMWV9ERUZFUjsNCj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+Pj4+ICsgICAgICAgICAgICAgICBjYXNlIERQX0FV WF9FUlJfUEhZOg0KPj4+PiArICAgICAgICAgICAgICAgY2FzZSBEUF9BVVhfRVJSX0FERFI6DQo+ Pj4+ICsgICAgICAgICAgICAgICBjYXNlIERQX0FVWF9FUlJfTkFDSzoNCj4+Pj4gKyAgICAgICAg ICAgICAgIGNhc2UgRFBfQVVYX0VSUl9OQUNLX0RFRkVSOg0KPj4+PiArICAgICAgICAgICAgICAg ICAgICAgICBtc2ctPnJlcGx5ID0gYXV4LT5uYXRpdmUgPyBEUF9BVVhfTkFUSVZFX1JFUExZX05B Q0sgOg0KPj4+IERQX0FVWF9JMkNfUkVQTFlfTkFDSzsNCj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+Pj4+ICsgICAgICAgICAgICAgICBjYXNlIERQX0FVWF9FUlJfVE9VVDoN Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVUSU1FRE9VVDsNCj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+Pj4+ICsgICAgICAgICAgICAgICB9DQo+Pj4+ ICsgICAgICAgfQ0KPj4+PiArDQo+Pj4+ICsgICAgICAgYXV4LT5jbWRfYnVzeSA9IGZhbHNlOw0K Pj4+PiArDQo+Pj4+ICtleGl0Og0KPj4+PiArICAgICAgIG11dGV4X3VubG9jaygmYXV4LT5tdXRl eCk7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICByZXR1cm4gcmV0Ow0KPj4+PiArfQ0KPj4+PiArDQo+ Pj4+ICAgLyoNCj4+Pj4gICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgdGhlIHJlYWwgam9iIHRvIHBy b2Nlc3MgYW4gQVVYIHRyYW5zYWN0aW9uLg0KPj4+PiAgICAqIEl0IHdpbGwgY2FsbCBhdXhfcmVz ZXQoKSBmdW5jdGlvbiB0byByZXNldCB0aGUgQVVYIGNoYW5uZWwsIEBADQo+Pj4+IC0zNTUsNyAr NDc3LDcgQEAgc3RhdGljIHNzaXplX3QgZHBfYXV4X3RyYW5zZmVyKHN0cnVjdCBkcm1fZHBfYXV4 DQo+Pj4gKmRwX2F1eCwNCj4+Pj4gICAgICAgICAgfQ0KPj4+Pg0KPj4+PiAgICAgICAgICBkcF9h dXhfdXBkYXRlX29mZnNldF9hbmRfc2VnbWVudChhdXgsIG1zZyk7DQo+Pj4+IC0gICAgICAgZHBf YXV4X3RyYW5zZmVyX2hlbHBlcihhdXgsIG1zZywgdHJ1ZSk7DQo+Pj4+ICsgICAgICAgZHBfYXV4 X3RyYW5zZmVyX2hlbHBlcihhdXgsIG1zZywgdHJ1ZSwgZmFsc2UpOw0KPj4+Pg0KPj4+PiAgICAg ICAgICBhdXgtPnJlYWQgPSBtc2ctPnJlcXVlc3QgJiAoRFBfQVVYX0kyQ19SRUFEICYNCj4+PiBE UF9BVVhfTkFUSVZFX1JFQUQpOw0KPj4+PiAgICAgICAgICBhdXgtPmNtZF9idXN5ID0gdHJ1ZTsN Cj4+Pj4gQEAgLTM2OCw3ICs0OTAsNyBAQCBzdGF0aWMgc3NpemVfdCBkcF9hdXhfdHJhbnNmZXIo c3RydWN0IGRybV9kcF9hdXgNCj4+PiAqZHBfYXV4LA0KPj4+PiAgICAgICAgICAgICAgICAgIGF1 eC0+bm9fc2VuZF9zdG9wID0gdHJ1ZTsNCj4+Pj4gICAgICAgICAgfQ0KPj4+Pg0KPj4+PiAtICAg ICAgIHJldCA9IGRwX2F1eF9jbWRfZmlmb190eChhdXgsIG1zZyk7DQo+Pj4+ICsgICAgICAgcmV0 ID0gZHBfYXV4X2NtZF9maWZvX3R4KGF1eCwgbXNnLCBmYWxzZSk7DQo+Pj4+ICAgICAgICAgIGlm IChyZXQgPCAwKSB7DQo+Pj4+ICAgICAgICAgICAgICAgICAgaWYgKGF1eC0+bmF0aXZlKSB7DQo+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBhdXgtPnJldHJ5X2NudCsrOyBAQCAtNTM1LDYg KzY1NywxNSBAQA0KPj4+PiBzdHJ1Y3QgZHJtX2RwX2F1eCAqZHBfYXV4X2dldChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkcF9jYXRhbG9nDQo+KmNhdGFsb2csDQo+Pj4+ICAgICAgICAgIGF1 eC0+Y2F0YWxvZyA9IGNhdGFsb2c7DQo+Pj4+ICAgICAgICAgIGF1eC0+cmV0cnlfY250ID0gMDsN Cj4+Pj4NCj4+Pj4gKyAgICAgICAvKg0KPj4+PiArICAgICAgICAqIFVzZSB0aGUgZHJtX2RwX2F1 eF9pbml0KCkgdG8gdXNlIHRoZSBhdXggYWRhcHRlcg0KPj4+PiArICAgICAgICAqIGJlZm9yZSBy ZWdpc3RlcmluZyBhdXggd2l0aCB0aGUgRFJNIGRldmljZS4NCj4+Pj4gKyAgICAgICAgKi8NCj4+ Pj4gKyAgICAgICBhdXgtPmRwX2F1eC5uYW1lID0gImRwdV9kcF9hdXgiOw0KPj4+PiArICAgICAg IGF1eC0+ZHBfYXV4LmRldiA9IGRldjsNCj4+Pj4gKyAgICAgICBhdXgtPmRwX2F1eC50cmFuc2Zl ciA9IGRwX2F1eF90cmFuc2Zlcl9pbml0Ow0KPj4+PiArICAgICAgIGRybV9kcF9hdXhfaW5pdCgm YXV4LT5kcF9hdXgpOw0KPj4+DQo+Pj4gSG93IGRvIHlvdSB1c2UgdGhlIGF1eCBhZGFwdGVyPyBJ dCBzaG91bGQgbm90IGJlIHVzZWQgYmVmb3JlDQo+Pj4gYXV4LT5kcm1fZGV2IGlzIHNldHVwLg0K Pj4+DQo+Pg0KPj4gVGhlIGRybV9kZXYgcmVnaXN0cmF0aW9uIGhhcHBlbnMgZHVyaW5nIHRoZSBi aW5kLiBCdXQgd2UgbmVlZCB0byB1c2UgYXV4DQo+ZHVyaW5nIHByb2JlLg0KPj4NCj4+IFRoZSBr ZXJuZWwgZG9jIGZvciB0aGUgZHJtX2RwX2F1eF9pbml0IGZ1bmN0aW9uIHN1Z2dlc3RlZCB3ZSBj YW4gdXNlDQo+PiB0aGUgYWRhcHRlciBiZWZvcmUgZHJtX2RldiByZWdpc3RyYXRpb24uIFNvLCBJ IHVzZWQgdGhpcyBmdW5jdGlvbiB0byBlbmFibGUNCj50aGUgYXV4IHVzYWdlIGR1cmluZyBwcm9i ZS4NCj4NCj5UaGVuIHBsZWFzZSBhbHNvIGNoYW5nZSBfX2RybV9wcmludGsoKSB0byB1c2UgKGRy bSkgPyAoZHJtLT5kZXYpIDogTlVMTCBhcw0KPmEgZmlyc3QgYXJndW1lbnQgdG8gZGV2XyMjbGV2 ZWwjI3R5cGUuIE90aGVyd2lzZSB0aGUgZmlyc3QgQVVYIHRyYW5zZmVyIGVycm9yDQo+YmVmb3Jl IGF1eC0+ZHJtX2RldiBpcyBzZXQgd2lsbCBvb3BzIHRoZSBrZXJuZWwuIFNlZSBob3cNCj5kcm1f ZXJyKCkgaXMgZXhwYW5kZWQuDQo+DQoNCk9rYXksIHdpbGwgYWRkIHRoaXMgYWxzby4NCg0KPj4N Cj4+IC8qKg0KPj4gICAqIGRybV9kcF9hdXhfaW5pdCgpIC0gbWluaW1hbGx5IGluaXRpYWxpc2Ug YW4gYXV4IGNoYW5uZWwNCj4+ICAgKiBAYXV4OiBEaXNwbGF5UG9ydCBBVVggY2hhbm5lbA0KPj4g ICAqDQo+PiAgICogSWYgeW91IG5lZWQgdG8gdXNlIHRoZSBkcm1fZHBfYXV4J3MgaTJjIGFkYXB0 ZXIgcHJpb3IgdG8gcmVnaXN0ZXJpbmcgaXQNCj53aXRoDQo+PiAgICogdGhlIG91dHNpZGUgd29y bGQsIGNhbGwgZHJtX2RwX2F1eF9pbml0KCkgZmlyc3QuDQo+Pg0KPj4+PiArDQo+Pj4+ICAgICAg ICAgIHJldHVybiAmYXV4LT5kcF9hdXg7DQo+Pj4+ICAgfQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRhbG9nLmMNCj4+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2RwL2RwX2NhdGFsb2cuYw0KPj4+PiBpbmRleCA2NzYyNzlkMGNhOGQuLmNjZjA0 MDAxNzZmMCAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRh bG9nLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRhbG9nLmMNCj4+ Pj4gQEAgLTI1OCw2ICsyNTgsMTggQEAgaW50DQo+Pj4gZHBfY2F0YWxvZ19hdXhfd2FpdF9mb3Jf aHBkX2Nvbm5lY3Rfc3RhdGUoc3RydWN0IGRwX2NhdGFsb2cNCj4+PiAqZHBfY2F0YWxvZykNCj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAwMCwgNTAwMDAwKTsgIH0NCj4+ Pj4NCj4+Pj4gK2ludCBkcF9jYXRhbG9nX2F1eF9wb2xsX2FuZF9nZXRfaHdfaW50ZXJydXB0KHN0 cnVjdCBkcF9jYXRhbG9nDQo+Pj4+ICsqZHBfY2F0YWxvZykgew0KPj4+PiArICAgICAgIHUzMiBh dXg7DQo+Pj4+ICsgICAgICAgc3RydWN0IGRwX2NhdGFsb2dfcHJpdmF0ZSAqY2F0YWxvZyA9IGNv bnRhaW5lcl9vZihkcF9jYXRhbG9nLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBkcF9jYXRhbG9nX3ByaXZhdGUsDQo+Pj4+ICtkcF9jYXRhbG9nKTsNCj4+Pj4g Kw0KPj4+PiArICAgICAgIHJldHVybiByZWFkbF9wb2xsX3RpbWVvdXQoY2F0YWxvZy0+aW8tPmRw X2NvbnRyb2xsZXIuYWhiLmJhc2UgKw0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJFR19EUF9JTlRSX1NUQVRVUywNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhdXgsIGF1eCAmIERQX0lOVEVSUlVQVF9TVEFUVVMxLA0KPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDI1MCwgMjUwMDAwKTsgfQ0KPj4+PiArDQo+Pj4+ICAgc3RhdGlj IHZvaWQgZHVtcF9yZWdzKHZvaWQgX19pb21lbSAqYmFzZSwgaW50IGxlbikgIHsNCj4+Pj4gICAg ICAgICAgaW50IGk7DQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2Rw X2NhdGFsb2cuaA0KPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0YWxvZy5oDQo+ Pj4+IGluZGV4IDFmNzE3ZjQ1YzExNS4uYWQ0YTllMGY3MWYyIDEwMDY0NA0KPj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2NhdGFsb2cuaA0KPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2RwL2RwX2NhdGFsb2cuaA0KPj4+PiBAQCAtODcsNiArODcsNyBAQCB2b2lkIGRw X2NhdGFsb2dfYXV4X2VuYWJsZShzdHJ1Y3QgZHBfY2F0YWxvZw0KPj4+PiAqZHBfY2F0YWxvZywg Ym9vbCBlbmFibGUpOyAgdm9pZCBkcF9jYXRhbG9nX2F1eF91cGRhdGVfY2ZnKHN0cnVjdA0KPj4+ PiBkcF9jYXRhbG9nICpkcF9jYXRhbG9nKTsgIGludA0KPj4+PiBkcF9jYXRhbG9nX2F1eF93YWl0 X2Zvcl9ocGRfY29ubmVjdF9zdGF0ZShzdHJ1Y3QgZHBfY2F0YWxvZw0KPj4+PiAqZHBfY2F0YWxv Zyk7DQo+Pj4+ICAgdTMyIGRwX2NhdGFsb2dfYXV4X2dldF9pcnEoc3RydWN0IGRwX2NhdGFsb2cg KmRwX2NhdGFsb2cpOw0KPj4+PiAraW50IGRwX2NhdGFsb2dfYXV4X3BvbGxfYW5kX2dldF9od19p bnRlcnJ1cHQoc3RydWN0IGRwX2NhdGFsb2cNCj4+Pj4gKypkcF9jYXRhbG9nKTsNCj4+Pj4NCj4+ Pj4gICAvKiBEUCBDb250cm9sbGVyIEFQSXMgKi8NCj4+Pj4gICB2b2lkIGRwX2NhdGFsb2dfY3Ry bF9zdGF0ZV9jdHJsKHN0cnVjdCBkcF9jYXRhbG9nICpkcF9jYXRhbG9nLCB1MzINCj4+Pj4gc3Rh dGUpOyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmMNCj4+ Pj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2Rpc3BsYXkuYw0KPj4+PiBpbmRleCBiZGUx YTdjZTQ0MmYuLmE1ZGNlZjA0MGI3NCAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kcC9kcF9kaXNwbGF5LmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9k cF9kaXNwbGF5LmMNCj4+Pj4gQEAgLTI3NSwxMyArMjc1LDYgQEAgc3RhdGljIGludCBkcF9kaXNw bGF5X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LA0KPnN0cnVjdA0KPj4+IGRldmljZSAqbWFzdGVy LA0KPj4+PiAgICAgICAgICBkcC0+ZHBfZGlzcGxheS5kcm1fZGV2ID0gZHJtOw0KPj4+PiAgICAg ICAgICBwcml2LT5kcFtkcC0+aWRdID0gJmRwLT5kcF9kaXNwbGF5Ow0KPj4+Pg0KPj4+PiAtICAg ICAgIHJjID0gZHAtPnBhcnNlci0+cGFyc2UoZHAtPnBhcnNlcik7DQo+Pj4+IC0gICAgICAgaWYg KHJjKSB7DQo+Pj4+IC0gICAgICAgICAgICAgICBEUk1fRVJST1IoImRldmljZSB0cmVlIHBhcnNp bmcgZmFpbGVkXG4iKTsNCj4+Pj4gLSAgICAgICAgICAgICAgIGdvdG8gZW5kOw0KPj4+PiAtICAg ICAgIH0NCj4+Pj4gLQ0KPj4+PiAtDQo+Pj4+ICAgICAgICAgIGRwLT5kcm1fZGV2ID0gZHJtOw0K Pj4+PiAgICAgICAgICBkcC0+YXV4LT5kcm1fZGV2ID0gZHJtOw0KPj4+PiAgICAgICAgICByYyA9 IGRwX2F1eF9yZWdpc3RlcihkcC0+YXV4KTsgQEAgLTI5MCwxMiArMjgzLDYgQEAgc3RhdGljIGlu dA0KPj4+PiBkcF9kaXNwbGF5X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl ICptYXN0ZXIsDQo+Pj4+ICAgICAgICAgICAgICAgICAgZ290byBlbmQ7DQo+Pj4+ICAgICAgICAg IH0NCj4+Pj4NCj4+Pj4gLSAgICAgICByYyA9IGRwX3Bvd2VyX2NsaWVudF9pbml0KGRwLT5wb3dl cik7DQo+Pj4+IC0gICAgICAgaWYgKHJjKSB7DQo+Pj4+IC0gICAgICAgICAgICAgICBEUk1fRVJS T1IoIlBvd2VyIGNsaWVudCBjcmVhdGUgZmFpbGVkXG4iKTsNCj4+Pj4gLSAgICAgICAgICAgICAg IGdvdG8gZW5kOw0KPj4+PiAtICAgICAgIH0NCj4+Pj4gLQ0KPj4+PiAgICAgICAgICByYyA9IGRw X3JlZ2lzdGVyX2F1ZGlvX2RyaXZlcihkZXYsIGRwLT5hdWRpbyk7DQo+Pj4+ICAgICAgICAgIGlm IChyYykgew0KPj4+PiAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiQXVkaW8gcmVnaXN0cmF0 aW9uIERwIGZhaWxlZFxuIik7IEBAIC03ODcsNg0KPj4+PiArNzc0LDEyIEBAIHN0YXRpYyBpbnQg ZHBfaW5pdF9zdWJfbW9kdWxlcyhzdHJ1Y3QgZHBfZGlzcGxheV9wcml2YXRlDQo+KmRwKQ0KPj4+ PiAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7DQo+Pj4+ICAgICAgICAgIH0NCj4+Pj4NCj4+ Pj4gKyAgICAgICByYyA9IGRwLT5wYXJzZXItPnBhcnNlKGRwLT5wYXJzZXIpOw0KPj4+PiArICAg ICAgIGlmIChyYykgew0KPj4+PiArICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJkZXZpY2UgdHJl ZSBwYXJzaW5nIGZhaWxlZFxuIik7DQo+Pj4+ICsgICAgICAgICAgICAgICBnb3RvIGVycm9yOw0K Pj4+PiArICAgICAgIH0NCj4+Pj4gKw0KPj4+PiAgICAgICAgICBkcC0+Y2F0YWxvZyA9IGRwX2Nh dGFsb2dfZ2V0KGRldiwgJmRwLT5wYXJzZXItPmlvKTsNCj4+Pj4gICAgICAgICAgaWYgKElTX0VS UihkcC0+Y2F0YWxvZykpIHsNCj4+Pj4gICAgICAgICAgICAgICAgICByYyA9IFBUUl9FUlIoZHAt PmNhdGFsb2cpOyBAQCAtODAzLDYgKzc5NiwxMiBAQCBzdGF0aWMNCj4+Pj4gaW50IGRwX2luaXRf c3ViX21vZHVsZXMoc3RydWN0IGRwX2Rpc3BsYXlfcHJpdmF0ZSAqZHApDQo+Pj4+ICAgICAgICAg ICAgICAgICAgZ290byBlcnJvcjsNCj4+Pj4gICAgICAgICAgfQ0KPj4+Pg0KPj4+PiArICAgICAg IHJjID0gZHBfcG93ZXJfY2xpZW50X2luaXQoZHAtPnBvd2VyKTsNCj4+Pj4gKyAgICAgICBpZiAo cmMpIHsNCj4+Pj4gKyAgICAgICAgICAgICAgIERSTV9FUlJPUigiUG93ZXIgY2xpZW50IGNyZWF0 ZSBmYWlsZWRcbiIpOw0KPj4+PiArICAgICAgICAgICAgICAgZ290byBlcnJvcjsNCj4+Pj4gKyAg ICAgICB9DQo+Pj4+ICsNCj4+Pj4gICAgICAgICAgZHAtPmF1eCA9IGRwX2F1eF9nZXQoZGV2LCBk cC0+Y2F0YWxvZywgZHAtPmRwX2Rpc3BsYXkuaXNfZWRwKTsNCj4+Pj4gICAgICAgICAgaWYgKElT X0VSUihkcC0+YXV4KSkgew0KPj4+PiAgICAgICAgICAgICAgICAgIHJjID0gUFRSX0VSUihkcC0+ YXV4KTsgQEAgLTEzMzgsMTIgKzEzMzcsMjkgQEAgc3RhdGljDQo+Pj4+IGludCBkcF9kaXNwbGF5 X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+Pj4+DQo+Pj4+ICAgICAgICAg IHBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsICZkcC0+ZHBfZGlzcGxheSk7DQo+Pj4+DQo+Pj4+ ICsgICAgICAgaWYgKGRwLT5kcF9kaXNwbGF5LmlzX2VkcCkgew0KPj4+PiArICAgICAgICAgICAg ICAgZHBfZGlzcGxheV9ob3N0X2luaXQoZHApOw0KPj4+PiArICAgICAgICAgICAgICAgZHBfZGlz cGxheV9ob3N0X3BoeV9pbml0KGRwKTsNCj4+Pj4gKyAgICAgICAgICAgICAgIGRwX2NhdGFsb2df Y3RybF9ocGRfY29uZmlnKGRwLT5jYXRhbG9nKTsNCj4+Pj4gKw0KPj4+PiArICAgICAgICAgICAg ICAgcmMgPSBkZXZtX29mX2RwX2F1eF9wb3B1bGF0ZV9idXMoZHAtPmF1eCwgTlVMTCk7DQo+Pj4N Cj4+PiBZb3Ugc2hvdWxkIHBhc3MgYSByZWFsIGRvbmVfcHJvYmluZyBoYW5kbGVyIGhlcmUsIGlm IHlvdSBhcmUgZ29pbmcgdG8NCj5yZWZhY3Rvcg0KPj4+IHRoaXMgcGllY2Ugb2YgY29kZS4gVGhl IGRvbmVfcHJvYmluZyBzaG91bGQgdGhlbiBzaHV0IGRvd24gdGhlDQo+cmVzb3VyY2VzDQo+Pj4g YW5kIGJpbmQgdGhlIGNvbXBvbmVudC4NCj4+Pg0KPj4NCj4+IEkgcmVtb3ZlZCB0aGUgcmVzb3Vy Y2UgZW5hYmxpbmcgcGFydCBmcm9tIHByb2JlIGluIHRoZSBuZXh0IHBhdGNoIHdoZXJlIEkNCj5p bXBsZW1lbnRlZCBwbV9ydW50aW1lX29wcy4NCj4+IEkgbW92ZWQgdGhlIGhvc3RfaW5pdCwgcGh5 X2luaXQgYW5kIGhwZF9jb25maWcgaW50byBydW50aW1lX3Jlc3VtZSBhbmQNCj5jYWxsaW5nIHBt X3J1bnRpbWVfZ2V0X3N5bmMgZnJvbSBhdXhfdHJhbnNmZXIuDQo+DQo+TmV4dCBwYXRjaCBkb2Vz bid0IGV4aXN0IGF0IHRoaXMgcG9pbnQuIFNvLCBwbGVhc2UsIGVpdGhlciByZW9yZGVyIHRoZW0s DQo+b3IgbWFrZSB0aGlzIHBhdGNoIGNvcnJlY3QgcGVyIHNlLg0KPg0KPkFsc28sIHRoZSBrZXkg cGFydCBpcyBhIGNhbGwgdG8gY29tcG9uZW50X2FkZCgpLiBJdCBzaG91bGQgY29tZSBmcm9tDQo+ ZG9uZV9wcm9iaW5nIGNhbGxiYWNrLiBBVVggYnVzIHByb2JpbmcgaXMgYXN5bmNocm9ub3VzLiBU aGUga2VybmVsDQo+cmVnaXN0ZXJzIGEgZGV2aWNlIGFuZCB0aGVuIGl0IG1pZ2h0IHRha2Ugc29t ZSB0aW1lIGZvciB0aGUgY29ycmVjdA0KPmRyaXZlciB0byBiZSBsb2FkZWQsIGV0Yy4gV2UgY2xl YXJseSBleHBlY3QgZHBfZGlzcGxheV9iaW5kIHRvIGJlIHVzZWQNCj5vbmx5IHdoZW4gdGhlIHBh bmVsIGhhcyBiZWVuIHByb2JlZC4NCj4NCg0KDQpPa2F5LCB3aWxsIGFkZCB0aGUgZG9uZV9wcm9i ZSBmdW5jdGlvbg0KDQo+Pg0KPj4+PiArDQo+Pj4+ICsgICAgICAgICAgICAgICBkcF9kaXNwbGF5 X2hvc3RfcGh5X2V4aXQoZHApOw0KPj4+PiArICAgICAgICAgICAgICAgZHBfZGlzcGxheV9ob3N0 X2RlaW5pdChkcCk7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgICAgICAgIGlmIChyYykgew0KPj4+ PiArICAgICAgICAgICAgICAgICAgICAgICBEUk1fRVJST1IoImZhaWxlZCB0byBpbml0aWFsaXpl IHBhbmVsLCByYyA9ICVkXG4iLCByYyk7DQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGdv dG8gZXJyb3I7DQo+Pj4+ICsgICAgICAgICAgICAgICB9DQo+Pj4+ICsgICAgICAgfQ0KPj4+PiAr DQo+Pj4+ICAgICAgICAgIHJjID0gY29tcG9uZW50X2FkZCgmcGRldi0+ZGV2LCAmZHBfZGlzcGxh eV9jb21wX29wcyk7DQo+Pj4+ICAgICAgICAgIGlmIChyYykgew0KPj4+PiAgICAgICAgICAgICAg ICAgIERSTV9FUlJPUigiY29tcG9uZW50IGFkZCBmYWlsZWQsIHJjPSVkXG4iLCByYyk7DQo+Pj4+ ICAgICAgICAgICAgICAgICAgZHBfZGlzcGxheV9kZWluaXRfc3ViX21vZHVsZXMoZHApOw0KPj4+ PiAgICAgICAgICB9DQo+Pj4+DQo+Pj4+ICtlcnJvcjoNCj4+Pj4gICAgICAgICAgcmV0dXJuIHJj Ow0KPj4+PiAgIH0NCj4+Pj4NCj4+Pj4gQEAgLTE1NDYsNDAgKzE1NjIsOCBAQCBzdGF0aWMgaW50 IGRwX2Rpc3BsYXlfZ2V0X25leHRfYnJpZGdlKHN0cnVjdA0KPj4+PiBtc21fZHAgKmRwKSAgew0K Pj4+PiAgICAgICAgICBpbnQgcmM7DQo+Pj4+ICAgICAgICAgIHN0cnVjdCBkcF9kaXNwbGF5X3By aXZhdGUgKmRwX3ByaXY7DQo+Pj4+IC0gICAgICAgc3RydWN0IGRldmljZV9ub2RlICphdXhfYnVz Ow0KPj4+PiAtICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldjsNCj4+Pj4NCj4+Pj4gICAgICAgICAg ZHBfcHJpdiA9IGNvbnRhaW5lcl9vZihkcCwgc3RydWN0IGRwX2Rpc3BsYXlfcHJpdmF0ZSwgZHBf ZGlzcGxheSk7DQo+Pj4+IC0gICAgICAgZGV2ID0gJmRwX3ByaXYtPnBkZXYtPmRldjsNCj4+Pj4g LSAgICAgICBhdXhfYnVzID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUoZGV2LT5vZl9ub2RlLCAiYXV4 LWJ1cyIpOw0KPj4+PiAtDQo+Pj4+IC0gICAgICAgaWYgKGF1eF9idXMgJiYgZHAtPmlzX2VkcCkg ew0KPj4+PiAtICAgICAgICAgICAgICAgZHBfZGlzcGxheV9ob3N0X2luaXQoZHBfcHJpdik7DQo+ Pj4+IC0gICAgICAgICAgICAgICBkcF9jYXRhbG9nX2N0cmxfaHBkX2NvbmZpZyhkcF9wcml2LT5j YXRhbG9nKTsNCj4+Pj4gLSAgICAgICAgICAgICAgIGRwX2Rpc3BsYXlfaG9zdF9waHlfaW5pdChk cF9wcml2KTsNCj4+Pj4gLSAgICAgICAgICAgICAgIGVuYWJsZV9pcnEoZHBfcHJpdi0+aXJxKTsN Cj4+Pj4gLQ0KPj4+PiAtICAgICAgICAgICAgICAgLyoNCj4+Pj4gLSAgICAgICAgICAgICAgICAq IFRoZSBjb2RlIGJlbG93IGFzc3VtZXMgdGhhdCB0aGUgcGFuZWwgd2lsbCBmaW5pc2ggcHJvYmlu Zw0KPj4+PiAtICAgICAgICAgICAgICAgICogYnkgdGhlIHRpbWUgZGV2bV9vZl9kcF9hdXhfcG9w dWxhdGVfZXBfZGV2aWNlcygpDQo+cmV0dXJucy4NCj4+Pj4gLSAgICAgICAgICAgICAgICAqIFRo aXMgaXNuJ3QgYSBncmVhdCBhc3N1bXB0aW9uIHNpbmNlIGl0IHdpbGwgZmFpbCBpZiB0aGUNCj4+ Pj4gLSAgICAgICAgICAgICAgICAqIHBhbmVsIGRyaXZlciBpcyBwcm9iZWQgYXN5bmNocm9ub3Vz bHkgYnV0IGlzIHRoZSBiZXN0IHdlDQo+Pj4+IC0gICAgICAgICAgICAgICAgKiBjYW4gZG8gd2l0 aG91dCBhIGJpZ2dlciBkcml2ZXIgcmVvcmdhbml6YXRpb24uDQo+Pj4+IC0gICAgICAgICAgICAg ICAgKi8NCj4+Pj4gLSAgICAgICAgICAgICAgIHJjID0gb2ZfZHBfYXV4X3BvcHVsYXRlX2J1cyhk cF9wcml2LT5hdXgsIE5VTEwpOw0KPj4+PiAtICAgICAgICAgICAgICAgb2Zfbm9kZV9wdXQoYXV4 X2J1cyk7DQo+Pj4+IC0gICAgICAgICAgICAgICBpZiAocmMpDQo+Pj4+IC0gICAgICAgICAgICAg ICAgICAgICAgIGdvdG8gZXJyb3I7DQo+Pj4+IC0NCj4+Pj4gLSAgICAgICAgICAgICAgIHJjID0g ZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRwLT5kcm1fZGV2LT5kZXYsDQo+Pj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mX2RwX2F1eF9kZXBvcHVs YXRlX2J1c192b2lkLA0KPj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkcF9wcml2LT5hdXgpOw0KPj4+PiAtICAgICAgICAgICAgICAgaWYgKHJjKQ0K Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOw0KPj4+PiAtICAgICAgIH0g ZWxzZSBpZiAoZHAtPmlzX2VkcCkgew0KPj4+PiAtICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJl RFAgYXV4X2J1cyBub3QgZm91bmRcbiIpOw0KPj4+PiAtICAgICAgICAgICAgICAgcmV0dXJuIC1F Tk9ERVY7DQo+Pj4+IC0gICAgICAgfQ0KPj4+Pg0KPj4+PiAgICAgICAgICAvKg0KPj4+PiAgICAg ICAgICAgKiBFeHRlcm5hbCBicmlkZ2VzIGFyZSBtYW5kYXRvcnkgZm9yIGVEUCBpbnRlcmZhY2Vz OiBvbmUgaGFzDQo+Pj4+IHRvIEBAIC0xNTk3LDEyICsxNTgxLDYgQEAgc3RhdGljIGludCBkcF9k aXNwbGF5X2dldF9uZXh0X2JyaWRnZShzdHJ1Y3QNCj4+PiBtc21fZHAgKmRwKQ0KPj4+PiAgICAg ICAgICAgICAgICAgIHJldHVybiAwOw0KPj4+PiAgICAgICAgICB9DQo+Pj4+DQo+Pj4+IC1lcnJv cjoNCj4+Pj4gLSAgICAgICBpZiAoZHAtPmlzX2VkcCkgew0KPj4+PiAtICAgICAgICAgICAgICAg ZGlzYWJsZV9pcnEoZHBfcHJpdi0+aXJxKTsNCj4+Pj4gLSAgICAgICAgICAgICAgIGRwX2Rpc3Bs YXlfaG9zdF9waHlfZXhpdChkcF9wcml2KTsNCj4+Pj4gLSAgICAgICAgICAgICAgIGRwX2Rpc3Bs YXlfaG9zdF9kZWluaXQoZHBfcHJpdik7DQo+Pj4+IC0gICAgICAgfQ0KPj4+PiAgICAgICAgICBy ZXR1cm4gcmM7DQo+Pj4+ICAgfQ0KPj4+Pg0KPj4+PiAtLQ0KPj4+PiAyLjM5LjANCj4+Pj4NCj4+ Pg0KPj4+DQo+Pj4gLS0NCj4+PiBXaXRoIGJlc3Qgd2lzaGVzDQo+Pj4gRG1pdHJ5DQo+DQo+LS0N Cj5XaXRoIGJlc3Qgd2lzaGVzDQo+RG1pdHJ5DQoNCg==