From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DCF99EB64DA for ; Fri, 16 Jun 2023 11:58:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3DD7310E5D9; Fri, 16 Jun 2023 11:58:16 +0000 (UTC) X-Greylist: delayed 2074 seconds by postgrey-1.36 at gabe; Fri, 16 Jun 2023 11:58:13 UTC Received: from mx08-00376f01.pphosted.com (mx08-00376f01.pphosted.com [91.207.212.86]) by gabe.freedesktop.org (Postfix) with ESMTPS id B666D10E5D9 for ; Fri, 16 Jun 2023 11:58:13 +0000 (UTC) Received: from pps.filterd (m0168888.ppops.net [127.0.0.1]) by mx08-00376f01.pphosted.com (8.17.1.22/8.17.1.22) with ESMTP id 35GB8Mq3001558; Fri, 16 Jun 2023 12:23:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imgtec.com; h= from:to:cc:subject:date:message-id:references:in-reply-to :content-type:content-id:content-transfer-encoding:mime-version; s=dk201812; bh=QAZ2qajAuaU9hnRKtZBCROdtBcnPkaY0MU3+5BJnRNs=; b= EL70lPduliIWc3uLybF+D8cDHYCkqsZF8M7MzY+7vbwCl/+pVz1vHxzm5mpCNRfu qfHdj++s0zGfYtgroasMnAWKwsUqQEhMXu/e0eQbyIQsnlmLqKTTl4vGll1GFUNS SsU/Oq+ukbowPtX117yI1wCELJv+dy4BGpAsxg2obvwr7iCbr8ItKjvQyPyFQdGz pPAzwtWOv+uj8ct5s/W5pP0cnDDjcJKjAEDJF6FwT+D25Oqr0PB9J2Z3GK9Rfl1O X351tuUfVNOr8U2X250Acj00VC2npkeichlw24+Iil/Ye514DNRX/mQTmWEsq2Yq 88DztYHACFuOrJ1ldRf2Pg== Received: from hhmail04.hh.imgtec.org ([217.156.249.195]) by mx08-00376f01.pphosted.com (PPS) with ESMTPS id 3r4fermr3j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Fri, 16 Jun 2023 12:23:41 +0100 (BST) Received: from HHMAIL05.hh.imgtec.org (10.100.10.120) by HHMAIL04.hh.imgtec.org (10.100.10.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Fri, 16 Jun 2023 12:23:41 +0100 Received: from GBR01-CWL-obe.outbound.protection.outlook.com (104.47.20.57) by email.imgtec.com (10.100.10.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Fri, 16 Jun 2023 12:23:41 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TpQLiIiSlF2qFZN6LYYQHxuhKs4qm/1QyFz/osT3nohaf6v47F7DrbhxdsJ8RT9dq6ZMmHO7bsEOgvOCcuCCdiU7wQKaYj4mo+NV0+9XmTSWu8CtX4n+IOY2ZjwSmH3DXy8S3MKs+3SMTgrpaDZMv5e4un9FQpNLJ8SjYwQZ6klALp67rZcLE5JN8qV285APnof5MGvJP0vF9GtBl5N8/siBWo3+/DsI3j60e0K8u0aDZSuaxDOWj9LAmtqW6ZnGUej6aBcv87p5XZCSaZP3RpdXwYWvDAKezdGbjg62oJR7JNk5ZPNcynVh/Ho6Ht77lp3IFSlbqkFI8kZR/0y1Hw== 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=QAZ2qajAuaU9hnRKtZBCROdtBcnPkaY0MU3+5BJnRNs=; b=bsCTRCcusYA0KZajORgX8v17ZZJBWvklzphU1b1Zo1LYyjsYM+tOeG9t/+FBk52moFWAWVOc1iWHgpu7CFlP6Z3tXsXa5pMfX4bAWxIu7ims1L6KVfElIiUjH7KpRP1xjzCtG6A55FrJkY7cxSPYdNuwTmTdASGpAMZGQF5odeVYZlSo4ApTuCPX1ZW5K4bNRLjd+0KyrzJyaCnylsNYV04652iAV1OI1Ek9tN2crSyEH1hB5psKIkqjRZvuVZez48r7vPE6yU+s4ILwd7gr3/rSIgjZ2JbeyfDlA4lWaHkJYf4rUYrKi19e3rSopgZ/ibrJ667UJhyP/PUnCUDc+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=imgtec.com; dmarc=pass action=none header.from=imgtec.com; dkim=pass header.d=imgtec.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=IMGTecCRM.onmicrosoft.com; s=selector2-IMGTecCRM-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QAZ2qajAuaU9hnRKtZBCROdtBcnPkaY0MU3+5BJnRNs=; b=K0SdaeykPlhEXo/0aC61TU7SVWqRFrz4TzlWPs0p5yAFKTCL2HrAdZ64fixlVXATFYuFRYVxomP68ZIQQapyQJdDAkcw2pULWkwJc0wLjMoNA0TQejjXSSFiQcwg+3Q7sj4heNXoK8HTdBphAbSFbZQT7PFDtiUxn4eQ6i/TAzg= Received: from LO6P265MB6032.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2a5::14) by CWXP265MB1989.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:7f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.12; Fri, 16 Jun 2023 11:23:35 +0000 Received: from LO6P265MB6032.GBRP265.PROD.OUTLOOK.COM ([fe80::f976:8df8:e81:d5f4]) by LO6P265MB6032.GBRP265.PROD.OUTLOOK.COM ([fe80::f976:8df8:e81:d5f4%3]) with mapi id 15.20.6500.026; Fri, 16 Jun 2023 11:23:35 +0000 From: Frank Binns To: "dri-devel@lists.freedesktop.org" , "afd@ti.com" , Sarah Walker Subject: Re: [PATCH v3 05/17] drm/imagination: Get GPU resources Thread-Topic: [PATCH v3 05/17] drm/imagination: Get GPU resources Thread-Index: AQHZngYVZ+gxnLmETEyD3ZHLG/cycq+JCUcAgAREpgA= Date: Fri, 16 Jun 2023 11:23:34 +0000 Message-ID: <0e2f9dbddff68b6f1874b9531018c69790e7aae9.camel@imgtec.com> References: <20230613144800.52657-1-sarah.walker@imgtec.com> <20230613144800.52657-6-sarah.walker@imgtec.com> <7099ef2a-0a6c-9a04-44ba-da24d7953c51@ti.com> In-Reply-To: <7099ef2a-0a6c-9a04-44ba-da24d7953c51@ti.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LO6P265MB6032:EE_|CWXP265MB1989:EE_ x-ms-office365-filtering-correlation-id: 6fbb10b2-3fd7-456e-164a-08db6e5c1fa1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9HNM7ZSGhHzKc5IHnWzdHqaubhnYqOTmGx5+fVSQPOSynrSs4TBQGHsDNqbIoSnTn7veBOAAHbtdN8rHFr88JsKDemM0Eq5rbOGQEYQouzw5fNqtgEdRUYe9SivzcWWwMT2/XQ60bVQvOS4U6NRyFzorLaAYVjJliECkRaKvKTGEsGddYBujg8mCrPMTcA64r9cpLp8oIFBdNZ+AxZSzWFS3vcqhGEvTPWYtnpY4TZHh/5HtPfrHDAgQrYGxOYdb1U0h+PKRjM0DCxD18Ja/6njtEVNOuh5N48Yx9e8qdmhqkFQ6w0VRWu9p55cR/UJtzeFZNC+D+YgFphYC2gYy/I/7y7nKXlxHOOCNW4YkkHNmvjsXMPqngUGpXGK4YK/grATxGazNUcPCcpjDeeISRHFxLTyljNNW9eYq0LKGLLWUPauUwp3D6Vn289zkh+CF99ympg1sHDUYotRNwQIEWdbuQEooFwsM4QwP4lx9ZUG5gprs5rzTk0Oqqt/04wjSJuUDufscdjNXeqrVSlqsUm9M3bvHJsDHjcaXlrnMiWGyJdOT5DSTWGOg257z0V7DzFECGm14LEkB7i7GhpOSoRmlkryCJqGjz7C4sTphv0lzxFaTYURU0+TR+W5lgSfXSCbb4ybq1K6NI/GYFEAtmg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:LO6P265MB6032.GBRP265.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230028)(136003)(346002)(396003)(376002)(366004)(39850400004)(451199021)(71200400001)(6486002)(478600001)(186003)(36756003)(83380400001)(6512007)(38100700002)(38070700005)(53546011)(86362001)(6506007)(2616005)(26005)(122000001)(66476007)(66556008)(66446008)(66946007)(64756008)(6636002)(4326008)(76116006)(316002)(8936002)(8676002)(5660300002)(41300700001)(30864003)(2906002)(66899021)(110136005)(54906003)(579004)(134885004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RHQzdGh0eHFlVXZkU3RJZ1h4UlQ0azRNM0FYNnNYMVNWRmk4TnR5SjN1R1ky?= =?utf-8?B?dG1FaitsMng2S1dyNVI5Rkh0WDdpb082Sk10QU1FL0dwNiswU1dHcEM0dWs1?= =?utf-8?B?SVZTMjZLTjR2MFBWQmF6Q3J6bG1UZXZNQkM4Z2dKNjE1ei85ZDM1OGFiSFJ1?= =?utf-8?B?R0JzcHR4dXp5R21rRE50cVkyajdvVXJOcUlhUXkvRGg2b1lKMFBRVnhMdk1S?= =?utf-8?B?QlVXNEFib0VqeGcycVRyWk9FUEJzK2xnQ042d2JYZGdrY3lYdm5lRFBwOEwr?= =?utf-8?B?VW02VTR0VXZGRFVUWGNubDgvb3V3dDNWdTNueGU5TENNdWNHMGV0RnBLd3Iz?= =?utf-8?B?Z2IwRktVR1R1dU9FQXhGUDZUN2laaVEwTGc2Ti9oSDZoUnNPb3RsOVdCV2Jy?= =?utf-8?B?WGY4R1RpTVJ4Vjc0WWtzak4rL2lYQlBVQnlMcnNCWlNJMFZqeWtlUzdYMjIr?= =?utf-8?B?blJCcEpwQ2xoZUNaQmpFWHpKRmtIVkY5NS9nUmdOR2xKMm0yRXhrZzBVYXpY?= =?utf-8?B?RlZqOWdhRzM2UDBHczdpU1UwZCtqOFd1SVdMOHRraG55aWhKOWlBbkVYVkpE?= =?utf-8?B?VlVwRFJtRERNMm5jbkFBK3h5SkVZNjg0SHBkRUc1M2JNYnY0QkRMMGczTjBy?= =?utf-8?B?U0ZIQkR6MlVORlJRN0pXa0NVd2NoQUdzeThDSVNGTUtLQzVVZmhTUjUvazFI?= =?utf-8?B?YmRFemJYcHBpcWZvb0NLWkF4a216V2I3SmhxR1JsTFJTQSsvWTliTU9CUWlC?= =?utf-8?B?V21mUThxeHM1ZHcyZkpvdmp2bTFUQkVzK1VPdDlvV1NsblFOWXhhMlpHdDY3?= =?utf-8?B?Zjk2ekZJYmtzY0gvaFhoQzh1dThsc0RBdXRTaTI0TEFQYzc0dHk5OW5vVjRx?= =?utf-8?B?MThxWXJsZ3F2dEEzbWFCTHJpdG5ZQkl4dFpzNXdPZ2pwVU1uZjZSbXpndVNw?= =?utf-8?B?bXlDcjdGT2k5a29xbzFnZEp5ekErN2lCU3VuOTJNQStqUWxLMTZycUduWnVw?= =?utf-8?B?LzVVY3dlaUZxZEllcVd1TFZtdlM3aWwwa0RQLzBmeUZMcUlPdEdrVHY5QUln?= =?utf-8?B?dEN4VFo0cU5wMGx0blB3V3h1cHMvc0VmckNQRnBqbXJteEtDQnJnS3lwMzNB?= =?utf-8?B?YUJtdjJ2aTZNQitHVnFLelVEb1k4SjNZRk5MUmsvR21BMnNkNTFQejIyN0JS?= =?utf-8?B?UXlTd0JUcWxLZDFXTkJGTld4VHBOWXY1SmtRM0hNZ2N6YmdmWU5YSVVBQzRq?= =?utf-8?B?MlJxUUs4VHJjUGtwRzJOb2lzdHRhVHI2Y0VMRDhQRUs2dWdIa2R5Q2RCQjJr?= =?utf-8?B?TmFLWmoyMTNvZlFIVmJMSGRJT2pHQ2huY1ZCYkIrU0pDZXhyQ1V6dlZLNDNX?= =?utf-8?B?NXdqQ3lBM20xdjdEQUdoOUk4YzIrMnVoNTh4RDNaak5yZlFmanVTZms0Nktr?= =?utf-8?B?K2o1ZlhpMkNoRjJLQmUzN0NQejU1M244Q0dLcjRLWHlIcWxJMmZyZ1lRYjUx?= =?utf-8?B?SnYrTGpxaFJMMzVpVDMxOFEzR0tURlY5N1U4TlhQWjZXWlJpclpYeHZkUVUw?= =?utf-8?B?cnU0c3JoWXR4a00yOFV0aStYYWprK29YQlNrQ0xiL2Evd0sxL09CNGQzdk91?= =?utf-8?B?QkJLS2haSUNOQ1hEZCtqMk5wWjB5bFllNi9zQXNGaUQ0VXBobm5GbnBVMVJk?= =?utf-8?B?MnVGQnlQR1llZndtWVVNbVhRaGZKLzgwd2RHTnljMG5lcWZWUGFKVklFeVNG?= =?utf-8?B?UDFqdzlyNlFRUUYyeDBFN0M5M2ZzdzNJbnJCNHozdUFLbytod0xpMFFPYzRI?= =?utf-8?B?UCtDVGNKY3pwSFhjSEtKZG5wbk43WVByYnRNUTZVNzFaekRqRlRuUWxGRGw3?= =?utf-8?B?ZDJPMW1OSkdRWjVUWWhSeGJ2eDVmWHUwTlhLcnlaQ2FjM0lPeEdXWXF2RDBQ?= =?utf-8?B?cmRZOHY5MVl6bmgxZmVaNWxKNnlaYWFOMHJqb3l3UGJ5Ymd0VEwxMm9oMTgw?= =?utf-8?B?R0VxTysydU1lNm0yejMyS3JJMFhMaU9pMlRvT2ZuTnA1MGlTb1V1cXpxNTZl?= =?utf-8?B?Rk9TK3VSemlQcHQ5VER0TUtWa1hhdEpidTkySlZJWUJ5ekY4c3dVc0d0Z2wx?= =?utf-8?B?L0plWjJWZmRKT0FXTHFNK1AzWERzTXhKU0hLQ0pnRWNIOWdrYzFyOFlRL3dB?= =?utf-8?B?Q0E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <18DF791A83764642828D425D56556E6C@GBRP265.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LO6P265MB6032.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 6fbb10b2-3fd7-456e-164a-08db6e5c1fa1 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jun 2023 11:23:34.9151 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d5fd8bb-e8c2-4e0a-8dd5-2c264f7140fe X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fteD9pRB/RtrKNqGLKQA2A4AyXgNo9+7jLYSg/ZbByge0HVJ05ymnY6KI0PBmYplVLALWvAvXWEcNMAL3yS+4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP265MB1989 X-OriginatorOrg: imgtec.com X-EXCLAIMER-MD-CONFIG: 15a78312-3e47-46eb-9010-2e54d84a9631 X-Proofpoint-ORIG-GUID: PPhJV8wrvBF0htiRfu4IAdFbcnqwHBiZ X-Proofpoint-GUID: PPhJV8wrvBF0htiRfu4IAdFbcnqwHBiZ X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "matthew.brost@intel.com" , "christian.koenig@amd.com" , "luben.tuikov@amd.com" , "dakr@redhat.com" , Donald Robson , "boris.brezillon@collabora.com" , "sumit.semwal@linaro.org" , "faith.ekstrand@collabora.com" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgQW5kcmV3LA0KDQpPbiBUdWUsIDIwMjMtMDYtMTMgYXQgMTM6MTIgLTA1MDAsIEFuZHJldyBE YXZpcyB3cm90ZToNCj4gT24gNi8xMy8yMyA5OjQ3IEFNLCBTYXJhaCBXYWxrZXIgd3JvdGU6DQo+ ID4gQWNxdWlyZSBjbG9jaywgcmVndWxhdG9yIGFuZCByZWdpc3RlciByZXNvdXJjZXMsIGFuZCBl bmFibGUvbWFwIGFzDQo+ID4gYXBwcm9wcmlhdGUuDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTog U2FyYWggV2Fsa2VyIDxzYXJhaC53YWxrZXJAaW1ndGVjLmNvbT4NCj4gPiAtLS0NCj4gPiAgIGRy aXZlcnMvZ3B1L2RybS9pbWFnaW5hdGlvbi9NYWtlZmlsZSAgICAgfCAgIDEgKw0KPiA+ICAgZHJp dmVycy9ncHUvZHJtL2ltYWdpbmF0aW9uL3B2cl9kZXZpY2UuYyB8IDI3MSArKysrKysrKysrKysr KysrKysrKysrKw0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2ltYWdpbmF0aW9uL3B2cl9kZXZpY2Uu aCB8IDIxNCArKysrKysrKysrKysrKysrKysNCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pbWFnaW5h dGlvbi9wdnJfZHJ2LmMgICAgfCAgMTEgKy0NCj4gPiAgIDQgZmlsZXMgY2hhbmdlZCwgNDk2IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vaW1hZ2luYXRpb24vcHZyX2RldmljZS5jDQo+ID4gDQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pbWFnaW5hdGlvbi9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS9pbWFnaW5hdGlvbi9NYWtlZmlsZQ0KPiA+IGluZGV4IDYyY2NmMGNjYmQ1MS4uMTg2ZjkyMGQ2 MTViIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbWFnaW5hdGlvbi9NYWtlZmls ZQ0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbWFnaW5hdGlvbi9NYWtlZmlsZQ0KPiA+IEBA IC00LDYgKzQsNyBAQA0KPiA+ICAgc3ViZGlyLWNjZmxhZ3MteSA6PSAtSSQoc3JjdHJlZSkvJChz cmMpDQo+ID4gICANCj4gPiAgIHBvd2VydnIteSA6PSBcDQo+ID4gKwlwdnJfZGV2aWNlLm8gXA0K PiA+ICAgCXB2cl9kcnYubyBcDQo+ID4gICANCj4gPiAgIG9iai0kKENPTkZJR19EUk1fUE9XRVJW UikgKz0gcG93ZXJ2ci5vDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbWFnaW5h dGlvbi9wdnJfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW1hZ2luYXRpb24vcHZyX2Rldmlj ZS5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjc5 MGMzNmNlYmVjMQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aW1hZ2luYXRpb24vcHZyX2RldmljZS5jDQo+ID4gQEAgLTAsMCArMSwyNzEgQEANCj4gPiArLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ID4gKy8qIENvcHlyaWdo dCAoYykgMjAyMiBJbWFnaW5hdGlvbiBUZWNobm9sb2dpZXMgTHRkLiAqLw0KPiA+ICsNCj4gPiAr I2luY2x1ZGUgInB2cl9kZXZpY2UuaCINCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX3By aW50Lmg+DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+ID4gKyNpbmNsdWRl IDxsaW51eC9jb21waWxlcl9hdHRyaWJ1dGVzLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9jb21w aWxlcl90eXBlcy5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4NCj4gPiAr I2luY2x1ZGUgPGxpbnV4L2Vyci5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvZ2ZwLmg+DQo+ID4g KyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4 L3JlZ3VsYXRvci9jb25zdW1lci5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KPiA+ ICsjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC90eXBlcy5o Pg0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIHB2cl9kZXZpY2VfcmVnX2luaXQoKSAtIEluaXRp YWxpemUga2VybmVsIGFjY2VzcyB0byBhIFBvd2VyVlIgZGV2aWNlJ3MNCj4gPiArICogY29udHJv bCByZWdpc3RlcnMuDQo+ID4gKyAqIEBwdnJfZGV2OiBUYXJnZXQgUG93ZXJWUiBkZXZpY2UuDQo+ ID4gKyAqDQo+ID4gKyAqIFNldHMgc3RydWN0IHB2cl9kZXZpY2UtPnJlZ3MuDQo+ID4gKyAqDQo+ ID4gKyAqIFRoaXMgbWV0aG9kIG9mIG1hcHBpbmcgdGhlIGRldmljZSBjb250cm9sIHJlZ2lzdGVy cyBpbnRvIG1lbW9yeSBlbnN1cmVzIHRoYXQNCj4gPiArICogdGhleSBhcmUgdW5tYXBwZWQgd2hl biB0aGUgZHJpdmVyIGlzIGRldGFjaGVkIChpLmUuIG5vIGV4cGxpY2l0IGNsZWFudXAgaXMNCj4g PiArICogcmVxdWlyZWQpLg0KPiA+ICsgKg0KPiA+ICsgKiBSZXR1cm46DQo+ID4gKyAqICAqIDAg b24gc3VjY2Vzcywgb3INCj4gPiArICogICogQW55IGVycm9yIHJldHVybmVkIGJ5IGRldm1fcGxh dGZvcm1faW9yZW1hcF9yZXNvdXJjZSgpLg0KPiA+ICsgKi8NCj4gPiArc3RhdGljIGludA0KPiA+ ICtwdnJfZGV2aWNlX3JlZ19pbml0KHN0cnVjdCBwdnJfZGV2aWNlICpwdnJfZGV2KQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGZyb21fcHZyX2RldmljZShwdnJf ZGV2KTsNCj4gPiArCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRfZGV2ID0gdG9fcGxhdGZv cm1fZGV2aWNlKGRybV9kZXYtPmRldik7DQo+ID4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlZ3NfcmVz b3VyY2U7DQo+ID4gKwl2b2lkIF9faW9tZW0gKnJlZ3M7DQo+ID4gKwlpbnQgZXJyOw0KPiA+ICsN Cj4gPiArCXB2cl9kZXYtPnJlZ3NfcmVzb3VyY2UgPSBOVUxMOw0KPiA+ICsJcHZyX2Rldi0+cmVn cyA9IE5VTEw7DQo+ID4gKw0KPiA+ICsJcmVncyA9IGRldm1fcGxhdGZvcm1fZ2V0X2FuZF9pb3Jl bWFwX3Jlc291cmNlKHBsYXRfZGV2LCAwLCAmcmVnc19yZXNvdXJjZSk7DQo+ID4gKwlpZiAoSVNf RVJSKHJlZ3MpKSB7DQo+ID4gKwkJZXJyID0gUFRSX0VSUihyZWdzKTsNCj4gPiArCQlkcm1fZXJy KGRybV9kZXYsICJmYWlsZWQgdG8gaW9yZW1hcCBncHUgcmVnaXN0ZXJzIChlcnI9JWQpXG4iLA0K PiA+ICsJCQllcnIpOw0KPiA+ICsJCXJldHVybiBlcnI7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJ cHZyX2Rldi0+cmVncyA9IHJlZ3M7DQo+ID4gKwlwdnJfZGV2LT5yZWdzX3Jlc291cmNlID0gcmVn c19yZXNvdXJjZTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr LyoqDQo+ID4gKyAqIHB2cl9kZXZpY2VfcmVnX2ZpbmkoKSAtIERlaW5pdGlhbGl6ZSBrZXJuZWwg YWNjZXNzIHRvIGEgUG93ZXJWUiBkZXZpY2Uncw0KPiA+ICsgKiBjb250cm9sIHJlZ2lzdGVycy4N Cj4gPiArICogQHB2cl9kZXY6IFRhcmdldCBQb3dlclZSIGRldmljZS4NCj4gPiArICoNCj4gPiAr ICogVGhpcyBpcyBlc3NlbnRpYWxseSBhIG5vLW9wLCBzaW5jZSBwdnJfZGV2aWNlX3JlZ19pbml0 KCkgYWxyZWFkeSBlbnN1cmVzIHRoYXQNCj4gPiArICogc3RydWN0IHB2cl9kZXZpY2UtPnJlZ3Mg aXMgdW5tYXBwZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGRldGFjaGVkLiBUaGlzDQo+ID4gKyAqIGZ1 bmN0aW9uIGp1c3Qgc2V0cyBzdHJ1Y3QgcHZyX2RldmljZS0+cmVncyB0byAlTlVMTC4NCj4gPiAr ICovDQo+ID4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiA+ICtwdnJfZGV2aWNlX3Jl Z19maW5pKHN0cnVjdCBwdnJfZGV2aWNlICpwdnJfZGV2KQ0KPiA+ICt7DQo+ID4gKwlwdnJfZGV2 LT5yZWdzID0gTlVMTDsNCj4gDQo+IFRoaXMgZnVuY3Rpb24gaXNuJ3QgbmVlZGVkLCBraW5kYSBk ZWZlYXRzIHRoZSBwdXJwb3NlIG9mIHVzaW5nIGRldm1fKigpDQo+IGlmIHlvdSBnbyBhbiBtYW51 YWxseSBoYXZlIG5vLW9wIGZ1bmN0aW9ucyB0byB1bndpbmQgaXQuLg0KDQpUaGFuayB5b3UgZm9y IHRoZSBzdWdnZXN0aW9ucy4gV2UnbGwgZml4IHRoaXMsIGFzIHdlbGwgYXMgeW91ciBvdGhlciBz dWdnZXN0aW9ucw0KYmVsb3cuDQoNClRoYW5rcw0KRnJhbmsNCg0KPiANCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyoqDQo+ID4gKyAqIHB2cl9kZXZpY2VfY2xrX2luaXQoKSAtIEluaXRpYWxpemUgY2xv Y2tzIHJlcXVpcmVkIGJ5IGEgUG93ZXJWUiBkZXZpY2UNCj4gPiArICogQHB2cl9kZXY6IFRhcmdl dCBQb3dlclZSIGRldmljZS4NCj4gPiArICoNCj4gPiArICogU2V0cyBzdHJ1Y3QgcHZyX2Rldmlj ZS0+Y29yZV9jbGssIHN0cnVjdCBwdnJfZGV2aWNlLT5zeXNfY2xrIGFuZA0KPiA+ICsgKiBzdHJ1 Y3QgcHZyX2RldmljZS0+bWVtX2Nsay4NCj4gPiArICoNCj4gPiArICogVGhyZWUgY2xvY2tzIGFy ZSByZXF1aXJlZCBieSB0aGUgUG93ZXJWUiBkZXZpY2U6IGNvcmUsIHN5cyBhbmQgbWVtLiBPbg0K PiA+ICsgKiByZXR1cm4sIHRoaXMgZnVuY3Rpb24gZ3VhcmFudGVlcyB0aGF0IHRoZSBjbG9ja3Mg YXJlIGluIG9uZSBvZiB0aGUgZm9sbG93aW5nDQo+ID4gKyAqIHN0YXRlczoNCj4gPiArICoNCj4g PiArICogICogQWxsIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCwNCj4gPiArICogICogQ29yZSBl cnJvcmVkLCBzeXMgYW5kIG1lbSB1bmluaXRpYWxpemVkLA0KPiA+ICsgKiAgKiBDb3JlIGRlaW5p dGlhbGl6ZWQsIHN5cyBlcnJvcmVkLCBtZW0gdW5pbml0aWFsaXplZCwgb3INCj4gPiArICogICog Q29yZSBhbmQgc3lzIGRlaW5pdGlhbGl6ZWQsIG1lbSBlcnJvcmVkLg0KPiA+ICsgKg0KPiA+ICsg KiBSZXR1cm46DQo+ID4gKyAqICAqIDAgb24gc3VjY2VzcywNCj4gPiArICogICogQW55IGVycm9y IHJldHVybmVkIGJ5IGRldm1fY2xrX2dldCgpLCBvcg0KPiA+ICsgKiAgKiBBbnkgZXJyb3IgcmV0 dXJuZWQgYnkgY2xrX3ByZXBhcmVfZW5hYmxlKCkuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgaW50 IHB2cl9kZXZpY2VfY2xrX2luaXQoc3RydWN0IHB2cl9kZXZpY2UgKnB2cl9kZXYpDQo+ID4gK3sN Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZnJvbV9wdnJfZGV2aWNlKHB2cl9k ZXYpOw0KPiA+ICsJc3RydWN0IGNsayAqY29yZV9jbGs7DQo+ID4gKwlzdHJ1Y3QgY2xrICpzeXNf Y2xrOw0KPiA+ICsJc3RydWN0IGNsayAqbWVtX2NsazsNCj4gPiArCWludCBlcnI7DQo+ID4gKw0K PiA+ICsJcHZyX2Rldi0+Y29yZV9jbGsgPSBOVUxMOw0KPiA+ICsJcHZyX2Rldi0+c3lzX2NsayA9 IE5VTEw7DQo+ID4gKwlwdnJfZGV2LT5tZW1fY2xrID0gTlVMTDsNCj4gDQo+IFlvdSBjb3VsZCBO VUxMIHRoZXNlIG91dCBvbiB0aGUgZXJyb3IgcGF0aCwgYnV0IGlzIHRoYXQgZXZlbiBuZWVkZWQs IGxvb2tzDQo+IGxpa2UgaWYgdGhpcyBmdW5jdGlvbnMgZmFpbHMgd2UgYmFpbCBvbiB0aGUgd2hv bGUgaW5pdCB3aGVyZSB0aGlzIGlzIGFsbA0KPiBkZWFsbG9jYXRlZCAocGx1cyBOVUxMJ2Qgb3V0 IGFnYWluIGluIHRoYXQgcGF0aCkuDQo+IA0KPiA+ICsNCj4gPiArCWNvcmVfY2xrID0gZGV2bV9j bGtfZ2V0KGRybV9kZXYtPmRldiwgImNvcmUiKTsNCj4gPiArCWlmIChJU19FUlIoY29yZV9jbGsp KSB7DQo+ID4gKwkJZXJyID0gUFRSX0VSUihjb3JlX2Nsayk7DQo+ID4gKwkJZHJtX2Vycihkcm1f ZGV2LCAiZmFpbGVkIHRvIGdldCBjb3JlIGNsb2NrIChlcnI9JWQpXG4iLCBlcnIpOw0KPiA+ICsJ CWdvdG8gZXJyX291dDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlzeXNfY2xrID0gZGV2bV9jbGtf Z2V0KGRybV9kZXYtPmRldiwgInN5cyIpOw0KPiA+ICsJaWYgKElTX0VSUihzeXNfY2xrKSkNCj4g PiArCQlzeXNfY2xrID0gTlVMTDsNCj4gPiArDQo+ID4gKwltZW1fY2xrID0gZGV2bV9jbGtfZ2V0 KGRybV9kZXYtPmRldiwgIm1lbSIpOw0KPiA+ICsJaWYgKElTX0VSUihtZW1fY2xrKSkNCj4gPiAr CQltZW1fY2xrID0gTlVMTDsNCj4gPiArDQo+ID4gKwllcnIgPSBjbGtfcHJlcGFyZShjb3JlX2Ns ayk7DQo+ID4gKwlpZiAoZXJyKQ0KPiA+ICsJCWdvdG8gZXJyX291dDsNCj4gPiArDQo+ID4gKwlp ZiAoc3lzX2Nsaykgew0KPiA+ICsJCWVyciA9IGNsa19wcmVwYXJlKHN5c19jbGspOw0KPiA+ICsJ CWlmIChlcnIpDQo+ID4gKwkJCWdvdG8gZXJyX2RlaW5pdF9jb3JlX2NsazsNCj4gPiArCX0NCj4g PiArDQo+ID4gKwlpZiAobWVtX2Nsaykgew0KPiA+ICsJCWVyciA9IGNsa19wcmVwYXJlKG1lbV9j bGspOw0KPiA+ICsJCWlmIChlcnIpDQo+ID4gKwkJCWdvdG8gZXJyX2RlaW5pdF9zeXNfY2xrOw0K PiA+ICsJfQ0KPiA+ICsNCj4gPiArCXB2cl9kZXYtPmNvcmVfY2xrID0gY29yZV9jbGs7DQo+ID4g KwlwdnJfZGV2LT5zeXNfY2xrID0gc3lzX2NsazsNCj4gPiArCXB2cl9kZXYtPm1lbV9jbGsgPSBt ZW1fY2xrOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICsNCj4gPiArZXJyX2RlaW5pdF9z eXNfY2xrOg0KPiA+ICsJaWYgKHN5c19jbGspDQo+ID4gKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJl KHN5c19jbGspOw0KPiA+ICtlcnJfZGVpbml0X2NvcmVfY2xrOg0KPiA+ICsJY2xrX2Rpc2FibGVf dW5wcmVwYXJlKGNvcmVfY2xrKTsNCj4gPiArZXJyX291dDoNCj4gPiArCXJldHVybiBlcnI7DQo+ ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBwdnJfZGV2aWNlX2Nsa19maW5pKCkgLSBE ZWluaXRpYWxpemUgY2xvY2tzIHJlcXVpcmVkIGJ5IGEgUG93ZXJWUiBkZXZpY2UNCj4gPiArICog QHB2cl9kZXY6IFRhcmdldCBQb3dlclZSIGRldmljZS4NCj4gPiArICovDQo+ID4gK3N0YXRpYyB2 b2lkDQo+ID4gK3B2cl9kZXZpY2VfY2xrX2Zpbmkoc3RydWN0IHB2cl9kZXZpY2UgKnB2cl9kZXYp DQo+ID4gK3sNCj4gPiArCWlmIChwdnJfZGV2LT5tZW1fY2xrKQ0KPiA+ICsJCWNsa191bnByZXBh cmUocHZyX2Rldi0+bWVtX2Nsayk7DQo+IA0KPiBVc2luZyBkZXZtX2Nsa19nZXRfKG9wdGlvbmFs KV9wcmVwYXJlZCgpIGluIHRoZSBpbml0IGZ1bmN0aW9uIGFib3ZlIG1pZ2h0IGFsbG93DQo+IHRo ZXNlIHRvIGJlIHVucHJlcGFpcmVkIGZvciB5b3UsIGluIHRoYXQgY2FzZSB0aGlzIGZ1bmN0aW9u IGFsc28gY2FuIGJlIGRyb3BwZWQuDQo+IA0KPiA+ICsJaWYgKHB2cl9kZXYtPnN5c19jbGspDQo+ ID4gKwkJY2xrX3VucHJlcGFyZShwdnJfZGV2LT5zeXNfY2xrKTsNCj4gPiArCWNsa191bnByZXBh cmUocHZyX2Rldi0+Y29yZV9jbGspOw0KPiA+ICsNCj4gPiArCXB2cl9kZXYtPmNvcmVfY2xrID0g TlVMTDsNCj4gPiArCXB2cl9kZXYtPnN5c19jbGsgPSBOVUxMOw0KPiA+ICsJcHZyX2Rldi0+bWVt X2NsayA9IE5VTEw7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBwdnJfZGV2aWNl X3JlZ3VsYXRvcl9pbml0KCkgLSBJbml0aWFsaXNlIHJlZ3VsYXRvciByZXF1aXJlZCBieSBhIFBv d2VyVlIgZGV2aWNlDQo+ID4gKyAqIEBwdnJfZGV2OiBUYXJnZXQgUG93ZXJWUiBkZXZpY2UuDQo+ ID4gKyAqDQo+ID4gKyAqIFRoZSByZWd1bGF0b3IgaXMgbm90IGEgcmVxdWlyZWQgZGV2aWNldHJl ZSBwcm9wZXJ0eS4gSWYgaXQgaXMgbm90IHByZXNlbnQgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwN Cj4gPiArICogc3VjY2VlZCwgYnV0ICZwdnJfZGV2aWNlLT5yZWd1bGF0b3Igd2lsbCBiZSAlTlVM TC4NCj4gPiArICoNCj4gPiArICogUmV0dXJuczoNCj4gPiArICogICogMCBvbiBzdWNjZXNzLCBv cg0KPiA+ICsgKiAgKiBBbnkgZXJyb3IgcmV0dXJuZWQgYnkgZGV2bV9yZWd1bGF0b3JfZ2V0KCku DQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK3B2cl9kZXZpY2VfcmVndWxhdG9yX2lu aXQoc3RydWN0IHB2cl9kZXZpY2UgKnB2cl9kZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBkcm1f ZGV2aWNlICpkcm1fZGV2ID0gZnJvbV9wdnJfZGV2aWNlKHB2cl9kZXYpOw0KPiA+ICsJc3RydWN0 IHJlZ3VsYXRvciAqcmVndWxhdG9yOw0KPiA+ICsJaW50IGVycjsNCj4gPiArDQo+ID4gKwlyZWd1 bGF0b3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoZHJtX2Rldi0+ZGV2LCAicG93ZXIiKTsNCj4gPiAr CWlmIChJU19FUlIocmVndWxhdG9yKSkgew0KPiA+ICsJCWVyciA9IFBUUl9FUlIocmVndWxhdG9y KTsNCj4gPiArCQkvKiBSZWd1bGF0b3IgaXMgbm90IHJlcXVpcmVkLCBzbyBFTk9ERVYgaXMgYWxs b3dlZCBoZXJlLiAqLw0KPiANCj4gVGhlcmUgaXMgZGV2bV9yZWd1bGF0b3JfZ2V0X29wdGlvbmFs KCksIG1pZ2h0IGJlIHdoYXQgeW91IHdhbnQgaGVyZS4NCj4gDQo+IEFsc28gdXNpbmcgZGV2X2Vy cl9wcm9iZSgpIHdvdWxkIGNoZWNrIGZvciBwcm9iZSBkZWZlciBoZXJlLg0KPiANCj4gPiArCQlp ZiAoZXJyICE9IC1FTk9ERVYpDQo+ID4gKwkJCWdvdG8gZXJyX291dDsNCj4gPiArCQlyZWd1bGF0 b3IgPSBOVUxMOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXB2cl9kZXYtPnJlZ3VsYXRvciA9IHJl Z3VsYXRvcjsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArDQo+ID4gK2Vycl9vdXQ6DQo+ ID4gKwlyZXR1cm4gZXJyOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogcHZyX2Rl dmljZV9pbml0KCkgLSBJbml0aWFsaXplIGEgUG93ZXJWUiBkZXZpY2UNCj4gPiArICogQHB2cl9k ZXY6IFRhcmdldCBQb3dlclZSIGRldmljZS4NCj4gPiArICoNCj4gPiArICogSWYgdGhpcyBmdW5j dGlvbiByZXR1cm5zIHN1Y2Nlc3NmdWxseSwgdGhlIGRldmljZSB3aWxsIGhhdmUgYmVlbiBmdWxs eQ0KPiA+ICsgKiBpbml0aWFsaXplZC4gT3RoZXJ3aXNlLCBhbnkgcGFydHMgb2YgdGhlIGRldmlj ZSBpbml0aWFsaXplZCBiZWZvcmUgYW4gZXJyb3INCj4gPiArICogb2NjdXJzIHdpbGwgYmUgZGUt aW5pdGlhbGl6ZWQgYmVmb3JlIHJldHVybmluZy4NCj4gPiArICoNCj4gPiArICogTk9URTogVGhl IGluaXRpYWxpemF0aW9uIHN0ZXBzIGN1cnJlbnRseSB0YWtlbiBhcmUgdGhlIGJhcmUgbWluaW11 bSByZXF1aXJlZA0KPiA+ICsgKiAgICAgICB0byByZWFkIGZyb20gdGhlIGNvbnRyb2wgcmVnaXN0 ZXJzLiBUaGUgZGV2aWNlIGlzIHVubGlrZWx5IHRvIGZ1bmN0aW9uDQo+ID4gKyAqICAgICAgIHVu dGlsIGZ1cnRoZXIgaW5pdGlhbGl6YXRpb24gc3RlcHMgYXJlIGFkZGVkLiBbVGhpcyBub3RlIHNo b3VsZCBiZQ0KPiA+ICsgKiAgICAgICByZW1vdmVkIHdoZW4gdGhhdCBoYXBwZW5zLl0NCj4gPiAr ICoNCj4gPiArICogUmV0dXJuOg0KPiA+ICsgKiAgKiAwIG9uIHN1Y2Nlc3MsDQo+ID4gKyAqICAq IEFueSBlcnJvciByZXR1cm5lZCBieSBwdnJfZGV2aWNlX3JlZ19pbml0KCksDQo+ID4gKyAqICAq IEFueSBlcnJvciByZXR1cm5lZCBieSBwdnJfZGV2aWNlX2Nsa19pbml0KCksIG9yDQo+ID4gKyAq ICAqIEFueSBlcnJvciByZXR1cm5lZCBieSBwdnJfZGV2aWNlX2dwdV9pbml0KCkuDQo+ID4gKyAq Lw0KPiA+ICtpbnQNCj4gPiArcHZyX2RldmljZV9pbml0KHN0cnVjdCBwdnJfZGV2aWNlICpwdnJf ZGV2KQ0KPiA+ICt7DQo+ID4gKwlpbnQgZXJyOw0KPiA+ICsNCj4gPiArCS8qIEVuYWJsZSBhbmQg aW5pdGlhbGl6ZSBjbG9ja3MgcmVxdWlyZWQgZm9yIHRoZSBkZXZpY2UgdG8gb3BlcmF0ZS4gKi8N Cj4gPiArCWVyciA9IHB2cl9kZXZpY2VfY2xrX2luaXQocHZyX2Rldik7DQo+ID4gKwlpZiAoZXJy KQ0KPiA+ICsJCWdvdG8gZXJyX291dDsNCj4gPiArDQo+ID4gKwllcnIgPSBwdnJfZGV2aWNlX3Jl Z3VsYXRvcl9pbml0KHB2cl9kZXYpOw0KPiA+ICsJaWYgKGVycikNCj4gPiArCQlnb3RvIGVycl9k ZXZpY2VfY2xrX2Zpbmk7DQo+ID4gKw0KPiA+ICsJLyogTWFwIHRoZSBjb250cm9sIHJlZ2lzdGVy cyBpbnRvIG1lbW9yeS4gKi8NCj4gPiArCWVyciA9IHB2cl9kZXZpY2VfcmVnX2luaXQocHZyX2Rl dik7DQo+ID4gKwlpZiAoZXJyKQ0KPiA+ICsJCWdvdG8gZXJyX2RldmljZV9yZWdfZmluaTsNCj4g PiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArDQo+ID4gK2Vycl9kZXZpY2VfcmVnX2Zpbmk6DQo+ ID4gKwlwdnJfZGV2aWNlX3JlZ19maW5pKHB2cl9kZXYpOw0KPiA+ICsNCj4gPiArZXJyX2Rldmlj ZV9jbGtfZmluaToNCj4gPiArCXB2cl9kZXZpY2VfY2xrX2ZpbmkocHZyX2Rldik7DQo+ID4gKw0K PiA+ICtlcnJfb3V0Og0KPiA+ICsJcmV0dXJuIGVycjsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAqIHB2cl9kZXZpY2VfZmluaSgpIC0gRGVpbml0aWFsaXplIGEgUG93ZXJWUiBkZXZp Y2UNCj4gPiArICogQHB2cl9kZXY6IFRhcmdldCBQb3dlclZSIGRldmljZS4NCj4gPiArICovDQo+ ID4gK3ZvaWQNCj4gPiArcHZyX2RldmljZV9maW5pKHN0cnVjdCBwdnJfZGV2aWNlICpwdnJfZGV2 KQ0KPiA+ICt7DQo+ID4gKwkvKg0KPiA+ICsJICogRGVpbml0aWFsaXphdGlvbiBzdGFnZXMgYXJl IHBlcmZvcm1lZCBpbiByZXZlcnNlIG9yZGVyIGNvbXBhcmVkIHRvDQo+ID4gKwkgKiB0aGUgaW5p dGlhbGl6YXRpb24gc3RhZ2VzIGluIHB2cl9kZXZpY2VfaW5pdCgpLg0KPiA+ICsJICovDQo+ID4g KwlwdnJfZGV2aWNlX3JlZ19maW5pKHB2cl9kZXYpOw0KPiA+ICsJcHZyX2RldmljZV9jbGtfZmlu aShwdnJfZGV2KTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW1h Z2luYXRpb24vcHZyX2RldmljZS5oIGIvZHJpdmVycy9ncHUvZHJtL2ltYWdpbmF0aW9uL3B2cl9k ZXZpY2UuaA0KPiA+IGluZGV4IDNkMjg2NWQ3MjZiOC4uYzBkZDA1NjI4NDRjIDEwMDY0NA0KPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbWFnaW5hdGlvbi9wdnJfZGV2aWNlLmgNCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaW1hZ2luYXRpb24vcHZyX2RldmljZS5oDQo+ID4gQEAgLTExLDkg KzExLDI1IEBADQo+ID4gICAjaW5jbHVkZSA8bGludXgvYml0cy5oPg0KPiA+ICAgI2luY2x1ZGUg PGxpbnV4L2NvbXBpbGVyX2F0dHJpYnV0ZXMuaD4NCj4gPiAgICNpbmNsdWRlIDxsaW51eC9jb21w aWxlcl90eXBlcy5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4NCj4gPiArI2luY2x1ZGUg PGxpbnV4L2lvcG9sbC5oPg0KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPiA+ICsj aW5jbHVkZSA8bGludXgvbWF0aC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4NCj4g PiArI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+DQo+ID4gICAjaW5jbHVkZSA8bGludXgvdHlwZXMu aD4NCj4gPiAgICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC93 b3JrcXVldWUuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3hhcnJheS5oPg0KPiA+ICsNCj4gPiAr LyogRm9yd2FyZCBkZWNsYXJhdGlvbiBmcm9tIDxsaW51eC9jbGsuaD4uICovDQo+ID4gK3N0cnVj dCBjbGs7DQo+ID4gKw0KPiA+ICsvKiBGb3J3YXJkIGRlY2xhcmF0aW9uIGZyb20gPGxpbnV4L2Zp cm13YXJlLmg+LiAqLw0KPiA+ICtzdHJ1Y3QgZmlybXdhcmU7DQo+ID4gKw0KPiA+ICsvKiBGb3J3 YXJkIGRlY2xhcmF0aW9uIGZyb20gPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPi4gKi8NCj4g PiArc3RydWN0IHJlZ3VsYXRvcjsNCj4gPiAgIA0KPiA+ICAgLyoqDQo+ID4gICAgKiBzdHJ1Y3Qg cHZyX2RldmljZSAtIHBvd2VydnItc3BlY2lmaWMgd3JhcHBlciBmb3IgJnN0cnVjdCBkcm1fZGV2 aWNlDQo+ID4gQEAgLTI2LDYgKzQyLDI5IEBAIHN0cnVjdCBwdnJfZGV2aWNlIHsNCj4gPiAgIAkg KiBmcm9tX3B2cl9kZXZpY2UoKS4NCj4gPiAgIAkgKi8NCj4gPiAgIAlzdHJ1Y3QgZHJtX2Rldmlj ZSBiYXNlOw0KPiA+ICsNCj4gPiArCS8qKiBAcmVnc19yZXNvdXJjZTogUmVzb3VyY2UgcmVwcmVz ZW50aW5nIGRldmljZSBjb250cm9sIHJlZ2lzdGVycy4gKi8NCj4gPiArCXN0cnVjdCByZXNvdXJj ZSAqcmVnc19yZXNvdXJjZTsNCj4gPiArDQo+ID4gKwkvKioNCj4gPiArCSAqIEByZWdzOiBEZXZp Y2UgY29udHJvbCByZWdpc3RlcnMuDQo+ID4gKwkgKg0KPiA+ICsJICogVGhlc2UgYXJlIG1hcHBl ZCBpbnRvIG1lbW9yeSB3aGVuIHRoZSBkZXZpY2UgaXMgaW5pdGlhbGl6ZWQ7IHRoYXQNCj4gPiAr CSAqIGxvY2F0aW9uIGlzIHdoZXJlIHRoaXMgcG9pbnRlciBwb2ludHMuDQo+ID4gKwkgKi8NCj4g PiArCXZvaWQgX19pb21lbSAqcmVnczsNCj4gPiArDQo+ID4gKwkvKiogQGNvcmVfY2xrOiBHZW5l cmFsIGNvcmUgY2xvY2suICovDQo+ID4gKwlzdHJ1Y3QgY2xrICpjb3JlX2NsazsNCj4gPiArDQo+ ID4gKwkvKiogQHN5c19jbGs6IFN5c3RlbSBidXMgY2xvY2suICovDQo+ID4gKwlzdHJ1Y3QgY2xr ICpzeXNfY2xrOw0KPiA+ICsNCj4gPiArCS8qKiBAbWVtX2NsazogTWVtb3J5IGNsb2NrLiAqLw0K PiA+ICsJc3RydWN0IGNsayAqbWVtX2NsazsNCj4gPiArDQo+ID4gKwkvKiogQHJlZ3VsYXRvcjog UG93ZXIgcmVndWxhdG9yLiAqLw0KPiA+ICsJc3RydWN0IHJlZ3VsYXRvciAqcmVndWxhdG9yOw0K PiA+ICAgfTsNCj4gPiAgIA0KPiA+ICAgLyoqDQo+ID4gQEAgLTcyLDYgKzExMSwxODEgQEAgdG9f cHZyX2ZpbGUoc3RydWN0IGRybV9maWxlICpmaWxlKQ0KPiA+ICAgCXJldHVybiBmaWxlLT5kcml2 ZXJfcHJpdjsNCj4gPiAgIH0NCj4gPiAgIA0KPiA+ICtpbnQgcHZyX2RldmljZV9pbml0KHN0cnVj dCBwdnJfZGV2aWNlICpwdnJfZGV2KTsNCj4gPiArdm9pZCBwdnJfZGV2aWNlX2Zpbmkoc3RydWN0 IHB2cl9kZXZpY2UgKnB2cl9kZXYpOw0KPiA+ICsNCj4gPiAraW50DQo+ID4gK3B2cl9kZXZpY2Vf Y2xrX2NvcmVfZ2V0X2ZyZXEoc3RydWN0IHB2cl9kZXZpY2UgKnB2cl9kZXYsIHUzMiAqZnJlcV9v dXQpOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIFBWUl9DUl9SRUFEMzIoKSAtIFJlYWQgYSAz Mi1iaXQgcmVnaXN0ZXIgZnJvbSBhIFBvd2VyVlIgZGV2aWNlDQo+ID4gKyAqIEBwdnJfZGV2OiBU YXJnZXQgUG93ZXJWUiBkZXZpY2UuDQo+ID4gKyAqIEByZWc6IFRhcmdldCByZWdpc3Rlci4NCj4g PiArICoNCj4gPiArICogVGhpcyBtYWNybyBpcyBhIHdyYXBwZXIgYXJvdW5kIHB2cl9jcl9yZWFk MzIoKS4gSXQgYXBwbGllcyBST0dVRV9DUl8gcHJlZml4DQo+ID4gKyAqIHRvIHRoZSBwcm92aWRl ZCBAcmVnIG5hbWUsIG1ha2luZyBpdCBiZWhhdmUgY29tcGFyYWJseSB0byB0aGUNCj4gPiArICog UFZSX0NSX0ZJRUxEX0dFVCgpIG1hY3JvLg0KPiA+ICsgKg0KPiA+ICsgKiBSZXR1cm46IFRoZSB2 YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIHJlZ2lzdGVyLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBQ VlJfQ1JfUkVBRDMyKHB2cl9kZXYsIHJlZykgcHZyX2NyX3JlYWQzMihwdnJfZGV2LCBST0dVRV9D Ul8jI3JlZykNCj4gDQo+IE5vdCBhIGh1Z2UgZmFuIG9mIGFsbCB0aGVzZSBvbmVsaW5lIGZ1bmN0 aW9ucy9tYWNyb3MsIGRvZXMgdGhpcyByZWFsbHkgYWRkIGFueWhpbmc/DQo+IEFsbCBpdCBkb2Vz IElNSE8gaXMgYWRkIHR3byBsZXZlbHMgb2YgaW5kaXJlY3Rpb24gd2UgaGF2ZSB0byB0cmFjayBi YWNrIHRob3VnaA0KPiB0byBmaWd1cmUgb3V0IHdoYXQgaXQgYWN0dWFsbHkgaXMgZG9pbmcsIHdo ZW4gY2FsbGluZyBpb3JlYWQzMigpIGRpcmVjdGx5IHdvdWxkDQo+IGhhdmUgYmVlbiBqdXN0IGFz IGNsZWFuIGFuZCBtb3JlIG9idmlvdXMuDQo+IA0KPiBBbmRyZXcNCj4gDQo+ID4gKw0KPiA+ICsv KioNCj4gPiArICogUFZSX0NSX1JFQUQ2NCgpIC0gUmVhZCBhIDY0LWJpdCByZWdpc3RlciBmcm9t IGEgUG93ZXJWUiBkZXZpY2UNCj4gPiArICogQHB2cl9kZXY6IFRhcmdldCBQb3dlclZSIGRldmlj ZS4NCj4gPiArICogQHJlZzogVGFyZ2V0IHJlZ2lzdGVyLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGlz IG1hY3JvIGlzIGEgd3JhcHBlciBhcm91bmQgcHZyX2NyX3JlYWQ2NCgpLiBJdCBhcHBsaWVzIFJP R1VFX0NSXyBwcmVmaXgNCj4gPiArICogdG8gdGhlIHByb3ZpZGVkIEByZWcgbmFtZSwgbWFraW5n IGl0IGJlaGF2ZSBjb21wYXJhYmx5IHRvIHRoZQ0KPiA+ICsgKiBQVlJfQ1JfRklFTERfR0VUKCkg bWFjcm8uDQo+ID4gKyAqDQo+ID4gKyAqIFJldHVybjogVGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0 ZWQgcmVnaXN0ZXIuDQo+ID4gKyAqLw0KPiA+ICsjZGVmaW5lIFBWUl9DUl9SRUFENjQocHZyX2Rl diwgcmVnKSBwdnJfY3JfcmVhZDY0KHB2cl9kZXYsIFJPR1VFX0NSXyMjcmVnKQ0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyAqIFBWUl9DUl9XUklURTMyKCkgLSBXcml0ZSB0byBhIDMyLWJpdCByZWdp c3RlciBpbiBhIFBvd2VyVlIgZGV2aWNlDQo+ID4gKyAqIEBwdnJfZGV2OiBUYXJnZXQgUG93ZXJW UiBkZXZpY2UuDQo+ID4gKyAqIEByZWc6IFRhcmdldCByZWdpc3Rlci4NCj4gPiArICogQHZhbDog VmFsdWUgdG8gd3JpdGUuDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgbWFjcm8gaXMgYSB3cmFwcGVy IGFyb3VuZCBwdnJfY3Jfd3JpdGUzMigpLiBJdCBhcHBsaWVzIFJPR1VFX0NSXw0KPiA+ICsgKiBw cmVmaXggdG8gdGhlIHByb3ZpZGVkIEByZWcgbmFtZSwgbWFraW5nIGl0IGJlaGF2ZSBjb21wYXJh Ymx5IHRvIHRoZQ0KPiA+ICsgKiBQVlJfQ1JfRklFTERfR0VUKCkgbWFjcm8uDQo+ID4gKyAqLw0K PiA+ICsjZGVmaW5lIFBWUl9DUl9XUklURTMyKHB2cl9kZXYsIHJlZywgdmFsKSBcDQo+ID4gKwlw dnJfY3Jfd3JpdGUzMihwdnJfZGV2LCBST0dVRV9DUl8jI3JlZywgdmFsKQ0KPiA+ICsNCj4gPiAr LyoqDQo+ID4gKyAqIFBWUl9DUl9XUklURTY0KCkgLSBXcml0ZSB0byBhIDY0LWJpdCByZWdpc3Rl ciBpbiBhIFBvd2VyVlIgZGV2aWNlDQo+ID4gKyAqIEBwdnJfZGV2OiBUYXJnZXQgUG93ZXJWUiBk ZXZpY2UuDQo+ID4gKyAqIEByZWc6IFRhcmdldCByZWdpc3Rlci4NCj4gPiArICogQHZhbDogVmFs dWUgdG8gd3JpdGUuDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgbWFjcm8gaXMgYSB3cmFwcGVyIGFy b3VuZCBwdnJfY3Jfd3JpdGU2NCgpLiBJdCBhcHBsaWVzIFJPR1VFX0NSXw0KPiA+ICsgKiBwcmVm aXggdG8gdGhlIHByb3ZpZGVkIEByZWcgbmFtZSwgbWFraW5nIGl0IGJlaGF2ZSBjb21wYXJhYmx5 IHRvIHRoZQ0KPiA+ICsgKiBQVlJfQ1JfRklFTERfR0VUKCkgbWFjcm8uDQo+ID4gKyAqLw0KPiA+ ICsjZGVmaW5lIFBWUl9DUl9XUklURTY0KHB2cl9kZXYsIHJlZywgdmFsKSBcDQo+ID4gKwlwdnJf Y3Jfd3JpdGU2NChwdnJfZGV2LCBST0dVRV9DUl8jI3JlZywgdmFsKQ0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAqIFBWUl9DUl9GSUVMRF9HRVQoKSAtIEV4dHJhY3QgYSBzaW5nbGUgZmllbGQgZnJv bSBhIFBvd2VyVlIgY29udHJvbCByZWdpc3Rlcg0KPiA+ICsgKiBAdmFsOiBWYWx1ZSBvZiB0aGUg dGFyZ2V0IHJlZ2lzdGVyLg0KPiA+ICsgKiBAZmllbGQ6IEZpZWxkIHNwZWNpZmllciwgYXMgZGVm aW5lZCBpbiAicHZyX3JvZ3VlX2NyX2RlZnMuaCIuDQo+ID4gKyAqDQo+ID4gKyAqIFJldHVybjog VGhlIGV4dHJhY3RlZCBmaWVsZC4NCj4gPiArICovDQo+ID4gKyNkZWZpbmUgUFZSX0NSX0ZJRUxE X0dFVCh2YWwsIGZpZWxkKSBGSUVMRF9HRVQoflJPR1VFX0NSXyMjZmllbGQjI19DTFJNU0ssIHZh bCkNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBwdnJfY3JfcmVhZDMyKCkgLSBSZWFkIGEgMzIt Yml0IHJlZ2lzdGVyIGZyb20gYSBQb3dlclZSIGRldmljZQ0KPiA+ICsgKiBAcHZyX2RldjogVGFy Z2V0IFBvd2VyVlIgZGV2aWNlLg0KPiA+ICsgKiBAcmVnOiBUYXJnZXQgcmVnaXN0ZXIuDQo+ID4g KyAqDQo+ID4gKyAqIFRoZSB3cmFwcGVyIG1hY3JvIFBWUl9DUl9SRUFEMzIoKSBtYXkgYmUgdXNl ZCBpbnN0ZWFkIHRvIHNpbXBsaWZ5IHRoZQ0KPiA+ICsgKiBzZWxlY3Rpb24gb2YgQHJlZy4NCj4g PiArICoNCj4gPiArICogUmV0dXJuOiBUaGUgdmFsdWUgb2YgdGhlIHJlcXVlc3RlZCByZWdpc3Rl ci4NCj4gPiArICovDQo+ID4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdTMyDQo+ID4gK3B2cl9j cl9yZWFkMzIoc3RydWN0IHB2cl9kZXZpY2UgKnB2cl9kZXYsIHUzMiByZWcpDQo+ID4gK3sNCj4g PiArCXJldHVybiBpb3JlYWQzMihwdnJfZGV2LT5yZWdzICsgcmVnKTsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArLyoqDQo+ID4gKyAqIHB2cl9jcl9yZWFkNjQoKSAtIFJlYWQgYSA2NC1iaXQgcmVnaXN0 ZXIgZnJvbSBhIFBvd2VyVlIgZGV2aWNlDQo+ID4gKyAqIEBwdnJfZGV2OiBUYXJnZXQgUG93ZXJW UiBkZXZpY2UuDQo+ID4gKyAqIEByZWc6IFRhcmdldCByZWdpc3Rlci4NCj4gPiArICoNCj4gPiAr ICogVGhlIHdyYXBwZXIgbWFjcm8gUFZSX0NSX1JFQUQ2NCgpIG1heSBiZSB1c2VkIGluc3RlYWQg dG8gc2ltcGxpZnkgdGhlDQo+ID4gKyAqIHNlbGVjdGlvbiBvZiBAcmVnLg0KPiA+ICsgKg0KPiA+ ICsgKiBSZXR1cm46IFRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIHJlZ2lzdGVyLg0KPiA+ICsg Ki8NCj4gPiArc3RhdGljIF9fYWx3YXlzX2lubGluZSB1NjQNCj4gPiArcHZyX2NyX3JlYWQ2NChz dHJ1Y3QgcHZyX2RldmljZSAqcHZyX2RldiwgdTMyIHJlZykNCj4gPiArew0KPiA+ICsJcmV0dXJu IGlvcmVhZDY0KHB2cl9kZXYtPnJlZ3MgKyByZWcpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioN Cj4gPiArICogcHZyX2NyX3dyaXRlMzIoKSAtIFdyaXRlIHRvIGEgMzItYml0IHJlZ2lzdGVyIGlu IGEgUG93ZXJWUiBkZXZpY2UNCj4gPiArICogQHB2cl9kZXY6IFRhcmdldCBQb3dlclZSIGRldmlj ZS4NCj4gPiArICogQHJlZzogVGFyZ2V0IHJlZ2lzdGVyLg0KPiA+ICsgKiBAdmFsOiBWYWx1ZSB0 byB3cml0ZS4NCj4gPiArICoNCj4gPiArICogVGhlIHdyYXBwZXIgbWFjcm8gUFZSX0NSX1dSSVRF MzIoKSBtYXkgYmUgdXNlZCBpbnN0ZWFkIHRvIHNpbXBsaWZ5IHRoZQ0KPiA+ICsgKiBzZWxlY3Rp b24gb2YgQHJlZy4NCj4gPiArICovDQo+ID4gK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZA0K PiA+ICtwdnJfY3Jfd3JpdGUzMihzdHJ1Y3QgcHZyX2RldmljZSAqcHZyX2RldiwgdTMyIHJlZywg dTMyIHZhbCkNCj4gPiArew0KPiA+ICsJaW93cml0ZTMyKHZhbCwgcHZyX2Rldi0+cmVncyArIHJl Zyk7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBwdnJfY3Jfd3JpdGU2NCgpIC0g V3JpdGUgdG8gYSA2NC1iaXQgcmVnaXN0ZXIgaW4gYSBQb3dlclZSIGRldmljZQ0KPiA+ICsgKiBA cHZyX2RldjogVGFyZ2V0IFBvd2VyVlIgZGV2aWNlLg0KPiA+ICsgKiBAcmVnOiBUYXJnZXQgcmVn aXN0ZXIuDQo+ID4gKyAqIEB2YWw6IFZhbHVlIHRvIHdyaXRlLg0KPiA+ICsgKg0KPiA+ICsgKiBU aGUgd3JhcHBlciBtYWNybyBQVlJfQ1JfV1JJVEU2NCgpIG1heSBiZSB1c2VkIGluc3RlYWQgdG8g c2ltcGxpZnkgdGhlDQo+ID4gKyAqIHNlbGVjdGlvbiBvZiBAcmVnLg0KPiA+ICsgKi8NCj4gPiAr c3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkDQo+ID4gK3B2cl9jcl93cml0ZTY0KHN0cnVjdCBw dnJfZGV2aWNlICpwdnJfZGV2LCB1MzIgcmVnLCB1NjQgdmFsKQ0KPiA+ICt7DQo+ID4gKwlpb3dy aXRlNjQodmFsLCBwdnJfZGV2LT5yZWdzICsgcmVnKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAqIHB2cl9jcl9wb2xsX3JlZzMyKCkgLSBXYWl0IGZvciBhIDMyLWJpdCByZWdpc3Rl ciB0byBtYXRjaCBhIGdpdmVuIHZhbHVlIGJ5DQo+ID4gKyAqICAgICAgICAgICAgICAgICAgICAg ICBwb2xsaW5nDQo+ID4gKyAqIEBwdnJfZGV2OiBUYXJnZXQgUG93ZXJWUiBkZXZpY2UuDQo+ID4g KyAqIEByZWdfYWRkcjogQWRkcmVzcyBvZiByZWdpc3Rlci4NCj4gPiArICogQHJlZ192YWx1ZTog RXhwZWN0ZWQgcmVnaXN0ZXIgdmFsdWUgKGFmdGVyIG1hc2tpbmcpLg0KPiA+ICsgKiBAcmVnX21h c2s6IE1hc2sgb2YgYml0cyB2YWxpZCBmb3IgY29tcGFyaXNvbiB3aXRoIEByZWdfdmFsdWUuDQo+ ID4gKyAqIEB0aW1lb3V0X3VzZWM6IFRpbWVvdXQgbGVuZ3RoLCBpbiB1cy4NCj4gPiArICoNCj4g PiArICogUmV0dXJuczoNCj4gPiArICogICogMCBvbiBzdWNjZXNzLCBvcg0KPiA+ICsgKiAgKiAt JUVUSU1FRE9VVCBvbiB0aW1lb3V0Lg0KPiA+ICsgKi8NCj4gPiArc3RhdGljIF9fYWx3YXlzX2lu bGluZSBpbnQNCj4gPiArcHZyX2NyX3BvbGxfcmVnMzIoc3RydWN0IHB2cl9kZXZpY2UgKnB2cl9k ZXYsIHUzMiByZWdfYWRkciwgdTMyIHJlZ192YWx1ZSwNCj4gPiArCQkgIHUzMiByZWdfbWFzaywg dTY0IHRpbWVvdXRfdXNlYykNCj4gPiArew0KPiA+ICsJdTMyIHZhbHVlOw0KPiA+ICsNCj4gPiAr CXJldHVybiByZWFkbF9wb2xsX3RpbWVvdXQocHZyX2Rldi0+cmVncyArIHJlZ19hZGRyLCB2YWx1 ZSwNCj4gPiArCQkodmFsdWUgJiByZWdfbWFzaykgPT0gcmVnX3ZhbHVlLCAwLCB0aW1lb3V0X3Vz ZWMpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogcHZyX2NyX3BvbGxfcmVnNjQo KSAtIFdhaXQgZm9yIGEgNjQtYml0IHJlZ2lzdGVyIHRvIG1hdGNoIGEgZ2l2ZW4gdmFsdWUgYnkN Cj4gPiArICogICAgICAgICAgICAgICAgICAgICAgIHBvbGxpbmcNCj4gPiArICogQHB2cl9kZXY6 IFRhcmdldCBQb3dlclZSIGRldmljZS4NCj4gPiArICogQHJlZ19hZGRyOiBBZGRyZXNzIG9mIHJl Z2lzdGVyLg0KPiA+ICsgKiBAcmVnX3ZhbHVlOiBFeHBlY3RlZCByZWdpc3RlciB2YWx1ZSAoYWZ0 ZXIgbWFza2luZykuDQo+ID4gKyAqIEByZWdfbWFzazogTWFzayBvZiBiaXRzIHZhbGlkIGZvciBj b21wYXJpc29uIHdpdGggQHJlZ192YWx1ZS4NCj4gPiArICogQHRpbWVvdXRfdXNlYzogVGltZW91 dCBsZW5ndGgsIGluIHVzLg0KPiA+ICsgKg0KPiA+ICsgKiBSZXR1cm5zOg0KPiA+ICsgKiAgKiAw IG9uIHN1Y2Nlc3MsIG9yDQo+ID4gKyAqICAqIC0lRVRJTUVET1VUIG9uIHRpbWVvdXQuDQo+ID4g KyAqLw0KPiA+ICtzdGF0aWMgX19hbHdheXNfaW5saW5lIGludA0KPiA+ICtwdnJfY3JfcG9sbF9y ZWc2NChzdHJ1Y3QgcHZyX2RldmljZSAqcHZyX2RldiwgdTMyIHJlZ19hZGRyLCB1NjQgcmVnX3Zh bHVlLA0KPiA+ICsJCSAgdTY0IHJlZ19tYXNrLCB1NjQgdGltZW91dF91c2VjKQ0KPiA+ICt7DQo+ ID4gKwl1NjQgdmFsdWU7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHJlYWRxX3BvbGxfdGltZW91dChw dnJfZGV2LT5yZWdzICsgcmVnX2FkZHIsIHZhbHVlLA0KPiA+ICsJCSh2YWx1ZSAmIHJlZ19tYXNr KSA9PSByZWdfdmFsdWUsIDAsIHRpbWVvdXRfdXNlYyk7DQo+ID4gK30NCj4gPiArDQo+ID4gICAv KioNCj4gPiAgICAqIERPQzogSU9DVEwgdmFsaWRhdGlvbiBoZWxwZXJzDQo+ID4gICAgKg0KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW1hZ2luYXRpb24vcHZyX2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2ltYWdpbmF0aW9uL3B2cl9kcnYuYw0KPiA+IGluZGV4IGUyMDNhMjM3MGY1 NS4uNDhhODcwNzE1NDI2IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbWFnaW5h dGlvbi9wdnJfZHJ2LmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW1hZ2luYXRpb24vcHZy X2Rydi5jDQo+ID4gQEAgLTQ4NSwxMiArNDg1LDE5IEBAIHB2cl9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwbGF0X2RldikNCj4gPiAgIA0KPiA+ICAgCXBsYXRmb3JtX3NldF9kcnZkYXRh KHBsYXRfZGV2LCBkcm1fZGV2KTsNCj4gPiAgIA0KPiA+IC0JZXJyID0gZHJtX2Rldl9yZWdpc3Rl cihkcm1fZGV2LCAwKTsNCj4gPiArCWVyciA9IHB2cl9kZXZpY2VfaW5pdChwdnJfZGV2KTsNCj4g PiAgIAlpZiAoZXJyKQ0KPiA+ICAgCQlnb3RvIGVycl9vdXQ7DQo+ID4gICANCj4gPiArCWVyciA9 IGRybV9kZXZfcmVnaXN0ZXIoZHJtX2RldiwgMCk7DQo+ID4gKwlpZiAoZXJyKQ0KPiA+ICsJCWdv dG8gZXJyX2RldmljZV9maW5pOw0KPiA+ICsNCj4gPiAgIAlyZXR1cm4gMDsNCj4gPiAgIA0KPiA+ ICtlcnJfZGV2aWNlX2Zpbmk6DQo+ID4gKwlwdnJfZGV2aWNlX2ZpbmkocHZyX2Rldik7DQo+ID4g Kw0KPiA+ICAgZXJyX291dDoNCj4gPiAgIAlyZXR1cm4gZXJyOw0KPiA+ICAgfQ0KPiA+IEBAIC00 OTksOCArNTA2LDEwIEBAIHN0YXRpYyBpbnQNCj4gPiAgIHB2cl9yZW1vdmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGxhdF9kZXYpDQo+ID4gICB7DQo+ID4gICAJc3RydWN0IGRybV9kZXZpY2Ug KmRybV9kZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwbGF0X2Rldik7DQo+ID4gKwlzdHJ1Y3Qg cHZyX2RldmljZSAqcHZyX2RldiA9IHRvX3B2cl9kZXZpY2UoZHJtX2Rldik7DQo+ID4gICANCj4g PiAgIAlkcm1fZGV2X3VucmVnaXN0ZXIoZHJtX2Rldik7DQo+ID4gKwlwdnJfZGV2aWNlX2Zpbmko cHZyX2Rldik7DQo+ID4gICANCj4gPiAgIAlyZXR1cm4gMDsNCj4gPiAgIH0NCg==