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 B81CBC61DBD for ; Wed, 26 Aug 2026 06:48:45 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CB11110E174; Wed, 26 Aug 2026 06:48:44 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=mediatek.com header.i=@mediatek.com header.b="g/qq08GU"; dkim=pass (1024-bit key; unprotected) header.d=mediateko365.onmicrosoft.com header.i=@mediateko365.onmicrosoft.com header.b="vvp9qshX"; dkim-atps=neutral Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2DE2910E174 for ; Wed, 26 Aug 2026 06:48:43 +0000 (UTC) X-UUID: 28ad0152a11a11f1b1788b6acf885367-20260826 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=+0cDZjLJu/is2jLFpKTJsrBS3Dru6lL0bohBZeVPGDY=; b=g/qq08GUH+5xKW72g5pfhQXkODFFnKydGCm+J0cu5IY0ZB2PNaAEhVbNYT3UQC24JZhU33WKR6T6ATQqHikQdO4pbrPrn9zB3lkA/K5Q8W7nLr5usPR86oJszAQwEyDxwsIhwxvIh11rzSTcY3kQWvv1KwmWeydwAaL2/G2LyJ4=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.3.19, REQID:61c0bc8b-150d-48b0-aebe-826070cf1003, IP:0, U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:7db8b62, CLOUDID:041be1e2-71f1-405e-92eb-6802d6af74fd, B ulkID:nil,BulkQuantity:0,SF:80|81|82|83|102|110|111|136|836|865|888|898,TC :-5,Content:0|15|50|99,EDM:-3|-100,IP:nil,URL:0,File:130,RT:0,Bulk:nil,QS: nil,BEC:-1,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC :0 X-CID-BVR: 2,SSN|SDN X-CID-BAS: 2,SSN|SDN,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-CID-RHF: D41D8CD98F00B204E9800998ECF8427E X-UUID: 28ad0152a11a11f1b1788b6acf885367-20260826 Received: from mtkmbs09n2.mediatek.inc [(172.21.101.94)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1250310407; Wed, 26 Aug 2026 14:48:34 +0800 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Wed, 26 Aug 2026 14:48:33 +0800 Received: from SG2PR04CU010.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Wed, 26 Aug 2026 14:48:33 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Qf5vlXkhVnwgkLkp3jHyAa4F6+DfXYCAg5VOHqtLOoWJiHAW919HBbQkYsdDb7LW2xjy9qeqK5hdyKP0rd+7C2pl9PvRwr/FfloySHT7QDft3lvR4fq9UFXzFflw/mypkfP46JktdpeGA+vLFFehoS7GsVjl+59TNkty/kNLUc62nc2NNZve0hxAEL+wH2aIQJjwclUk0KwdW11T2lgvXz0MH+44veKZxfP1c5u6lf3qT9WE2xv/JU6o0RsNtXoW58PMqkn/0bOX2INq5Auw3RoxQBIJup0r52F7r8eEIa8qbf3jr11enYtbUCqfgG/nY2czN0UEiJeUrKEppaN5mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+0cDZjLJu/is2jLFpKTJsrBS3Dru6lL0bohBZeVPGDY=; b=DcfdeSqsf1MeWrU/IDAXnIgKNyPI8FI/BV40h+DCEUVPWxU7jAtCtxSHjw2a3GqiPPG1GU2Gpdq70AlvbBww4H1C12/a5vhhCFO0Tu2QZp/976PRTQIoKfkdwf9pnCM5rfdQhFXOGbmG3BRzl2QOsJs68xzUNY7H4thfrToUIyquNwFaL6ebuRc/j5aJ7NOCuZAaoDVE+9IPrCSXouDd3CZEy0a2q7MTkfl/mKVi9kOPy64IBkOh3ck8p83c5XBs85/uI3tz/AYepdGCKpLxp2pGEKktqHIQ00aNaI/tmTfFNSgqC3P7mLHo+gnPE095WLx5VqKXXt993bL1pSSfdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+0cDZjLJu/is2jLFpKTJsrBS3Dru6lL0bohBZeVPGDY=; b=vvp9qshX0pJnJhMk4deDVftsNWBy6tyZgc3aUoQGQM+JHPMCbbDD48Kh23Wp7qGvgBs8Uk4CXXXWwe0ZcDPOE7LeeNcf+odY/hW9WoL1OJel+6NyaKtmYq7RcdT4JBtWvAQqvp0KHLrQMNfZSjhOLyQXTW4tfydc0xqyNDjYh1s= Received: from TYZPR03MB6624.apcprd03.prod.outlook.com (2603:1096:400:1f4::13) by OSQPR03MB8642.apcprd03.prod.outlook.com (2603:1096:604:298::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Wed, 26 Aug 2026 06:48:27 +0000 Received: from TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::a3c2:b94a:70f:e640]) by TYZPR03MB6624.apcprd03.prod.outlook.com ([fe80::a3c2:b94a:70f:e640%4]) with mapi id 15.21.0339.012; Wed, 26 Aug 2026 06:48:27 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: AngeloGioacchino Del Regno , "chunkuang.hu@kernel.org" CC: "kernel@collabora.com" , "robh@kernel.org" , "tzimmermann@suse.de" , "simona@ffwll.ch" , "mripard@kernel.org" , =?utf-8?B?Sml0YW8gU2hpICjnn7PorrDmtpsp?= , "linux-mediatek@lists.infradead.org" , "maarten.lankhorst@linux.intel.com" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "conor+dt@kernel.org" , "devicetree@vger.kernel.org" , "krzk+dt@kernel.org" , "p.zabel@pengutronix.de" , "airlied@gmail.com" , "linux-arm-kernel@lists.infradead.org" , "matthias.bgg@gmail.com" , =?utf-8?B?SnVzdGluIFllaCAo6JGJ6Iux6IyCKQ==?= , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= Subject: Re: [PATCH v6 02/11] drm/mediatek: Implement Display Stream Compression support Thread-Topic: [PATCH v6 02/11] drm/mediatek: Implement Display Stream Compression support Thread-Index: AQHdFGHpE6ArPwmhVU2S049MqZTC/7awJQWA Date: Wed, 26 Aug 2026 06:48:26 +0000 Message-ID: References: <20260715135703.46540-1-angelogioacchino.delregno@collabora.com> <20260715135703.46540-3-angelogioacchino.delregno@collabora.com> In-Reply-To: <20260715135703.46540-3-angelogioacchino.delregno@collabora.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.52.3-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR03MB6624:EE_|OSQPR03MB8642:EE_ x-ms-office365-filtering-correlation-id: aa09245f-7ea6-4f4f-180e-08df033e082b x-ld-processed: a7687ede-7a6b-4ef6-bace-642f677fbe31,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|7416014|366016|23010399003|1800799024|42112799006|6133799003|18092099006|22082099003|18002099003|38070700021|3023799007|4143699003|11063799006|10067099003|56012099006; x-microsoft-antispam-message-info: ALhXDYaaHaPptZzx6+OqcCA39Z/t2Hwyczn5OUeuSbQRn1iXtsUmU0x14AD7ASCpxUBCjFDAmirTcQm9L6BA0HsZwIvTqC2RkKTfE5NchzxjDo67R5enCQcnhdECJikSN897sEFqExix1mlAd0ujkmF4YIWw0hBLIxJpMfeas6dDny6NuaC3IORs4xZTp0KJs5aCEdE0dB72hsW+aFFVIXfvJ5HqGDkzm2GDZLOshYigIyJXrNBPGOdIHvBetE8ALhXKo5XjEp6CO8HAuJAvVInAU3jihvqOCoqDQPqvnzh6BZYTFZI21Fq3BJL24S8cTYyC6a+XmYz3N3MQBsNosF2cbIaHUTF/XVlW2pmE8zB3J/II9DX0euhcJOmEs9W36IGzMdtL8OtPdDFI0pN1aS2/JH286YHgMRqFes9fF923fr93vL9sWRXGrt43aZwN7MAdEApQMdbITpCmLYC656PbD1FhxQLnHRwP6ixv+UMNJqhuNY5acQozEG/uQBeetJJ05k7y4ZkbQGdtXjPKjAY2aWEwZmEq1wUwJDOmKey1hSj98CUvRBxaXe+h3+TtvRbyAz8KpSwjjjNZ5CXZ7/pAhHH3DsLbPyxChZx3GTkp/TtPl8ELIgJkngOsP6qvBqr/caw8WwZNJ98Immgp+yzJrRURWbb+l5eAw5x0ayZf6XbVbomZ/qe59vvFsIxnBiqAjC22HLzcR0InEEA9n46jbJlwGNVpY9Aw4sXsQgw= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYZPR03MB6624.apcprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(7416014)(366016)(23010399003)(1800799024)(42112799006)(6133799003)(18092099006)(22082099003)(18002099003)(38070700021)(3023799007)(4143699003)(11063799006)(10067099003)(56012099006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MHBzbnkvb3JlSXBzRmwvSGprM3k2TUVFcEJuNUcwSGU2N0FvYWlhbDJ0SWJG?= =?utf-8?B?bzFhNnB0anhCR05qWnN3UUZTUEh2NVRtT2dMMWpNVWtZK0xTKzZBN0MrUWRD?= =?utf-8?B?eE03eDRuaEZraHRhVVBIellXVVNsOHpYSHJlL0pYOWtzVVV0S0ZaUUFtMklr?= =?utf-8?B?UWJxLzQrMDFmcXc2U3p3QVMySzBwN1JheDNVVEk0TllBUjBtTHl6bjNQMFVP?= =?utf-8?B?WHk0L2tNb050WEJmNWlLeC94MzJFek52OTFvRDd5UVZrSmV1VEVmTEMyd3BR?= =?utf-8?B?cVFnOVc2R0lPbzVEWXgvWG5ZQjd5OU8rZFVHZUJYdDlnekVHdzloazNaRUxw?= =?utf-8?B?NW4vM0lrVkdtcEYwM25vSmNLcTNUd0lvcTcwRlRuM1E5WmIxLzBiY1ZQR2ZR?= =?utf-8?B?d2FKeE54b1BRaVllM3JaRkJqaEFtWm9QMGVQSHpCV3MyWitpa0M4Y29RUTZh?= =?utf-8?B?bXJONWlpRWl1cDNiTFJJTVVpVTJVQ0NMd1NiQUdSS1N4VkF0Q1hGQWhaV3pE?= =?utf-8?B?WE9iSHFRT0x4T0MycnRlVzRhSytYREZnNHNyVld5elRNMmxIS1EzSDFkOXlv?= =?utf-8?B?aEdrYWF3a0ZiY0tCU3VJT0dSYys4cWt0SlRnZ21tU2FPa0tyOXdyTU9ob2x6?= =?utf-8?B?RElEZ093b0VJU3oyeFkzdGFBcWh5aUExdGlkcDVYWnFsSjIxZkhUellwdzda?= =?utf-8?B?am85SnlubFVVOEVleGJKVjh5djlyaDBobEF3UFJrVXkrTTZyN2oyQU5hZytm?= =?utf-8?B?QU1hcWdxTU03a3Z2MlFQMEtWWmZtR0FLbXNIazZ2Zm1TYXB0MU8venpjUFZF?= =?utf-8?B?eEEwNlV1RXFWN0Rhd1phb2ZyTWw1LzBic3ZmcHBQeDh4Y2paM0VpdkNDT09P?= =?utf-8?B?QjhLeGQyZjhPUCtxTUVlUFg3SENvN1hDM29xdlNqZy9RdVh6RXBycVhEdUtT?= =?utf-8?B?S1pWcXhhMW5iUW8rR1JaYmFFV0JLb2RvOCtjOHRkN0l6ZmZ0UGp1aW9LV203?= =?utf-8?B?ejNJekpNeVBHYS9FaXNOaFp2a29aKzE2TER1bzZ0UDlFRGlUYnRITkNiRE5Z?= =?utf-8?B?MzQ1MCtrUkFsaTRoUWg2MlJhZlRGazhDa0FhRUdiN3VWKytuV0Jic1ZhMmpT?= =?utf-8?B?dm52dW1ZelkwU1NuTXBmWGJNREQ5dWQ0bGNTOWxvbklIRElRYnAwZ1JCd3ZY?= =?utf-8?B?Z2Y5YWptaG43YVB2UWl5WXJlNkNGWTVPaWJSendnV3FsSVhqdnZmQzFjN0FI?= =?utf-8?B?MW9aMW9SMEFqZDJpRkd3b2Rud1lTaCs1a09USVFrY05ZT1JBeS9uak0wQ2hq?= =?utf-8?B?Wm5ITGM0NW9BTTI0V2l1V0FtYlZGMGNZZ2Y2MjRCQ0gvQmR5VmNSclcrWmdW?= =?utf-8?B?N1QzcVEwVlhDVGtaRmExRXVydUc3K0tHT1Mwa0hjSFY4Q0FkYkJPRnpmNmpV?= =?utf-8?B?MGRqWXpYWGhOQnpJZE00R1NpMVJUai9SclZvL0VycnRTa2IzOStsZDFQNnQ5?= =?utf-8?B?eEtKaURqZWhuMkxTTzJiUXhpdkNpcjhrWEhkL1BoajFGdUtjUnB3YWZJQnR5?= =?utf-8?B?anpDdU1qbm94OGFUWFdvLzBSZjIrbHVYQjFvZ2NacXRjMi9PSVdiWWlzQ1pB?= =?utf-8?B?NVhoYzhRaUN0cjdTYWlsSmVoT2M2ay9LVU01VjErSFNpRzNLZUMxUXRiTzhp?= =?utf-8?B?Sm91bXV2anVPUUhqZHBPM2ZQNHJEUVJ4dHpPcXlkN0tCY1ZzbXczWWloRU1E?= =?utf-8?B?dmlOb0dLK1BaWWZ3Wnh5My94RjUzVTNBMmxFRkF1aFNKMWNEWWowb201eWtF?= =?utf-8?B?YWs5eVd3NEpoWGxrWUtudlZ0dlhxUjJnOXRpTmw4SFp0RVJQV21tbWhkbitT?= =?utf-8?B?TERKdHMvZVYycTkyNUI0U1k0UzQrZTVOM0VoZXR5d0lUdkxLZGhYNW4xTGo4?= =?utf-8?B?K1M1ZDBUR1JqUXphbnZoU0VNWUpZeHJ2czV1d0lKbEFyWW56WU4wS0w3cVNJ?= =?utf-8?B?TkFFakVKNzM3TmUrSFk4cU9oRjk1akpRdXd6Rkt1MDNwQVl1dXR3QlRueXMv?= =?utf-8?B?S3Y1RjZtUk5ZSmN1SDllUlQxVWVrRWJYVU5BaUNaankwY0FwVWdaZ2o3RWxK?= =?utf-8?B?MmpEWEpWc0E1Zkg5cXFnL0IzYmlvSHJKSjBxcko2Q0RkcWhFcnl5clFFdCsw?= =?utf-8?B?dTJQQkQwYkd6V21iQ215RjVyRnFTMlBhMkppMWF2ZEw1MXhsR0RkdVFPNmZI?= =?utf-8?B?elRzUTUrZXd5QjlicENQTW9ldktHUFYyVWZkakRYTDE5bTQ2dzFScnFLdE55?= =?utf-8?B?c2llT0NySUZVMmdNMWJOemJtVXRYNUd0RllIcFFrU3d0NHpEMysvQT09?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: b46b5cpRcsGMq8Fo2YRg/XB+2qmE7cNNbO/14h/KOgqaugFN7Qab2pxNYLVVQm8cC7+MJc4i9iH4C5ryraaNLv2BDWSZgpJuL1yHpgR1puR2D8ZJmlsufKPYN0KHpILujP+T9G9wKqNXwmQWXwp41xq7S6a/2yMf7S9JJTasrW1+Jhn2GMmPgjdcnYb7gtjW75VsYf0taQQIn6Dz+EgPFzzZSSDEa9bLrw+S7D8tMKiQq6d9EpB6+29BZl4Ju+b8GYhCFhXtmOgS0ZGwvcnfJ0b5V9AyQke2k1yZkXF3dH6WWpfY2cfYO3jW9I/LGJiE2jx6uYaU+Nb2tOKOu7vqzA== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6624.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa09245f-7ea6-4f4f-180e-08df033e082b X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2026 06:48:26.9754 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1qkm11euVg+TA1OV/pK4Q4Oe+Sb2a6yhqDXyf2bkd9ZUzNDepvVozzlgtebzAu/8kvlb7gJ4iDu9kx47M5O5SQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSQPR03MB8642 X-MTK: N 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gV2VkLCAyMDI2LTA3LTE1IGF0IDE1OjU2ICswMjAwLCBBbmdlbG9HaW9hY2NoaW5vIERlbCBS ZWdubyB3cm90ZToNCj4gQWRkIGEgcmVhbCBkcml2ZXIgZm9yIHRoZSBEaXNwbGF5IFN0cmVhbSBD b21wcmVzc2lvbiAoRFNDKSBEaXNwbGF5DQo+IENvbnRyb2xsZXIgSVAsIGltcGxlbWVudGluZyBz dXBwb3J0IGZvciBEU0MgdjEuMSB0byB2MS4yLg0KPiANCj4gSW4gb3JkZXIgdG8gZG8gdGhpcywg aXQgd2FzIG5lY2Vzc2FyeSB0byByZW1vdmUgdGhlIGJhc2ljIERTQyBJUA0KPiBieXBhc3Mgc2V0 dXAgZnJvbSBtdGtfZGRwX2NvbXA6IHRoaXMgZnVuY3Rpb25hbGl0eSBpcyByZXRhaW5lZCBpbg0K PiB0aGUgbmV3IG10a19kaXNwX2RzYyBkcml2ZXIsIHdoaWNoIGNoZWNrcyBpZiBEU0Mgd2FzIGFj dHVhbGx5DQo+IHJlcXVlc3RlZCBieSBvdGhlciBjb21wb25lbnRzICh3aXRoIHRoZSBvbmx5IG9u ZSB0aGF0IGN1cnJlbnRseQ0KPiBzdXBwb3J0cyB0aGlzIGJlaW5nIERTSSkgYW5kLCBpZiBub3Qs IGl0IHdpbGwgc2V0IEJZUEFTUyBtb2RlIGluDQo+IHRoZSBEU0MgSVAuDQo+IA0KPiBMaWtlIGJl Zm9yZSwgdGhlIEJZUEFTUyBtb2RlIGlzIHNldCBiZWZvcmUgc3RhcnRpbmcgdGhlIERTQyBJUCwN Cj4gYnV0IHVubGlrZSBiZWZvcmUsIHRoaXMgaXMgYmVpbmcgZG9uZSBpbiB0aGUgY29tcG9uZW50 IHN0YXJ0DQo+IGNhbGxiYWNrIGluc3RlYWQgb2YgdGhlIGNvbmZpZyBvbmUuDQo+IE5vdGFibHks IHRoZSBjb25maWcgY2FsbGJhY2sgaXMgY2FsbGVkIGJ5IG10a19jcnRjIGFsd2F5cw0KPiBpbW1l ZGlhdGVseSBiZWZvcmUgdGhlIGNhbGxpbmcgc3RhcnQgY2FsbGJhY2ssIHNvIHRoZSBvcmRlciBv Zg0KPiByZWdpc3RlciB3cml0ZXMgaXMgcmV0YWluZWQuDQo+IFRoZSBvbmx5IHJlYWwgZGlmZmVy ZW5jZSBpcyB0aGF0IG5vdyB0aGlzIGlzIGJlaW5nIGRvbmUgdGhyb3VnaA0KPiBDUFUgd3JpdGVz IGluc3RlYWQgb2YgQ01EUSwgYnV0IHNpbmNlIHRoYXQncyBjYWxsZWQgb25seSBvbmNlDQo+IGFu ZCBzaW5jZSBpdCdzIGp1c3QgdGhyZWUgcmVnaXN0ZXJzLCB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0 IHdpbGwNCj4gbm90IGJlIG1pbmltYWwgYW5kIG5vdCBldmVuIG1lYXN1cmFibGUuDQo+IA0KPiBB cyBhbnRpY2lwYXRlZCwgRFNDIGhhbmRsaW5nIHdhcyBhbHNvIGludHJvZHVjZWQgaW4gdGhlIG10 a19kc2kNCj4gZHJpdmVyOiB3aGVuIHBlcmZvcm1pbmcgZHNpX2hvc3RfYXR0YWNoLCB0aGUgZHJp dmVyIG5vdyBjaGVja3MNCj4gaWYgdGhlIERTSSBwYW5lbCBhZGRzIHRoZSBEU0MgY29uZmlndXJh dGlvbiBzdHJ1Y3R1cmUgdG8gdGhlDQo+IG1pcGlfZHNpX2RldmljZSBzdHJ1Y3R1cmUgYW5kLCBp ZiBpdCBkb2VzLCBpdCB3aWxsIHN0b3JlIGENCj4gcG9pbnRlciBpbiB0aGUgZHJpdmVyLWxvY2Fs IG10a19kc2kgc3RydWN0dXJlJ3MgYGRzY2AgbWVtYmVyLg0KPiANCj4gVGhlIERTSSBkcml2ZXIg d2lsbCB0aGVuIGNoZWNrIHdoZXRoZXIgdGhlIERTQyBjb25maWd1cmF0aW9uDQo+IHRoYXQgY29t ZXMgZnJvbSB0aGUgcGFuZWwgaXMgdmFsaWQgKGluIHJlZ2FyZCB0byBNZWRpYVRlayBEU0kpDQo+ IGFuZCB3aWxsIGNhbGwgdGhlIERSTSBBUEkncyBEU0MgaGVscGVycyB0byBjYWxjdWxhdGUgYW5k IHNldA0KPiBhbGwgb2YgdGhlIGNvbnN0IGFuZCBSQyBwYXJhbWV0ZXJzIGZvciB0aGUgYWN0dWFs IERTQyBzZXR1cC4NCj4gDQo+IEZvciB0aGUgdGltZSBiZWluZywgZXZlbiB0aG91Z2ggdGhlIGxh dGVzdCBNZWRpYVRlayBTb0NzIGRvDQo+IHN1cHBvcnQgRFNDIHYxLjIsIG9ubHkgRFNDIHYxLjEg cHJlLXNjciBzdXBwb3J0IGlzIGltcGxlbWVudGVkDQo+IGFzIGFuIGluaXRpYWwgY29udHJpYnV0 aW9uICh3aGljaCBpcyByYXRoZXIgYmlnLCBhbmQgMS4yIHdvdWxkDQo+IG1ha2UgaXQgZXZlbiBi aWdnZXIgLSBidXQgdGhhdCBjYW4gYW55d2F5IGJlIGltcGxlbWVudGVkIGxhdGVyKS4NCj4gDQo+ IEFzIGEgbGFzdCBzdGVwIGZvciB2YWxpZGF0aW9uIG9mIERTQyBwYXJhbWV0ZXJzIGluIERTSSwg YSBjaGVjaw0KPiBmb3IgdGhlIGhkaXNwbGF5IGFnYWluc3QgRFNDIHNsaWNlIHNpZHRoIGFuZCBv bmUgZm9yIHZkaXNwbGF5DQoNCnNsaWNlIHdpZHRoDQoNCj4gYWdhaW5zdCBEU0Mgc2xpY2UgaGVp Z2h0IHdhcyBhZGRlZCB0byB0aGUgbW9kZV92YWxpZCBjYWxsYmFjaywNCj4gbWFraW5nIHN1cmUg dGhhdCBIL1YgYXJlLCBhcyBleHBlY3RlZCwgbXVsdGlwbGVzIG9mIHNsaWNlIFcvSC4NCj4gDQo+ IFNpZ25lZC1vZmYtYnk6IEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25vIDxhbmdlbG9naW9hY2No aW5vLmRlbHJlZ25vQGNvbGxhYm9yYS5jb20+DQo+IC0tLQ0KDQpbc25pcF0NCg0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oDQo+IGluZGV4IDY3OWQ0MTNiZjEwYi4uNWUy ZDg3NDgxMjBhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rp c3BfZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5o DQo+IEBAIC0xMiw2ICsxMiw4IEBADQo+ICAjaW5jbHVkZSAibXRrX21kcF9yZG1hLmgiDQo+ICAj aW5jbHVkZSAibXRrX3BsYW5lLmgiDQo+ICANCj4gK3N0cnVjdCBkcm1fZHNjX2NvbmZpZzsNCg0K I2luY2x1ZGUgPGRybS9kaXNwbGF5L2RybV9kc2MuaD4NCg0KPiArDQo+ICBpbnQgbXRrX2FhbF9j bGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICB2b2lkIG10a19hYWxfY2xrX2Rpc2Fi bGUoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gIHZvaWQgbXRrX2FhbF9jb25maWcoc3RydWN0IGRl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgdywNCj4gQEAgLTQ3LDkgKzQ5LDE2IEBAIHZvaWQgbXRr X2RwaV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiAgdm9pZCBtdGtfZHBpX3N0b3Aoc3Ry dWN0IGRldmljZSAqZGV2KTsNCj4gIHVuc2lnbmVkIGludCBtdGtfZHBpX2VuY29kZXJfaW5kZXgo c3RydWN0IGRldmljZSAqZGV2KTsNCj4gIA0KPiAraW50IG10a19kc2NfY2xrX2VuYWJsZShzdHJ1 Y3QgZGV2aWNlICpkZXYpOw0KPiArdm9pZCBtdGtfZHNjX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZp Y2UgKmRldik7DQo+ICt2b2lkIG10a19kc2Nfc2V0dXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX2RzY19jb25maWcgKmRzY19jZmcpOw0KPiArdm9pZCBtdGtfZHNjX3N0YXJ0KHN0cnVj dCBkZXZpY2UgKmRldik7DQo+ICt2b2lkIG10a19kc2Nfc3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYp Ow0KPiArDQo+ICB2b2lkIG10a19kc2lfZGRwX3N0YXJ0KHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ ICB2b2lkIG10a19kc2lfZGRwX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gIHVuc2lnbmVk IGludCBtdGtfZHNpX2VuY29kZXJfaW5kZXgoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gK3N0cnVj dCBkcm1fZHNjX2NvbmZpZyAqbXRrX2RzaV9nZXRfZHNjX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpk ZXYpOw0KPiAgDQo+ICBpbnQgbXRrX2dhbW1hX2Nsa19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2 KTsNCj4gIHZvaWQgbXRrX2dhbW1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHNjLmMgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHNjLmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iZWQ2Yjc3YmY5YTkNCj4gLS0tIC9kZXYvbnVs bA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHNjLmMNCj4gQEAg LTAsMCArMSw0NTUgQEANCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9u bHkNCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgTWVkaWFUZWsgSW5jLg0KPiArICog Q29weXJpZ2h0IChjKSAyMDI1IENvbGxhYm9yYSBMdGQNCj4gKyAqICAgICAgICAgICAgICAgICAg ICBBbmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubyA8YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bj b2xsYWJvcmEuY29tPg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4NCj4g KyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4NCj4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9w bGF0Zm9ybV9kZXZpY2UuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+DQo+ICsj aW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1jbWRxLmg+DQo+ICsNCj4gKyNpbmNsdWRl IDxkcm0vZGlzcGxheS9kcm1fZHNjLmg+DQo+ICsjaW5jbHVkZSA8ZHJtL2Rpc3BsYXkvZHJtX2Rz Y19oZWxwZXIuaD4NCj4gKw0KPiArI2luY2x1ZGUgIm10a19jcnRjLmgiDQo+ICsjaW5jbHVkZSAi bXRrX2RkcF9jb21wLmgiDQo+ICsjaW5jbHVkZSAibXRrX2Rpc3BfZHJ2LmgiDQo+ICsNCj4gKyNk ZWZpbmUgRElTUF9SRUdfRFNDX0NPTgkJMHgwDQo+ICsjICBkZWZpbmUgRFNDX0VOCQkJQklUKDAp DQo+ICsjICBkZWZpbmUgRFNDX0RVQUxfSU5PVVQJCUJJVCgyKQ0KPiArIyAgZGVmaW5lIERTQ19J Tl9TUkNfU0VMCQlCSVQoMykNCj4gKyMgIGRlZmluZSBEU0NfQllQQVNTCQkJQklUKDQpDQo+ICsj ICBkZWZpbmUgRFNDX1JFTEFZCQkJQklUKDUpDQo+ICsjICBkZWZpbmUgRFNDX1YxXzFfRVhUCQkJ QklUKDYpDQo+ICsjICBkZWZpbmUgRFNDX1BUX01FTV9FTgkJCUJJVCg3KQ0KPiArIyAgZGVmaW5l IERTQ19TV19SRVNFVAkJCUJJVCg4KQ0KPiArIyAgZGVmaW5lIERTQ19FTVBUWV9GTEFHX1NFTAkJ R0VOTUFTSygxNSwgMTQpDQo+ICsgIyAgZGVmaW5lIERTQ19FTVBUWV9GTEFHX05PUk1BTF9ERVQJ MA0KPiArICMgIGRlZmluZSBEU0NfRU1QVFlfRkxBR19BTFdBWVNfSElHSAkxDQo+ICsgIyAgZGVm aW5lIERTQ19FTVBUWV9GTEFHX0FMV0FZU19MT1cJMg0KPiArICMgIGRlZmluZSBEU0NfRU1QVFlf RkxBR19ET19OT1RfU0VORAkzDQo+ICsjICBkZWZpbmUgRFNDX1VGT0VfU0VMCQkJQklUKDE2KQ0K PiArIyAgZGVmaW5lIERTQ19PVVRQVVRfU1dBUAkJQklUKDE4KQ0KPiArIyAgZGVmaW5lIERTQ19a RVJPX0ZJRk9fU1RBTExfRElTQUJMRQlCSVQoMjApDQoNCkFsaWduIHJlZ2lzdGVyIGRlZmluaXRp b24gaW5kZW50IHRvIE9WTCBkcml2ZXIuDQoNCj4gKw0KPiArI2RlZmluZSBESVNQX1JFR19EU0Nf U1BSCQkweDE0DQo+ICsjZGVmaW5lIERJU1BfUkVHX0RTQ19QSUNfVwkJMHgxOA0KPiArIyAgZGVm aW5lIERTQ19QSUNfV0lEVEgJCQlHRU5NQVNLKDE1LCAwKQ0KPiArIyAgZGVmaW5lIERTQ19QSUNf R1JPVVBfV0lEVEhfTTEJR0VOTUFTSygzMSwgMTYpDQo+ICsNCg0KW3NuaXBdDQoNCj4gKw0KPiAr dm9pZCBtdGtfZHNjX3NldHVwKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kc2NfY29u ZmlnICpkc2NfY2ZnKQ0KPiArew0KPiArCXN0cnVjdCBtdGtfZHNjICpkaXNwX2RzYyA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOw0KPiArCXUzMiBkc2Nfc2xpY2VfdywgZHNjX3NsaWNlX2gsIGRzY19t b2RlLCBkc2NfY2ZnX3J2YWwsIGRzY19zaGFkb3c7DQo+ICsJdTMyIGRzY19kYmdfY29uLCBkc2Nf Y29uLCBkc2NfZW5jX3dpZHRoLCBkc2NfcGljX3csIGRzY19waWNfaDsNCj4gKwl1MzIgcGljX2dy b3VwX3dpZHRoLCBwaWNfaGVpZ2h0X2V4dF9udW0sIHNsaWNlX2dyb3VwX3dpZHRoOw0KPiArCXUz MiBjaHVua19zaXplLCBkc2NfcGFkX251bSwgZHNjX3ByZV9wYWRfc3o7DQo+ICsJYm9vbCBkc2Nf ZW5fYml0Ow0KPiArDQo+ICsJcGljX2hlaWdodF9leHRfbnVtID0gZHNjX2NmZy0+cGljX2hlaWdo dCArIGRzY19jZmctPnNsaWNlX2hlaWdodCAtIDE7DQo+ICsJcGljX2dyb3VwX3dpZHRoID0gZHNj X2NmZy0+c2xpY2Vfd2lkdGggKiA0Ow0KPiArCXBpY19ncm91cF93aWR0aCAvPSAzOw0KDQpwaWNf Z3JvdXBfd2lkdGggPSBkc2NfY2ZnLT5zbGljZV93aWR0aCAqIDQgLyAzOw0KDQo+ICsNCj4gKwlz bGljZV9ncm91cF93aWR0aCA9IGRzY19jZmctPnNsaWNlX3dpZHRoICsgMjsNCj4gKwlzbGljZV9n cm91cF93aWR0aCAvPSAzOw0KDQpzbGljZV9ncm91cF93aWR0aCA9IChkc2NfY2ZnLT5zbGljZV93 aWR0aCArIDIpIC8gMzsNCg0KPiArDQo+ICsJaWYgKGRzY19jZmctPnNsaWNlX2NodW5rX3NpemUp DQo+ICsJCWNodW5rX3NpemUgPSBkc2NfY2ZnLT5zbGljZV9jaHVua19zaXplOw0KPiArCWVsc2UN Cj4gKwkJY2h1bmtfc2l6ZSA9IGRzY19jZmctPnNsaWNlX3dpZHRoICogZHNjX2NmZy0+Yml0c19w ZXJfcGl4ZWwgLyA4IC8gMTY7DQo+ICsNCj4gKwlkc2NfZW5jX3dpZHRoID0gRklFTERfUFJFUChE U0NfRU5DX1dJRFRIX1BJQywgZHNjX2NmZy0+cGljX3dpZHRoKSB8DQo+ICsJCQlGSUVMRF9QUkVQ KERTQ19FTkNfV0lEVEhfU0xJQ0UsIGRzY19jZmctPnNsaWNlX3dpZHRoKTsNCj4gKw0KPiArCWRz Y19waWNfdyA9IEZJRUxEX1BSRVAoRFNDX1BJQ19HUk9VUF9XSURUSF9NMSwgcGljX2dyb3VwX3dp ZHRoIC0gMSk7DQo+ICsJZHNjX3BpY193IHw9IEZJRUxEX1BSRVAoRFNDX1BJQ19XSURUSCwgZHNj X2NmZy0+cGljX3dpZHRoKTsNCj4gKwlkc2NfcGljX2ggPSBGSUVMRF9QUkVQKERTQ19QSUNfSEVJ R0hUX0VYVF9NMSwgcGljX2hlaWdodF9leHRfbnVtIC0gMSk7DQo+ICsJZHNjX3BpY19oIHw9IEZJ RUxEX1BSRVAoRFNDX1BJQ19IRUlHSFQsIGRzY19jZmctPnBpY19oZWlnaHQgLSAxKTsNCj4gKw0K PiArCWRzY19zbGljZV93ID0gRklFTERfUFJFUChEU0NfU0xJQ0VfR1JPVVBfV0lEVEhfTTEsIHNs aWNlX2dyb3VwX3dpZHRoIC0gMSk7DQo+ICsJZHNjX3NsaWNlX3cgfD0gRklFTERfUFJFUChEU0Nf U0xJQ0VfV0lEVEgsIGRzY19jZmctPnNsaWNlX3dpZHRoKTsNCj4gKwlkc2Nfc2xpY2VfaCA9IEZJ RUxEX1BSRVAoRFNDX1NMSUNFX1dJRFRIX01PRDMsIGRzY19jZmctPnNsaWNlX3dpZHRoICUgMyk7 DQo+ICsJZHNjX3NsaWNlX2ggfD0gRklFTERfUFJFUChEU0NfU0xJQ0VfTlVNX00xLA0KPiArCQkJ CSAgKHBpY19oZWlnaHRfZXh0X251bSAvIGRzY19jZmctPnNsaWNlX2hlaWdodCkgLSAxKTsNCj4g Kwlkc2Nfc2xpY2VfaCB8PSBGSUVMRF9QUkVQKERTQ19TTElDRV9IRUlHSFRfTTEsIGRzY19jZmct PnNsaWNlX2hlaWdodCAtIDEpOw0KPiArDQo+ICsJZHNjX3BhZF9udW0gPSAoMyAtICgoY2h1bmtf c2l6ZSAqIDIpICUgMykpICUgMzsNCj4gKwlkc2NfcGFkX251bSA9IEZJRUxEX1BSRVAoRFNDX1BB RF9OVU1CRVIsIGRzY19wYWRfbnVtKTsNCj4gKw0KPiArCWRzY19wcmVfcGFkX3N6ID0gRklFTERf UFJFUChEU0NfUElDX1BSRVBBRF9IRUlHSFQsIGRzY19jZmctPnBpY19oZWlnaHQpOw0KPiArCWRz Y19wcmVfcGFkX3N6IHw9IEZJRUxEX1BSRVAoRFNDX1BJQ19QUkVQQURfV0lEVEgsIGRzY19jZmct PnBpY193aWR0aCk7DQo+ICsNCj4gKwlkc2NfbW9kZSA9IEZJRUxEX1BSRVAoRFNDX0lOSVRfREVM QVlfSEVJR0hULCA0KTsNCj4gKwlkc2NfbW9kZSB8PSBGSUVMRF9QUkVQKERTQ19SR0JfU1dBUCwg MCk7DQo+ICsNCj4gKwkvKiBNdXN0IGVuYWJsZSBjaGVja3N1bSBjYWxjIGluIERCRyBpZiBlbmFi bGluZyBjb3JlIGNoZWNrc3VtIGluIENGRyAqLw0KPiArCWRzY19jZmdfcnZhbCA9IERTQ19DRkdf SUNIX0VOIHwgRFNDX0NGR19DUkNfRU4gfCBEU0NfQ0ZHX0RTQzEyX0JVR0ZJWCB8DQo+ICsJCSAg ICAgICBEU0NfQ0ZHX0NPUkVfQ0hFQ0tTVU07DQo+ICsJZHNjX2RiZ19jb24gPSBEU0NfQ0tTTV9D QUxfRU47DQo+ICsNCj4gKwlpZiAoZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50ID09IDgpDQo+ ICsJCWRzY19jZmdfcnZhbCB8PSBGSUVMRF9QUkVQX0NPTlNUKERTQ19DRkdfRkxBVE5FU1NfREVU X1RIUkVTLA0KPiArCQkJCQkJIERTQ19DRkdfRkxBVE5FU1NfOEJJVFMpOw0KPiArCWVsc2UNCj4g KwkJZHNjX2NmZ19ydmFsIHw9IEZJRUxEX1BSRVBfQ09OU1QoRFNDX0NGR19GTEFUTkVTU19ERVRf VEhSRVMsDQo+ICsJCQkJCQkgRFNDX0NGR19GTEFUTkVTU18xMEJJVFMpOw0KPiArDQo+ICsJZHNj X3NoYWRvdyA9IEZJRUxEX1BSRVAoRFNDX1NIQURPV19EU0NfVkVSU0lPTl9NSU5PUiwNCj4gKwkJ CQlkc2NfY2ZnLT5kc2NfdmVyc2lvbl9taW5vcik7DQo+ICsJZHNjX3NoYWRvdyB8PSBEU0NfRk9S Q0VfQ09NTUlUIHwgRFNDX0JZUEFTU19TSEFET1c7DQo+ICsNCj4gKwkvKiBJZiBEU0MgaXMgY3Vy cmVudGx5IGVuYWJsZWQsIGRpc2FibGUgaXQgYmVmb3JlIHNldHVwIGFuZCByZS1lbmFibGUgYWZ0 ZXIgKi8NCj4gKwlkc2NfY29uID0gcmVhZGwoZGlzcF9kc2MtPnJlZyArIERJU1BfUkVHX0RTQ19D T04pOw0KPiArCWlmIChkc2NfY29uICYgRFNDX0VOKSB7DQo+ICsJCWRzY19lbl9iaXQgPSB0cnVl Ow0KPiArCQl3cml0ZWwoZHNjX2NvbiAmIH5EU0NfRU4sIGRpc3BfZHNjLT5yZWcgKyBESVNQX1JF R19EU0NfQ09OKTsNCj4gKwl9IGVsc2Ugew0KPiArCQlkc2NfZW5fYml0ID0gZmFsc2U7DQo+ICsJ fQ0KPiArDQo+ICsJd3JpdGVsKDAsIGRpc3BfZHNjLT5yZWcgKyBESVNQX1JFR19EU0NfU1BSKTsN Cj4gKwl3cml0ZWwoZHNjX2VuY193aWR0aCwgZGlzcF9kc2MtPnJlZyArIERJU1BfUkVHX0RTQ19F TkNfV0lEVEgpOw0KPiArCXdyaXRlbChkc2NfcGljX3csIGRpc3BfZHNjLT5yZWcgKyBESVNQX1JF R19EU0NfUElDX1cpOw0KPiArCXdyaXRlbChkc2NfcGljX2gsIGRpc3BfZHNjLT5yZWcgKyBESVNQ X1JFR19EU0NfUElDX0gpOw0KPiArCXdyaXRlbChkc2Nfc2xpY2VfdywgZGlzcF9kc2MtPnJlZyAr IERJU1BfUkVHX0RTQ19TTElDRV9XKTsNCj4gKwl3cml0ZWwoZHNjX3NsaWNlX2gsIGRpc3BfZHNj LT5yZWcgKyBESVNQX1JFR19EU0NfU0xJQ0VfSCk7DQo+ICsJd3JpdGVsKCgoY2h1bmtfc2l6ZSAq IDQpIC8gMykgPDwgMTYgfCBjaHVua19zaXplLA0KPiArCSAgICAgICBkaXNwX2RzYy0+cmVnICsg RElTUF9SRUdfRFNDX0NIVU5LX1NJWkUpOw0KPiArCXdyaXRlbChkc2NfcHJlX3BhZF9zeiwgZGlz cF9kc2MtPnJlZyArIERJU1BfUkVHX0RTQ19QSUNfUFJFX1BBRF9TSVpFKTsNCj4gKwl3cml0ZWwo ZHNjX3BhZF9udW0sIGRpc3BfZHNjLT5yZWcgKyBESVNQX1JFR19EU0NfUEFEKTsNCj4gKwl3cml0 ZWwoRklFTERfUFJFUChESVNQX0RTQ19CVUZfU0laRV9NQVNLLCBjaHVua19zaXplICogZHNjX2Nm Zy0+c2xpY2VfaGVpZ2h0KSwNCj4gKwkgICAgICAgZGlzcF9kc2MtPnJlZyArIERJU1BfUkVHX0RT Q19CVUZfU0laRSk7DQo+ICsJd3JpdGVsKGRzY19tb2RlLCBkaXNwX2RzYy0+cmVnICsgRElTUF9S RUdfRFNDX01PREUpOw0KPiArCXdyaXRlbChkc2NfY2ZnX3J2YWwsIGRpc3BfZHNjLT5yZWcgKyBE SVNQX1JFR19EU0NfQ0ZHKTsNCj4gKwl3cml0ZWwoZHNjX2RiZ19jb24sIGRpc3BfZHNjLT5yZWcg KyBESVNQX1JFR19EU0NfREJHX0NPTik7DQo+ICsJd3JpdGVsKEZJRUxEX1BSRVBfQ09OU1QoRFND X09CVUZfU0laRSwgMTA0MCksIGRpc3BfZHNjLT5yZWcgKyBESVNQX1JFR19EU0NfT1VUQlVGKTsN Cj4gKwl3cml0ZWwoZHNjX3NoYWRvdywgZGlzcF9kc2MtPnJlZyArIERJU1BfUkVHX0RTQ19TSEFE T1cpOw0KPiArDQo+ICsJLyogU2V0IFBQUyByZWdpc3RlcnMgY29uZmlndXJhdGlvbiAqLw0KPiAr CW10a19kc2NfcHBzX3NldHVwKGRpc3BfZHNjLCBkc2NfY2ZnKTsNCj4gKw0KPiArCWRzY19jb24g PSBGSUVMRF9QUkVQX0NPTlNUKERTQ19FTVBUWV9GTEFHX1NFTCwgRFNDX0VNUFRZX0ZMQUdfQUxX QVlTX0xPVyk7DQo+ICsJZHNjX2NvbiB8PSBEU0NfVjFfMV9FWFQgfCBEU0NfVUZPRV9TRUwgfCBE U0NfUFRfTUVNX0VOOw0KPiArCWRzY19jb24gfD0gRFNDX1pFUk9fRklGT19TVEFMTF9ESVNBQkxF Ow0KPiArDQo+ICsJaWYgKGRzY19lbl9iaXQpDQo+ICsJCWRzY19jb24gfD0gRFNDX0VOOw0KPiAr DQo+ICsJd3JpdGVsKGRzY19jb24sIGRpc3BfZHNjLT5yZWcgKyBESVNQX1JFR19EU0NfQ09OKTsN Cj4gKw0KPiArCWRpc3BfZHNjLT5kc2NfY29uZmlnX2RvbmUgPSB0cnVlOw0KPiArfQ0KPiArDQo+ ICt2b2lkIG10a19kc2Nfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KQ0KPiArew0KPiArCXN0cnVj dCBtdGtfZHNjICpkaXNwX2RzYyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArDQo+ICsJLyog SWYgbm8gRFNDIG9yIGNvbmZpZyBub3QgZG9uZSwgc2V0IGJ5cGFzcyBtb2RlICovDQo+ICsJaWYg KCFkaXNwX2RzYy0+ZHNjX2NvbmZpZ19kb25lKSB7DQo+ICsJCW10a19kZHBfd3JpdGVfbWFzayhO VUxMLCBEU0NfQllQQVNTLCAmZGlzcF9kc2MtPmNtZHFfcmVnLA0KPiArCQkJCSAgIGRpc3BfZHNj LT5yZWcsIERJU1BfUkVHX0RTQ19DT04sIERTQ19CWVBBU1MpOw0KPiArCQltdGtfZGRwX3dyaXRl X21hc2soTlVMTCwgRFNDX1VGT0VfU0VMLCAmZGlzcF9kc2MtPmNtZHFfcmVnLA0KPiArCQkJCSAg IGRpc3BfZHNjLT5yZWcsIERJU1BfUkVHX0RTQ19DT04sIERTQ19VRk9FX1NFTCk7DQo+ICsJCW10 a19kZHBfd3JpdGVfbWFzayhOVUxMLCBEU0NfRFVBTF9JTk9VVCwgJmRpc3BfZHNjLT5jbWRxX3Jl ZywNCj4gKwkJCQkgICBkaXNwX2RzYy0+cmVnLCBESVNQX1JFR19EU0NfQ09OLCBEU0NfRFVBTF9J Tk9VVCk7DQo+ICsJfQ0KPiArDQo+ICsJbXRrX2RkcF93cml0ZV9tYXNrKE5VTEwsIERTQ19FTiwg JmRpc3BfZHNjLT5jbWRxX3JlZywNCj4gKwkJCSAgIGRpc3BfZHNjLT5yZWcsIERJU1BfUkVHX0RT Q19DT04sIERTQ19FTik7DQoNCldoZW4gY21kcV9wa3QgaXMgTlVMTCwgaXQncyBub3QgbmVjZXNz YXJ5IHRvIHVzZSBtdGtfZGRwX3dyaXRlX21hc2sgd2l0aCBwYXJhbWV0ZXIgY21kcV9yZWcuDQpU aGUgb3JpZ2luYWwgbXRrX2RzY19zdGFydCgpIHNob3VsZCBtb2RpZnkgdGhpcy4NCkJlY2F1c2Ug dGhpcyBwYXRjaCBsZXQgRFNDIHNldHRpbmcgbm90IGluIHZibGFuaywgc28gdGhpcyBkcml2ZXIg ZG9lcyBub3QgbmVlZCBjbWRxLg0KTGV0J3MgZHJvcCBjbWRxIGluIHRoaXMgcGF0Y2guDQoNCj4g K30NCj4gKw0KDQpbc25pcF0NCg0KPiAgDQo+IC1zdGF0aWMgdm9pZCBtdGtfZHNpX3BzX2NvbnRy b2woc3RydWN0IG10a19kc2kgKmRzaSwgYm9vbCBjb25maWdfdmFjdCkNCj4gK3N0YXRpYyB2b2lk IG10a19kc2lfcHNfY29udHJvbF9kc2Moc3RydWN0IG10a19kc2kgKmRzaSwgYm9vbCBjb25maWdf dmFjdCkNCj4gK3sNCj4gKwljb25zdCBzdHJ1Y3QgbXRrX2RzaV9kcml2ZXJfZGF0YSAqZGF0YSA9 IGRzaS0+ZHJpdmVyX2RhdGE7DQo+ICsJY29uc3QgdTE2ICpyZWdfbWFpbiA9IGRzaS0+ZHJpdmVy X2RhdGEtPnJlZ19tYWluOw0KDQpyZWdfbWFpbiBpcyBkZWZpbmVkIGluIHBhdGNoIFs2LzExXSwg c28gbW92ZSB0aGlzIHBhdGNoIGFmdGVyIHRoYXQgcGF0Y2ggb3Igbm90IHVzZSByZWdfbWFpbiBp biB0aGlzIHBhdGNoLg0KDQo+ICsJY29uc3Qgc2hvcnQgZHNpX2J1Zl9icHAgPSAzOw0KPiArCXUz MiBwc193YzsNCj4gKw0KPiArCS8qIFdvcmQgY291bnQgKi8NCj4gKwlwc193YyA9IEZJRUxEX1BS RVAoRFNJX1BTX1dDLCAyICogZHNpLT5kc2MtPnNsaWNlX2NodW5rX3NpemUpOw0KPiArDQo+ICsJ aWYgKGNvbmZpZ192YWN0KSB7DQo+ICsJCXdyaXRlbChGSUVMRF9QUkVQKFZBQ1RfTkwsIGRzaS0+ dm0udmFjdGl2ZSksDQo+ICsJCSAgICAgICBkc2ktPnJlZ3MgKyByZWdfbWFpbltEU0lfVkFDVF9O TF0pOw0KPiArCQl3cml0ZWwocHNfd2MsIGRzaS0+cmVncyArIHJlZ19tYWluW0RTSV9IU1RYX0NL TF9XQ10pOw0KPiArCX0NCj4gKw0KPiArCS8qIEFsd2F5cyB1c2UgRFNDIFBpeGVsIFN0cmVhbSB0 eXBlICovDQo+ICsJd3JpdGVsKHBzX3djIHwgRklFTERfUFJFUChEU0lfUFNfU0VMLCBDT01QUkVT U0VEX1BTX0RTQyksDQo+ICsJICAgICAgIGRzaS0+cmVncyArIHJlZ19tYWluW0RTSV9QU0NUUkxd KTsNCj4gKw0KPiArCWlmIChkYXRhLT5oYXNfc2l6ZV9jdGwpDQo+ICsJCXdyaXRlbChGSUVMRF9Q UkVQKERTSV9IRUlHSFQsIGRzaS0+dm0udmFjdGl2ZSkgfA0KPiArCQkgICAgICAgRklFTERfUFJF UChEU0lfV0lEVEgsIChwc193YyArIGRzaV9idWZfYnBwIC0gMSkgLyBkc2lfYnVmX2JwcCksDQo+ ICsJCSAgICAgICBkc2ktPnJlZ3MgKyByZWdfbWFpbltEU0lfU0laRV9DT05dKTsNCj4gK30NCj4g Kw0KPiArc3RhdGljIHZvaWQgbXRrX2RzaV9wc19jb250cm9sX3VuY29tcHJlc3NlZChzdHJ1Y3Qg bXRrX2RzaSAqZHNpLCBib29sIGNvbmZpZ192YWN0KQ0KPiAgew0KPiAtCXUzMiBkc2lfYnVmX2Jw cCwgcHNfdmFsLCBwc193YywgdmFjdF9ubDsNCj4gKwl1MzIgZHNpX2J1Zl9icHAsIHBzX3ZhbCwg cHNfd2MsIHNpemVfdmFsLCB2YWN0X25sOw0KPiAgDQo+ICAJaWYgKGRzaS0+Zm9ybWF0ID09IE1J UElfRFNJX0ZNVF9SR0I1NjUpDQo+ICAJCWRzaV9idWZfYnBwID0gMjsNCj4gQEAgLTQzMCw2ICs0 NjAsMjEgQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9wc19jb250cm9sKHN0cnVjdCBtdGtfZHNpICpk c2ksIGJvb2wgY29uZmlnX3ZhY3QpDQo+ICAJCXdyaXRlbChwc193YywgZHNpLT5yZWdzICsgRFNJ X0hTVFhfQ0tMX1dDKTsNCj4gIAl9DQo+ICAJd3JpdGVsKHBzX3ZhbCwgZHNpLT5yZWdzICsgRFNJ X1BTQ1RSTCk7DQo+ICsNCj4gKwlpZiAoZHNpLT5kcml2ZXJfZGF0YS0+aGFzX3NpemVfY3RsKSB7 DQo+ICsJCXNpemVfdmFsID0gRklFTERfUFJFUChEU0lfSEVJR0hULCBkc2ktPnZtLnZhY3RpdmUp Ow0KPiArCQlzaXplX3ZhbCB8PSBGSUVMRF9QUkVQKERTSV9XSURUSCwgZHNpLT52bS5oYWN0aXZl KTsNCj4gKw0KPiArCQl3cml0ZWwoc2l6ZV92YWwsIGRzaS0+cmVncyArIERTSV9TSVpFX0NPTik7 DQo+ICsJfQ0KDQpZb3UgaGF2ZSBtb3ZlIGJlbG93IGNvZGUgdG8gaGVyZS4gTWF5YmUga2VlcCB0 aGUgb3JpZ2luYWwgc3RhdGVtZW50IGFuZCBzaXplX3ZhbCBjb3VsZCBiZSBkcm9wLg0KDQoJaWYg KGRzaS0+ZHJpdmVyX2RhdGEtPmhhc19zaXplX2N0bCkNCgkJd3JpdGVsKEZJRUxEX1BSRVAoRFNJ X0hFSUdIVCwgdm0tPnZhY3RpdmUpIHwNCgkJCUZJRUxEX1BSRVAoRFNJX1dJRFRILCB2bS0+aGFj dGl2ZSksDQoJCQlkc2ktPnJlZ3MgKyBEU0lfU0laRV9DT04pOw0KDQo+ICt9DQo+ICsNCg0KW3Nu aXBdDQoNCj4gKw0KPiArc3RhdGljIGludCBtdGtfZHNpX2NvbmZpZ192ZG9fdGltaW5nKHN0cnVj dCBtdGtfZHNpICpkc2kpDQo+ICB7DQo+ICAJc3RydWN0IHZpZGVvbW9kZSAqdm0gPSAmZHNpLT52 bTsNCj4gKwlpbnQgcmV0Ow0KPiAgDQo+ICAJd3JpdGVsKHZtLT52c3luY19sZW4sIGRzaS0+cmVn cyArIERTSV9WU0FfTkwpOw0KPiAgCXdyaXRlbCh2bS0+dmJhY2tfcG9yY2gsIGRzaS0+cmVncyAr IERTSV9WQlBfTkwpOw0KPiAgCXdyaXRlbCh2bS0+dmZyb250X3BvcmNoLCBkc2ktPnJlZ3MgKyBE U0lfVkZQX05MKTsNCj4gIAl3cml0ZWwodm0tPnZhY3RpdmUsIGRzaS0+cmVncyArIERTSV9WQUNU X05MKTsNCj4gIA0KPiAtCWlmIChkc2ktPmRyaXZlcl9kYXRhLT5oYXNfc2l6ZV9jdGwpDQo+IC0J CXdyaXRlbChGSUVMRF9QUkVQKERTSV9IRUlHSFQsIHZtLT52YWN0aXZlKSB8DQo+IC0JCQlGSUVM RF9QUkVQKERTSV9XSURUSCwgdm0tPmhhY3RpdmUpLA0KPiAtCQkJZHNpLT5yZWdzICsgRFNJX1NJ WkVfQ09OKTsNCj4gLQ0KPiAgCWlmIChkc2ktPmRyaXZlcl9kYXRhLT5zdXBwb3J0X3Blcl9mcmFt ZV9scCkNCj4gIAkJbXRrX2RzaV9jb25maWdfdmRvX3RpbWluZ19wZXJfZnJhbWVfbHAoZHNpKTsN Cj4gIAllbHNlDQo+ICAJCW10a19kc2lfY29uZmlnX3Zkb190aW1pbmdfcGVyX2xpbmVfbHAoZHNp KTsNCj4gIA0KPiAtCW10a19kc2lfcHNfY29udHJvbChkc2ksIGZhbHNlKTsNCj4gKwlpZiAoZHNp LT5kc2MpIHsNCj4gKwkJcmV0ID0gbXRrX2RzaV9zZXRfZHNjX3BhcmFtcyhkc2kpOw0KPiArCQlp ZiAocmV0KQ0KPiArCQkJcmV0dXJuIHJldDsNCj4gKw0KPiArCQltdGtfZHNpX3BzX2NvbnRyb2wo ZHNpLCB0cnVlKTsNCg0KVGhlIG9yaWdpbmFsIGNvZGUgdXNlICdmYWxzZScgZm9yIHNlY29uZCBw YXJhbWV0ZXIuIFdoeSBoZXJlIHVzZSAndHJ1ZSc/DQoNClJlZ2FyZHMsDQpDSw0KDQo+ICsJfSBl bHNlIHsNCj4gKwkJbXRrX2RzaV9wc19jb250cm9sKGRzaSwgZmFsc2UpOw0KPiArCX0NCj4gKw0K PiArCXJldHVybiAwOw0KPiAgfQ0KPiAgDQo+ICANCg0K