From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 75EFAA0550; Tue, 31 May 2022 20:28:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5ADBE40A87; Tue, 31 May 2022 20:28:17 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 3391040A84 for ; Tue, 31 May 2022 20:28:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654021695; x=1685557695; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=/hpQ7Blv96+0g6Yzz5+Vs7GPxZaaeZeq1zvOFqXa4tA=; b=P2zaVFyJmW5oXulns2sIxaNZpY7CiTeY6ivm2NxU76UuxevSuPSfheL1 F9euIH3ebBQMs14Nz3+BKCUjn+hquv1E0vxks58Wu8OId6Chd5bXZ1leW rqnAsPiG3gWgJwWh9/eWQCv5OLiI3bSGMT8QXmv156+eSOTzmufO8ipu2 +9DIdTqXWvDkzIg9VulMo/7ZOIko50XqjcO3cmGdVd1qmj3Yuyz2h0ikB ePMw5UgBblR07vvRhyWcf2L16vn3lecyhwYJbeGe27YqeT8APQRtmZtpo ZKzrgaMqZZldDXsXHRAj8ojKUSnfCTSItG/a4GNGPI2KOgwqKRnoilcgM A==; X-IronPort-AV: E=McAfee;i="6400,9594,10364"; a="262982226" X-IronPort-AV: E=Sophos;i="5.91,266,1647327600"; d="scan'208";a="262982226" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2022 11:28:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,266,1647327600"; d="scan'208";a="667043199" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by FMSMGA003.fm.intel.com with ESMTP; 31 May 2022 11:28:13 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 31 May 2022 11:28:12 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Tue, 31 May 2022 11:28:12 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.44) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Tue, 31 May 2022 11:28:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fAl+Sc0PT12BIk5GsyqhNgv3eKpjpfS7IvVCE1fNUhWRMuhFdN9KXeDoQrenb4R1YClFoShsWw0qae6eOaiYZqdXtOWf63q9Muaf35q+A0zSRQAd8z9OihinPlvDV1JzsasexPG8oA+bDQmX9UZom8uyyIHjwvInSKOgrUW3U8whHRVMGeZvlUZ7WHKA7fIVcIeL2xGlL72pDuPqyTH31/mQZyoDEAW00uaUgpoXJmnp+LtnxzNLuLRooHBcqvF0cYHdSMpIlgEHSDqrkTaKCDr3KGdETDFr1QajqILlsy213gnGzrikEuKWIFnBsaoWgOwbXbAGMaouKFYHH2Lldg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/hpQ7Blv96+0g6Yzz5+Vs7GPxZaaeZeq1zvOFqXa4tA=; b=HWtsTN7/K2WvLZyVWTQORRwlhkMTh21u9fWqpFiCDcrmxs6sZ1HeNYYNte7jXFVJDR9WdpIyxQhhV40zq8tGxoeG9I12E5VsDvUcYiiHtu6B6WYKxSVuWjuabP84/3B193MQ24wy2/cNN4P8XCXA+rVTsnTbbqBu5y3YP33qz6M73QUlx6Zdctmsw9NHwVvGAE7RcKHpMMaWeq92wd55MhnIsx+ElFfE5S+MX39zOKFPyd9sTMoYeajWXg7wzC3Du25qbI6xe75IEeHuSQ5JbOPM22G8Qhu/cBxAQNHVvHl0LbKke6C2pCKdqNoKQxeszUjITuJff/GM5/u5O8Z6Eg== 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 Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by DM6PR11MB4425.namprd11.prod.outlook.com (2603:10b6:5:1d9::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Tue, 31 May 2022 18:28:10 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::40f:170c:c586:7219]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::40f:170c:c586:7219%2]) with mapi id 15.20.5293.019; Tue, 31 May 2022 18:28:10 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" , "gakhil@marvell.com" , "trix@redhat.com" CC: "thomas@monjalon.net" , "Kinsella, Ray" , "Richardson, Bruce" , "hemant.agrawal@nxp.com" , "Vargas, Hernan" , "david.marchand@redhat.com" Subject: RE: [PATCH v6 5/5] baseband/acc100: configuration of ACC101 from PF Thread-Topic: [PATCH v6 5/5] baseband/acc100: configuration of ACC101 from PF Thread-Index: AQHYcJyNyM2C+cAjTEWJfulK6+7c0q04oNiAgAC0NVA= Date: Tue, 31 May 2022 18:28:10 +0000 Message-ID: References: <1653350912-53876-1-git-send-email-nicolas.chautru@intel.com> <1653526523-68839-1-git-send-email-nicolas.chautru@intel.com> <1653526523-68839-6-git-send-email-nicolas.chautru@intel.com> In-Reply-To: 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.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a5946fcc-b3a8-4a27-7c00-08da433350ca x-ms-traffictypediagnostic: DM6PR11MB4425:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CENPHHzLOoHcLieT4SQaUL1BRd+QZ11bseOKgFIHhUItY6A/yVQZJ1HSg9t0ccY+ZrCZOI5inRt0iAoDpAG5QA5Ra1x/qvoW96duV+ZdYPGRLkKd40yFN0Vzg9WfRq5Z+LdhwrW1PiC5fBF+NbFcTPgoGSkY9gvO8lfO43rb/DY3bR2saHLKjvFvFHI+whhzkB3hkOkNBtAu4F1I66DnC+xhMuNFV8+NKkXIy15AHI/+nbDEMywOljiab5Im87P5+/NL576wKPm/ax80XrVkueg6srqqZ3yWljQwRLCEsVrbE8Frfp4xH4GsXeIYOyxV1rwfP9wMEcRhvYeIO+UG8Dj4pUoze3YpoEqJVlqNRQWw6fRKwqjh5lMznv1mE3ubv4qyJdKr9SttCUa9HPz3LNUARHBff3r4UbdW3CdnnrPeM6HbAouor6XUGmUnUybUpweKVnDDoWeNK3Hnm1IGbvyrgBiRuWWydkIYXXolA3FOgydi/hmQVyIlP3dyGoscxiLc2XT8p/wYHiwNwAxAzye5M5A5TDTbDpdp4NItPESoYq4sqO0LxpS2K00deTWZyOwIb+46da/oIH2BudTiD+EPFlM+eOTX7NDoMLp6+MCxA5x34gEOOlgUl3TrUQNUZ15PYdJwRf0nA9DZ6KvFni2v3pG1b2X6i6X/EAKEOeCv7tzubxYfT7wSRdE5BZ/3mSABuEUbMuWKn79k61KxeWtGMX45RY6zB2N5Hi5vIZ36fAjs/TJ2/u0I2v0UiLGL 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:(13230001)(366004)(86362001)(8676002)(76116006)(508600001)(8936002)(5660300002)(4326008)(19627235002)(71200400001)(38100700002)(316002)(66946007)(64756008)(66446008)(52536014)(54906003)(30864003)(66476007)(110136005)(66556008)(26005)(82960400001)(9686003)(7696005)(6506007)(53546011)(2906002)(186003)(83380400001)(122000001)(33656002)(38070700005)(55016003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TE1Tc0VsTDhPOFd6WWg5a2VsZHA5dFFmZ2pCSGNHVzhTZXlWVURQVEVIZ3lS?= =?utf-8?B?V3BJemtEMTVDOFlsbEV5QmhzT3pjRU80ZUVxMmtodVhkSWxSRkp0aEFYMW9j?= =?utf-8?B?a2N0K24xNDNDeHVIc3RpQXZpSHVJNHlZZFI4ZGt4bDFiYnptZ1FxMmhuWGhw?= =?utf-8?B?OTRDRTFLWmtmdEZJZlVJVHE5U0JCYi8reGxCc2pabU0zc2N2d3U3NjQyRXAr?= =?utf-8?B?S0dQRVdPN0tFRGQ4cEpDTWt1cmlqZEEydDFhdmVVZ3FnS3BMTmFDZXZzMGt2?= =?utf-8?B?MnJ6Vk5vdVVZclYwUDVIQUI3K2F5MWszSjJYQlRaa054Q2lhM2VraDdRUG1r?= =?utf-8?B?S1pJSXl5T1dJMW42SFRhTHJLRWZUM0crOTdlcUpyVUtUWW9vb01tM0ZwS1JJ?= =?utf-8?B?TTFKclU3ekRvU3l2cGJUdENnK3NTa1NCa01nTXJQM2M3Qkw1U2Y3TkFxRStD?= =?utf-8?B?K0dsWlNkTUVhVVJ4T01MSjlGYkk1aVE3Nk1uQ0FDenNKdW8zWXNzNCt1NUNL?= =?utf-8?B?MUgxSHY2YzR2T1pha2dXS055cEpNL3FYVjI5VkVuR1Uwc2JUbUM0djRQeVNU?= =?utf-8?B?UlFHZnVJaXUzdlJTUGNCTzFtRWVCNnFtT3hiY1QyR2VIZ0RiVUZMaTR6dThT?= =?utf-8?B?YVRaaFFNcnNSWXFSY1F4U1ZtL0FXQS9rQ1oxVkphU1psRUVMMU1xT2NhZGNU?= =?utf-8?B?c3hCT2xzMFh2UlpTUUZVQmg3WmFvUDZqZDludllJamxQVnFidzBHemlkUmZI?= =?utf-8?B?Q2FMTUlGcUx0c05DdjV5OFRHckFPaXdod0J1THJSS0F5eU15QkVrdjF5M1hJ?= =?utf-8?B?aGlMOHJIUGJQZ0Nuc0pzdlVqTDhFbll6R0dsdis1ZURqT2FhaEc0cnFQTXFZ?= =?utf-8?B?d1NyTHBkK3lZUlhzWWJNR29OK0FxRndHMnRNNGdWZlRCMi95Q0cvOXhGMy9Q?= =?utf-8?B?WU5VVWhjUnJ6NkxYeFhDeE1VUU16QldDQTFJN3FVU2FGVW9EcmlLTGpHY1VG?= =?utf-8?B?aDQ3eUxLcFAxbnhJU0M0SFJJMTQ0a3cyZ2txRTVOY3gzS0ltNml4M3JPaEV5?= =?utf-8?B?T1p4MzcySzRpa0dpRjFZc09yYzFoaW1XMlBudlFBdFRkLytSclNhQStNdWlU?= =?utf-8?B?RXMyMWNHdllGb1dKMHJTbGxqd050Q3Z5VFlndWQ5VkRXL1Zxb0JDaXF0QTZR?= =?utf-8?B?WWMzVERoTFZqY09PNEp0Y2RjaHNXSFRvUTFPUVZVM3hacHF6N1lLVzFxZ2Fi?= =?utf-8?B?VHdQTytqWW1iWUU0bHEwWWhQSHM4KzM2NnBrR1JXK3lFdXRuNnFhVXZKNmp6?= =?utf-8?B?RHhNSWRNVnE0SkNBdDdBdE9BTUZkU2h0SjNoVnhpZ01rcENqMi9uYmtiNUNL?= =?utf-8?B?NEhRNHVjU3BpV2pScmpEMkxuOGVsS1dWdEozSlIrWDRadFhxc1ZYWHRjL2Q3?= =?utf-8?B?SGNjWFQ5RHBob0VXY28vR1hEdkF4Q2ZKalZSbnJhQmliRWRIOXBFZUNaQlFl?= =?utf-8?B?ekVkTmZwOVhTc1cxNlZlTWpiQ3RPS0hlbzR6Q0JzOFQvRjNIYjBCNFVsQXpp?= =?utf-8?B?SHNGRU5GNjdXN1FHd01iNzRaeTFDMnJzdDRqYVFobVpHMkF4ODZaTVR1UXZV?= =?utf-8?B?RWI5N3BQZ1JFMjkyR1RCZHFKWjZxL2o1QVhmYlNWOHVYMklrSlNTYWRVUmtz?= =?utf-8?B?QmpmeHlVYUNJMkdHYXFSNWFyVVFoNXdNNFBIZVltYTVmUXFGbWFOcGlQT0wz?= =?utf-8?B?V3dlZ042YlRqREpycWcraWdHcHc5UzQ4Z0RrdVJ5WFlwRndnNk1CUzNhaVRE?= =?utf-8?B?U00rNEc5Mmw4Qm10VGJMUmtaTC9pQ05MSjQ0WFhPWjM3NzFQV3VvVjFTRTJ3?= =?utf-8?B?TEFCdUd3NmRoSVV3TGVJMkVmNWljbENhL2IzMUkyYzZtZjVYQ0U3bU1LODNG?= =?utf-8?B?bkN0eW9KMm85RTFidytxaFNaVnVmSWxoanMyK0ZjRmZGMTh6TjQ4M000UHNC?= =?utf-8?B?VVRwZUEyelluakgvc1RCakRuU3JSNUYzTit4dFBaSUZSakVwbjlsYTBLTFZ1?= =?utf-8?B?ZStwSDh2Sy9nbEtUb2d4N2RUSnBPUnoyUG1qL21vZzhkZ3lCVUQ3MG9lckN0?= =?utf-8?B?cXVTaWlwTW9OUDErMENvYWdQMVpGeFZUT0NUcjczeU41ZGlUelh1dERvMWZC?= =?utf-8?B?NVlxTzVNWEFib3FUWEJicWdaZnY4Q1JPTHlZeVZRMUxIZWY5Q29RdzZiL3Q4?= =?utf-8?B?cVA4VitGekZxTGE3VTE2RkNiZXpIY2wxeW12Mk9BZ3F1YkNqYkRTNzVjN2c0?= =?utf-8?B?bU1jTVN2bEYyWXhJZXdtQkVtcUlCVFlYM3djNTNqenEwbTBlU0QyTnpPcjhq?= =?utf-8?Q?/RZsqG0hUHTdPGWs=3D?= 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: a5946fcc-b3a8-4a27-7c00-08da433350ca X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2022 18:28:10.3561 (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: 7dVgz1QHCezUAaBEFV8bQlBTzHVA36kACCvGqkoPsFhwi3ngWDK+RCAgNBwaDNchQdfPyOonZHKgtuzBapdI9H3hZOGoWu/QEyQ1Lg0PxwE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4425 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5 LCBNYXkgMzEsIDIwMjIgMTI6MzYgQU0NCj4gVG86IENoYXV0cnUsIE5pY29sYXMgPG5pY29sYXMu Y2hhdXRydUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7DQo+IGdha2hpbEBtYXJ2ZWxsLmNvbTsg dHJpeEByZWRoYXQuY29tDQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBLaW5zZWxsYSwgUmF5 IDxyYXkua2luc2VsbGFAaW50ZWwuY29tPjsNCj4gUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJp Y2hhcmRzb25AaW50ZWwuY29tPjsNCj4gaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgVmFyZ2FzLCBI ZXJuYW4gPGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPjsNCj4gZGF2aWQubWFyY2hhbmRAcmVkaGF0 LmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY2IDUvNV0gYmFzZWJhbmQvYWNjMTAwOiBjb25m aWd1cmF0aW9uIG9mIEFDQzEwMSBmcm9tDQo+IFBGDQo+IA0KPiBIaSBOaWNvbGFzLA0KPiANCj4g VGhhbmtzIGZvciBkb2luZyB0aGUgQVBJIGNoYW5nZSwgdGhpcyBwYXJ0IGxvb2tzIGdvb2QgdG8g bWUgbm93Lg0KPiBJIGp1c3QgaGF2ZSBvbmUgY29tbWVudCBiZWxvdyB0aGF0IHdhcyBub3QgYWRk cmVzc2VkOg0KPiANCj4gT24gNS8yNi8yMiAwMjo1NSwgTmljb2xhcyBDaGF1dHJ1IHdyb3RlOg0K PiA+IEFkZGluZyBjb21wYW5pb24gZnVuY3Rpb24gY29tbW9uIHRvIEFDQzEwMC9BQ0MxMDEgd2hp Y2ggY2FuIGJlDQo+IGNhbGxlZA0KPiA+IGZyb20gYmJkZXYtdGVzdCB3aGVuIHJ1bm5pbmcgZnJv bSBQRi4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgQ2hhdXRydSA8bmljb2xhcy5j aGF1dHJ1QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgIGFwcC90ZXN0LWJiZGV2L3Rlc3RfYmJk ZXZfcGVyZi5jICAgICAgICAgfCAgIDYgKy0NCj4gPiAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAw L3J0ZV9hY2MxMDBfY2ZnLmggfCAgIDQgKy0NCj4gPiAgIGRyaXZlcnMvYmFzZWJhbmQvYWNjMTAw L3J0ZV9hY2MxMDBfcG1kLmMgfCAzMjMNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQ0KPiA+ICAgZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvdmVyc2lvbi5tYXAgICAgICB8ICAgMyAr LQ0KPiA+ICAgNCBmaWxlcyBjaGFuZ2VkLCAzMjcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkNCj4gPg0KPiANCj4gLi4uDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5k L2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9y dGVfYWNjMTAwX3BtZC5jDQo+ID4gaW5kZXggYTA1N2VkZi4uODY1NDVjYyAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5jDQo+ID4gKysrIGIv ZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYw0KPiA+IEBAIC00NTc0LDgg KzQ1NzQsOCBAQCBzdGF0aWMgaW50IGFjYzEwMF9wY2lfcmVtb3ZlKHN0cnVjdA0KPiBydGVfcGNp X2RldmljZSAqcGNpX2RldikNCj4gPiAgIH0NCj4gPg0KPiA+ICAgLyogSW5pdGlhbCBjb25maWd1 cmF0aW9uIG9mIGEgQUNDMTAwIGRldmljZSBwcmlvciB0byBydW5uaW5nDQo+ID4gY29uZmlndXJl KCkgKi8gLWludCAtcnRlX2FjYzEwMF9jb25maWd1cmUoY29uc3QgY2hhciAqZGV2X25hbWUsIHN0 cnVjdA0KPiA+IHJ0ZV9hY2MxMDBfY29uZiAqY29uZikNCj4gPiArc3RhdGljIGludA0KPiA+ICth Y2MxMDBfY29uZmlndXJlKGNvbnN0IGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3QgcnRlX2FjYzEwMF9j b25mICpjb25mKQ0KPiA+ICAgew0KPiA+ICAgCXJ0ZV9iYmRldl9sb2coSU5GTywgInJ0ZV9hY2Mx MDBfY29uZmlndXJlIik7DQo+ID4gICAJdWludDMyX3QgdmFsdWUsIGFkZHJlc3MsIHN0YXR1czsN Cj4gPiBAQCAtNDk3NSwzICs0OTc1LDMyMiBAQCBzdGF0aWMgaW50IGFjYzEwMF9wY2lfcmVtb3Zl KHN0cnVjdA0KPiBydGVfcGNpX2RldmljZSAqcGNpX2RldikNCj4gPiAgIAlydGVfYmJkZXZfbG9n X2RlYnVnKCJQRiBUaXAgY29uZmlndXJhdGlvbiBjb21wbGV0ZSBmb3IgJXMiLA0KPiBkZXZfbmFt ZSk7DQo+ID4gICAJcmV0dXJuIDA7DQo+ID4gICB9DQo+ID4gKw0KPiA+ICsNCj4gPiArLyogSW5p dGlhbCBjb25maWd1cmF0aW9uIG9mIGEgQUNDMTAxIGRldmljZSBwcmlvciB0byBydW5uaW5nDQo+ ID4gK2NvbmZpZ3VyZSgpICovIHN0YXRpYyBpbnQgYWNjMTAxX2NvbmZpZ3VyZShjb25zdCBjaGFy ICpkZXZfbmFtZSwNCj4gPiArc3RydWN0IHJ0ZV9hY2MxMDBfY29uZiAqY29uZikgew0KPiA+ICsJ cnRlX2JiZGV2X2xvZyhJTkZPLCAicnRlX2FjYzEwMV9jb25maWd1cmUiKTsNCj4gPiArCXVpbnQz Ml90IHZhbHVlLCBhZGRyZXNzLCBzdGF0dXM7DQo+ID4gKwlpbnQgcWdfaWR4LCB0ZW1wbGF0ZV9p ZHgsIHZmX2lkeCwgYWNjLCBpOw0KPiA+ICsJc3RydWN0IHJ0ZV9iYmRldiAqYmJkZXYgPSBydGVf YmJkZXZfZ2V0X25hbWVkX2RldihkZXZfbmFtZSk7DQo+ID4gKw0KPiA+ICsJLyogQ29tcGlsZSB0 aW1lIGNoZWNrcyAqLw0KPiA+ICsJUlRFX0JVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGFjYzEw MF9kbWFfcmVxX2Rlc2MpICE9IDI1Nik7DQo+ID4gKwlSVEVfQlVJTERfQlVHX09OKHNpemVvZih1 bmlvbiBhY2MxMDBfZG1hX2Rlc2MpICE9IDI1Nik7DQo+ID4gKwlSVEVfQlVJTERfQlVHX09OKHNp emVvZihzdHJ1Y3QgYWNjMTAwX2Zjd190ZCkgIT0gMjQpOw0KPiA+ICsJUlRFX0JVSUxEX0JVR19P TihzaXplb2Yoc3RydWN0IGFjYzEwMF9mY3dfdGUpICE9IDMyKTsNCj4gPiArDQo+ID4gKwlpZiAo YmJkZXYgPT0gTlVMTCkgew0KPiA+ICsJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+ICsJCSJJbnZh bGlkIGRldl9uYW1lICglcyksIG9yIGRldmljZSBpcyBub3QgeWV0IGluaXRpYWxpc2VkIiwNCj4g PiArCQlkZXZfbmFtZSk7DQo+ID4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4gKwl9DQo+ID4gKwlz dHJ1Y3QgYWNjMTAwX2RldmljZSAqZCA9IGJiZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPiAr DQo+ID4gKwkvKiBTdG9yZSBjb25maWd1cmF0aW9uICovDQo+ID4gKwlydGVfbWVtY3B5KCZkLT5h Y2MxMDBfY29uZiwgY29uZiwgc2l6ZW9mKGQtPmFjYzEwMF9jb25mKSk7DQo+ID4gKw0KPiA+ICsJ LyogUENJZSBCcmlkZ2UgY29uZmlndXJhdGlvbiAqLw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShk LCBId1BmUGNpZUdwZXhCcmlkZ2VDb250cm9sLA0KPiBBQ0MxMDFfQ0ZHX1BDSV9CUklER0UpOw0K PiA+ICsJZm9yIChpID0gMTsgaSA8IEFDQzEwMV9HUEVYX0FYSU1BUF9OVU07IGkrKykNCj4gPiAr CQlhY2MxMDBfcmVnX3dyaXRlKGQsDQo+IEh3UGZQY2llR3BleEF4aUFkZHJNYXBwaW5nV2luZG93 UGV4QmFzZUhpZ2ggKyBpDQo+ID4gKyogMTYsIDApOw0KPiA+ICsNCj4gPiArCS8qIFByZXZlbnQg YmxvY2tpbmcgQVhJIHJlYWQgb24gQlJFU1AgZm9yIEFYSSBXcml0ZSAqLw0KPiA+ICsJYWRkcmVz cyA9IEh3UGZQY2llR3BleEF4aVBpb0NvbnRyb2w7DQo+ID4gKwl2YWx1ZSA9IEFDQzEwMV9DRkdf UENJX0FYSTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ ICsNCj4gPiArCS8qIEV4cGxpY2l0bHkgcmVsZWFzaW5nIEFYSSBpbmNsdWRpbmcgYSAybXMgZGVs YXkgb24gQUNDMTAxICovDQo+ID4gKwl1c2xlZXAoMjAwMCk7DQo+ID4gKwlhY2MxMDBfcmVnX3dy aXRlKGQsIEhXUGZEbWFBeGlDb250cm9sLCAxKTsNCj4gPiArDQo+ID4gKwkvKiBTZXQgdGhlIGRl ZmF1bHQgNUdETCBETUEgY29uZmlndXJhdGlvbiAqLw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShk LCBIV1BmRG1hSW5ib3VuZERyYWluRGF0YVNpemUsDQo+ID4gK0FDQzEwMV9ETUFfSU5CT1VORCk7 DQo+ID4gKw0KPiA+ICsJLyogRW5hYmxlIGdyYW51bGFyIGR5bmFtaWMgY2xvY2sgZ2F0aW5nICov DQo+ID4gKwlhZGRyZXNzID0gSFdQZkhpQ2xrR2F0ZUh5c3RSZWc7DQo+ID4gKwl2YWx1ZSA9IEFD QzEwMV9DTE9DS19HQVRJTkdfRU47DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3Ms IHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBTZXQgZGVmYXVsdCBkZXNjcmlwdG9yIHNpZ25hdHVy ZSAqLw0KPiA+ICsJYWRkcmVzcyA9IEhXUGZEbWFEZXNjcmlwdG9yU2lnbmF0dXR1cmU7DQo+ID4g Kwl2YWx1ZSA9IDA7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsN Cj4gPiArDQo+ID4gKwkvKiBFbmFibGUgdGhlIEVycm9yIERldGVjdGlvbiBpbiBETUEgKi8NCj4g PiArCXZhbHVlID0gQUNDMTAxX0NGR19ETUFfRVJST1I7DQo+ID4gKwlhZGRyZXNzID0gSFdQZkRt YUVycm9yRGV0ZWN0aW9uRW47DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZh bHVlKTsNCj4gPiArDQo+ID4gKwkvKiBBWEkgQ2FjaGUgY29uZmlndXJhdGlvbiAqLw0KPiA+ICsJ dmFsdWUgPSBBQ0MxMDFfQ0ZHX0FYSV9DQUNIRTsNCj4gPiArCWFkZHJlc3MgPSBIV1BmRG1hQXhj YWNoZVJlZzsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ ICsNCj4gPiArCS8qIERlZmF1bHQgRE1BIENvbmZpZ3VyYXRpb24gKFFtZ3IgRW5hYmxlZCkgKi8N Cj4gPiArCWFkZHJlc3MgPSBIV1BmRG1hQ29uZmlnMFJlZzsNCj4gPiArCXZhbHVlID0gMDsNCj4g PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsJYWRkcmVzcyA9 IEhXUGZEbWFRbWFuZW47DQo+ID4gKwl2YWx1ZSA9IDA7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRl KGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBEZWZhdWx0IFJMSU0vQUxFTiBj b25maWd1cmF0aW9uICovDQo+ID4gKwlhZGRyZXNzID0gSFdQZkRtYUNvbmZpZzFSZWc7DQo+ID4g KwlpbnQgYWxlbl9yID0gMHhGOw0KPiA+ICsJaW50IGFsZW5fdyA9IDB4NzsNCj4gPiArCXZhbHVl ID0gKDEgPDwgMzEpICsgKGFsZW5fdyA8PCAyMCkgICsgKDEgPDwgNikgKyBhbGVuX3I7DQo+ID4g KwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ID4gKwkvKiBD b25maWd1cmUgRE1BIFFtYW5hZ2VyIGFkZHJlc3NlcyAqLw0KPiA+ICsJYWRkcmVzcyA9IEhXUGZE bWFRbWdyQWRkclJlZzsNCj4gPiArCXZhbHVlID0gSFdQZlFtZ3JFZ3Jlc3NRdWV1ZXNUZW1wbGF0 ZTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsNCj4g PiArCS8qID09PT09IFFtZ3IgQ29uZmlndXJhdGlvbiA9PT09PSAqLw0KPiA+ICsJLyogQ29uZmln dXJhdGlvbiBvZiB0aGUgQVF1ZXVlIERlcHRoIFFNR1JfR1JQXzBfREVQVEhfTE9HMg0KPiBmb3Ig VUwgKi8NCj4gPiArCWludCB0b3RhbFFncyA9IGNvbmYtPnFfdWxfNGcubnVtX3Fncm91cHMgKw0K PiA+ICsJCQljb25mLT5xX3VsXzVnLm51bV9xZ3JvdXBzICsNCj4gPiArCQkJY29uZi0+cV9kbF80 Zy5udW1fcWdyb3VwcyArDQo+ID4gKwkJCWNvbmYtPnFfZGxfNWcubnVtX3Fncm91cHM7DQo+ID4g Kwlmb3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IHRvdGFsUWdzOyBxZ19pZHgrKykgew0KPiA+ICsJ CWFkZHJlc3MgPSBIV1BmUW1nckRlcHRoTG9nMkdycCArDQo+ID4gKwkJQUNDMTAxX0JZVEVTX0lO X1dPUkQgKiBxZ19pZHg7DQo+ID4gKwkJdmFsdWUgPSBhcURlcHRoKHFnX2lkeCwgY29uZik7DQo+ ID4gKwkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwkJYWRkcmVz cyA9IEhXUGZRbWdyVGhvbGRHcnAgKw0KPiA+ICsJCUFDQzEwMV9CWVRFU19JTl9XT1JEICogcWdf aWR4Ow0KPiA+ICsJCXZhbHVlID0gKDEgPDwgMTYpICsgKDEgPDwgKGFxRGVwdGgocWdfaWR4LCBj b25mKSAtIDEpKTsNCj4gPiArCQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsN Cj4gPiArCX0NCj4gPiArDQo+ID4gKwkvKiBUZW1wbGF0ZSBQcmlvcml0eSBpbiBpbmNyZW1lbnRh bCBvcmRlciAqLw0KPiA+ICsJZm9yICh0ZW1wbGF0ZV9pZHggPSAwOyB0ZW1wbGF0ZV9pZHggPCBB Q0MxMDFfTlVNX1RNUEw7DQo+ID4gKwkJCXRlbXBsYXRlX2lkeCsrKSB7DQo+ID4gKwkJYWRkcmVz cyA9IEhXUGZRbWdyR3JwVG1wbGF0ZVJlZzBJbmR4ICsNCj4gQUNDMTAxX0JZVEVTX0lOX1dPUkQg KiB0ZW1wbGF0ZV9pZHg7DQo+ID4gKwkJdmFsdWUgPSBBQ0MxMDFfVE1QTF9QUklfMDsNCj4gPiAr CQlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArCQlhZGRyZXNzID0g SFdQZlFtZ3JHcnBUbXBsYXRlUmVnMUluZHggKw0KPiBBQ0MxMDFfQllURVNfSU5fV09SRCAqIHRl bXBsYXRlX2lkeDsNCj4gPiArCQl2YWx1ZSA9IEFDQzEwMV9UTVBMX1BSSV8xOw0KPiA+ICsJCWFj YzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsJCWFkZHJlc3MgPSBIV1Bm UW1nckdycFRtcGxhdGVSZWcyaW5keCArDQo+IEFDQzEwMV9CWVRFU19JTl9XT1JEICogdGVtcGxh dGVfaWR4Ow0KPiA+ICsJCXZhbHVlID0gQUNDMTAxX1RNUExfUFJJXzI7DQo+ID4gKwkJYWNjMTAw X3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdy R3JwVG1wbGF0ZVJlZzNJbmR4ICsNCj4gQUNDMTAxX0JZVEVTX0lOX1dPUkQgKiB0ZW1wbGF0ZV9p ZHg7DQo+ID4gKwkJdmFsdWUgPSBBQ0MxMDFfVE1QTF9QUklfMzsNCj4gPiArCQlhY2MxMDBfcmVn X3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlhZGRyZXNz ID0gSFdQZlFtZ3JHcnBQcmlvcml0eTsNCj4gPiArCXZhbHVlID0gQUNDMTAxX0NGR19RTUdSX0hJ X1A7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsNCj4gPiArDQo+ ID4gKwkvKiBUZW1wbGF0ZSBDb25maWd1cmF0aW9uICovDQo+ID4gKwlmb3IgKHRlbXBsYXRlX2lk eCA9IDA7IHRlbXBsYXRlX2lkeCA8IEFDQzEwMV9OVU1fVE1QTDsNCj4gPiArCQkJdGVtcGxhdGVf aWR4KyspIHsNCj4gPiArCQl2YWx1ZSA9IDA7DQo+ID4gKwkJYWRkcmVzcyA9IEhXUGZRbWdyR3Jw VG1wbGF0ZVJlZzRJbmR4DQo+ID4gKwkJCQkrIEFDQzEwMV9CWVRFU19JTl9XT1JEICogdGVtcGxh dGVfaWR4Ow0KPiA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ ICsJfQ0KPiA+ICsJLyogNEdVTCAqLw0KPiA+ICsJaW50IG51bVFncyA9IGNvbmYtPnFfdWxfNGcu bnVtX3Fncm91cHM7DQo+ID4gKwlpbnQgbnVtUXFzQWNjID0gMDsNCj4gPiArCXZhbHVlID0gMDsN Cj4gPiArCWZvciAocWdfaWR4ID0gbnVtUXFzQWNjOyBxZ19pZHggPCAobnVtUWdzICsgbnVtUXFz QWNjKTsNCj4gcWdfaWR4KyspDQo+ID4gKwkJdmFsdWUgfD0gKDEgPDwgcWdfaWR4KTsNCj4gPiAr CWZvciAodGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19VTF80RzsNCj4gPiArCQkJdGVtcGxhdGVf aWR4IDw9IEFDQzEwMV9TSUdfVUxfNEdfTEFTVDsNCj4gPiArCQkJdGVtcGxhdGVfaWR4KyspIHsN Cj4gPiArCQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnNEluZHgNCj4gPiArCQkJCSsg QUNDMTAxX0JZVEVTX0lOX1dPUkQgKiB0ZW1wbGF0ZV9pZHg7DQo+ID4gKwkJYWNjMTAwX3JlZ193 cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwl9DQo+ID4gKwkvKiA1R1VMICovDQo+ID4g KwludW1RcXNBY2MgKz0gbnVtUWdzOw0KPiA+ICsJbnVtUWdzCT0gY29uZi0+cV91bF81Zy5udW1f cWdyb3VwczsNCj4gPiArCXZhbHVlID0gMDsNCj4gPiArCWludCBudW1FbmdpbmVzID0gMDsNCj4g PiArCWZvciAocWdfaWR4ID0gbnVtUXFzQWNjOyBxZ19pZHggPCAobnVtUWdzICsgbnVtUXFzQWNj KTsNCj4gcWdfaWR4KyspDQo+ID4gKwkJdmFsdWUgfD0gKDEgPDwgcWdfaWR4KTsNCj4gPiArCWZv ciAodGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19VTF81RzsNCj4gPiArCQkJdGVtcGxhdGVfaWR4 IDw9IEFDQzEwMV9TSUdfVUxfNUdfTEFTVDsNCj4gPiArCQkJdGVtcGxhdGVfaWR4KyspIHsNCj4g PiArCQkvKiBDaGVjayBlbmdpbmUgcG93ZXItb24gc3RhdHVzICovDQo+ID4gKwkJYWRkcmVzcyA9 IEh3UGZGZWNVbDVnSWJEZWJ1Z1JlZyArDQo+ID4gKwkJCQlBQ0MxMDFfRU5HSU5FX09GRlNFVCAq IHRlbXBsYXRlX2lkeDsNCj4gPiArCQlzdGF0dXMgPSAoYWNjMTAwX3JlZ19yZWFkKGQsIGFkZHJl c3MpID4+IDQpICYgMHhGOw0KPiA+ICsJCWFkZHJlc3MgPSBIV1BmUW1nckdycFRtcGxhdGVSZWc0 SW5keA0KPiA+ICsJCQkJKyBBQ0MxMDFfQllURVNfSU5fV09SRCAqIHRlbXBsYXRlX2lkeDsNCj4g PiArCQlpZiAoc3RhdHVzID09IDEpIHsNCj4gPiArCQkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRy ZXNzLCB2YWx1ZSk7DQo+ID4gKwkJCW51bUVuZ2luZXMrKzsNCj4gPiArCQl9IGVsc2UNCj4gPiAr CQkJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCAwKTsNCj4gPiArI2lmIFJURV9BQ0MxMDFf U0lOR0xFX0ZFQyA9PSAxDQo+ID4gKwkJdmFsdWUgPSAwOw0KPiA+ICsjZW5kaWYNCj4gPiArCX0N Cj4gPiArCXByaW50ZigiTnVtYmVyIG9mIDVHVUwgZW5naW5lcyAlZFxuIiwgbnVtRW5naW5lcyk7 DQo+ID4gKwkvKiA0R0RMICovDQo+ID4gKwludW1RcXNBY2MgKz0gbnVtUWdzOw0KPiA+ICsJbnVt UWdzCT0gY29uZi0+cV9kbF80Zy5udW1fcWdyb3VwczsNCj4gPiArCXZhbHVlID0gMDsNCj4gPiAr CWZvciAocWdfaWR4ID0gbnVtUXFzQWNjOyBxZ19pZHggPCAobnVtUWdzICsgbnVtUXFzQWNjKTsN Cj4gcWdfaWR4KyspDQo+ID4gKwkJdmFsdWUgfD0gKDEgPDwgcWdfaWR4KTsNCj4gPiArCWZvciAo dGVtcGxhdGVfaWR4ID0gQUNDMTAxX1NJR19ETF80RzsNCj4gPiArCQkJdGVtcGxhdGVfaWR4IDw9 IEFDQzEwMV9TSUdfRExfNEdfTEFTVDsNCj4gPiArCQkJdGVtcGxhdGVfaWR4KyspIHsNCj4gPiAr CQlhZGRyZXNzID0gSFdQZlFtZ3JHcnBUbXBsYXRlUmVnNEluZHgNCj4gPiArCQkJCSsgQUNDMTAx X0JZVEVTX0lOX1dPUkQgKiB0ZW1wbGF0ZV9pZHg7DQo+ID4gKwkJYWNjMTAwX3JlZ193cml0ZShk LCBhZGRyZXNzLCB2YWx1ZSk7ICNpZg0KPiBSVEVfQUNDMTAxX1NJTkdMRV9GRUMgPT0gMQ0KPiA+ ICsJCQl2YWx1ZSA9IDA7DQo+ID4gKyNlbmRpZg0KPiANCj4gQXMgSSBtZW50aW9ubmVkIG9uIHBy ZXZpb3VzIHJldmlzaW9uLCBzaW5nbGUgRkVDIGNhc2Ugc2hvdWxkIGJlIGhhbmRsZWQgdmlhDQo+ IGEgZGV2YXJnLCBzbyB0aGF0IHRlc3RpbmcgYm90aCBjYXNlcyBkbyBub3QgcmVxdWlyZSBhIHJl YnVpbGQuDQoNClRoaXMgaXMgYWxyZWFkeSBkb25lIGxpa2UgdGhpcyBpbiBBQ0MxMDAgYW5kIGlz IG1lYW50IHRvIGJlIGEgYnVpbGQgdGltZSBwYXJhbWV0ZXIuIA0KU3RpbGwgSSB3aWxsIHRha2Ug aXQgb3V0IG9mIHRoZSBjb21taXQgdG8gYXZvaWQgYW55IGNvbmZ1c2lvbi4gDQpUaGFua3MNCg0K PiANCj4gPiArCX0NCj4gPiArCS8qIDVHREwgKi8NCj4gPiArCW51bVFxc0FjYyArPSBudW1RZ3M7 DQo+ID4gKwludW1RZ3MJPSBjb25mLT5xX2RsXzVnLm51bV9xZ3JvdXBzOw0KPiA+ICsJdmFsdWUg PSAwOw0KPiA+ICsJZm9yIChxZ19pZHggPSBudW1RcXNBY2M7IHFnX2lkeCA8IChudW1RZ3MgKyBu dW1RcXNBY2MpOw0KPiBxZ19pZHgrKykNCj4gPiArCQl2YWx1ZSB8PSAoMSA8PCBxZ19pZHgpOw0K PiA+ICsJZm9yICh0ZW1wbGF0ZV9pZHggPSBBQ0MxMDFfU0lHX0RMXzVHOw0KPiA+ICsJCQl0ZW1w bGF0ZV9pZHggPD0gQUNDMTAxX1NJR19ETF81R19MQVNUOw0KPiA+ICsJCQl0ZW1wbGF0ZV9pZHgr Kykgew0KPiA+ICsJCWFkZHJlc3MgPSBIV1BmUW1nckdycFRtcGxhdGVSZWc0SW5keA0KPiA+ICsJ CQkJKyBBQ0MxMDFfQllURVNfSU5fV09SRCAqIHRlbXBsYXRlX2lkeDsNCj4gPiArCQlhY2MxMDBf cmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZhbHVlKTsgI2lmDQo+IFJURV9BQ0MxMDFfU0lOR0xFX0ZF QyA9PSAxDQo+ID4gKwkJdmFsdWUgPSAwOw0KPiA+ICsjZW5kaWYNCj4gPiArCX0NCj4gPiArDQo+ ID4gKwkvKiBRdWV1ZSBHcm91cCBGdW5jdGlvbiBtYXBwaW5nICovDQo+ID4gKwlpbnQgcW1hbl9m dW5jX2lkWzhdID0gezAsIDIsIDEsIDMsIDQsIDAsIDAsIDB9Ow0KPiA+ICsJYWRkcmVzcyA9IEhX UGZRbWdyR3JwRnVuY3Rpb24wOw0KPiA+ICsJdmFsdWUgPSAwOw0KPiA+ICsJZm9yIChxZ19pZHgg PSAwOyBxZ19pZHggPCA4OyBxZ19pZHgrKykgew0KPiA+ICsJCWFjYyA9IGFjY0Zyb21RZ2lkKHFn X2lkeCwgY29uZik7DQo+ID4gKwkJdmFsdWUgfD0gcW1hbl9mdW5jX2lkW2FjY108PChxZ19pZHgg KiA0KTsNCj4gPiArCX0NCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUp Ow0KPiA+ICsNCj4gPiArCS8qIENvbmZpZ3VyYXRpb24gb2YgdGhlIEFyYml0cmF0aW9uIFFHcm91 cCBkZXB0aCB0byAxICovDQo+ID4gKwlmb3IgKHFnX2lkeCA9IDA7IHFnX2lkeCA8IHRvdGFsUWdz OyBxZ19pZHgrKykgew0KPiA+ICsJCWFkZHJlc3MgPSBIV1BmUW1nckFyYlFEZXB0aEdycCArDQo+ ID4gKwkJQUNDMTAxX0JZVEVTX0lOX1dPUkQgKiBxZ19pZHg7DQo+ID4gKwkJdmFsdWUgPSAwOw0K PiA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsJfQ0KPiA+ ICsNCj4gPiArCS8qIEVuYWJsaW5nIEFRdWV1ZXMgdGhyb3VnaCB0aGUgUXVldWUgaGllcmFyY2h5 Ki8NCj4gPiArCWZvciAodmZfaWR4ID0gMDsgdmZfaWR4IDwgQUNDMTAxX05VTV9WRlM7IHZmX2lk eCsrKSB7DQo+ID4gKwkJZm9yIChxZ19pZHggPSAwOyBxZ19pZHggPCBBQ0MxMDFfTlVNX1FHUlBT OyBxZ19pZHgrKykgew0KPiA+ICsJCQl2YWx1ZSA9IDA7DQo+ID4gKwkJCWlmICh2Zl9pZHggPCBj b25mLT5udW1fdmZfYnVuZGxlcyAmJg0KPiA+ICsJCQkJCXFnX2lkeCA8IHRvdGFsUWdzKQ0KPiA+ ICsJCQkJdmFsdWUgPSAoMSA8PCBhcU51bShxZ19pZHgsIGNvbmYpKSAtIDE7DQo+ID4gKwkJCWFk ZHJlc3MgPSBIV1BmUW1nckFxRW5hYmxlVmYNCj4gPiArCQkJCQkrIHZmX2lkeCAqIEFDQzEwMV9C WVRFU19JTl9XT1JEOw0KPiA+ICsJCQl2YWx1ZSArPSAocWdfaWR4IDw8IDE2KTsNCj4gPiArCQkJ YWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0K PiA+ICsNCj4gPiArCS8qIFRoaXMgcG9pbnRlciB0byBBUkFNICgxMjhrQikgaXMgc2hpZnRlZCBi eSAyICg0QiBwZXIgcmVnaXN0ZXIpICovDQo+ID4gKwl1aW50MzJfdCBhcmFtX2FkZHJlc3MgPSAw Ow0KPiA+ICsJZm9yIChxZ19pZHggPSAwOyBxZ19pZHggPCB0b3RhbFFnczsgcWdfaWR4KyspIHsN Cj4gPiArCQlmb3IgKHZmX2lkeCA9IDA7IHZmX2lkeCA8IGNvbmYtPm51bV92Zl9idW5kbGVzOyB2 Zl9pZHgrKykgew0KPiA+ICsJCQlhZGRyZXNzID0gSFdQZlFtZ3JWZkJhc2VBZGRyICsgdmZfaWR4 DQo+ID4gKwkJCQkJKiBBQ0MxMDFfQllURVNfSU5fV09SRCArIHFnX2lkeA0KPiA+ICsJCQkJCSog QUNDMTAxX0JZVEVTX0lOX1dPUkQgKiA2NDsNCj4gPiArCQkJdmFsdWUgPSBhcmFtX2FkZHJlc3M7 DQo+ID4gKwkJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsJCQkv KiBPZmZzZXQgQVJBTSBBZGRyZXNzIGZvciBuZXh0IG1lbW9yeSBiYW5rDQo+ID4gKwkJCSAqIC0g aW5jcmVtZW50IG9mIDRCDQo+ID4gKwkJCSAqLw0KPiA+ICsJCQlhcmFtX2FkZHJlc3MgKz0gYXFO dW0ocWdfaWR4LCBjb25mKSAqDQo+ID4gKwkJCQkJKDEgPDwgYXFEZXB0aChxZ19pZHgsIGNvbmYp KTsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKGFyYW1fYWRkcmVzcyA+IEFD QzEwMV9XT1JEU19JTl9BUkFNX1NJWkUpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKEVSUiwgIkFS QU0gQ29uZmlndXJhdGlvbiBub3QgZml0dGluZyAlZA0KPiAlZFxuIiwNCj4gPiArCQkJCWFyYW1f YWRkcmVzcywNCj4gQUNDMTAxX1dPUkRTX0lOX0FSQU1fU0laRSk7DQo+ID4gKwkJcmV0dXJuIC1F SU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyogPT09PSBISSBDb25maWd1cmF0aW9uID09 PT0gKi8NCj4gPiArDQo+ID4gKwkvKiBObyBJbmZvIFJpbmcvTVNJIGJ5IGRlZmF1bHQgKi8NCj4g PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgSFdQZkhpSW5mb1JpbmdJbnRXckVuUmVnUGYsIDApOw0K PiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBIV1BmSGlJbmZvUmluZ1ZmMnBmTG9XckVuUmVnLCAw KTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgSFdQZkhpQ2ZnTXNpSW50V3JFblJlZ1BmLCAw eEZGRkZGRkZGKTsNCj4gPiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgSFdQZkhpQ2ZnTXNpVmYycGZM b1dyRW5SZWcsIDB4RkZGRkZGRkYpOw0KPiA+ICsJLyogUHJldmVudCBCbG9jayBvbiBUcmFuc21p dCBFcnJvciAqLw0KPiA+ICsJYWRkcmVzcyA9IEhXUGZIaUJsb2NrVHJhbnNtaXRPbkVycm9yRW47 DQo+ID4gKwl2YWx1ZSA9IDA7DQo+ID4gKwlhY2MxMDBfcmVnX3dyaXRlKGQsIGFkZHJlc3MsIHZh bHVlKTsNCj4gPiArCS8qIFByZXZlbnRzIHRvIGRyb3AgTVNJICovDQo+ID4gKwlhZGRyZXNzID0g SFdQZkhpTXNpRHJvcEVuYWJsZVJlZzsNCj4gPiArCXZhbHVlID0gMDsNCj4gPiArCWFjYzEwMF9y ZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsJLyogU2V0IHRoZSBQRiBNb2RlIHJl Z2lzdGVyICovDQo+ID4gKwlhZGRyZXNzID0gSFdQZkhpUGZNb2RlOw0KPiA+ICsJdmFsdWUgPSAo Y29uZi0+cGZfbW9kZV9lbikgPyBBQ0MxMDFfUEZfVkFMIDogMDsNCj4gPiArCWFjYzEwMF9yZWdf d3JpdGUoZCwgYWRkcmVzcywgdmFsdWUpOw0KPiA+ICsJLyogRXhwbGljaXRseSByZWxlYXNpbmcg QVhJIGFmdGVyIFBGIE1vZGUgYW5kIDIgbXMgKi8NCj4gPiArCXVzbGVlcCgyMDAwKTsNCj4gPiAr CWFjYzEwMF9yZWdfd3JpdGUoZCwgSFdQZkRtYUF4aUNvbnRyb2wsIDEpOw0KPiA+ICsNCj4gPiAr CS8qIFFvUyBvdmVyZmxvdyBpbml0ICovDQo+ID4gKwl2YWx1ZSA9IDE7DQo+ID4gKwlhZGRyZXNz ID0gSFdQZlFvc21vbkFFdmFsT3ZlcmZsb3cwOw0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBh ZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKwlhZGRyZXNzID0gSFdQZlFvc21vbkJFdmFsT3ZlcmZsb3cw Ow0KPiA+ICsJYWNjMTAwX3JlZ193cml0ZShkLCBhZGRyZXNzLCB2YWx1ZSk7DQo+ID4gKw0KPiA+ ICsJLyogSEFSUSBERFIgQ29uZmlndXJhdGlvbiAqLw0KPiA+ICsJdW5zaWduZWQgaW50IGRkclNp emVJbk1iID0gQUNDMTAxX0hBUlFfRERSOw0KPiA+ICsJZm9yICh2Zl9pZHggPSAwOyB2Zl9pZHgg PCBjb25mLT5udW1fdmZfYnVuZGxlczsgdmZfaWR4KyspIHsNCj4gPiArCQlhZGRyZXNzID0gSFdQ ZkRtYVZmRGRyQmFzZVJ3ICsgdmZfaWR4DQo+ID4gKwkJCQkqIDB4MTA7DQo+ID4gKwkJdmFsdWUg PSAoKHZmX2lkeCAqIChkZHJTaXplSW5NYiAvIDY0KSkgPDwgMTYpICsNCj4gPiArCQkJCShkZHJT aXplSW5NYiAtIDEpOw0KPiA+ICsJCWFjYzEwMF9yZWdfd3JpdGUoZCwgYWRkcmVzcywgdmFsdWUp Ow0KPiA+ICsJfQ0KPiA+ICsJdXNsZWVwKEFDQzEwMV9MT05HX1dBSVQpOw0KPiA+ICsNCj4gPiAr CXJ0ZV9iYmRldl9sb2dfZGVidWcoIlBGIFRJUCBjb25maWd1cmF0aW9uIGNvbXBsZXRlIGZvciAl cyIsDQo+IGRldl9uYW1lKTsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtp bnQNCj4gPiArcnRlX2FjYzEweF9jb25maWd1cmUoY29uc3QgY2hhciAqZGV2X25hbWUsIHN0cnVj dCBydGVfYWNjMTAwX2NvbmYNCj4gPiArKmNvbmYpIHsNCj4gPiArCXN0cnVjdCBydGVfYmJkZXYg KmJiZGV2ID0gcnRlX2JiZGV2X2dldF9uYW1lZF9kZXYoZGV2X25hbWUpOw0KPiA+ICsJaWYgKGJi ZGV2ID09IE5VTEwpIHsNCj4gPiArCQlydGVfYmJkZXZfbG9nKEVSUiwgIkludmFsaWQgZGV2X25h bWUgKCVzKSwgb3IgZGV2aWNlIGlzIG5vdA0KPiB5ZXQgaW5pdGlhbGlzZWQiLA0KPiA+ICsJCQkJ ZGV2X25hbWUpOw0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ICsJfQ0KPiA+ICsJc3RydWN0 IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2ID0gUlRFX0RFVl9UT19QQ0koYmJkZXYtPmRldmljZSk7 DQo+ID4gKwlwcmludGYoIkNvbmZpZ3VyZSBkZXYgaWQgJXhcbiIsIHBjaV9kZXYtPmlkLmRldmlj ZV9pZCk7DQo+ID4gKwlpZiAocGNpX2Rldi0+aWQuZGV2aWNlX2lkID09IFJURV9BQ0MxMDBfUEZf REVWSUNFX0lEKQ0KPiA+ICsJCXJldHVybiBhY2MxMDBfY29uZmlndXJlKGRldl9uYW1lLCBjb25m KTsNCj4gPiArCWVsc2UNCj4gPiArCQlyZXR1cm4gYWNjMTAxX2NvbmZpZ3VyZShkZXZfbmFtZSwg Y29uZik7IH0NCg0K