From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 98BC2A04BA; Thu, 1 Oct 2020 21:51:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D043E1D5CC; Thu, 1 Oct 2020 21:50:54 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 4CE691D5CF for ; Thu, 1 Oct 2020 21:50:51 +0200 (CEST) IronPort-SDR: Fu8N5sn7Nc4nYu4FxpBnOL25SrKnMeSmQruVadRP7Ayyw36aSV0IV/cLLYLS8nPtMyoBJz2tjF E6ZNFKyvpV1g== X-IronPort-AV: E=McAfee;i="6000,8403,9761"; a="162901713" X-IronPort-AV: E=Sophos;i="5.77,324,1596524400"; d="scan'208";a="162901713" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Oct 2020 12:50:48 -0700 IronPort-SDR: p8SQoxaKOEQsrkmGsDbhe3qkhAqFNq23XSjLErRInPP9GA0NGjFPfCpsxEp4DXgYN/ExZBvZdF KLu50bIHN+Cw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,324,1596524400"; d="scan'208";a="325527212" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga002.jf.intel.com with ESMTP; 01 Oct 2020 12:50:48 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 1 Oct 2020 12:50:47 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 1 Oct 2020 12:50:47 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 1 Oct 2020 12:50:47 -0700 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.50) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 1 Oct 2020 12:50:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HJ3Tgv/IOIeXhq7goupCqj+VFqz7VqDhguJpxZDsboffqMvYcMcigeIpBIRPbADIWjtTU+ehNXCs2xyvcSUtLByUXGKAr9VGCeP4SmpGdc4CVpvdNRprI2umurOUJ9wLOMbyOSmuzQR2hSL0vEnRWdQN58f+47ye8t7uPzp9iAYeNpwG6IWE8RrIhsWz8JgEVu05s7rTcE+j2VwLrD/oD4WyV626lLn6+c+Gzs91OKbsHUe+Ch83Evk0L8aAKngL6CuOJMWfiLBUVYFb+sxY8gTDx6BITIwbf7yOoHXI3hRp+b5jGVlNhEwxd/oogQ4g4iUZJNozTOdHxU4YkGGQjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4oH3shOq2ty/go8U+1FU+P86QwRZhzxnjMt94qal17c=; b=i9Ho3eTpto+pmCLbZZzLpk22ydnsYajqbqhs9fn8jyvJsjVAheZwUwkmnQqQVZTeAkqPAJmm5SHdLodQwGe5W7HzAd3jp7uH7gHypzIRs5hLh6uu9kMlhHjpQXoJ8gCbZdopxta2lzJWIxPEhBKLFHqpJuDHlh+LpCUviL+fNUcktR+vMNqsxr0Lb1TiAzM5O8jEonF0hxYDF4YB2O5OaF+E63pdXajS+T0CHMtC1rRtVR3bSxc3F6QCybArLoBxGQpk4AbY+2nE2YnMAjnm1aMt0WZz3gRC+d8IrnaCJaMiVwyuLLjgu5nepZMPwnlMXaPcB8FQiGso3adwjS25ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4oH3shOq2ty/go8U+1FU+P86QwRZhzxnjMt94qal17c=; b=u3unhcNRr6Vrx6/zbgPLz0Bp9HUFlKfwXYZ7k0gzBBaN+ZdOSwEwwaTy5A+xjYBQPNGyHC4NRtpQlGczKhpDtFThrXbdm+u9XUihSEufKYshSB9pIWdNJboRp3rb7cwC9ngDIHJVOX96HKBgI9aB4jN0xtOadwgr5ZzKQ9ngJU4= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB3638.namprd11.prod.outlook.com (2603:10b6:a03:f8::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.28; Thu, 1 Oct 2020 19:50:41 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508%7]) with mapi id 15.20.3412.028; Thu, 1 Oct 2020 19:50:41 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" , "akhil.goyal@nxp.com" CC: "Richardson, Bruce" , "Xu, Rosen" , "trix@redhat.com" , "Yigit, Ferruh" , "Liu, Tianjiao" Thread-Topic: [dpdk-dev] [PATCH v10 04/10] baseband/acc100: add queue configuration Thread-Index: AQHWl6FFe2jNc6kp0E60puz1cSK2ramC4pSAgABAYmA= Date: Thu, 1 Oct 2020 19:50:41 +0000 Message-ID: References: <1597796731-57841-12-git-send-email-nicolas.chautru@intel.com> <1601522084-151443-1-git-send-email-nicolas.chautru@intel.com> <1601522084-151443-5-git-send-email-nicolas.chautru@intel.com> <761f5a8b-bade-87c6-cd42-e899e1df3913@redhat.com> In-Reply-To: <761f5a8b-bade-87c6-cd42-e899e1df3913@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d3e17275-4fbc-4f2e-58f4-08d866434750 x-ms-traffictypediagnostic: BYAPR11MB3638: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Vd8Px/8C7YQP8WE6gLYajmsyLE+hE2spzASnDn1tq27a5INEtQQpGkQs5TYyElZNNZJC7tPGT2im7XvyP3CxxowWVAxOemlNRI5TAWh6Vge6vna0z2hqdNI3uBOom2QuB/CnE7/GpqqG8tJb/OryV0Ze3IR1BJ2IfP77RCHWOHbq5WP3q5QPEPJkuUTqec7r6fsoQDTDB/sl5o02e6CQ6qPkuVDLNR/bBSv2RAKyGo6UmWsbRi7U7drXh73+IcYtlPwAVUVvFg6x3m1kKj/H34ttipGeGNGytT40/F59888pZA1VxXMHmG+wlyEqIVCDOsc79sbSicBP0m4g+BUl+tdEJHwC32k6TJZB1o8W3Nqm0A6iYIoxVOtNvcSnqpEz x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(376002)(346002)(366004)(396003)(136003)(316002)(54906003)(478600001)(53546011)(6506007)(86362001)(8936002)(110136005)(7696005)(26005)(8676002)(186003)(2906002)(33656002)(5660300002)(66946007)(76116006)(52536014)(64756008)(66556008)(66446008)(71200400001)(9686003)(55016002)(107886003)(83380400001)(30864003)(66476007)(4326008)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: ndzjIN5fcF/2urT54FjTknYW3gW2ryPnuH3zlUa/eTB26CLYr9VuDvCMgezcqrBr7TFvGU6BYCNuxXfRzzWIRSzxHBjvSW2pmic7wbkj2lK42K3tnVny4jsOpEx1DgpZgxaGHVNLd5JgVtbtGbEswww9xKIdkqlUHsAnSo9c13S+kDodxh9Jc3ep+brBgufpmNRLwGw+tf7gopqkSdNy1PBBvoPv0THh9uMb9g9CPYIRV6Q2+m7kCajMx7OHVSsWiyFABZklNNxoiBUyvwmgQrMSwS4AUfTXuH/gISCYZPkEvTtkU9oHN83hwe1QfYOWSYhdpClKgXvvCJ+cCfo4qfYzjHP/CbMDf+2Q8q/Qml6DKZxeafGEpSmnP3Nmi/UhVgSgta2TR8UxK2Kd24KQ/nYZrqxuSTDg1cNzEMU10k1t43Ejy+e2Sxlqb9+M4DKv3OHPta5re2R+5BZwCBvXEpEC94piZzzFWKpS194VzTMGjIlYScbvg5+zipSwklkfnUZF4OFapCBAgq7J0INaLJFWMJcIq9KMj7J+l+8XRRxU4GhtNDAdva156oB9HRJnFfeEBGJJeNjSofO+uD6vHC8UwSYT38GXyciP3e3yNX9cB3SJqh7HHemeo1SF5zUTjdDmTr/lpL1MLptGe1fXAA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3e17275-4fbc-4f2e-58f4-08d866434750 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Oct 2020 19:50:41.5146 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jd77n3vFXlK2BuBLh4ZmCUPpOpjPE60hGoqfxW25y6/0ivAJQHSoJMdUGvZTTsW7genNXayVAGGK+kkrVCNynIRs7nRyuQi3KYw6zb8gpiA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3638 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v10 04/10] baseband/acc100: add queue configuration X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgTWF4aW1lLCANCg0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkBy ZWRoYXQuY29tPg0KPiBPbiAxMC8xLzIwIDU6MTQgQU0sIE5pY29sYXMgQ2hhdXRydSB3cm90ZToN Cj4gPiBBZGRpbmcgZnVuY3Rpb24gdG8gY3JlYXRlIGFuZCBjb25maWd1cmUgcXVldWVzIGZvciB0 aGUgZGV2aWNlLiBTdGlsbA0KPiA+IG5vIGNhcGFiaWxpdHkuDQo+ID4NCj4gPiBTaWduZWQtb2Zm LWJ5OiBOaWNvbGFzIENoYXV0cnUgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+DQo+ID4gUmV2 aWV3ZWQtYnk6IFJvc2VuIFh1IDxyb3Nlbi54dUBpbnRlbC5jb20+DQo+ID4gQWNrZWQtYnk6IExp dSBUaWFuamlhbyA8VGlhbmppYW8ubGl1QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVy cy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYyB8IDQzOA0KPiA+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0NCj4gPiBkcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNj MTAwX3BtZC5oIHwgIDQ1ICsrKysNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA0ODIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZWJh bmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPiBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAw L3J0ZV9hY2MxMDBfcG1kLmMNCj4gPiBpbmRleCA5OGExN2IzLi43MDlhN2FmIDEwMDY0NA0KPiA+ IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPiArKysg Yi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gQEAgLTI2LDYg KzI2LDIyIEBADQo+ID4gIFJURV9MT0dfUkVHSVNURVIoYWNjMTAwX2xvZ3R5cGUsIHBtZC5iYi5h Y2MxMDAsIE5PVElDRSk7ICAjZW5kaWYNCj4gPg0KPiA+ICsvKiBXcml0ZSB0byBNTUlPIHJlZ2lz dGVyIGFkZHJlc3MgKi8NCj4gPiArc3RhdGljIGlubGluZSB2b2lkDQo+ID4gK21taW9fd3JpdGUo dm9pZCAqYWRkciwgdWludDMyX3QgdmFsdWUpIHsNCj4gPiArCSooKHZvbGF0aWxlIHVpbnQzMl90 ICopKGFkZHIpKSA9IHJ0ZV9jcHVfdG9fbGVfMzIodmFsdWUpOyB9DQo+ID4gKw0KPiA+ICsvKiBX cml0ZSBhIHJlZ2lzdGVyIG9mIGEgQUNDMTAwIGRldmljZSAqLyBzdGF0aWMgaW5saW5lIHZvaWQN Cj4gPiArYWNjMTAwX3JlZ193cml0ZShzdHJ1Y3QgYWNjMTAwX2RldmljZSAqZCwgdWludDMyX3Qg b2Zmc2V0LCB1aW50MzJfdA0KPiA+ICtwYXlsb2FkKSB7DQo+ID4gKwl2b2lkICpyZWdfYWRkciA9 IFJURV9QVFJfQUREKGQtPm1taW9fYmFzZSwgb2Zmc2V0KTsNCj4gPiArCW1taW9fd3JpdGUocmVn X2FkZHIsIHBheWxvYWQpOw0KPiA+ICsJdXNsZWVwKEFDQzEwMF9MT05HX1dBSVQpOw0KPiANCj4g SXMgaXQgcmVhbGx5IG5lZWRlZCB0byBzbGVlcCBhZnRlciB0aGUgTU1JTyB3cml0ZSBhY2Nlc3M/ DQoNCk5vdCBuZWNlc3NhcmFseSBmb3IgZXZlcnkgc2luZ2xlIHJlZ2lzdGVycyBidXQgZm9yIHNv bWUsIGFuZCB0aGVzZSB2ZXJ5DQpNTUlPIGFyZSBhbGwgdXNlZCBvdXRzaWRlIG9mIHRoZSByZWFs IHRpbWUgZnVuY3Rpb25zLg0KDQoNCj4gDQo+ID4gK30NCj4gPiArDQo+ID4gIC8qIFJlYWQgYSBy ZWdpc3RlciBvZiBhIEFDQzEwMCBkZXZpY2UgKi8gIHN0YXRpYyBpbmxpbmUgdWludDMyX3QNCj4g PiBhY2MxMDBfcmVnX3JlYWQoc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQsIHVpbnQzMl90IG9mZnNl dCkgQEAgLTM2LDYNCj4gPiArNTIsMjIgQEANCj4gPiAgCXJldHVybiBydGVfbGVfdG9fY3B1XzMy KHJldCk7DQo+ID4gIH0NCj4gPg0KPiA+ICsvKiBCYXNpYyBJbXBsZW1lbnRhdGlvbiBvZiBMb2cy IGZvciBleGFjdCAyXk4gKi8gc3RhdGljIGlubGluZQ0KPiA+ICt1aW50MzJfdCBsb2cyX2Jhc2lj KHVpbnQzMl90IHZhbHVlKSB7DQo+ID4gKwlyZXR1cm4gKHZhbHVlID09IDApID8gMCA6IHJ0ZV9i c2YzMih2YWx1ZSk7IH0NCj4gPiArDQo+ID4gKy8qIENhbGN1bGF0ZSBtZW1vcnkgYWxpZ25tZW50 IG9mZnNldCBhc3N1bWluZyBhbGlnbm1lbnQgaXMgMl5OICovDQo+ID4gK3N0YXRpYyBpbmxpbmUg dWludDMyX3QgY2FsY19tZW1fYWxpZ25tZW50X29mZnNldCh2b2lkDQo+ID4gKyp1bmFsaWduZWRf dmlydF9tZW0sIHVpbnQzMl90IGFsaWdubWVudCkgew0KPiA+ICsJcnRlX2lvdmFfdCB1bmFsaWdu ZWRfcGh5X21lbSA9DQo+IHJ0ZV9tYWxsb2NfdmlydDJpb3ZhKHVuYWxpZ25lZF92aXJ0X21lbSk7 DQo+ID4gKwlyZXR1cm4gKHVpbnQzMl90KShhbGlnbm1lbnQgLQ0KPiA+ICsJCQkodW5hbGlnbmVk X3BoeV9tZW0gJiAoYWxpZ25tZW50LTEpKSk7IH0NCj4gPiArDQo+ID4gIC8qIENhbGN1bGF0ZSB0 aGUgb2Zmc2V0IG9mIHRoZSBlbnF1ZXVlIHJlZ2lzdGVyICovICBzdGF0aWMgaW5saW5lDQo+ID4g dWludDMyX3QgIHF1ZXVlX29mZnNldChib29sIHBmX2RldmljZSwgdWludDhfdCB2Zl9pZCwgdWlu dDhfdCBxZ3JwX2lkLA0KPiA+IHVpbnQxNl90IGFxX2lkKSBAQCAtMjA4LDEwICsyNDAsNDExIEBA DQo+ID4gIAkJCWFjYzEwMF9jb25mLT5xX2RsXzVnLmFxX2RlcHRoX2xvZzIpOw0KPiA+ICB9DQo+ ID4NCj4gPiArc3RhdGljIHZvaWQNCj4gPiArZnJlZV9iYXNlX2FkZHJlc3Nlcyh2b2lkICoqYmFz ZV9hZGRycywgaW50IHNpemUpIHsNCj4gPiArCWludCBpOw0KPiA+ICsJZm9yIChpID0gMDsgaSA8 IHNpemU7IGkrKykNCj4gPiArCQlydGVfZnJlZShiYXNlX2FkZHJzW2ldKTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIGlubGluZSB1aW50MzJfdA0KPiA+ICtnZXRfZGVzY19sZW4odm9pZCkN Cj4gPiArew0KPiA+ICsJcmV0dXJuIHNpemVvZih1bmlvbiBhY2MxMDBfZG1hX2Rlc2MpOyB9DQo+ ID4gKw0KPiA+ICsvKiBBbGxvY2F0ZSB0aGUgMiAqIDY0TUIgYmxvY2sgZm9yIHRoZSBzdyByaW5n cyAqLyBzdGF0aWMgaW50DQo+ID4gK2FsbG9jXzJ4NjRtYl9zd19yaW5nc19tZW0oc3RydWN0IHJ0 ZV9iYmRldiAqZGV2LCBzdHJ1Y3QNCj4gYWNjMTAwX2RldmljZSAqZCwNCj4gPiArCQlpbnQgc29j a2V0KQ0KPiA+ICt7DQo+ID4gKwl1aW50MzJfdCBzd19yaW5nX3NpemUgPSBBQ0MxMDBfU0laRV82 NE1CWVRFOw0KPiA+ICsJZC0+c3dfcmluZ3NfYmFzZSA9IHJ0ZV96bWFsbG9jX3NvY2tldChkZXYt PmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkyICogc3dfcmluZ19zaXplLCBSVEVfQ0FD SEVfTElORV9TSVpFLCBzb2NrZXQpOw0KPiA+ICsJaWYgKGQtPnN3X3JpbmdzX2Jhc2UgPT0gTlVM TCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9y eSBmb3IgJXM6JXUiLA0KPiA+ICsJCQkJZGV2LT5kZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gPiAr CQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsNCj4gPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArCX0N Cj4gPiArCW1lbXNldChkLT5zd19yaW5nc19iYXNlLCAwLCBBQ0MxMDBfU0laRV82NE1CWVRFKTsN Cj4gDQo+IEhhdmluZyB1c2VkIHptYWxsb2MsIHRoZSBtZW1zZXQgbG9va3Mgb3ZlcmtpbGwuIEFs c28sIGl0IGRvZXMgbm90IGNsZWFyIGFsbCB0aGUNCj4gYWxsb2NhdGVkIGFyZSwgZG9uJ3Qga25v dyBpZiB0aGlzIGlzIGV4cGVjdGVkLg0KDQpBZ3JlZWQgdGhhbmtzLg0KDQo+IA0KPiA+ICsJdWlu dDMyX3QgbmV4dF82NG1iX2FsaWduX29mZnNldCA9IGNhbGNfbWVtX2FsaWdubWVudF9vZmZzZXQo DQo+ID4gKwkJCWQtPnN3X3JpbmdzX2Jhc2UsIEFDQzEwMF9TSVpFXzY0TUJZVEUpOw0KPiA+ICsJ ZC0+c3dfcmluZ3MgPSBSVEVfUFRSX0FERChkLT5zd19yaW5nc19iYXNlLA0KPiBuZXh0XzY0bWJf YWxpZ25fb2Zmc2V0KTsNCj4gPiArCWQtPnN3X3JpbmdzX3BoeXMgPSBydGVfbWFsbG9jX3ZpcnQy aW92YShkLT5zd19yaW5nc19iYXNlKSArDQo+ID4gKwkJCW5leHRfNjRtYl9hbGlnbl9vZmZzZXQ7 DQo+IA0KPiBzd19yaW5nc19waHlzIHNob3VsZCBiZSByZW5hbWVkIHRvIHN3X3JpbmdzX2lvdmEs IGFzIGl0IGNvdWxkIGJlIGEgVkEgaWYNCj4gSU9WQV9BU19WQSBtb3JlIGlzIHVzZWQuDQoNCmFn cmVlZA0KDQo+IA0KPiA+ICsJZC0+c3dfcmluZ19zaXplID0gQUNDMTAwX01BWF9RVUVVRV9ERVBU SCAqIGdldF9kZXNjX2xlbigpOw0KPiA+ICsJZC0+c3dfcmluZ19tYXhfZGVwdGggPSBkLT5zd19y aW5nX3NpemUgLyBnZXRfZGVzY19sZW4oKTsNCj4gDQo+IGQtPnN3X3JpbmdfbWF4X2RlcHRoID0g QUNDMTAwX01BWF9RVUVVRV9ERVBUSDsNCg0Kc3VyZQ0KDQo+IA0KPiA+ICsNCj4gPiArCXJldHVy biAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBBdHRlbXB0IHRvIGFsbG9jYXRlIG1pbmltaXNl ZCBtZW1vcnkgc3BhY2UgZm9yIHN3IHJpbmdzICovIHN0YXRpYw0KPiA+ICt2b2lkIGFsbG9jX3N3 X3JpbmdzX21pbl9tZW0oc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCBzdHJ1Y3QNCj4gPiArYWNjMTAw X2RldmljZSAqZCwNCj4gPiArCQl1aW50MTZfdCBudW1fcXVldWVzLCBpbnQgc29ja2V0KQ0KPiA+ ICt7DQo+ID4gKwlydGVfaW92YV90IHN3X3JpbmdzX2Jhc2VfcGh5LCBuZXh0XzY0bWJfYWxpZ25f YWRkcl9waHk7DQo+IA0KPiBTYW1lIGNvbW1lbnQgcmVnYXJkaW5nIHBoeXMgdnMuIGlvdmEgaW4g dGhpcyBmdW5jdGlvbi4NCg0KeWVwIGdlbmVyYWwgY29tbWVudA0KDQo+IA0KPiA+ICsJdWludDMy X3QgbmV4dF82NG1iX2FsaWduX29mZnNldDsNCj4gPiArCXJ0ZV9pb3ZhX3Qgc3dfcmluZ19waHlz X2VuZF9hZGRyOw0KPiA+ICsJdm9pZCAqYmFzZV9hZGRyc1tBQ0MxMDBfU1dfUklOR19NRU1fQUxM T0NfQVRURU1QVFNdOw0KPiA+ICsJdm9pZCAqc3dfcmluZ3NfYmFzZTsNCj4gPiArCWludCBpID0g MDsNCj4gPiArCXVpbnQzMl90IHFfc3dfcmluZ19zaXplID0gQUNDMTAwX01BWF9RVUVVRV9ERVBU SCAqDQo+IGdldF9kZXNjX2xlbigpOw0KPiA+ICsJdWludDMyX3QgZGV2X3N3X3Jpbmdfc2l6ZSA9 IHFfc3dfcmluZ19zaXplICogbnVtX3F1ZXVlczsNCj4gPiArDQo+ID4gKwkvKiBGaW5kIGFuIGFs aWduZWQgYmxvY2sgb2YgbWVtb3J5IHRvIHN0b3JlIHN3IHJpbmdzICovDQo+ID4gKwl3aGlsZSAo aSA8IEFDQzEwMF9TV19SSU5HX01FTV9BTExPQ19BVFRFTVBUUykgew0KPiA+ICsJCS8qDQo+ID4g KwkJICogc3dfcmluZyBhbGxvY2F0ZWQgbWVtb3J5IGlzIGd1YXJhbnRlZWQgdG8gYmUgYWxpZ25l ZCB0bw0KPiA+ICsJCSAqIHFfc3dfcmluZ19zaXplIGF0IHRoZSBjb25kaXRpb24gdGhhdCB0aGUg cmVxdWVzdGVkIHNpemUgaXMNCj4gPiArCQkgKiBsZXNzIHRoYW4gdGhlIHBhZ2Ugc2l6ZQ0KPiA+ ICsJCSAqLw0KPiA+ICsJCXN3X3JpbmdzX2Jhc2UgPSBydGVfem1hbGxvY19zb2NrZXQoDQo+ID4g KwkJCQlkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkJZGV2X3N3X3Jpbmdfc2l6 ZSwgcV9zd19yaW5nX3NpemUsIHNvY2tldCk7DQo+ID4gKw0KPiA+ICsJCWlmIChzd19yaW5nc19i YXNlID09IE5VTEwpIHsNCj4gPiArCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4gKwkJCQkJIkZh aWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yDQo+ICVzOiV1IiwNCj4gPiArCQkJCQlkZXYtPmRl dmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsNCj4gPiAr CQkJYnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQlzd19yaW5nc19iYXNlX3BoeSA9IHJ0 ZV9tYWxsb2NfdmlydDJpb3ZhKHN3X3JpbmdzX2Jhc2UpOw0KPiA+ICsJCW5leHRfNjRtYl9hbGln bl9vZmZzZXQgPSBjYWxjX21lbV9hbGlnbm1lbnRfb2Zmc2V0KA0KPiA+ICsJCQkJc3dfcmluZ3Nf YmFzZSwgQUNDMTAwX1NJWkVfNjRNQllURSk7DQo+ID4gKwkJbmV4dF82NG1iX2FsaWduX2FkZHJf cGh5ID0gc3dfcmluZ3NfYmFzZV9waHkgKw0KPiA+ICsJCQkJbmV4dF82NG1iX2FsaWduX29mZnNl dDsNCj4gPiArCQlzd19yaW5nX3BoeXNfZW5kX2FkZHIgPSBzd19yaW5nc19iYXNlX3BoeSArDQo+ IGRldl9zd19yaW5nX3NpemU7DQo+ID4gKw0KPiA+ICsJCS8qIENoZWNrIGlmIHRoZSBlbmQgb2Yg dGhlIHN3IHJpbmcgbWVtb3J5IGJsb2NrIGlzIGJlZm9yZSB0aGUNCj4gPiArCQkgKiBzdGFydCBv ZiBuZXh0IDY0TUIgYWxpZ25lZCBtZW0gYWRkcmVzcw0KPiA+ICsJCSAqLw0KPiA+ICsJCWlmIChz d19yaW5nX3BoeXNfZW5kX2FkZHIgPCBuZXh0XzY0bWJfYWxpZ25fYWRkcl9waHkpIHsNCj4gPiAr CQkJZC0+c3dfcmluZ3NfcGh5cyA9IHN3X3JpbmdzX2Jhc2VfcGh5Ow0KPiA+ICsJCQlkLT5zd19y aW5ncyA9IHN3X3JpbmdzX2Jhc2U7DQo+ID4gKwkJCWQtPnN3X3JpbmdzX2Jhc2UgPSBzd19yaW5n c19iYXNlOw0KPiA+ICsJCQlkLT5zd19yaW5nX3NpemUgPSBxX3N3X3Jpbmdfc2l6ZTsNCj4gPiAr CQkJZC0+c3dfcmluZ19tYXhfZGVwdGggPQ0KPiBBQ0MxMDBfTUFYX1FVRVVFX0RFUFRIOw0KPiA+ ICsJCQlicmVhazsNCj4gPiArCQl9DQo+ID4gKwkJLyogU3RvcmUgdGhlIGFkZHJlc3Mgb2YgdGhl IHVuYWxpZ25lZCBtZW0gYmxvY2sgKi8NCj4gPiArCQliYXNlX2FkZHJzW2ldID0gc3dfcmluZ3Nf YmFzZTsNCj4gPiArCQlpKys7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyogRnJlZSBhbGwgdW5h bGlnbmVkIGJsb2NrcyBvZiBtZW0gYWxsb2NhdGVkIGluIHRoZSBsb29wICovDQo+ID4gKwlmcmVl X2Jhc2VfYWRkcmVzc2VzKGJhc2VfYWRkcnMsIGkpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsNCj4g PiArLyogQWxsb2NhdGUgNjRNQiBtZW1vcnkgdXNlZCBmb3IgYWxsIHNvZnR3YXJlIHJpbmdzICov IHN0YXRpYyBpbnQNCj4gPiArYWNjMTAwX3NldHVwX3F1ZXVlcyhzdHJ1Y3QgcnRlX2JiZGV2ICpk ZXYsIHVpbnQxNl90IG51bV9xdWV1ZXMsIGludA0KPiA+ICtzb2NrZXRfaWQpIHsNCj4gPiArCXVp bnQzMl90IHBoeXNfbG93LCBwaHlzX2hpZ2gsIHBheWxvYWQ7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAw X2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwljb25zdCBzdHJ1Y3Qg YWNjMTAwX3JlZ2lzdHJ5X2FkZHIgKnJlZ19hZGRyOw0KPiA+ICsNCj4gPiArCWlmIChkLT5wZl9k ZXZpY2UgJiYgIWQtPmFjYzEwMF9jb25mLnBmX21vZGVfZW4pIHsNCj4gPiArCQlydGVfYmJkZXZf bG9nKE5PVElDRSwNCj4gPiArCQkJCSIlcyBoYXMgUEYgbW9kZSBkaXNhYmxlZC4gVGhpcyBQRiBj YW4ndCBiZQ0KPiB1c2VkLiIsDQo+ID4gKwkJCQlkZXYtPmRhdGEtPm5hbWUpOw0KPiA+ICsJCXJl dHVybiAtRU5PREVWOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWFsbG9jX3N3X3JpbmdzX21pbl9t ZW0oZGV2LCBkLCBudW1fcXVldWVzLCBzb2NrZXRfaWQpOw0KPiA+ICsNCj4gPiArCS8qIElmIG1p bmltYWwgbWVtb3J5IHNwYWNlIGFwcHJvYWNoIGZhaWxlZCwgdGhlbiBhbGxvY2F0ZQ0KPiA+ICsJ ICogdGhlIDIgKiA2NE1CIGJsb2NrIGZvciB0aGUgc3cgcmluZ3MNCj4gPiArCSAqLw0KPiA+ICsJ aWYgKGQtPnN3X3JpbmdzID09IE5VTEwpDQo+ID4gKwkJYWxsb2NfMng2NG1iX3N3X3JpbmdzX21l bShkZXYsIGQsIHNvY2tldF9pZCk7DQo+ID4gKw0KPiA+ICsJaWYgKGQtPnN3X3JpbmdzID09IE5V TEwpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKE5PVElDRSwNCj4gPiArCQkJCSJGYWlsdXJlIGFs bG9jYXRpbmcgc3dfcmluZ3MgbWVtb3J5Iik7DQo+ID4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4g Kwl9DQo+ID4gKw0KPiA+ICsJLyogQ29uZmlndXJlIEFDQzEwMCB3aXRoIHRoZSBiYXNlIGFkZHJl c3MgZm9yIERNQSBkZXNjcmlwdG9yIHJpbmdzDQo+ID4gKwkgKiBTYW1lIGRlc2NyaXB0b3Igcmlu Z3MgdXNlZCBmb3IgVUwgYW5kIERMIERNQSBFbmdpbmVzDQo+ID4gKwkgKiBOb3RlIDogQXNzdW1p bmcgb25seSBWRjAgYnVuZGxlIGlzIHVzZWQgZm9yIFBGIG1vZGUNCj4gPiArCSAqLw0KPiA+ICsJ cGh5c19oaWdoID0gKHVpbnQzMl90KShkLT5zd19yaW5nc19waHlzID4+IDMyKTsNCj4gPiArCXBo eXNfbG93ICA9ICh1aW50MzJfdCkoZC0+c3dfcmluZ3NfcGh5cyAmDQo+IH4oQUNDMTAwX1NJWkVf NjRNQllURS0xKSk7DQo+ID4gKw0KPiA+ICsJLyogQ2hvb3NlIGNvcnJlY3QgcmVnaXN0cnkgYWRk cmVzc2VzIGZvciB0aGUgZGV2aWNlIHR5cGUgKi8NCj4gPiArCWlmIChkLT5wZl9kZXZpY2UpDQo+ ID4gKwkJcmVnX2FkZHIgPSAmcGZfcmVnX2FkZHI7DQo+ID4gKwllbHNlDQo+ID4gKwkJcmVnX2Fk ZHIgPSAmdmZfcmVnX2FkZHI7DQo+ID4gKw0KPiA+ICsJLyogUmVhZCB0aGUgcG9wdWxhdGVkIGNm ZyBmcm9tIEFDQzEwMCByZWdpc3RlcnMgKi8NCj4gPiArCWZldGNoX2FjYzEwMF9jb25maWcoZGV2 KTsNCj4gPiArDQo+ID4gKwkvKiBSZWxlYXNlIEFYSSBmcm9tIFBGICovDQo+ID4gKwlpZiAoZC0+ cGZfZGV2aWNlKQ0KPiA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgSFdQZkRtYUF4aUNvbnRyb2ws IDEpOw0KPiA+ICsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmRtYV9yaW5n X3VsNWdfaGksIHBoeXNfaGlnaCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRy LT5kbWFfcmluZ191bDVnX2xvLCBwaHlzX2xvdyk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQs IHJlZ19hZGRyLT5kbWFfcmluZ19kbDVnX2hpLCBwaHlzX2hpZ2gpOw0KPiA+ICsJYWNjMTAwX3Jl Z193cml0ZShkLCByZWdfYWRkci0+ZG1hX3JpbmdfZGw1Z19sbywgcGh5c19sb3cpOw0KPiA+ICsJ YWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+ZG1hX3JpbmdfdWw0Z19oaSwgcGh5c19oaWdo KTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmRtYV9yaW5nX3VsNGdfbG8s IHBoeXNfbG93KTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmRtYV9yaW5n X2RsNGdfaGksIHBoeXNfaGlnaCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRy LT5kbWFfcmluZ19kbDRnX2xvLCBwaHlzX2xvdyk7DQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAq IENvbmZpZ3VyZSBSaW5nIFNpemUgdG8gdGhlIG1heCBxdWV1ZSByaW5nIHNpemUNCj4gPiArCSAq ICh1c2VkIGZvciB3cmFwcGluZyBwdXJwb3NlKQ0KPiA+ICsJICovDQo+ID4gKwlwYXlsb2FkID0g bG9nMl9iYXNpYyhkLT5zd19yaW5nX3NpemUgLyA2NCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRl KGQsIHJlZ19hZGRyLT5yaW5nX3NpemUsIHBheWxvYWQpOw0KPiA+ICsNCj4gPiArCS8qIENvbmZp Z3VyZSB0YWlsIHBvaW50ZXIgZm9yIHVzZSB3aGVuIFNET05FIGVuYWJsZWQgKi8NCj4gPiArCWQt PnRhaWxfcHRycyA9IHJ0ZV96bWFsbG9jX3NvY2tldCgNCj4gPiArCQkJZGV2LT5kZXZpY2UtPmRy aXZlci0+bmFtZSwNCj4gPiArCQkJQUNDMTAwX05VTV9RR1JQUyAqIEFDQzEwMF9OVU1fQVFTICoN Cj4gc2l6ZW9mKHVpbnQzMl90KSwNCj4gPiArCQkJUlRFX0NBQ0hFX0xJTkVfU0laRSwgc29ja2V0 X2lkKTsNCj4gPiArCWlmIChkLT50YWlsX3B0cnMgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRl dl9sb2coRVJSLCAiRmFpbGVkIHRvIGFsbG9jYXRlIHRhaWwgcHRyIGZvciAlczoldSIsDQo+ID4g KwkJCQlkZXYtPmRldmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkJZGV2LT5kYXRhLT5kZXZf aWQpOw0KPiA+ICsJCXJ0ZV9mcmVlKGQtPnN3X3JpbmdzKTsNCj4gPiArCQlyZXR1cm4gLUVOT01F TTsNCj4gPiArCX0NCj4gPiArCWQtPnRhaWxfcHRyX3BoeXMgPSBydGVfbWFsbG9jX3ZpcnQyaW92 YShkLT50YWlsX3B0cnMpOw0KPiA+ICsNCj4gPiArCXBoeXNfaGlnaCA9ICh1aW50MzJfdCkoZC0+ dGFpbF9wdHJfcGh5cyA+PiAzMik7DQo+ID4gKwlwaHlzX2xvdyAgPSAodWludDMyX3QpKGQtPnRh aWxfcHRyX3BoeXMpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+dGFpbF9w dHJzX3VsNWdfaGksIHBoeXNfaGlnaCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19h ZGRyLT50YWlsX3B0cnNfdWw1Z19sbywgcGh5c19sb3cpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0 ZShkLCByZWdfYWRkci0+dGFpbF9wdHJzX2RsNWdfaGksIHBoeXNfaGlnaCk7DQo+ID4gKwlhY2Mx MDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT50YWlsX3B0cnNfZGw1Z19sbywgcGh5c19sb3cpOw0K PiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+dGFpbF9wdHJzX3VsNGdfaGksIHBo eXNfaGlnaCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT50YWlsX3B0cnNf dWw0Z19sbywgcGh5c19sb3cpOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+ dGFpbF9wdHJzX2RsNGdfaGksIHBoeXNfaGlnaCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQs IHJlZ19hZGRyLT50YWlsX3B0cnNfZGw0Z19sbywgcGh5c19sb3cpOw0KPiA+ICsNCj4gPiArCWQt PmhhcnFfbGF5b3V0ID0gcnRlX3ptYWxsb2Nfc29ja2V0KCJIQVJRIExheW91dCIsDQo+ID4gKwkJ CUFDQzEwMF9IQVJRX0xBWU9VVCAqIHNpemVvZigqZC0+aGFycV9sYXlvdXQpLA0KPiA+ICsJCQlS VEVfQ0FDSEVfTElORV9TSVpFLCBkZXYtPmRhdGEtPnNvY2tldF9pZCk7DQo+ID4gKwlpZiAoZC0+ aGFycV9sYXlvdXQgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVk IHRvIGFsbG9jYXRlIGhhcnFfbGF5b3V0IGZvcg0KPiAlczoldSIsDQo+ID4gKwkJCQlkZXYtPmRl dmljZS0+ZHJpdmVyLT5uYW1lLA0KPiA+ICsJCQkJZGV2LT5kYXRhLT5kZXZfaWQpOw0KPiA+ICsJ CXJ0ZV9mcmVlKGQtPnN3X3JpbmdzKTsNCj4gPiArCQlyZXR1cm4gLUVOT01FTTsNCj4gPiArCX0N Cj4gPiArDQo+ID4gKwkvKiBNYXJrIGFzIGNvbmZpZ3VyZWQgcHJvcGVybHkgKi8NCj4gPiArCWQt PmNvbmZpZ3VyZWQgPSB0cnVlOw0KPiA+ICsNCj4gPiArCXJ0ZV9iYmRldl9sb2dfZGVidWcoDQo+ ID4gKwkJCSJBQ0MxMDAgKCVzKSBjb25maWd1cmVkICBzd19yaW5ncyA9ICVwLA0KPiBzd19yaW5n c19waHlzID0gJSMiDQo+ID4gKwkJCVBSSXg2NCwgZGV2LT5kYXRhLT5uYW1lLCBkLT5zd19yaW5n cywgZC0NCj4gPnN3X3JpbmdzX3BoeXMpOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICAvKiBGcmVlIDY0TUIgbWVtb3J5IHVzZWQgZm9yIHNvZnR3YXJlIHJpbmdz ICovDQo+IA0KPiBTZWVtcyB0byBiZSAyeDY0TUIgYXJlIGFsbG9jYXRlZC4NCg0KSXQgbWF5IGJl IDJ4NjQgaW4gY2FzZSA2NE1CIGFsbG9jYXRpb25zIGZhaWxlZC4gSSBjYW4ganVzdCByZW1vdmUg YXMgdGhpcyBpcyBub24gaW5mb3JtdGl2ZS4gDQoNCj4gDQo+ID4gIHN0YXRpYyBpbnQNCj4gPiAt YWNjMTAwX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYgIF9fcnRlX3VudXNlZCkNCj4g PiArYWNjMTAwX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYpDQo+ID4gIHsNCj4gPiAr CXN0cnVjdCBhY2MxMDBfZGV2aWNlICpkID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiAr CWlmIChkLT5zd19yaW5nc19iYXNlICE9IE5VTEwpIHsNCj4gPiArCQlydGVfZnJlZShkLT50YWls X3B0cnMpOw0KPiA+ICsJCXJ0ZV9mcmVlKGQtPnN3X3JpbmdzX2Jhc2UpOw0KPiA+ICsJCWQtPnN3 X3JpbmdzX2Jhc2UgPSBOVUxMOw0KPiA+ICsJfQ0KPiA+ICsJdXNsZWVwKEFDQzEwMF9MT05HX1dB SVQpOw0KPiANCj4gVGhpcyBzbGVlcCBsb29rcyB3ZWlyZCwgaXQgd291bGQgbmVlZCBhIGNvbW1l bnQgaWYgaXQgaXMgcmVhbGx5IG5lZWRlZC4NCg0KTm9uIHJlYWwgdGltZSBpbXBhY3QsIGp1c3Qg aW4gY2FzZSB0aGVyZSBhcmUgcGVuZGluZyBpbi1mbGlnaHQgdHJhbnNhY3Rpb25zIGZyb20gSFcg YW5kIGVuc3VyZSB3ZSBhcmUgcXVpZXNjZSBvbmNlIGRldmljZSBpcyBjb25zaWRlcmVkIGNsb3Nl ZC4gDQoNCj4gDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gKy8q Kg0KPiA+ICsgKiBSZXBvcnQgYSBBQ0MxMDAgcXVldWUgaW5kZXggd2hpY2ggaXMgZnJlZQ0KPiA+ ICsgKiBSZXR1cm4gMCB0byAxNmsgZm9yIGEgdmFsaWQgcXVldWVfaWR4IG9yIC0xIHdoZW4gbm8g cXVldWUgaXMNCj4gPiArYXZhaWxhYmxlDQo+ID4gKyAqIE5vdGUgOiBPbmx5IHN1cHBvcnRpbmcg VkYwIEJ1bmRsZSBmb3IgUEYgbW9kZSAgKi8gc3RhdGljIGludA0KPiA+ICthY2MxMDBfZmluZF9m cmVlX3F1ZXVlX2lkeChzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsDQo+ID4gKwkJY29uc3Qgc3RydWN0 IHJ0ZV9iYmRldl9xdWV1ZV9jb25mICpjb25mKSB7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX2Rldmlj ZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwlpbnQgb3BfMl9hY2NbNV0gPSB7 MCwgVUxfNEcsIERMXzRHLCBVTF81RywgRExfNUd9Ow0KPiA+ICsJaW50IGFjYyA9IG9wXzJfYWNj W2NvbmYtPm9wX3R5cGVdOw0KPiA+ICsJc3RydWN0IHJ0ZV9xX3RvcG9sb2d5X3QgKnF0b3AgPSBO VUxMOw0KPiANCj4gTmV3IGxpbmUuDQoNCm9rDQoNCj4gDQo+ID4gKwlxdG9wRnJvbUFjYygmcXRv cCwgYWNjLCAmKGQtPmFjYzEwMF9jb25mKSk7DQo+ID4gKwlpZiAocXRvcCA9PSBOVUxMKQ0KPiA+ ICsJCXJldHVybiAtMTsNCj4gPiArCS8qIElkZW50aWZ5IG1hdGNoaW5nIFFHcm91cCBJbmRleCB3 aGljaCBhcmUgc29ydGVkIGluIHByaW9yaXR5IG9yZGVyDQo+ICovDQo+ID4gKwl1aW50MTZfdCBn cm91cF9pZHggPSBxdG9wLT5maXJzdF9xZ3JvdXBfaW5kZXg7DQo+ID4gKwlncm91cF9pZHggKz0g Y29uZi0+cHJpb3JpdHk7DQo+ID4gKwlpZiAoZ3JvdXBfaWR4ID49IEFDQzEwMF9OVU1fUUdSUFMg fHwNCj4gPiArCQkJY29uZi0+cHJpb3JpdHkgPj0gcXRvcC0+bnVtX3Fncm91cHMpIHsNCj4gPiAr CQlydGVfYmJkZXZfbG9nKElORk8sICJJbnZhbGlkIFByaW9yaXR5IG9uICVzLCBwcmlvcml0eSAl dSIsDQo+ID4gKwkJCQlkZXYtPmRhdGEtPm5hbWUsIGNvbmYtPnByaW9yaXR5KTsNCj4gPiArCQly ZXR1cm4gLTE7DQo+ID4gKwl9DQo+ID4gKwkvKiBGaW5kIGEgZnJlZSBBUV9pZHggICovDQo+ID4g Kwl1aW50MTZfdCBhcV9pZHg7DQo+ID4gKwlmb3IgKGFxX2lkeCA9IDA7IGFxX2lkeCA8IHF0b3At Pm51bV9hcXNfcGVyX2dyb3VwczsgYXFfaWR4KyspIHsNCj4gPiArCQlpZiAoKChkLT5xX2Fzc2ln bmVkX2JpdF9tYXBbZ3JvdXBfaWR4XSA+PiBhcV9pZHgpICYgMHgxKSA9PQ0KPiAwKSB7DQo+ID4g KwkJCS8qIE1hcmsgdGhlIFF1ZXVlIGFzIGFzc2lnbmVkICovDQo+ID4gKwkJCWQtPnFfYXNzaWdu ZWRfYml0X21hcFtncm91cF9pZHhdIHw9ICgxIDw8IGFxX2lkeCk7DQo+ID4gKwkJCS8qIFJlcG9y dCB0aGUgQVEgSW5kZXggKi8NCj4gPiArCQkJcmV0dXJuIChncm91cF9pZHggPDwgQUNDMTAwX0dS UF9JRF9TSElGVCkgKw0KPiBhcV9pZHg7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICsJcnRlX2Ji ZGV2X2xvZyhJTkZPLCAiRmFpbGVkIHRvIGZpbmQgZnJlZSBxdWV1ZSBvbiAlcywgcHJpb3JpdHkg JXUiLA0KPiA+ICsJCQlkZXYtPmRhdGEtPm5hbWUsIGNvbmYtPnByaW9yaXR5KTsNCj4gPiArCXJl dHVybiAtMTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyogU2V0dXAgQUNDMTAwIHF1ZXVlICovDQo+ ID4gK3N0YXRpYyBpbnQNCj4gPiArYWNjMTAwX3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfYmJkZXYg KmRldiwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9x dWV1ZV9jb25mICpjb25mKSB7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX2RldmljZSAqZCA9IGRldi0+ ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3QgYWNjMTAwX3F1ZXVlICpxOw0KPiA+ICsJ aW50MTZfdCBxX2lkeDsNCj4gPiArDQo+ID4gKwkvKiBBbGxvY2F0ZSB0aGUgcXVldWUgZGF0YSBz dHJ1Y3R1cmUuICovDQo+ID4gKwlxID0gcnRlX3ptYWxsb2Nfc29ja2V0KGRldi0+ZGV2aWNlLT5k cml2ZXItPm5hbWUsIHNpemVvZigqcSksDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIGNv bmYtPnNvY2tldCk7DQo+ID4gKwlpZiAocSA9PSBOVUxMKSB7DQo+ID4gKwkJcnRlX2JiZGV2X2xv ZyhFUlIsICJGYWlsZWQgdG8gYWxsb2NhdGUgcXVldWUgbWVtb3J5Iik7DQo+ID4gKwkJcmV0dXJu IC1FTk9NRU07DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcS0+ZCA9IGQ7DQo+ID4gKwlxLT5yaW5n X2FkZHIgPSBSVEVfUFRSX0FERChkLT5zd19yaW5ncywgKGQtPnN3X3Jpbmdfc2l6ZSAqDQo+ID4g K3F1ZXVlX2lkKSk7DQo+IA0KPiBZb3UgbWlnaHQgd2FudCB0byBlbnN1cmUgZCBpcyBub3QgTlVM TCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdC4NCg0KZG9lc24ndCBodXJ0LCBvaw0KDQo+IA0KPiA+ ICsJcS0+cmluZ19hZGRyX3BoeXMgPSBkLT5zd19yaW5nc19waHlzICsgKGQtPnN3X3Jpbmdfc2l6 ZSAqDQo+IHF1ZXVlX2lkKTsNCj4gPiArDQo+ID4gKwkvKiBQcmVwYXJlIHRoZSBSaW5nIHdpdGgg ZGVmYXVsdCBkZXNjcmlwdG9yIGZvcm1hdCAqLw0KPiA+ICsJdW5pb24gYWNjMTAwX2RtYV9kZXNj ICpkZXNjID0gTlVMTDsNCj4gPiArCXVuc2lnbmVkIGludCBkZXNjX2lkeCwgYl9pZHg7DQo+ID4g KwlpbnQgZmN3X2xlbiA9IChjb25mLT5vcF90eXBlID09IFJURV9CQkRFVl9PUF9MRFBDX0VOQyA/ DQo+ID4gKwkJQUNDMTAwX0ZDV19MRV9CTEVOIDogKGNvbmYtPm9wX3R5cGUgPT0NCj4gUlRFX0JC REVWX09QX1RVUkJPX0RFQyA/DQo+ID4gKwkJQUNDMTAwX0ZDV19URF9CTEVOIDogQUNDMTAwX0ZD V19MRF9CTEVOKSk7DQo+ID4gKw0KPiA+ICsJZm9yIChkZXNjX2lkeCA9IDA7IGRlc2NfaWR4IDwg ZC0+c3dfcmluZ19tYXhfZGVwdGg7IGRlc2NfaWR4KyspIHsNCj4gPiArCQlkZXNjID0gcS0+cmlu Z19hZGRyICsgZGVzY19pZHg7DQo+ID4gKwkJZGVzYy0+cmVxLndvcmQwID0gQUNDMTAwX0RNQV9E RVNDX1RZUEU7DQo+ID4gKwkJZGVzYy0+cmVxLndvcmQxID0gMDsgLyoqPCBUaW1lc3RhbXAgKi8N Cj4gPiArCQlkZXNjLT5yZXEud29yZDIgPSAwOw0KPiA+ICsJCWRlc2MtPnJlcS53b3JkMyA9IDA7 DQo+ID4gKwkJdWludDY0X3QgZmN3X29mZnNldCA9IChkZXNjX2lkeCA8PCA4KSArDQo+IEFDQzEw MF9ERVNDX0ZDV19PRkZTRVQ7DQo+ID4gKwkJZGVzYy0+cmVxLmRhdGFfcHRyc1swXS5hZGRyZXNz ID0gcS0+cmluZ19hZGRyX3BoeXMgKw0KPiBmY3dfb2Zmc2V0Ow0KPiA+ICsJCWRlc2MtPnJlcS5k YXRhX3B0cnNbMF0uYmxlbiA9IGZjd19sZW47DQo+ID4gKwkJZGVzYy0+cmVxLmRhdGFfcHRyc1sw XS5ibGtpZCA9IEFDQzEwMF9ETUFfQkxLSURfRkNXOw0KPiA+ICsJCWRlc2MtPnJlcS5kYXRhX3B0 cnNbMF0ubGFzdCA9IDA7DQo+ID4gKwkJZGVzYy0+cmVxLmRhdGFfcHRyc1swXS5kbWFfZXh0ID0g MDsNCj4gPiArCQlmb3IgKGJfaWR4ID0gMTsgYl9pZHggPCBBQ0MxMDBfRE1BX01BWF9OVU1fUE9J TlRFUlMgLQ0KPiAxOw0KPiA+ICsJCQkJYl9pZHgrKykgew0KPiA+ICsJCQlkZXNjLT5yZXEuZGF0 YV9wdHJzW2JfaWR4XS5ibGtpZCA9DQo+IEFDQzEwMF9ETUFfQkxLSURfSU47DQo+ID4gKwkJCWRl c2MtPnJlcS5kYXRhX3B0cnNbYl9pZHhdLmxhc3QgPSAxOw0KPiA+ICsJCQlkZXNjLT5yZXEuZGF0 YV9wdHJzW2JfaWR4XS5kbWFfZXh0ID0gMDsNCj4gPiArCQkJYl9pZHgrKzsNCj4gPiArCQkJZGVz Yy0+cmVxLmRhdGFfcHRyc1tiX2lkeF0uYmxraWQgPQ0KPiA+ICsJCQkJCUFDQzEwMF9ETUFfQkxL SURfT1VUX0VOQzsNCj4gPiArCQkJZGVzYy0+cmVxLmRhdGFfcHRyc1tiX2lkeF0ubGFzdCA9IDE7 DQo+ID4gKwkJCWRlc2MtPnJlcS5kYXRhX3B0cnNbYl9pZHhdLmRtYV9leHQgPSAwOw0KPiA+ICsJ CX0NCj4gPiArCQkvKiBQcmVzZXQgc29tZSBmaWVsZHMgb2YgTERQQyBGQ1cgKi8NCj4gPiArCQlk ZXNjLT5yZXEuZmN3X2xkLkZDV3ZlcnNpb24gPSBBQ0MxMDBfRkNXX1ZFUjsNCj4gPiArCQlkZXNj LT5yZXEuZmN3X2xkLmdhaW5faSA9IDE7DQo+ID4gKwkJZGVzYy0+cmVxLmZjd19sZC5nYWluX2gg PSAxOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXEtPmxiX2luID0gcnRlX3ptYWxsb2Nfc29ja2V0 KGRldi0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUs DQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIGNvbmYtPnNvY2tldCk7DQo+ID4gKwlpZiAo cS0+bGJfaW4gPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLCAiRmFpbGVkIHRv IGFsbG9jYXRlIGxiX2luIG1lbW9yeSIpOw0KPiA+ICsJCXJ0ZV9mcmVlKHEpOw0KPiA+ICsJCXJl dHVybiAtRU5PTUVNOw0KPiA+ICsJfQ0KPiA+ICsJcS0+bGJfaW5fYWRkcl9waHlzID0gcnRlX21h bGxvY192aXJ0MmlvdmEocS0+bGJfaW4pOw0KPiA+ICsJcS0+bGJfb3V0ID0gcnRlX3ptYWxsb2Nf c29ja2V0KGRldi0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5F X1NJWkUsDQo+ID4gKwkJCVJURV9DQUNIRV9MSU5FX1NJWkUsIGNvbmYtPnNvY2tldCk7DQo+ID4g KwlpZiAocS0+bGJfb3V0ID09IE5VTEwpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKEVSUiwgIkZh aWxlZCB0byBhbGxvY2F0ZSBsYl9vdXQgbWVtb3J5Iik7DQo+ID4gKwkJcnRlX2ZyZWUocS0+bGJf aW4pOw0KPiA+ICsJCXJ0ZV9mcmVlKHEpOw0KPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsJ fQ0KPiA+ICsJcS0+bGJfb3V0X2FkZHJfcGh5cyA9IHJ0ZV9tYWxsb2NfdmlydDJpb3ZhKHEtPmxi X291dCk7DQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAqIFNvZnR3YXJlIHF1ZXVlIHJpbmcgd3Jh cHMgc3luY2hyb25vdXNseSB3aXRoIHRoZSBIVyB3aGVuIGl0DQo+IHJlYWNoZXMNCj4gPiArCSAq IHRoZSBib3VuZGFyeSBvZiB0aGUgbWF4aW11bSBhbGxvY2F0ZWQgcXVldWUgc2l6ZSwgbm8gbWF0 dGVyDQo+IHdoYXQgdGhlDQo+ID4gKwkgKiBzdyBxdWV1ZSBzaXplIGlzLiBUaGlzIHdyYXBwaW5n IGlzIGd1YXJkZWQgYnkgc2V0dGluZyB0aGUNCj4gd3JhcF9tYXNrDQo+ID4gKwkgKiB0byByZXBy ZXNlbnQgdGhlIG1heGltdW0gcXVldWUgc2l6ZSBhcyBhbGxvY2F0ZWQgYXQgdGhlIHRpbWUNCj4g d2hlbg0KPiA+ICsJICogdGhlIGRldmljZSBoYXMgYmVlbiBzZXR1cCAoaW4gY29uZmlndXJlKCkp Lg0KPiA+ICsJICoNCj4gPiArCSAqIFRoZSBxdWV1ZSBkZXB0aCBpcyBzZXQgdG8gdGhlIHF1ZXVl IHNpemUgdmFsdWUgKGNvbmYtPnF1ZXVlX3NpemUpLg0KPiA+ICsJICogVGhpcyBsaW1pdHMgdGhl IG9jY3VwYW5jeSBvZiB0aGUgcXVldWUgYXQgYW55IHBvaW50IG9mIHRpbWUsIHNvDQo+IHRoYXQN Cj4gPiArCSAqIHRoZSBxdWV1ZSBkb2VzIG5vdCBnZXQgc3dhbXBlZCB3aXRoIGVucXVldWUgcmVx dWVzdHMuDQo+ID4gKwkgKi8NCj4gPiArCXEtPnN3X3JpbmdfZGVwdGggPSBjb25mLT5xdWV1ZV9z aXplOw0KPiA+ICsJcS0+c3dfcmluZ193cmFwX21hc2sgPSBkLT5zd19yaW5nX21heF9kZXB0aCAt IDE7DQo+ID4gKw0KPiA+ICsJcS0+b3BfdHlwZSA9IGNvbmYtPm9wX3R5cGU7DQo+ID4gKw0KPiA+ ICsJcV9pZHggPSBhY2MxMDBfZmluZF9mcmVlX3F1ZXVlX2lkeChkZXYsIGNvbmYpOw0KPiA+ICsJ aWYgKHFfaWR4ID09IC0xKSB7DQo+ID4gKwkJcnRlX2ZyZWUocS0+bGJfaW4pOw0KPiA+ICsJCXJ0 ZV9mcmVlKHEtPmxiX291dCk7DQo+ID4gKwkJcnRlX2ZyZWUocSk7DQo+ID4gKwkJcmV0dXJuIC0x Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXEtPnFncnBfaWQgPSAocV9pZHggPj4gQUNDMTAwX0dS UF9JRF9TSElGVCkgJiAweEY7DQo+ID4gKwlxLT52Zl9pZCA9IChxX2lkeCA+PiBBQ0MxMDBfVkZf SURfU0hJRlQpICAmIDB4M0Y7DQo+ID4gKwlxLT5hcV9pZCA9IHFfaWR4ICYgMHhGOw0KPiA+ICsJ cS0+YXFfZGVwdGggPSAoY29uZi0+b3BfdHlwZSA9PSAgUlRFX0JCREVWX09QX1RVUkJPX0RFQykg Pw0KPiA+ICsJCQkoMSA8PCBkLT5hY2MxMDBfY29uZi5xX3VsXzRnLmFxX2RlcHRoX2xvZzIpIDoN Cj4gPiArCQkJKDEgPDwgZC0+YWNjMTAwX2NvbmYucV9kbF80Zy5hcV9kZXB0aF9sb2cyKTsNCj4g PiArDQo+ID4gKwlxLT5tbWlvX3JlZ19lbnF1ZXVlID0gUlRFX1BUUl9BREQoZC0+bW1pb19iYXNl LA0KPiA+ICsJCQlxdWV1ZV9vZmZzZXQoZC0+cGZfZGV2aWNlLA0KPiA+ICsJCQkJCXEtPnZmX2lk LCBxLT5xZ3JwX2lkLCBxLT5hcV9pZCkpOw0KPiA+ICsNCj4gPiArCXJ0ZV9iYmRldl9sb2dfZGVi dWcoDQo+ID4gKwkJCSJTZXR1cCBkZXYldSBxJXU6IHFncnBfaWQ9JXUsIHZmX2lkPSV1LA0KPiBh cV9pZD0ldSwgYXFfZGVwdGg9JXUsIG1taW9fcmVnX2VucXVldWU9JXAiLA0KPiA+ICsJCQlkZXYt PmRhdGEtPmRldl9pZCwgcXVldWVfaWQsIHEtPnFncnBfaWQsIHEtPnZmX2lkLA0KPiA+ICsJCQlx LT5hcV9pZCwgcS0+YXFfZGVwdGgsIHEtPm1taW9fcmVnX2VucXVldWUpOw0KPiA+ICsNCj4gPiAr CWRldi0+ZGF0YS0+cXVldWVzW3F1ZXVlX2lkXS5xdWV1ZV9wcml2YXRlID0gcTsNCj4gPiArCXJl dHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBSZWxlYXNlIEFDQzEwMCBxdWV1ZSAqLw0K PiA+ICtzdGF0aWMgaW50DQo+ID4gK2FjYzEwMF9xdWV1ZV9yZWxlYXNlKHN0cnVjdCBydGVfYmJk ZXYgKmRldiwgdWludDE2X3QgcV9pZCkgew0KPiA+ICsJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQg PSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJc3RydWN0IGFjYzEwMF9xdWV1ZSAqcSA9 IGRldi0+ZGF0YS0+cXVldWVzW3FfaWRdLnF1ZXVlX3ByaXZhdGU7DQo+ID4gKw0KPiA+ICsJaWYg KHEgIT0gTlVMTCkgew0KPiA+ICsJCS8qIE1hcmsgdGhlIFF1ZXVlIGFzIHVuLWFzc2lnbmVkICov DQo+ID4gKwkJZC0+cV9hc3NpZ25lZF9iaXRfbWFwW3EtPnFncnBfaWRdICY9ICgweEZGRkZGRkZG IC0NCj4gPiArCQkJCSgxIDw8IHEtPmFxX2lkKSk7DQo+ID4gKwkJcnRlX2ZyZWUocS0+bGJfaW4p Ow0KPiA+ICsJCXJ0ZV9mcmVlKHEtPmxiX291dCk7DQo+ID4gKwkJcnRlX2ZyZWUocSk7DQo+ID4g KwkJZGV2LT5kYXRhLT5xdWV1ZXNbcV9pZF0ucXVldWVfcHJpdmF0ZSA9IE5VTEw7DQo+ID4gKwl9 DQo+ID4gKw0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC0yNjIsOCArNjk1 LDExIEBADQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9v cHMgYWNjMTAwX2JiZGV2X29wcyA9IHsNCj4gPiArCS5zZXR1cF9xdWV1ZXMgPSBhY2MxMDBfc2V0 dXBfcXVldWVzLA0KPiA+ICAJLmNsb3NlID0gYWNjMTAwX2Rldl9jbG9zZSwNCj4gPiAgCS5pbmZv X2dldCA9IGFjYzEwMF9kZXZfaW5mb19nZXQsDQo+ID4gKwkucXVldWVfc2V0dXAgPSBhY2MxMDBf cXVldWVfc2V0dXAsDQo+ID4gKwkucXVldWVfcmVsZWFzZSA9IGFjYzEwMF9xdWV1ZV9yZWxlYXNl LA0KPiA+ICB9Ow0KPiA+DQo+ID4gIC8qIEFDQzEwMCBQQ0kgUEYgYWRkcmVzcyBtYXAgKi8NCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0K PiA+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+IGluZGV4 IGRlMDE1Y2EuLjI1MDgzODUgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2Mx MDAvcnRlX2FjYzEwMF9wbWQuaA0KPiA+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0 ZV9hY2MxMDBfcG1kLmgNCj4gPiBAQCAtNTIyLDExICs1MjIsNTYgQEAgc3RydWN0IGFjYzEwMF9y ZWdpc3RyeV9hZGRyIHsNCj4gPiAgCS5kZHJfcmFuZ2UgPSBIV1ZmRG1hRGRyQmFzZVJhbmdlUm9W ZiwgIH07DQo+ID4NCj4gPiArLyogU3RydWN0dXJlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHF1ZXVl LiAqLyBzdHJ1Y3QNCj4gPiArX19ydGVfY2FjaGVfYWxpZ25lZCBhY2MxMDBfcXVldWUgew0KPiA+ ICsJdW5pb24gYWNjMTAwX2RtYV9kZXNjICpyaW5nX2FkZHI7ICAvKiBWaXJ0dWFsIGFkZHJlc3Mg b2Ygc3cgcmluZyAqLw0KPiA+ICsJcnRlX2lvdmFfdCByaW5nX2FkZHJfcGh5czsgIC8qIFBoeXNp Y2FsIGFkZHJlc3Mgb2Ygc29mdHdhcmUgcmluZyAqLw0KPiA+ICsJdWludDMyX3Qgc3dfcmluZ19o ZWFkOyAgLyogc29mdHdhcmUgcmluZyBoZWFkICovDQo+ID4gKwl1aW50MzJfdCBzd19yaW5nX3Rh aWw7ICAvKiBzb2Z0d2FyZSByaW5nIHRhaWwgKi8NCj4gPiArCS8qIHNvZnR3YXJlIHJpbmcgc2l6 ZSAoZGVzY3JpcHRvcnMsIG5vdCBieXRlcykgKi8NCj4gPiArCXVpbnQzMl90IHN3X3JpbmdfZGVw dGg7DQo+ID4gKwkvKiBtYXNrIHVzZWQgdG8gd3JhcCBlbnF1ZXVlZCBkZXNjcmlwdG9ycyBvbiB0 aGUgc3cgcmluZyAqLw0KPiA+ICsJdWludDMyX3Qgc3dfcmluZ193cmFwX21hc2s7DQo+ID4gKwkv KiBNTUlPIHJlZ2lzdGVyIHVzZWQgdG8gZW5xdWV1ZSBkZXNjcmlwdG9ycyAqLw0KPiA+ICsJdm9p ZCAqbW1pb19yZWdfZW5xdWV1ZTsNCj4gPiArCXVpbnQ4X3QgdmZfaWQ7ICAvKiBWRiBJRCAobWF4 ID0gNjMpICovDQo+ID4gKwl1aW50OF90IHFncnBfaWQ7ICAvKiBRdWV1ZSBHcm91cCBJRCAqLw0K PiA+ICsJdWludDE2X3QgYXFfaWQ7ICAvKiBBdG9taWMgUXVldWUgSUQgKi8NCj4gPiArCXVpbnQx Nl90IGFxX2RlcHRoOyAgLyogRGVwdGggb2YgYXRvbWljIHF1ZXVlICovDQo+ID4gKwl1aW50MzJf dCBhcV9lbnF1ZXVlZDsgIC8qIENvdW50IGhvdyBtYW55ICJiYXRjaGVzIiBoYXZlIGJlZW4NCj4g ZW5xdWV1ZWQgKi8NCj4gPiArCXVpbnQzMl90IGFxX2RlcXVldWVkOyAgLyogQ291bnQgaG93IG1h bnkgImJhdGNoZXMiIGhhdmUgYmVlbg0KPiBkZXF1ZXVlZCAqLw0KPiA+ICsJdWludDMyX3QgaXJx X2VuYWJsZTsgIC8qIEVuYWJsZSBvcHMgZGVxdWV1ZSBpbnRlcnJ1cHRzIGlmIHNldCB0byAxICov DQo+ID4gKwlzdHJ1Y3QgcnRlX21lbXBvb2wgKmZjd19tZW1wb29sOyAgLyogRkNXIG1lbXBvb2wg Ki8NCj4gPiArCWVudW0gcnRlX2JiZGV2X29wX3R5cGUgb3BfdHlwZTsgIC8qIFR5cGUgb2YgdGhp cyBRdWV1ZTogVEUgb3IgVEQNCj4gKi8NCj4gPiArCS8qIEludGVybmFsIEJ1ZmZlcnMgZm9yIGxv b3BiYWNrIGlucHV0ICovDQo+ID4gKwl1aW50OF90ICpsYl9pbjsNCj4gPiArCXVpbnQ4X3QgKmxi X291dDsNCj4gPiArCXJ0ZV9pb3ZhX3QgbGJfaW5fYWRkcl9waHlzOw0KPiA+ICsJcnRlX2lvdmFf dCBsYl9vdXRfYWRkcl9waHlzOw0KPiA+ICsJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQ7DQo+ID4g K307DQo+ID4gKw0KPiA+ICAvKiBQcml2YXRlIGRhdGEgc3RydWN0dXJlIGZvciBlYWNoIEFDQzEw MCBkZXZpY2UgKi8gIHN0cnVjdA0KPiA+IGFjYzEwMF9kZXZpY2Ugew0KPiA+ICAJdm9pZCAqbW1p b19iYXNlOyAgLyoqPCBCYXNlIGFkZHJlc3Mgb2YgTU1JTyByZWdpc3RlcnMgKEJBUjApICovDQo+ ID4gKwl2b2lkICpzd19yaW5nc19iYXNlOyAgLyogQmFzZSBhZGRyIG9mIHVuLWFsaWduZWQgbWVt b3J5IGZvciBzdw0KPiByaW5ncyAqLw0KPiA+ICsJdm9pZCAqc3dfcmluZ3M7ICAvKiA2NE1CcyBv ZiA2NE1CIGFsaWduZWQgbWVtb3J5IGZvciBzdyByaW5ncyAqLw0KPiA+ICsJcnRlX2lvdmFfdCBz d19yaW5nc19waHlzOyAgLyogUGh5c2ljYWwgYWRkcmVzcyBvZiBzd19yaW5ncyAqLw0KPiA+ICsJ LyogVmlydHVhbCBhZGRyZXNzIG9mIHRoZSBpbmZvIG1lbW9yeSByb3V0ZWQgdG8gdGhlIHRoaXMg ZnVuY3Rpb24NCj4gdW5kZXINCj4gPiArCSAqIG9wZXJhdGlvbiwgd2hldGhlciBpdCBpcyBQRiBv ciBWRi4NCj4gPiArCSAqLw0KPiA+ICsJdW5pb24gYWNjMTAwX2hhcnFfbGF5b3V0X2RhdGEgKmhh cnFfbGF5b3V0Ow0KPiA+ICsJdWludDMyX3Qgc3dfcmluZ19zaXplOw0KPiA+ICAJdWludDMyX3Qg ZGRyX3NpemU7IC8qIFNpemUgaW4ga0IgKi8NCj4gPiArCXVpbnQzMl90ICp0YWlsX3B0cnM7IC8q IEJhc2UgYWRkcmVzcyBvZiByZXNwb25zZSB0YWlsIHBvaW50ZXIgYnVmZmVyICovDQo+ID4gKwly dGVfaW92YV90IHRhaWxfcHRyX3BoeXM7IC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGFpbCBwb2lu dGVycyAqLw0KPiA+ICsJLyogTWF4IG51bWJlciBvZiBlbnRyaWVzIGF2YWlsYWJsZSBmb3IgZWFj aCBxdWV1ZSBpbiBkZXZpY2UsDQo+IGRlcGVuZGluZw0KPiA+ICsJICogb24gaG93IG1hbnkgcXVl dWVzIGFyZSBlbmFibGVkIHdpdGggY29uZmlndXJlKCkNCj4gPiArCSAqLw0KPiA+ICsJdWludDMy X3Qgc3dfcmluZ19tYXhfZGVwdGg7DQo+ID4gIAlzdHJ1Y3QgYWNjMTAwX2NvbmYgYWNjMTAwX2Nv bmY7IC8qIEFDQzEwMCBJbml0aWFsIGNvbmZpZ3VyYXRpb24gKi8NCj4gPiArCS8qIEJpdG1hcCBj YXB0dXJpbmcgd2hpY2ggUXVldWVzIGhhdmUgYWxyZWFkeSBiZWVuIGFzc2lnbmVkICovDQo+ID4g Kwl1aW50MTZfdCBxX2Fzc2lnbmVkX2JpdF9tYXBbQUNDMTAwX05VTV9RR1JQU107DQo+ID4gIAli b29sIHBmX2RldmljZTsgLyoqPCBUcnVlIGlmIHRoaXMgaXMgYSBQRiBBQ0MxMDAgZGV2aWNlICov DQo+ID4gIAlib29sIGNvbmZpZ3VyZWQ7IC8qKjwgVHJ1ZSBpZiB0aGlzIEFDQzEwMCBkZXZpY2Ug aXMgY29uZmlndXJlZCAqLw0KPiA+IH07DQo+ID4NCg0K