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 22DE0CD4F24 for ; Wed, 13 May 2026 09:57:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8B06610EDA4; Wed, 13 May 2026 09:57:52 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="skfbFs5B"; dkim-atps=neutral Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012005.outbound.protection.outlook.com [52.101.48.5]) by gabe.freedesktop.org (Postfix) with ESMTPS id 552AB10E4B9; Wed, 13 May 2026 09:57:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Qg+/P9wxPyuWHjYp5J3m7a+BSL2SKQ5DEXuEosw+CEKIxM4sycF3hno+z7qRgxfZ2aN2N9COCkDHyxhP7VqJNasJJIKxwnY3JvPw5Y5cfj+S9pGxgmlwrpQfuc+ki6S6yGumP/Ld9LbTjeRqplX/Z6dv+hTYSrSePR2K6mMQ8Z0nfn4tVe72HidrMAmkggJcwJq48Ma0d/MrWW3mEWCVT4GC2VeZFGuLcjhylv7p4ZnsFaBjPgExAmzp8fuLRxSW0eCovn1+RGVEMuCnOjqwbkSPG2KtQOFMdPBcXmyxJkeE3FdXL4FkgWdxrzHwE5ABu+FjzxbdgGOwQY/fAYfTtg== 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=9H0CcyXvCmEmBjvEsX3ZEaBjGrfQX3RXTemi7jZoui4=; b=jLzxJPQ3qAALb9k5U+Mu7L5Bfs4AihNWlqyjrLcE7USOpzDM1WecTcW6DEwkFw/BJfE65BEpLeH/9V4XBXd3OjNUxP2B8HVL8OKYqHSIzB+FncB8Hp86N7IpGju9asg+kvKf6dwkaf9LgE4pvcidj48UY2uhPgV0FisbWV4iZVa2h4aizmhF4WBOuo419mUzEdlAbHr8mQAe0/MdPO15EEJ7fJbuGYZygzZNHQg8l8YHcIJdsf2eF2jW4ZfcNjziDs8RYucAUzPYb/xE8K+BhsyVIye56PwoEruSR882AYxL3eoONLx+i9w0yM6n/IWSp5JvQ41qLdv8dYMCJrps9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=ffwll.ch smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9H0CcyXvCmEmBjvEsX3ZEaBjGrfQX3RXTemi7jZoui4=; b=skfbFs5ByRZ5pn4NdVS28YVlz4VtPpQGogXw1cxYSUAwAqD1f4wZYLl1PBeHI1pBVMRxTdX1v3pcTH4qb/YC6vZK2BhVVci+yNxBf2upRAshbnsRTWMyiHKVp8Noju97DumzEymevGxTa6fkQ1rqvlTGMxxBxtemnt0UAUefZWY= Received: from DS7P220CA0079.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:259::11) by PH8PR12MB6820.namprd12.prod.outlook.com (2603:10b6:510:1cb::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Wed, 13 May 2026 09:57:43 +0000 Received: from DS2PEPF00003444.namprd04.prod.outlook.com (2603:10b6:8:259:cafe::42) by DS7P220CA0079.outlook.office365.com (2603:10b6:8:259::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9913.12 via Frontend Transport; Wed, 13 May 2026 09:57:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by DS2PEPF00003444.mail.protection.outlook.com (10.167.17.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.25.13 via Frontend Transport; Wed, 13 May 2026 09:57:42 +0000 Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May 2026 04:57:41 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.41; Wed, 13 May 2026 02:57:41 -0700 Received: from junhua-PC.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.41 via Frontend Transport; Wed, 13 May 2026 04:57:38 -0500 From: Junhua Shen To: , , , , , , , , , , CC: , , Subject: [PATCH v4 1/6] drm/amdgpu: add VRAM migration infrastructure for drm_pagemap Date: Wed, 13 May 2026 17:57:29 +0800 Message-ID: <20260513095734.69598-2-Junhua.Shen@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513095734.69598-1-Junhua.Shen@amd.com> References: <20260513095734.69598-1-Junhua.Shen@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PEPF00003444:EE_|PH8PR12MB6820:EE_ X-MS-Office365-Filtering-Correlation-Id: 5fe18d16-7f9b-4f50-748e-08deb0d612ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|82310400026|376014|36860700016|921020|11063799003|3023799003|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: rGXTv7eYtlTMuuMndlFQi8YXPuwoytYGKFb/iXO49fC8ZG5Xjw0yqb9O0ght4IpbpjNPPBFgoDjm5Mc5FY++hBhwJBYWf3SIEFVGCmJvJZDz96+mwKPxwvVwBm4xqReDwbVE2ZHmsPcylmfAoZGg3/agCrz54vtFd5iVm552xU/ny/L86cXRKTbwo2znWLUmXfdZCk1XY3509fgahlB3k6yyH8aaAfCDdKx0ZK8KYKYA7gzx0Ir4+iuua8/60cWGY/f8howZ/2sLCW1mcHU3uvNvDO4pKa1HPS7gm/U7RJhr1v+Bt+/mZLuNSCXs2d6c/rKnr6vSb1AaxUoSaumQIwAUpCm5zJlh1ZHN+qJwW3q/wr6xVfOmdcFRKJ1VBT0u0bH1TY+UZnmmp7PvuT5n7PrcX9tnsBW/Klp9iywaIaoydmpoJPZ1I4Cj2cy7+tq6o+kd51rHCVkxRyKw3rDe4e4lrlN7ofolYIsDfoAAbJxAgOfRbWsF2bxIXxQeNHl+rEvXI+PAFnvE3WWx+u/xsbeyCk9QU39BqDIXGCy0hTSRi6bZyxat6iWi2u15sKtsvoe7vckof0R01F8Gl+fMxo2ph5pT0mEdeXg2AVM4/D4/lGyzXx47pZ3ytyXI6tn9K5/d+AP6e4BbaSe4kb0GDBqV5QgJo8VuQzEfNJzyCh56BkgRyEfwTvsXOZ3HBelY9uJ4IwblYo/IQqVYous4S+nd7yTWyASDTse0qM9oLOJv7JALcgWh0BSACpYrBMGbSNmBQIts6Bv/Rm+CpdOmKQ== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:satlexmb07.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(921020)(11063799003)(3023799003)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MJVwNAIvX/E+8Fz1ZnHDAF5GsYJkuk1C846+XSZS6YEunJivF3JFPFhwhiIL8ZA+C3MFFWst1639TAofXrz8lQucyePKrXf3fiVtYzbuA1IX7Mf1SkepAqbg4X6usOIzu0XitEmiObmaJs4faulNl7BGacdaIMVuBtygItk8XaQvDNuB+q8vntOBhkhiWziYqwa/9f1LOQnsgeOHJvcI46D2jhaxSyXDwYlyKRiKSIgoDGWtZPNcxhiWYAiI5rjvTc1KBv84R6k6xz60Vk6ZvO+EjKNlP4vL4j0DqzoqcnJrrCYY7nwzRIld3WwKGz+pC29EpWr4iPZrNr6Jz3G4vJ+UA7LQtcw6u+AgLHH0aByaeU8s/5ZgfR/3yxhRabk3IZzOgqJFtlDIOi0Ip6x8Dspc4Klz8U+XCGpA6+Ma5LNjChN0QGucXk/I8NPnW3bx X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 09:57:42.0793 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5fe18d16-7f9b-4f50-748e-08deb0d612ff X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF00003444.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6820 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" QWRkIHRoZSBkcm1fcGFnZW1hcC1iYXNlZCBWUkFNIG1pZ3JhdGlvbiBpbmZyYXN0cnVjdHVyZToK Ci0gRGVmaW5lIHN0cnVjdCBhbWRncHVfcGFnZW1hcCB3cmFwcGluZyBkZXZfcGFnZW1hcCArIGRy bV9wYWdlbWFwCi0gRGVmaW5lIEFNREdQVV9QR01BUF9PV05FUigpIGFuZCBBTURHUFVfSU5URVJD T05ORUNUX1ZSQU0gbWFjcm9zCi0gSW1wbGVtZW50IGFtZGdwdV9zdm1fbWlncmF0aW9uX2luaXQo KSB0byByZWdpc3RlciBaT05FX0RFVklDRSB2aWEKICBkZXZtX21lbXJlbWFwX3BhZ2VzKCkgYW5k IGluaXRpYWxpemUgdGhlIGRybV9wYWdlbWFwCi0gQWRkIGFtZGdwdV9wYWdlbWFwIHBvaW50ZXIg KGFwYWdlbWFwKSB0byBzdHJ1Y3QgYW1kZ3B1X2RldmljZQoKU2lnbmVkLW9mZi1ieTogSnVuaHVh IFNoZW4gPEp1bmh1YS5TaGVuQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvTWFrZWZpbGUgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1LmggICAgICAgICB8ICAgOCArCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfbWlncmF0ZS5jIHwgMTc5ICsrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfbWlncmF0ZS5oIHwgIDk4ICsrKysrKysrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDI4OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9taWdyYXRlLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbWlncmF0ZS5oCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQppbmRleCBhNDBhNDI5OTViOWEuLjM5MDVhOTc3 OTVhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKQEAgLTMyMywxMiArMzIzLDE0 IEBAIGFtZGdwdS0kKENPTkZJR19ITU1fTUlSUk9SKSArPSBhbWRncHVfaG1tLm8KIAogIyBzdm0g c3VwcG9ydAogYW1kZ3B1LSQoQ09ORklHX0RSTV9BTURHUFVfU1ZNKSArPSBhbWRncHVfc3ZtLm8g YW1kZ3B1X3N2bV9hdHRyLm8gXAotCWFtZGdwdV9zdm1fZmF1bHQubyBhbWRncHVfc3ZtX3Jhbmdl Lm8KKwlhbWRncHVfc3ZtX2ZhdWx0Lm8gYW1kZ3B1X3N2bV9yYW5nZS5vIGFtZGdwdV9taWdyYXRl Lm8KIAogLlBIT05ZOiBjbGVhbi1zdm0KIGNsZWFuLXN2bToKIAlybSAtZiAkKG9iaikvYW1kZ3B1 X3N2bS5vICQob2JqKS9hbWRncHVfc3ZtX2F0dHIubyAkKG9iaikvYW1kZ3B1X3N2bV9mYXVsdC5v ICQob2JqKS9hbWRncHVfc3ZtX3JhbmdlLm8gXAotCSAgICAgICQob2JqKS8uYW1kZ3B1X3N2bS5v LmNtZCAkKG9iaikvLmFtZGdwdV9zdm1fYXR0ci5vLmNtZCAkKG9iaikvLmFtZGdwdV9zdm1fZmF1 bHQuby5jbWQgJChvYmopLy5hbWRncHVfc3ZtX3JhbmdlLm8uY21kCisJICAgICAgJChvYmopL2Ft ZGdwdV9taWdyYXRlLm8gXAorCSAgICAgICQob2JqKS8uYW1kZ3B1X3N2bS5vLmNtZCAkKG9iaikv LmFtZGdwdV9zdm1fYXR0ci5vLmNtZCAkKG9iaikvLmFtZGdwdV9zdm1fZmF1bHQuby5jbWQgJChv YmopLy5hbWRncHVfc3ZtX3JhbmdlLm8uY21kIFwKKwkgICAgICAkKG9iaikvLmFtZGdwdV9taWdy YXRlLm8uY21kCiAKIGluY2x1ZGUgJChGVUxMX0FNRF9QQVRIKS9wbS9NYWtlZmlsZQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IDQ5ZTc4ODE3NTBmYS4uZmU2YmE5OTExZDlm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaApAQCAtMzI1LDYgKzMyNSw3IEBAIHN0 cnVjdCBhbWRncHVfZnByaXY7CiBzdHJ1Y3QgYW1kZ3B1X2JvX3ZhX21hcHBpbmc7CiBzdHJ1Y3Qg a2ZkX3ZtX2ZhdWx0X2luZm87CiBzdHJ1Y3QgYW1kZ3B1X2hpdmVfaW5mbzsKK3N0cnVjdCBhbWRn cHVfcGFnZW1hcDsKIHN0cnVjdCBhbWRncHVfcmVzZXRfY29udGV4dDsKIHN0cnVjdCBhbWRncHVf cmVzZXRfY29udHJvbDsKIHN0cnVjdCBhbWRncHVfY29yZWR1bXBfaW5mbzsKQEAgLTEyMDAsNiAr MTIwMSwxMyBAQCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7CiAKIAlzdHJ1Y3QgYW1kZ3B1X3VtYV9j YXJ2ZW91dF9pbmZvIHVtYV9pbmZvOwogCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0FNREdQ VV9TVk0pCisJLyogU1ZNIFZSQU0gbWlncmF0aW9uIHZpYSBkcm1fcGFnZW1hcCAoZHJtX2dwdXN2 bSBwYXRoKS4KKwkgKiBBbGxvY2F0ZWQgaW4gYW1kZ3B1X3N2bV9taWdyYXRpb25faW5pdCgpLCBO VUxMIGlmIFNWTSBkaXNhYmxlZC4KKwkgKi8KKwlzdHJ1Y3QgYW1kZ3B1X3BhZ2VtYXAJCSphcGFn ZW1hcDsKKyNlbmRpZgorCiAJLyogS0ZECiAJICogTXVzdCBiZSBsYXN0IC0tZW5kcyBpbiBhIGZs ZXhpYmxlLWFycmF5IG1lbWJlci4KIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9taWdyYXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfbWlncmF0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YThiMDY3ODMxYjk5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X21pZ3JhdGUuYwpAQCAtMCwwICsxLDE3OSBAQAorLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUICovCisvKgorICogQ29weXJpZ2h0IDIwMjYgQWR2YW5j ZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAq IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoK KyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9G IEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBT SEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisvKioKKyAq IERPQzogQU1ER1BVIFNWTSBNaWdyYXRpb24KKyAqCisgKiBUaGlzIGZpbGUgaW1wbGVtZW50cyB0 aGUgZHJtX3BhZ2VtYXAtYmFzZWQgbWlncmF0aW9uIGluZnJhc3RydWN0dXJlIGZvcgorICogQU1E R1BVIFNWTS4gSXQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrcyB0aGF0IHRoZSBEUk0gR1BVU1ZNIC8g ZHJtX3BhZ2VtYXAKKyAqIGZyYW1ld29yayBuZWVkcyB0bzoKKyAqCisgKiAxLiBNYXAgWk9ORV9E RVZJQ0UgcGFnZXMgdG8gR1BVLXZpc2libGUgVlJBTSBNQyBhZGRyZXNzZXMgKGRldmljZV9tYXAp CisgKiAyLiBBbGxvY2F0ZSBWUkFNIGFuZCBtaWdyYXRlIHBhZ2VzIGZyb20gc3lzdGVtIG1lbW9y eSAocG9wdWxhdGVfbW0pCisgKiAzLiBDb3B5IGRhdGEgYmV0d2VlbiBSQU0gYW5kIFZSQU0gdXNp bmcgU0RNQSAoY29weV90b19kZXZtZW0gLyBjb3B5X3RvX3JhbSkKKyAqIDQuIFJlbGVhc2UgVlJB TSBiYWNraW5nIHdoZW4gcGFnZXMgbWlncmF0ZSBiYWNrIHRvIHN5c3RlbSBtZW1vcnkgKGRldm1l bV9yZWxlYXNlKQorICoKKyAqIEFyY2hpdGVjdHVyZSBvdmVydmlldzo6CisgKgorICogICBhZGV2 LT5hcGFnZW1hcC0+ZHBhZ2VtYXAgICAoc3RydWN0IGRybV9wYWdlbWFwKQorICogICAgICAgLm9w cyA9ICZhbWRncHVfc3ZtX2RybV9wYWdlbWFwX29wcworICogICAgICAgICAgIHwKKyAqICAgICAg ICstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgIHwKKyAqICAucG9wdWxhdGVfbW0gICAgICAgICAgICAuZGV2aWNlX21hcAorICogIChhbGxv YyBCTyArIG1pZ3JhdGUpICAgIChwYWdlIC0+IFZSQU0gTUMgYWRkcikKKyAqICAgICAgIHwKKyAq ICAgICAgIHYKKyAqICAgZHJtX3BhZ2VtYXBfZGV2bWVtX29wcyAgKHBlci1CTyBtaWdyYXRpb24g bWVjaGFuaWNzKQorICogICAgICAgLnBvcHVsYXRlX2Rldm1lbV9wZm4gIC0+IEJPIGJ1ZGR5IGJs b2NrcyAtPiBQRk4gYXJyYXkKKyAqICAgICAgIC5jb3B5X3RvX2Rldm1lbSAgICAgICAtPiBTRE1B IGNvcHkgUkFNIC0+IFZSQU0KKyAqICAgICAgIC5jb3B5X3RvX3JhbSAgICAgICAgICAtPiBTRE1B IGNvcHkgVlJBTSAtPiBSQU0KKyAqICAgICAgIC5kZXZtZW1fcmVsZWFzZSAgICAgICAtPiByZWxl YXNlIEJPIHJlZmVyZW5jZQorICoKKyAqIFRoZSB0aHJlZSBhZGRyZXNzIHNwYWNlcyBpbnZvbHZl ZDoKKyAqCisgKiAgIFZSQU0gb2Zmc2V0ICBbMCwgcmVhbF92cmFtX3NpemUpICAgICAtIGJ1ZGR5 IGFsbG9jYXRvciBtYW5hZ2VkCisgKiAgICAgICArIGhwYV9iYXNlCisgKiAgIEhQQSAvIFBGTiAg ICBbaHBhX2Jhc2UsIGhwYV9iYXNlKy4uKSAtIFpPTkVfREVWSUNFIHN0cnVjdCBwYWdlIG1hbmFn ZW1lbnQKKyAqICAgICAgICsgdm1fbWFuYWdlci52cmFtX2Jhc2Vfb2Zmc2V0CisgKiAgIFBURSBh ZGRyZXNzICBbdnJhbV9iYXNlX29mZnNldCwgLi5dICAtIEdQVSBwYWdlIHRhYmxlIGVudHJpZXMg KGZyb20gTU1IVUIgRkJfT0ZGU0VUKQorICovCisKKyNpbmNsdWRlIDxkcm0vZHJtX3BhZ2VtYXAu aD4KKyNpbmNsdWRlIDxsaW51eC9tZW1yZW1hcC5oPgorI2luY2x1ZGUgPGxpbnV4L21pZ3JhdGUu aD4KKworI2luY2x1ZGUgImFtZGdwdV9hbWRrZmQuaCIKKyNpbmNsdWRlICJhbWRncHVfbWlncmF0 ZS5oIgorI2luY2x1ZGUgImFtZGdwdS5oIgorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVf cGFnZW1hcCAqCitkcGFnZW1hcF90b19hcGFnZW1hcChzdHJ1Y3QgZHJtX3BhZ2VtYXAgKmRwYWdl bWFwKQoreworCXJldHVybiBjb250YWluZXJfb2YoZHBhZ2VtYXAsIHN0cnVjdCBhbWRncHVfcGFn ZW1hcCwgZHBhZ2VtYXApOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVfZGV2aWNl ICoKK2RwYWdlbWFwX3RvX2FkZXYoc3RydWN0IGRybV9wYWdlbWFwICpkcGFnZW1hcCkKK3sKKwly ZXR1cm4gZHJtX3RvX2FkZXYoZHBhZ2VtYXAtPmRybSk7Cit9CisKKy8qKgorICogYW1kZ3B1X3N2 bV9wYWdlX3RvX2FwYWdlbWFwIC0gR2V0IGFtZGdwdV9wYWdlbWFwIGZyb20gYSBaT05FX0RFVklD RSBwYWdlCisgKiBAcGFnZTogQSBaT05FX0RFVklDRSBwYWdlIGJhY2tlZCBieSBWUkFNCisgKgor ICogRm9sbG93czogcGFnZSAtPiBwZ21hcCAtPiBjb250YWluZXJfb2YoYXBhZ2VtYXApCisgKi8K K3N0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV9wYWdlbWFwICoKK2FtZGdwdV9zdm1fcGFnZV90 b19hcGFnZW1hcChzdHJ1Y3QgcGFnZSAqcGFnZSkKK3sKKwlzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBn bWFwID0gcGFnZV9wZ21hcChwYWdlKTsKKworCXJldHVybiBjb250YWluZXJfb2YocGdtYXAsIHN0 cnVjdCBhbWRncHVfcGFnZW1hcCwgcGdtYXApOworfQorCisKK2NvbnN0IHN0cnVjdCBkcm1fcGFn ZW1hcF9vcHMgYW1kZ3B1X3N2bV9kcm1fcGFnZW1hcF9vcHMgPSB7IH07CisKKy8qKgorICogYW1k Z3B1X3N2bV9taWdyYXRpb25faW5pdCAtIFJlZ2lzdGVyIFpPTkVfREVWSUNFIGFuZCBpbml0aWFs aXplIGRybV9wYWdlbWFwCisgKiBAYWRldjogQU1ER1BVIGRldmljZSB0byBzZXQgdXAgVlJBTSBt aWdyYXRpb24gZm9yCisgKgorICogQWxsb2NhdGVzIGEgWk9ORV9ERVZJQ0UgcmVnaW9uIGNvdmVy aW5nIHRoZSBHUFUncyBWUkFNLCByZWdpc3RlcnMgaXQKKyAqIHZpYSBkZXZtX21lbXJlbWFwX3Bh Z2VzKCkgd2l0aCBkcm1fcGFnZW1hcCdzIGdlbmVyaWMgZGV2X3BhZ2VtYXBfb3BzLAorICogYW5k IHRoZW4gaW5pdGlhbGl6ZXMgdGhlIGRybV9wYWdlbWFwIChkcGFnZW1hcCkgdGhhdCBwcm92aWRl cyB0aGUKKyAqIGRldmljZV9tYXAgLyBwb3B1bGF0ZV9tbSBjYWxsYmFja3MgZm9yIHRoZSBEUk0g R1BVU1ZNIG1pZ3JhdGlvbiBwYXRoLgorICoKKyAqIEZvciBYR01JLWNvbm5lY3RlZCBDUFVzLCB1 c2VzIHRoZSBkZXZpY2UncyBhcGVydHVyZSBkaXJlY3RseQorICogKE1FTU9SWV9ERVZJQ0VfQ09I RVJFTlQpLiAgRm9yIGRpc2NyZXRlIEdQVXMsIHJlcXVlc3RzIGEgZnJlZQorICogaW9tZW0gcmVn aW9uIGZvciBNRU1PUllfREVWSUNFX1BSSVZBVEUgcGFnZXMuCisgKgorICogUmV0dXJuOiAwIG9u IHN1Y2Nlc3MsIC1FSU5WQUwgaWYgR1BVIElQIHRvbyBvbGQsIG5lZ2F0aXZlIGVycm9yIG9uIGZh aWx1cmUKKyAqLworaW50IGFtZGdwdV9zdm1fbWlncmF0aW9uX2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCit7CisJc3RydWN0IGFtZGdwdV9wYWdlbWFwICpzdm1fZG07CisJc3RydWN0 IGRldl9wYWdlbWFwICpwZ21hcDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IE5VTEw7CisJdW5z aWduZWQgbG9uZyBzaXplOworCXZvaWQgKnI7CisKKwlpZiAoYW1kZ3B1X2lwX3ZlcnNpb24oYWRl diwgR0NfSFdJUCwgMCkgPCBJUF9WRVJTSU9OKDksIDAsIDEpKQorCQlyZXR1cm4gLUVJTlZBTDsK KworCWlmIChhZGV2LT5hcHVfcHJlZmVyX2d0dCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoYWRldi0+ YXBhZ2VtYXAgJiYgYWRldi0+YXBhZ2VtYXAtPmluaXRpYWxpemVkKQorCQlyZXR1cm4gMDsKKwor CXN2bV9kbSA9IGRldm1fa3phbGxvYyhhZGV2LT5kZXYsIHNpemVvZigqc3ZtX2RtKSwgR0ZQX0tF Uk5FTCk7CisJaWYgKCFzdm1fZG0pCisJCXJldHVybiAtRU5PTUVNOworCisJcGdtYXAgPSAmc3Zt X2RtLT5wZ21hcDsKKworCXNpemUgPSBBTElHTihhZGV2LT5nbWMucmVhbF92cmFtX3NpemUsIDJV TEwgPDwgMjApOworCWlmIChhZGV2LT5nbWMueGdtaS5jb25uZWN0ZWRfdG9fY3B1KSB7CisJCXBn bWFwLT5yYW5nZS5zdGFydCA9IGFkZXYtPmdtYy5hcGVyX2Jhc2U7CisJCXBnbWFwLT5yYW5nZS5l bmQgPSBhZGV2LT5nbWMuYXBlcl9iYXNlICsgYWRldi0+Z21jLmFwZXJfc2l6ZSAtIDE7CisJCXBn bWFwLT50eXBlID0gTUVNT1JZX0RFVklDRV9DT0hFUkVOVDsKKwl9IGVsc2UgeworCQlyZXMgPSBk ZXZtX3JlcXVlc3RfZnJlZV9tZW1fcmVnaW9uKGFkZXYtPmRldiwgJmlvbWVtX3Jlc291cmNlLCBz aXplKTsKKwkJaWYgKElTX0VSUihyZXMpKQorCQkJcmV0dXJuIFBUUl9FUlIocmVzKTsKKwkJcGdt YXAtPnJhbmdlLnN0YXJ0ID0gcmVzLT5zdGFydDsKKwkJcGdtYXAtPnJhbmdlLmVuZCA9IHJlcy0+ ZW5kOworCQlwZ21hcC0+dHlwZSA9IE1FTU9SWV9ERVZJQ0VfUFJJVkFURTsKKwl9CisKKwlwZ21h cC0+bnJfcmFuZ2UgPSAxOworCXBnbWFwLT5mbGFncyA9IDA7CisJcGdtYXAtPm9wcyA9IGRybV9w YWdlbWFwX3BhZ2VtYXBfb3BzX2dldCgpOworCXBnbWFwLT5vd25lciA9IEFNREdQVV9QR01BUF9P V05FUihhZGV2KTsKKworCXIgPSBkZXZtX21lbXJlbWFwX3BhZ2VzKGFkZXYtPmRldiwgcGdtYXAp OworCWlmIChJU19FUlIocikpIHsKKwkJZGV2X2VycihhZGV2LT5kZXYsICJTVk06IGZhaWxlZCB0 byByZWdpc3RlciBITU0gZGV2aWNlIG1lbW9yeVxuIik7CisJCWlmIChwZ21hcC0+dHlwZSA9PSBN RU1PUllfREVWSUNFX1BSSVZBVEUgJiYgcmVzKQorCQkJZGV2bV9yZWxlYXNlX21lbV9yZWdpb24o YWRldi0+ZGV2LCByZXMtPnN0YXJ0LCByZXNvdXJjZV9zaXplKHJlcykpOworCQlwZ21hcC0+dHlw ZSA9IDA7CisJCXJldHVybiBQVFJfRVJSKHIpOworCX0KKworCWlmIChkcm1fcGFnZW1hcF9pbml0 KCZzdm1fZG0tPmRwYWdlbWFwLCBwZ21hcCwgYWRldl90b19kcm0oYWRldiksCisJCQkJCQkJJmFt ZGdwdV9zdm1fZHJtX3BhZ2VtYXBfb3BzKSkgeworCQlkZXZfZXJyKGFkZXYtPmRldiwgIlNWTTog ZmFpbGVkIHRvIGluaXQgZHJtX3BhZ2VtYXBcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJ c3ZtX2RtLT5hZGV2ID0gYWRldjsKKwlzdm1fZG0tPmhwYV9iYXNlID0gcGdtYXAtPnJhbmdlLnN0 YXJ0OworCXN2bV9kbS0+aW5pdGlhbGl6ZWQgPSB0cnVlOworCWFkZXYtPmFwYWdlbWFwID0gc3Zt X2RtOworCisJZGV2X2luZm8oYWRldi0+ZGV2LCAiU1ZNOiByZWdpc3RlcmVkICVsZE1CIGRldmlj ZSBtZW1vcnksIGhwYV9iYXNlPTB4JWxseFxuIiwKKwkJCXNpemUgPj4gMjAsIHN2bV9kbS0+aHBh X2Jhc2UpOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X21pZ3JhdGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9taWdyYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43NTc5 Njk4M2Y2YTUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfbWlncmF0ZS5oCkBAIC0wLDAgKzEsOTggQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wIE9SIE1JVCAqLworLyoKKyAqIENvcHlyaWdodCAyMDI2IEFkdmFuY2VkIE1p Y3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlz IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh cmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBt b2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK KyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAq IE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBfX0FN REdQVV9NSUdSQVRFX0hfXworI2RlZmluZSBfX0FNREdQVV9NSUdSQVRFX0hfXworCisjaW5jbHVk ZSA8ZHJtL2RybV9wYWdlbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbWVtcmVtYXAuaD4KKworc3Ry dWN0IGFtZGdwdV9kZXZpY2U7CisKKy8qCisgKiBBTURHUFVfSU5URVJDT05ORUNUX1ZSQU0gLSBQ cm90b2NvbCBpZGVudGlmaWVyIGZvciBsb2NhbCBWUkFNIGFjY2Vzcy4KKyAqCisgKiBVc2VkIGlu IGRybV9wYWdlbWFwX2FkZHIgdG8gZGlzdGluZ3Vpc2ggZGV2aWNlLWxvY2FsIFZSQU0gYWRkcmVz c2VzIGZyb20KKyAqIERNQS1tYXBwZWQgc3lzdGVtIG1lbW9yeSBhZGRyZXNzZXMuICBkcm1fZ3B1 c3ZtX2dldF9wYWdlcygpIHVzZXMgdGhpcyB0bworICogaWRlbnRpZnkgcGFnZXMgdGhhdCBhcmUg YWxyZWFkeSBpbiBkZXZpY2UgbWVtb3J5IGFuZCBuZWVkIG5vIERNQSBtYXBwaW5nLgorICoKKyAq IFZhbHVlIG11c3QgYmUgbm9uLXplcm8gKDAgPT0gRFJNX0lOVEVSQ09OTkVDVF9TWVNURU0pLgor ICovCisjZGVmaW5lIEFNREdQVV9JTlRFUkNPTk5FQ1RfVlJBTQkxCisKKy8qCisgKiBBTURHUFVf UEdNQVBfT1dORVIgLSBVbmlxdWUgb3duZXIgdG9rZW4gZm9yIGRldl9wYWdlbWFwIHJlZ2lzdHJh dGlvbi4KKyAqCisgKiBtaWdyYXRlX3ZtYV9zZXR1cCgpIHVzZXMgcGdtYXAtPm93bmVyIHRvIGRp c3Rpbmd1aXNoICJvd24iIGRldmljZSBwYWdlcworICogZnJvbSAiZm9yZWlnbiIgZGV2aWNlIHBh Z2VzIChlLmcuLCBhbm90aGVyIEdQVSBpbiBhbiBYR01JIGhpdmUpLgorICogUGFnZXMgd2hvc2Ug cGFnZS0+cGdtYXAtPm93bmVyIG1hdGNoZXMgdGhlIG1pZ3JhdGlvbiBzb3VyY2UgYXJlIHNraXBw ZWQKKyAqICh0aGV5J3JlIGFscmVhZHkgaW4gdGhlIHJpZ2h0IHBsYWNlKS4KKyAqCisgKiBGb3Ig WEdNSSBoaXZlOiBhbGwgR1BVcyBpbiB0aGUgaGl2ZSBzaGFyZSB0aGUgc2FtZSBvd25lciAodGhl IGhpdmUgcG9pbnRlcikKKyAqIHNvIGludHJhLWhpdmUgcGFnZXMgYXJlIHRyZWF0ZWQgYXMgbG9j YWwuCisgKiBGb3Igc3RhbmRhbG9uZSBHUFU6IHVzZSB0aGUgYWRldiBwb2ludGVyIGl0c2VsZiBh cyBhIHVuaXF1ZSBwZXItZGV2aWNlIHRva2VuLgorICovCisjZGVmaW5lIEFNREdQVV9QR01BUF9P V05FUihhZGV2KSBcCisJKChhZGV2KS0+aGl2ZSA/ICh2b2lkICopKGFkZXYpLT5oaXZlIDogKHZv aWQgKikoYWRldikpCisKKy8qKgorICogc3RydWN0IGFtZGdwdV9wYWdlbWFwIC0gVlJBTSBtaWdy YXRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9yIGRybV9wYWdlbWFwCisgKiBAZHBhZ2VtYXA6IERSTSBw YWdlbWFwIHdyYXBwZXIgcHJvdmlkaW5nIGRldmljZV9tYXAvcG9wdWxhdGVfbW0gY2FsbGJhY2tz CisgKiBAYWRldjogYmFjay1wb2ludGVyIHRvIHRoZSBvd25pbmcgYW1kZ3B1X2RldmljZQorICog QGhwYV9iYXNlOiBob3N0IHBoeXNpY2FsIGFkZHJlc3MgYmFzZSBvZiB0aGUgWk9ORV9ERVZJQ0Ug cmVnaW9uCisgKiBAaW5pdGlhbGl6ZWQ6IHNldCB0byB0cnVlIGFmdGVyIHN1Y2Nlc3NmdWwgcmVn aXN0cmF0aW9uCisgKiBAcGdtYXA6IHRoZSBkZXZfcGFnZW1hcCByZWdpc3RlcmVkIHdpdGggZGV2 bV9tZW1yZW1hcF9wYWdlcygpOworICogICAgICAgICBtdXN0IGJlIGxhc3Qg4oCUIGNvbnRhaW5z IGEgZmxleGlibGUtYXJyYXkgbWVtYmVyIChyYW5nZXNbXSkKKyAqCisgKiBBbGxvY2F0ZWQgd2l0 aCBkZXZtX2t6YWxsb2MoKSBpbiBhbWRncHVfc3ZtX21pZ3JhdGlvbl9pbml0KCkgYW5kIHN0b3Jl ZAorICogYXMgYWRldi0+YXBhZ2VtYXAuICBMaWZldGltZSBpcyB0aWVkIHRvIHRoZSBkZXZpY2Ug dmlhIGRldnJlcy4KKyAqLworc3RydWN0IGFtZGdwdV9wYWdlbWFwIHsKKwlzdHJ1Y3QgZHJtX3Bh Z2VtYXAJZHBhZ2VtYXA7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UJKmFkZXY7CisJcmVzb3VyY2Vf c2l6ZV90CQlocGFfYmFzZTsKKwlib29sCQkJaW5pdGlhbGl6ZWQ7CisJc3RydWN0IGRldl9wYWdl bWFwCXBnbWFwOwkvKiBtdXN0IGJlIGxhc3Qg4oCUIGZsZXgtYXJyYXkgKi8KK307CisKKyNpZiBJ U19FTkFCTEVEKENPTkZJR19EUk1fQU1ER1BVX1NWTSkKK2ludCBhbWRncHVfc3ZtX21pZ3JhdGlv bl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKKyNlbHNlCitzdGF0aWMgaW5saW5l CitpbnQgYW1kZ3B1X3N2bV9taWdyYXRpb25faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3sKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisvKioKKyAqIGFtZGdwdV9zdm1fZHJtX3Bh Z2VtYXBfb3BzIC0gZHJtX3BhZ2VtYXBfb3BzIGZvciBBTURHUFUgVlJBTSBtaWdyYXRpb24KKyAq CisgKiBQcm92aWRlczoKKyAqICAgLmRldmljZV9tYXAgIC0gQ29udmVydCBaT05FX0RFVklDRSBw YWdlIHRvIFZSQU0gYWRkcmVzcworICogICAucG9wdWxhdGVfbW0gLSBBbGxvY2F0ZSBWUkFNIEJP IGFuZCBtaWdyYXRlIHBhZ2VzIGZyb20gc3lzdGVtIG1lbW9yeQorICovCitleHRlcm4gY29uc3Qg c3RydWN0IGRybV9wYWdlbWFwX29wcyBhbWRncHVfc3ZtX2RybV9wYWdlbWFwX29wczsKKworI2Vu ZGlmIC8qIF9fQU1ER1BVX01JR1JBVEVfSF9fICovCi0tIAoyLjM0LjEKCg==