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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 EF17CC3601E for ; Fri, 11 Apr 2025 03:09:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=GPVai7T8VNgp1mTP4EE/OL5b4q4U9Lp4ut7iQL+RknY=; b=rLPZ/1rQPDK6uXZzOSpM9L5TxG ZayqiGDxVm16KXW/Ras25AXIcur/NoB/tDyfbtV/To7AaJeuFd2//n29v96l5qgTrScBY294369Hl wtzdV4fLpppsVLpTQGLyfpYR3X8Crm5Ln8w/37Lvxsj3+N2NbwH5Q08N9HmRccq2StcAPGv/MntvR WS6x/BEAe2f5lCO/02nyk9YCWIi1/iChG0BTnoih+X13+foNjOqwMcYhF8gL18VHmN6Yyu8avpKhA 59LD5H3u/F4i2MM1tNT2KBrZMHZngoOCnvA02F/Hy+m7QAT6+2N5LHJ2ZaqKeqmuuuCUUZOKA8Kzh 8x6a4+uA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u34lS-0000000CMx4-3Pzb; Fri, 11 Apr 2025 03:09:10 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u34je-0000000CMo4-244y; Fri, 11 Apr 2025 03:07:20 +0000 X-UUID: 0e728b82168211f083f2a1c9db70dae0-20250410 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=GPVai7T8VNgp1mTP4EE/OL5b4q4U9Lp4ut7iQL+RknY=; b=Y0IfbGnvkyt2ZQGSg9h7uDFvDCy80oYfvgpEm3ijSDa16RRHmz2V87FRokX1Fc0KSAnyqEOMJMXhgkakQTC+TXXkspRmMNCh5+Cv6hW9UcaYt706XBpz/fdzo8PRYh8lWku2e58E9DFhko3JxFZ7M4N/rIf52q26nx08GwSHZaw=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.2.1,REQID:d6ec4993-05c5-4ef8-a8bf-387ee424869f,IP:0,UR L:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION:r elease,TS:0 X-CID-META: VersionHash:0ef645f,CLOUDID:f9ea70c7-16da-468a-87f7-8ca8d6b3b9f7,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:80|81|82|83|102|110|111,TC:nil,Conte nt:0|50,EDM:-3,IP:nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,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: 0,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 0e728b82168211f083f2a1c9db70dae0-20250410 Received: from mtkmbs14n1.mediatek.inc [(172.21.101.75)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 900737790; Thu, 10 Apr 2025 20:07:09 -0700 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.39; Fri, 11 Apr 2025 11:07:06 +0800 Received: from HK3PR03CU002.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1258.39 via Frontend Transport; Fri, 11 Apr 2025 11:07:06 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vloCoGGil8fsehvKA+KGYPCzNkC9ZwbzxXh0A0OQ0bnGfWGabHTuzF8f/nKNpU2Lpw9/d8rIxsnkBRwyqji6PjxVyXRKbo1F4eNm8N3YSnFyl5xjSjuFDeqUQQ4Pyi1qpfy7C4zOIRJdGw5WLnuSyuOewQ0gk0VQ8nMq4w6spMfm2iZqJg31Irj1cBO4LmWwxIlFB55L+S2gav3P5nTwyBBstwH1thdwD47He5xBJFF91ezKrJW4CFYk8/gpB87EASOPDBcau5u2i/F11ib1YPe347yLjC8h6XwpuoiiumuEgrPxM5FDtKzOUrsEdKWbJOq3754g8yWYOu9vWQXLgQ== 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=GPVai7T8VNgp1mTP4EE/OL5b4q4U9Lp4ut7iQL+RknY=; b=woPLpQ7XZGZojhnrPW3Suv0Yo0l39rgBhzPR1RDVvNyk0rgdfzSW3olZykHhdPw/3oON2nJbTBmTZ5kX2nAyaB1CHR70UXIOKJoVEDq7y6rzrY6K+Rb97f/qsIC0/5OtWdxRF2x4najEexS9j11VARpdfSZyqX+03gn1D0r9as+Ju0qESXBY03A4YUN4mj4dX0LTi/jSQVEcTHUesbwFPOazQ/haKEQvIf0AEHJNycpJBB1ZMuJ7lZuO7XQ7Y3V6Kbc0Efh+Hx27R+AzZ2HF8RMTFi97A3hnVzVT1DGZiJNaFHdMwMAdhodrEjBuY4WmYTjBsuVpX9xUlZck3EbWhQ== 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=GPVai7T8VNgp1mTP4EE/OL5b4q4U9Lp4ut7iQL+RknY=; b=QZ30zJQnqkr43cl/+xhRnJMozF00em8L0Bnh6YBIaBnUZGHmqKSZ+SOUwpjGJsXYuQTsqiI3RhjN0OBScLwLJ4bRs08H/fb8AMHu6//gAY2lJT+wMyPtP+WjOuU4IYEe0XgLbOg3jD7dtz1ekb58oyK0cubyn0Di/zq1Q1rqb7c= Received: from SEYPR03MB6626.apcprd03.prod.outlook.com (2603:1096:101:83::7) by TYZPR03MB8018.apcprd03.prod.outlook.com (2603:1096:400:463::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 03:07:02 +0000 Received: from SEYPR03MB6626.apcprd03.prod.outlook.com ([fe80::9fa0:ee98:d5ed:beba]) by SEYPR03MB6626.apcprd03.prod.outlook.com ([fe80::9fa0:ee98:d5ed:beba%3]) with mapi id 15.20.8632.017; Fri, 11 Apr 2025 03:07:02 +0000 From: =?utf-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= To: "robh@kernel.org" , "krzk+dt@kernel.org" , =?utf-8?B?UGF1bC1wbCBDaGVuICjpmbPmn4/pnJYp?= , "conor+dt@kernel.org" , AngeloGioacchino Del Regno , "chunkuang.hu@kernel.org" CC: =?utf-8?B?U3VubnkgU2hlbiAo5rKI5aeN5aeNKQ==?= , =?utf-8?B?U2lyaXVzIFdhbmcgKOeOi+eak+aYsSk=?= , =?utf-8?B?TmFuY3kgTGluICjmnpfmrKPonqIp?= , =?utf-8?B?WGlhbmRvbmcgV2FuZyAo546L5YWI5YasKQ==?= , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Project_Global_Chrome_Upstream_Group , "linux-mediatek@lists.infradead.org" , =?utf-8?B?SmFzb24tSkggTGluICjmnpfnnb/npaUp?= , "devicetree@vger.kernel.org" , "fshao@chromium.org" , "p.zabel@pengutronix.de" , =?utf-8?B?U2luZ28gQ2hhbmcgKOW8teiIiOWciyk=?= , "linux-arm-kernel@lists.infradead.org" , "matthias.bgg@gmail.com" , "treapking@chromium.org" Subject: Re: [PATCH v2 13/15] drm/mediatek: add ovlsys_adaptor support for MT8196 Thread-Topic: [PATCH v2 13/15] drm/mediatek: add ovlsys_adaptor support for MT8196 Thread-Index: AQHbmkTi0CvP0krYyE+mbkIfzxzy+LOd6QsA Date: Fri, 11 Apr 2025 03:07:01 +0000 Message-ID: References: <20250321093435.94835-1-paul-pl.chen@mediatek.com> <20250321093435.94835-14-paul-pl.chen@mediatek.com> In-Reply-To: <20250321093435.94835-14-paul-pl.chen@mediatek.com> Accept-Language: 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: SEYPR03MB6626:EE_|TYZPR03MB8018:EE_ x-ms-office365-filtering-correlation-id: 62ae1307-3243-496c-d85b-08dd78a5ee4f 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|7416014|376014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?L0wzVCs5SGc5dG15S3lCODFlYklqQkxkZ2c1aFJvTkJKd0NPY3E3WmlXUm93?= =?utf-8?B?eEhXU1YwNERoWVFPbWhiMHZpTEdPSVE5b0M4Ym1mWWFPdFdDak5WZEZkcWND?= =?utf-8?B?RFkrcFpkcWlkU3RyeUI1MU1GRmNVdXdlVFhtZG5TdDFmd3BHNGJrZlVPUFlL?= =?utf-8?B?M1ZoSFFja3hlUVhDQW05b0lPRnpnRFo0ZFNXYTEwTXZIc0phOC9oZitKUnlq?= =?utf-8?B?cytuSTM2TUFpVERrVWdTSkxHdWJKRFZIK3M1S25CQnpxMWdSOGdVa1VLVStn?= =?utf-8?B?ZWg5ZU5tN2VkMC9EOFdpMmNnU1hRRWhTWFFxcnJrMERNb1QwS09rdm95ME9W?= =?utf-8?B?OTFEZjdGbm9uYVhuNDlUdXUrS0REWS9ZTUpGLzlRZTdnU09iSk1ISjdCZnRi?= =?utf-8?B?Wmg4VkZmRFVrSG9QcDZ2VE0wTVVxZ3k5R2d5VElRdnZmTzB3Wm1mbUJ2Znlh?= =?utf-8?B?KzNoTWsxakQvaGx6VU12TFVSbjhKZXo0dHJlL3A5SG12SUJMdlhqVU1UNEtZ?= =?utf-8?B?MlAwNU1SVVZ3STRIUUxZRTJxM2xldktJeCs3QmN0UDBFTmFBY1ZsTGpMQTFo?= =?utf-8?B?eFpscjdkcHNORmJUMXpQamc0ODZWYy9Db3ZpSGlFSHd0SURjQ1FZT0dWMmhS?= =?utf-8?B?T3V4OE01a0R3MVJubUFOaHV1c2tNTlJ4dHptb0ppYk9kQjFZZnE3Q2VOT1FD?= =?utf-8?B?cnBxRjBmNXhsNjZDdlROZWFtWnd5SUxzMXZreS9UTWE0THQ5OHhXMHlucEt3?= =?utf-8?B?RWJ2VTFpQWNlb3pDYVpkV3NsanNZQnZ5a1YvVmp6elc0RkpUb0RwY1ozY1Vp?= =?utf-8?B?cThBRDllbCtuUXBBOVc3TnE0VjhpbGpmVDdQREVTalNBZEhpUjFjcWthRkUz?= =?utf-8?B?NUMwTC9RZW5kZWI5ZDJoSFhKd2xEUWtPakNjYi9WelRYQmpTV2VrdThTR1Ex?= =?utf-8?B?QStWNnY4WDkwOEZWYlJack5JTWIyaTQ5Rlh5ZnRJM25ZOUg1UXg2b1NTcTVM?= =?utf-8?B?L1hxRVVvWFBrVkcrWDczQmZ0Tm9HY1dDS2o1SDVQTzl3KytBa2U0YzhOMUhB?= =?utf-8?B?OU0wKzhGTklocitubDVaNjU0RzUzVE1FTzlHQnNNQXJSWFFEeUxQME5GejJJ?= =?utf-8?B?ZU1VWVUvaXRjTEtjUUo0Z3QzenpmTENWdnJ6bmZZTmJseDdGM2FkZzV0c1la?= =?utf-8?B?OGxYQkg1TnpWb0EvYSt3ZGhPcHBURDllMUptQVQyM2U3c2JIelJTTTFqZThS?= =?utf-8?B?Zk8wRWE3MytuUklTYkkzUm9PTnF0VzE5dDM1YzBzMWZzZExEbTdwcWdIWFkw?= =?utf-8?B?QW9jYnY3eWhPNzBlQUV1U2krSitDQTI4RUpSQm5kOG9lSWM2OWUwT282ZGNv?= =?utf-8?B?N2FjN29DR3pWTk9SdVRVa0VyaXRORUhGWXFRNUR4KzZERmdSVnQyZHp3UTBJ?= =?utf-8?B?OE5UTDI3czkvSUhSMkJqUGFFbHZGUm9jcjVOSVc2Sk1QQ0E0V2R1ZVBNZTlv?= =?utf-8?B?R2kwRWJ1cVllNGl0ZnFIS0djWWVoUVRDRDZaMUo0My9DdzdaZVZWYzFmSW03?= =?utf-8?B?dEc0dlpOVmhVMUQ3eitGZlZPMWI3Z2NFTWdlR09KZUw4Tk9OZSt6RzIvSmdB?= =?utf-8?B?RTJSdFVoR3RPc29HS3BFaVdlc3RZdkpIWHphb0RLZzhGNVBvZlZPaW9ROWpj?= =?utf-8?B?QkwzbjNhdEhCeWZQaHdIb0RSQy9jTnA5NXlIcVJOL3UvdmYrWkxxQWJ6a2FY?= =?utf-8?B?ZXQyaTJwOGI0aGFxeFRLYWdhK1gzb1BuNXJXTkxpZTRLMG90QVdCMGRIbng1?= =?utf-8?B?eFNuMjFsZmdidXNNTWRzeXdlcmdhNWFMd0tXQTlqNEZLazhwSWpyNTlCR0Fh?= =?utf-8?B?S0hkWVR1dkhqaS8xQ3hyaDF4L1A5TU0weHdmd2ZGWmpLUDlIQ25GdmlOdU1w?= =?utf-8?B?SlcxVGNlWjJKZXJscW8za3NZL0ZDSUZ0bWxGYnFRL3owQVJRcEVyUWxOdTBu?= =?utf-8?B?YjYwWk1DTlh3PT0=?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SEYPR03MB6626.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K09aVG0zdVdPd3BHakQ0ek1xUjJsbENRWS9mcVpGMVk1a3U4SWtiWjVmM2FC?= =?utf-8?B?K3h6L3Q0L0NUcC9VTE92UDFkK2JFQ0ZpdVdjY2VaN1cweGd5M2NZZHE3eFFJ?= =?utf-8?B?blZKVmpEYU1Zb0tkSFBKWmsxaUdHdnNmU2tnSWxESXA5ZUtIdVB1d0ZtVUhW?= =?utf-8?B?N2NRemphaG9qYlZ0eEJCOE81OFJVeWdvVkYvNytqNXRBNlM5Wk1tY3l3MzNq?= =?utf-8?B?engvMTVRTmdwa2tGcXRhNEs4UDN0MGQ4bTdXbDBXbU5KWEo2K0VZRlRMbzlZ?= =?utf-8?B?c1ovcm83cElhWERmRDZQRGFOd0tHK3RBM1BBSE5yTVJmNitoUjhHMmwrY1dy?= =?utf-8?B?ZXgwZmNNTVpyN3JiRDdlVXVjb3FsbEs1YjhsVTV0Zlo1UU92em9VUVFPL3J1?= =?utf-8?B?dUxmVWh5dDM0bHRPWUdjdFlUNUlFU2VYY1BSZGMrZWQ0YythTjZLNnFleVZN?= =?utf-8?B?Z0s1ejhMUlVzSWl6VXBMVk9DMldZUGh0RHlLcVR5cHByT1g5SHBCRkNMR1hQ?= =?utf-8?B?NnBaanZPQ0N0a2I5S1piWW5ad0YrRTFKTEZYcmR3d1ZWeXdzWkJrZmt3US81?= =?utf-8?B?c21jNE16Y01MSUN3SHhka2ZnN0l2TDk5M3JOYS9od3BudHFYdURHWFBYMXNT?= =?utf-8?B?TVh1NXVNa29VMm5wekZjK28wZlA0Q1loYldjOXc0U1pzZDh4aUFnT2pZdHdY?= =?utf-8?B?ai9hUElId3lNL1hSR0ZlOG5xb2lQZjZjdDc1VTlCYWZJaWhlWDlDQWVzMERE?= =?utf-8?B?TGtsU2FyN3dXdXRUZllBQ3JSN1FPUE5RVlFTQUhXRDFJNktsSlZCTzJ0YnFD?= =?utf-8?B?TG1odjVNaVpzRjRKYlc0SzhuNXBFZHJ3c0M4MjZYTHBUTU9JaXRhWXRsb2RQ?= =?utf-8?B?bzFSRFM2c0Y4S3RZaXRLWE5CS1c4MWZkWHIxYkR2RDJNWU5WV1dNSSs0cjEv?= =?utf-8?B?d2RqamNFZGpiN2tLbkY2OHluOFI0V09leVp6QUxSYnNYT3g3YVZ3MDd5bkUz?= =?utf-8?B?eitrODZ6S2RQOUl4ZjgvWXpvMzFsbjlZN3hGSkx2MDZtWHl3VGpBQlpOZXhh?= =?utf-8?B?SGRnK2UvNFYwT2FKVkVMYjdnM0FIQWkrUGliNjd6K0E1UThGUWU4a1o0bURM?= =?utf-8?B?cGlaaUQwVkRQK0N1bzE1WElIUjhUZVFZN0lTa3NUZk44cld5NThTQ0FaU1pv?= =?utf-8?B?azgxL2RJUUgzYkVRYnh4Nk1WY3R0bkhjUGpMNGxXaUpPTTRveksyNjJNanZr?= =?utf-8?B?cERTdC8zdnNuU0JXdjlPK05DTEJkMFZHYzg2TlpqMVQzYVpiU1JnYzIvZE56?= =?utf-8?B?WEF1b01ETktDQlBWRDBBb3ZRRVREUzMrZVZGa2lBakI3UGRKbkZ5S01tYWtv?= =?utf-8?B?T1VPbjhKaUY2UGZqMnpGVDZJcHJWLzRnRkRxYnFjMWRZUGZYbTRia0VZNnVF?= =?utf-8?B?Y251OG9CdXlOOThVeGRvYUxTazQ3clFzZHoyWFNxSmVTSUI0K2NwcG5tRThR?= =?utf-8?B?N2MzVGNOMUh6R2MxS1BZd29hY3Y5aUdSK050aHZKTzViVGlLM1VPY2ZJRFY5?= =?utf-8?B?NlVidTBSbENsSUQzaTRxRWpNVk9XanJkbC9tTzMyY3JXS1B5NWR5OElsbGt6?= =?utf-8?B?T3VVVC9EWFFoZ21Ja0FxR3d5TFZmSXFiK054Wm5kcEpNdkh4djJmNmxTbWc0?= =?utf-8?B?allNSFZwemtJbE9LNmpOZGZZOGdIc0hJK1dJdjg5VHFNcjlOY2dFamQreXRB?= =?utf-8?B?MFd4dG8zNXVLQXFDTDJOc3FnOWdJajd3TGJDNTI1cFFlQ1RYMnhDN0dWT2RE?= =?utf-8?B?RkZwRUdpajcvcmpnbml0Q1lCRlJGbkduQXN3T0hzOS9GV0VFMGVVczZKaGNX?= =?utf-8?B?QlVKTGlGZlgrdElpRUU1MDNQZnA0bFVNbUFjc3hlTW9MbDhyQ01MZDZTOG5m?= =?utf-8?B?VitwTUtEMmxTcGJBS1NKSUcxUzgwM0p4WncreXRweEprNmR2MmNINjMwQ1d5?= =?utf-8?B?OG13TUFjVTdzMzRsYkcwS0xYN0YwdG5qb2R2WDM0Y2gxeTdIWktQbERTYkJX?= =?utf-8?B?bWMrdkdoSzBGaWJkMnNVUGZHRjlPM0I3R25CMnhWMmszVkJnRGxlRFJwTEZB?= =?utf-8?B?Z1hwMjJLczR1UTBHUGo5NzJXalRJV1UxalpncTZPVVZXcDlkUWxycVVxdEV0?= =?utf-8?B?bkE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <7B8A9379BB17144EA76D39516B2BF34D@apcprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SEYPR03MB6626.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62ae1307-3243-496c-d85b-08dd78a5ee4f X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2025 03:07:01.9310 (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: sw0M4ZN157EPVw4LlHiLM4nArSEQKeQbR2RKLaA8rGuB9aBbIOI35IuWE5lCjVrZVRSwaWROfLIpjOcqY2Ay4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB8018 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250410_200718_559872_1FC800C1 X-CRM114-Status: GOOD ( 15.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCAyMDI1LTAzLTIxIGF0IDE3OjMzICswODAwLCBwYXVsLXBsLmNoZW4gd3JvdGU6DQo+ IEZyb206IE5hbmN5IExpbiA8bmFuY3kubGluQG1lZGlhdGVrLmNvbT4NCj4gDQo+IE92bHN5c19h ZGFwdG9yIGlzIGFuIGVuY2Fwc3VsYXRlZCBtb2R1bGUgZGVzaWduZWQgdG8NCj4gc2ltcGxpZnkg dGhlIERSTSBjb250cm9sIGZsb3cuIFRoaXMgbW9kdWxlIGlzIGNvbXBvc2VkDQo+IG9mIDIwIEVY RE1BcywgMjAgQkxFTkRFUnMsIGFuZCAxMiBPVVRQUk9Dcy4NCj4gVHdvIEVYRE1BcyBtZXJnZSBp bnRvIG9uZSBsYXllciwgYWxsb3dpbmcgdGhlIG1vZHVsZQ0KPiB0byBzdXBwb3J0IDIwIGxheWVy cyBmb3IgMyBkaXNwbGF5IHBhdGhzLg0KPiBPdmxzeXNfYWRhcHRvciBkcml2ZXIgaXMgaW50ZWdy YXRlZCB3aXRoaW4gdGhlDQo+IG10a19kZHBfY29tcCBmcmFtZXdvcmsuDQo+IA0KPiBTaWduZWQt b2ZmLWJ5OiBOYW5jeSBMaW4gPG5hbmN5LmxpbkBtZWRpYXRlay5jb20+DQo+IFNpZ25lZC1vZmYt Ynk6IFBhdWwtcGwgQ2hlbiA8cGF1bC1wbC5jaGVuQG1lZGlhdGVrLmNvbT4NCj4gLS0tDQo+ICBk cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUgICAgICAgICAgICAgfCAgIDEgKw0KPiAg ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5jICAgICAgIHwgIDI4ICsNCj4g IGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGRwX2NvbXAuaCAgICAgICB8ICAgMSArDQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmggICAgICAgfCAgMzIgKw0K PiAgLi4uL2RybS9tZWRpYXRlay9tdGtfZGlzcF9vdmxzeXNfYWRhcHRvci5jICAgIHwgNzk3ICsr KysrKysrKysrKysrKysrKw0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2 LmMgICAgICAgIHwgIDczICsrDQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k cnYuaCAgICAgICAgfCAgMTEgKy0NCj4gIDcgZmlsZXMgY2hhbmdlZCwgOTQyIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IuYw0KPiANCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9NYWtlZmlsZQ0KPiBpbmRleCA5NTQ2YmM2YjdiMmUuLmRlZGY1MDg2MGQzZiAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQ0KPiBAQCAtOSw2ICs5LDcgQEAgbWVkaWF0ZWstZHJt LXkgOj0gbXRrX2NydGMubyBcDQo+ICAJCSAgbXRrX2Rpc3BfZXhkbWEubyBcDQo+ICAJCSAgbXRr X2Rpc3BfZ2FtbWEubyBcDQo+ICAJCSAgbXRrX2Rpc3BfbWVyZ2UubyBcDQo+ICsJCSAgbXRrX2Rp c3Bfb3Zsc3lzX2FkYXB0b3IubyBcDQo+ICAJCSAgbXRrX2Rpc3Bfb3ZsLm8gXA0KPiAgCQkgIG10 a19kaXNwX291dHByb2MubyBcDQo+ICAJCSAgbXRrX2Rpc3Bfb3ZsX2FkYXB0b3IubyBcDQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21wLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9jb21wLmMNCj4gaW5kZXggY2M3ODA3NDRmMDYw Li5jOTZlMDI3MzU5YWMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZGRwX2NvbXAuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RkcF9j b21wLmMNCj4gQEAgLTM2OCw2ICszNjgsMzEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRw X2NvbXBfZnVuY3MgZGRwX292bCA9IHsNCj4gIAkuZ2V0X251bV9mb3JtYXRzID0gbXRrX292bF9n ZXRfbnVtX2Zvcm1hdHMsDQo+ICB9Ow0KPiAgDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG10a19k ZHBfY29tcF9mdW5jcyBkZHBfb3Zsc3lzX2FkYXB0b3IgPSB7DQo+ICsJLnBvd2VyX29uID0gbXRr X292bHN5c19hZGFwdG9yX3Bvd2VyX29uLA0KPiArCS5wb3dlcl9vZmYgPSBtdGtfb3Zsc3lzX2Fk YXB0b3JfcG93ZXJfb2ZmLA0KPiArCS5jbGtfZW5hYmxlID0gbXRrX292bHN5c19hZGFwdG9yX2Ns a19lbmFibGUsDQo+ICsJLmNsa19kaXNhYmxlID0gbXRrX292bHN5c19hZGFwdG9yX2Nsa19kaXNh YmxlLA0KPiArCS5jb25maWcgPSBtdGtfb3Zsc3lzX2FkYXB0b3JfY29uZmlnLA0KPiArCS5zdGFy dCA9IG10a19vdmxzeXNfYWRhcHRvcl9zdGFydCwNCj4gKwkuc3RvcCA9IG10a19vdmxzeXNfYWRh cHRvcl9zdG9wLA0KPiArCS5sYXllcl9jaGVjayA9IG10a19vdmxzeXNfYWRhcHRvcl9sYXllcl9j aGVjaywNCj4gKwkubGF5ZXJfbnIgPSBtdGtfb3Zsc3lzX2FkYXB0b3JfbGF5ZXJfbnIsDQo+ICsJ LmxheWVyX2NvbmZpZyA9IG10a19vdmxzeXNfYWRhcHRvcl9sYXllcl9jb25maWcsDQo+ICsJLnJl Z2lzdGVyX3ZibGFua19jYiA9IG10a19vdmxzeXNfYWRhcHRvcl9yZWdpc3Rlcl92YmxhbmtfY2Is DQo+ICsJLnVucmVnaXN0ZXJfdmJsYW5rX2NiID0gbXRrX292bHN5c19hZGFwdG9yX3VucmVnaXN0 ZXJfdmJsYW5rX2NiLA0KPiArCS5lbmFibGVfdmJsYW5rID0gbXRrX292bHN5c19hZGFwdG9yX2Vu YWJsZV92YmxhbmssDQo+ICsJLmRpc2FibGVfdmJsYW5rID0gbXRrX292bHN5c19hZGFwdG9yX2Rp c2FibGVfdmJsYW5rLA0KPiArCS5kbWFfZGV2X2dldCA9IG10a19vdmxzeXNfYWRhcHRvcl9kbWFf ZGV2X2dldCwNCj4gKwkuY29ubmVjdCA9IG10a19vdmxzeXNfYWRhcHRvcl9jb25uZWN0LA0KPiAr CS5kaXNjb25uZWN0ID0gbXRrX292bHN5c19hZGFwdG9yX2Rpc2Nvbm5lY3QsDQo+ICsJLmFkZCA9 IG10a19vdmxzeXNfYWRhcHRvcl9hZGRfY29tcCwNCj4gKwkucmVtb3ZlID0gbXRrX292bHN5c19h ZGFwdG9yX3JlbW92ZV9jb21wLA0KPiArCS5nZXRfYmxlbmRfbW9kZXMgPSBtdGtfb3Zsc3lzX2Fk YXB0b3JfZ2V0X2JsZW5kX21vZGVzLA0KPiArCS5nZXRfZm9ybWF0cyA9IG10a19vdmxzeXNfYWRh cHRvcl9nZXRfZm9ybWF0cywNCj4gKwkuZ2V0X251bV9mb3JtYXRzID0gbXRrX292bHN5c19hZGFw dG9yX2dldF9udW1fZm9ybWF0cywNCj4gK307DQo+ICsNCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bXRrX2RkcF9jb21wX2Z1bmNzIGRkcF9wb3N0bWFzayA9IHsNCj4gIAkuY2xrX2VuYWJsZSA9IG10 a19kZHBfY2xrX2VuYWJsZSwNCj4gIAkuY2xrX2Rpc2FibGUgPSBtdGtfZGRwX2Nsa19kaXNhYmxl LA0KPiBAQCAtNDM3LDYgKzQ2Miw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXRrX2Rk cF9jb21wX3N0ZW1bTVRLX0REUF9DT01QX1RZUEVfTUFYXSA9IHsNCj4gIAlbTVRLX0RJU1BfT1ZM XSA9ICJvdmwiLA0KPiAgCVtNVEtfRElTUF9PVkxfMkxdID0gIm92bC0ybCIsDQo+ICAJW01US19E SVNQX09WTF9BREFQVE9SXSA9ICJvdmxfYWRhcHRvciIsDQo+ICsJW01US19ESVNQX09WTFNZU19B REFQVE9SXSA9ICJvdmxzeXNfYWRhcHRvciIsDQo+ICAJW01US19ESVNQX1BPU1RNQVNLXSA9ICJw b3N0bWFzayIsDQo+ICAJW01US19ESVNQX1BXTV0gPSAicHdtIiwNCj4gIAlbTVRLX0RJU1BfUkRN QV0gPSAicmRtYSIsDQo+IEBAIC00NjksNiArNDk1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBt dGtfZGRwX2NvbXBfbWF0Y2ggbXRrX2RkcF9tYXRjaGVzW0REUF9DT01QT05FTlRfRFJNX0lEX01B WF0NCj4gIAlbRERQX0NPTVBPTkVOVF9EUEkwXQkJPSB7IE1US19EUEksCQkJMCwgJmRkcF9kcGkg fSwNCj4gIAlbRERQX0NPTVBPTkVOVF9EUEkxXQkJPSB7IE1US19EUEksCQkJMSwgJmRkcF9kcGkg fSwNCj4gIAlbRERQX0NPTVBPTkVOVF9EUk1fT1ZMX0FEQVBUT1JdCT0geyBNVEtfRElTUF9PVkxf QURBUFRPUiwJMCwgJmRkcF9vdmxfYWRhcHRvciB9LA0KPiArCVtERFBfQ09NUE9ORU5UX0RSTV9P VkxTWVNfQURBUFRPUjBdID0geyBNVEtfRElTUF9PVkxTWVNfQURBUFRPUiwgMCwgJmRkcF9vdmxz eXNfYWRhcHRvcn0sDQo+ICsJW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMV0gPSB7 IE1US19ESVNQX09WTFNZU19BREFQVE9SLCAxLCAmZGRwX292bHN5c19hZGFwdG9yfSwNCj4gIAlb RERQX0NPTVBPTkVOVF9EU0MwXQkJPSB7IE1US19ESVNQX0RTQywJCTAsICZkZHBfZHNjIH0sDQo+ ICAJW0REUF9DT01QT05FTlRfRFNDMV0JCT0geyBNVEtfRElTUF9EU0MsCQkxLCAmZGRwX2RzYyB9 LA0KPiAgCVtERFBfQ09NUE9ORU5UX0RTSTBdCQk9IHsgTVRLX0RTSSwJCQkwLCAmZGRwX2RzaSB9 LA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5o IGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kZHBfY29tcC5oDQo+IGluZGV4IGIzM2Qz Mjg5YjhiNi4uZWY2NGNlN2EwNzFmIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RkcF9jb21wLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kZHBfY29tcC5oDQo+IEBAIC0zMyw2ICszMyw3IEBAIGVudW0gbXRrX2RkcF9jb21wX3R5cGUg ew0KPiAgCU1US19ESVNQX01VVEVYLA0KPiAgCU1US19ESVNQX09ELA0KPiAgCU1US19ESVNQX09W TCwNCj4gKwlNVEtfRElTUF9PVkxTWVNfQURBUFRPUiwNCj4gIAlNVEtfRElTUF9PVkxfMkwsDQo+ ICAJTVRLX0RJU1BfT1ZMX0FEQVBUT1IsDQo+ICAJTVRLX0RJU1BfUE9TVE1BU0ssDQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmgNCj4gaW5kZXggM2M1MTlhNjYyMDc0Li4x ZmY4YzQ1OTNmYzEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZGlzcF9kcnYuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2 LmgNCj4gQEAgLTE3NCw2ICsxNzQsMzggQEAgc2l6ZV90IG10a19vdmxfYWRhcHRvcl9nZXRfbnVt X2Zvcm1hdHMoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gIGVudW0gZHJtX21vZGVfc3RhdHVzIG10 a19vdmxfYWRhcHRvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gIAkJCQkJCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsNCj4gIA0KPiAraW50IG10a19vdmxz eXNfYWRhcHRvcl9wb3dlcl9vbihzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiArdm9pZCBtdGtfb3Zs c3lzX2FkYXB0b3JfcG93ZXJfb2ZmKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICt2b2lkIG10a19v dmxzeXNfYWRhcHRvcl9hZGRfY29tcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfbXV0 ZXggKm11dGV4KTsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX3JlbW92ZV9jb21wKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IG10a19tdXRleCAqbXV0ZXgpOw0KPiArdm9pZCBtdGtfb3Zs c3lzX2FkYXB0b3JfY29ubmVjdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1t c3lzX2RldiwNCj4gKwkJCQl1bnNpZ25lZCBpbnQgbmV4dCk7DQo+ICt2b2lkIG10a19vdmxzeXNf YWRhcHRvcl9kaXNjb25uZWN0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbW1z eXNfZGV2LA0KPiArCQkJCSAgIHVuc2lnbmVkIGludCBuZXh0KTsNCj4gK2ludCBtdGtfb3Zsc3lz X2FkYXB0b3JfY2xrX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiArdm9pZCBtdGtfb3Zs c3lzX2FkYXB0b3JfY2xrX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gK3ZvaWQgbXRr X292bHN5c19hZGFwdG9yX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3 LA0KPiArCQkJICAgICAgIHVuc2lnbmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQo+ ICsJCQkgICAgICAgdW5zaWduZWQgaW50IGJwYywgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7 DQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9sYXllcl9jb25maWcoc3RydWN0IGRldmljZSAq ZGV2LCB1bnNpZ25lZCBpbnQgaWR4LA0KPiArCQkJCSAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0 ZSAqc3RhdGUsDQo+ICsJCQkJICAgICBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KTsNCj4gK2lu dCBtdGtfb3Zsc3lzX2FkYXB0b3JfbGF5ZXJfY2hlY2soc3RydWN0IGRldmljZSAqZGV2LA0KPiAr CQkJCSAgIHVuc2lnbmVkIGludCBpZHgsDQo+ICsJCQkJICAgc3RydWN0IG10a19wbGFuZV9zdGF0 ZSAqbXRrX3N0YXRlKTsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX3JlZ2lzdGVyX3ZibGFu a19jYihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKCp2YmxhbmtfY2IpKHZvaWQgKiksDQo+ICsJ CQkJCSAgIHZvaWQgKnZibGFua19jYl9kYXRhKTsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9y X3VucmVnaXN0ZXJfdmJsYW5rX2NiKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICt2b2lkIG10a19v dmxzeXNfYWRhcHRvcl9lbmFibGVfdmJsYW5rKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICt2b2lk IG10a19vdmxzeXNfYWRhcHRvcl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0K PiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3Jfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KTsNCj4g K3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gK3Vu c2lnbmVkIGludCBtdGtfb3Zsc3lzX2FkYXB0b3JfbGF5ZXJfbnIoc3RydWN0IGRldmljZSAqZGV2 KTsNCj4gK3N0cnVjdCBkZXZpY2UgKm10a19vdmxzeXNfYWRhcHRvcl9kbWFfZGV2X2dldChzdHJ1 Y3QgZGV2aWNlICpkZXYpOw0KPiArdTMyIG10a19vdmxzeXNfYWRhcHRvcl9nZXRfYmxlbmRfbW9k ZXMoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gK2NvbnN0IHUzMiAqbXRrX292bHN5c19hZGFwdG9y X2dldF9mb3JtYXRzKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICtzaXplX3QgbXRrX292bHN5c19h ZGFwdG9yX2dldF9udW1fZm9ybWF0cyhzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiArDQo+ICB2b2lk IG10a19yZG1hX2J5cGFzc19zaGFkb3coc3RydWN0IGRldmljZSAqZGV2KTsNCj4gIGludCBtdGtf cmRtYV9jbGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ICB2b2lkIG10a19yZG1hX2Ns a19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZGlzcF9vdmxzeXNfYWRhcHRvci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMDRjYjU1NWJkNzdiDQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX292bHN5c19hZGFwdG9y LmMNCj4gQEAgLTAsMCArMSw3OTcgQEANCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wLW9ubHkNCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjUgTWVkaWFUZWsgSW5j Lg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPg0KPiArI2luY2x1 ZGUgPGRybS9kcm1fb2YuaD4NCj4gKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+DQo+ICsjaW5j bHVkZSA8bGludXgvY2xrLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+DQo+ICsj aW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZp Y2UuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+DQo+ICsjaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPg0K PiArI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlh dGVrL210ay1jbWRxLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1tbXN5 cy5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstbXV0ZXguaD4NCj4gKw0K PiArI2luY2x1ZGUgIm10a19kaXNwX2JsZW5kZXIuaCINCj4gKyNpbmNsdWRlICJtdGtfZGlzcF9k cnYuaCINCj4gKyNpbmNsdWRlICJtdGtfY3J0Yy5oIg0KDQpBbHBoYWJldGljIG9yZGVyLg0KDQo+ ICsjaW5jbHVkZSAibXRrX2RkcF9jb21wLmgiDQoNCkRpdHRvLg0KDQo+ICsjaW5jbHVkZSAibXRr X2RybV9kcnYuaCINCj4gKw0KPiArI2RlZmluZSBPVkxTWVNfQURBUFRPUl9EUklWRVJfREFUQV9N QVhfU0laRSA4MTkxDQo+ICsNCj4gK2VudW0gbXRrX292bHN5c19hZGFwdG9yX2NvbXBfdHlwZSB7 DQo+ICsJT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSA9IDAsDQo+ICsJT1ZMU1lTX0FEQVBUT1Jf VFlQRV9CTEVOREVSLA0KPiArCU9WTFNZU19BREFQVE9SX1RZUEVfT1VUUFJPQywNCj4gKwlPVkxT WVNfQURBUFRPUl9UWVBFX05VTSwNCj4gK307DQo+ICsNCj4gK2VudW0gbXRrX292bHN5c19hZGFw dG9yX2NvbXBfaWQgew0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMCwNCj4gKwlPVkxTWVNfQURB UFRPUl9FWERNQTEsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUEyLA0KPiArCU9WTFNZU19BREFQ VE9SX0VYRE1BMywNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTQsDQo+ICsJT1ZMU1lTX0FEQVBU T1JfRVhETUE1LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BNiwNCj4gKwlPVkxTWVNfQURBUFRP Ul9FWERNQTcsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUE4LA0KPiArCU9WTFNZU19BREFQVE9S X0VYRE1BOSwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTEwLA0KPiArCU9WTFNZU19BREFQVE9S X0VYRE1BMTEsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUExMiwNCj4gKwlPVkxTWVNfQURBUFRP Ul9FWERNQTEzLA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMTQsDQo+ICsJT1ZMU1lTX0FEQVBU T1JfRVhETUExNSwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTE2LA0KPiArCU9WTFNZU19BREFQ VE9SX0VYRE1BMTcsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUExOCwNCj4gKwlPVkxTWVNfQURB UFRPUl9FWERNQTE5LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIwLA0KPiArCU9WTFNZU19B REFQVE9SX0JMRU5ERVIxLA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIyLA0KPiArCU9WTFNZ U19BREFQVE9SX0JMRU5ERVIzLA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI0LA0KPiArCU9W TFNZU19BREFQVE9SX0JMRU5ERVI1LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI2LA0KPiAr CU9WTFNZU19BREFQVE9SX0JMRU5ERVI3LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI4LA0K PiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI5LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIx MCwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTEsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxF TkRFUjEyLA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxMywNCj4gKwlPVkxTWVNfQURBUFRP Ul9CTEVOREVSMTQsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjE1LA0KPiArCU9WTFNZU19B REFQVE9SX0JMRU5ERVIxNiwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTcsDQo+ICsJT1ZM U1lTX0FEQVBUT1JfQkxFTkRFUjE4LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIxOSwNCj4g KwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DMCwNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DMSwN Cj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DMiwNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9D MywNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DNCwNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQ Uk9DNSwNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DNiwNCj4gKwlPVkxTWVNfQURBUFRPUl9P VVRQUk9DNywNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DOCwNCj4gKwlPVkxTWVNfQURBUFRP Ul9PVVRQUk9DOSwNCj4gKwlPVkxTWVNfQURBUFRPUl9PVVRQUk9DMTAsDQo+ICsJT1ZMU1lTX0FE QVBUT1JfT1VUUFJPQzExLA0KPiArCU9WTFNZU19BREFQVE9SX0lEX01BWA0KPiArfTsNCj4gKw0K PiArc3RydWN0IG92bHN5c19hZGFwdG9yX2NvbXBfbWF0Y2ggew0KPiArCWVudW0gbXRrX292bHN5 c19hZGFwdG9yX2NvbXBfdHlwZSB0eXBlOw0KPiArCWludCBhbGlhc19pZDsNCj4gKwllbnVtIG10 a19kZHBfY29tcF9pZCBjb21wX2lkOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IG10a19kaXNwX292 bHN5c19hZGFwdG9yIHsNCj4gKwlzdHJ1Y3QgZGV2aWNlICpvdmxfYWRhcHRvcl9jb21wW09WTFNZ U19BREFQVE9SX0lEX01BWF07DQo+ICsJc3RydWN0IGRldmljZSAqbW1zeXNfZGV2Ow0KPiArCWNv bnN0IHVuc2lnbmVkIGludCAqcGF0aDsNCj4gKwl1bnNpZ25lZCBpbnQgcGF0aF9zaXplOw0KPiAr CXVuc2lnbmVkIGludCBsYXllcl9ucjsNCj4gKwlib29sIGNoaWxkcmVuX2JvdW5kOw0KPiArCXVu c2lnbmVkIGludCBtYXhfc2l6ZTsNCg0KSXQncyBub3QgbmVjZXNzYXJ5IHRvIHN0b3JlIG1heF9z aXplIGluIHByaXZhdGUgZGF0YS4NCkRyb3AgdGhpcyBhbmQgdXNlIE9WTFNZU19BREFQVE9SX0RS SVZFUl9EQVRBX01BWF9TSVpFIGRpcmVjdGx5Lg0KDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHByaXZhdGVfY29tcF9zdGVtW09WTFNZU19BREFQVE9SX1RZUEVfTlVN XSA9IHsNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQV0JPSAiZXhkbWEiLA0KPiArCVtP VkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVJdCT0gImJsZW5kZXIiLA0KPiArCVtPVkxTWVNfQURB UFRPUl9UWVBFX09VVFBST0NdCT0gIm91dHByb2MiLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNv bnN0IHN0cnVjdCBvdmxzeXNfYWRhcHRvcl9jb21wX21hdGNoIGNvbXBfbWF0Y2hlc1tPVkxTWVNf QURBUFRPUl9JRF9NQVhdID0gew0KPiArCVtPVkxTWVNfQURBUFRPUl9FWERNQTBdICAgPSB7IE9W TFNZU19BREFQVE9SX1RZUEVfRVhETUEsIDAsIEREUF9DT01QT05FTlRfSURfTUFYfSwNCj4gKwlb T1ZMU1lTX0FEQVBUT1JfRVhETUExXQkgID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCAx LCBERFBfQ09NUE9ORU5UX0lEX01BWH0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMl0JICA9 IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgMiwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1B Mn0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BM10JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQ RV9FWERNQSwgMywgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BM30sDQo+ICsJW09WTFNZU19BREFQ VE9SX0VYRE1BNF0JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgNCwgRERQX0NPTVBP TkVOVF9PVkwwX0VYRE1BNH0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BNV0JICA9IHsgT1ZM U1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgNSwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BNX0sDQo+ ICsJW09WTFNZU19BREFQVE9SX0VYRE1BNl0JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERN QSwgNiwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BNn0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VY RE1BN10JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgNywgRERQX0NPTVBPTkVOVF9P VkwwX0VYRE1BN30sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BOF0JICA9IHsgT1ZMU1lTX0FE QVBUT1JfVFlQRV9FWERNQSwgOCwgRERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BOH0sDQo+ICsJW09W TFNZU19BREFQVE9SX0VYRE1BOV0JICA9IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwgOSwg RERQX0NPTVBPTkVOVF9PVkwwX0VYRE1BOX0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMTJd ICAgPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsIDEyLCBERFBfQ09NUE9ORU5UX09WTDFf RVhETUEyfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhETUExM10gICA9IHsgT1ZMU1lTX0FEQVBU T1JfVFlQRV9FWERNQSwgMTMsIEREUF9DT01QT05FTlRfT1ZMMV9FWERNQTN9LA0KPiArCVtPVkxT WVNfQURBUFRPUl9FWERNQTE0XSAgID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCAxNCwg RERQX0NPTVBPTkVOVF9PVkwxX0VYRE1BNH0sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMTVd ICAgPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsIDE1LCBERFBfQ09NUE9ORU5UX09WTDFf RVhETUE1fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhETUExNl0gICA9IHsgT1ZMU1lTX0FEQVBU T1JfVFlQRV9FWERNQSwgMTYsIEREUF9DT01QT05FTlRfT1ZMMV9FWERNQTZ9LA0KPiArCVtPVkxT WVNfQURBUFRPUl9FWERNQTE3XSAgID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCAxNywg RERQX0NPTVBPTkVOVF9PVkwxX0VYRE1BN30sDQo+ICsJW09WTFNZU19BREFQVE9SX0VYRE1BMThd ICAgPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfRVhETUEsIDE4LCBERFBfQ09NUE9ORU5UX09WTDFf RVhETUE4fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfRVhETUExOV0gICA9IHsgT1ZMU1lTX0FEQVBU T1JfVFlQRV9FWERNQSwgMTksIEREUF9DT01QT05FTlRfT1ZMMV9FWERNQTl9LA0KPiArCVtPVkxT WVNfQURBUFRPUl9CTEVOREVSMV0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwgMSwg RERQX0NPTVBPTkVOVF9PVkwwX0JMRU5ERVIxfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfQkxFTkRF UjJdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDIsIEREUF9DT01QT05FTlRfT1ZM MF9CTEVOREVSMn0sDQo+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVIzXSA9IHsgT1ZMU1lTX0FE QVBUT1JfVFlQRV9CTEVOREVSLCAzLCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRFUjN9LA0KPiAr CVtPVkxTWVNfQURBUFRPUl9CTEVOREVSNF0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRF UiwgNCwgRERQX0NPTVBPTkVOVF9PVkwwX0JMRU5ERVI0fSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1Jf QkxFTkRFUjVdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDUsIEREUF9DT01QT05F TlRfT1ZMMF9CTEVOREVSNX0sDQo+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVI2XSA9IHsgT1ZM U1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCA2LCBERFBfQ09NUE9ORU5UX09WTDBfQkxFTkRFUjZ9 LA0KPiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVSN10gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVf QkxFTkRFUiwgNywgRERQX0NPTVBPTkVOVF9PVkwwX0JMRU5ERVI3fSwNCj4gKwlbT1ZMU1lTX0FE QVBUT1JfQkxFTkRFUjhdID0geyBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDgsIEREUF9D T01QT05FTlRfT1ZMMF9CTEVOREVSOH0sDQo+ICsJW09WTFNZU19BREFQVE9SX0JMRU5ERVI5XSA9 IHsgT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSLCA5LCBERFBfQ09NUE9ORU5UX09WTDBfQkxF TkRFUjl9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVSMTFdID0gew0KPiArCQlPVkxTWVNf QURBUFRPUl9UWVBFX0JMRU5ERVIsIDExLCBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjF9LA0K PiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVSMTJdID0gew0KPiArCQlPVkxTWVNfQURBUFRPUl9U WVBFX0JMRU5ERVIsIDEyLCBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjJ9LA0KPiArCVtPVkxT WVNfQURBUFRPUl9CTEVOREVSMTNdID0gew0KPiArCQlPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5E RVIsIDEzLCBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjN9LA0KPiArCVtPVkxTWVNfQURBUFRP Ul9CTEVOREVSMTRdID0gew0KPiArCQlPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDE0LCBE RFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjR9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVS MTVdID0gew0KPiArCQlPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDE1LCBERFBfQ09NUE9O RU5UX09WTDFfQkxFTkRFUjV9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVSMTZdID0gew0K PiArCQlPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDE2LCBERFBfQ09NUE9ORU5UX09WTDFf QkxFTkRFUjZ9LA0KPiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVSMTddID0gew0KPiArCQlPVkxT WVNfQURBUFRPUl9UWVBFX0JMRU5ERVIsIDE3LCBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjd9 LA0KPiArCVtPVkxTWVNfQURBUFRPUl9CTEVOREVSMThdID0gew0KPiArCQlPVkxTWVNfQURBUFRP Ul9UWVBFX0JMRU5ERVIsIDE4LCBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjh9LA0KPiArCVtP VkxTWVNfQURBUFRPUl9CTEVOREVSMTldID0gew0KPiArCQlPVkxTWVNfQURBUFRPUl9UWVBFX0JM RU5ERVIsIDE5LCBERFBfQ09NUE9ORU5UX09WTDFfQkxFTkRFUjl9LA0KPiArCVtPVkxTWVNfQURB UFRPUl9PVVRQUk9DMF0gPSB7IE9WTFNZU19BREFQVE9SX1RZUEVfT1VUUFJPQywgMCwgRERQX0NP TVBPTkVOVF9PVkwwX09VVFBST0MwfSwNCj4gKwlbT1ZMU1lTX0FEQVBUT1JfT1VUUFJPQzFdID0g eyBPVkxTWVNfQURBUFRPUl9UWVBFX09VVFBST0MsIDEsIEREUF9DT01QT05FTlRfT1ZMMF9PVVRQ Uk9DMX0sDQo+ICsJW09WTFNZU19BREFQVE9SX09VVFBST0M2XSA9IHsgT1ZMU1lTX0FEQVBUT1Jf VFlQRV9PVVRQUk9DLCA2LCBERFBfQ09NUE9ORU5UX09WTDFfT1VUUFJPQzB9LA0KPiArfTsNCj4g Kw0KPiArc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDgxOTZfbXRrX292bF9tYWluW10gPSB7 DQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUEyLA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVIx LA0KPiArCU9WTFNZU19BREFQVE9SX0VYRE1BMywNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVS MiwNCj4gKwlPVkxTWVNfQURBUFRPUl9FWERNQTQsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRF UjMsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhETUE1LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5E RVI0LA0KPiArCU9WTFNZU19BREFQVE9SX09VVFBST0MwLA0KPiArfTsNCj4gKw0KPiArc3RhdGlj IGNvbnN0IHVuc2lnbmVkIGludCBtdDgxOTZfbXRrX292bF9leHRbXSA9IHsNCj4gKwlPVkxTWVNf QURBUFRPUl9FWERNQTYsDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjUsDQo+ICsJT1ZMU1lT X0FEQVBUT1JfRVhETUE3LA0KPiArCU9WTFNZU19BREFQVE9SX0JMRU5ERVI2LA0KPiArCU9WTFNZ U19BREFQVE9SX0VYRE1BOCwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSNywNCj4gKwlPVkxT WVNfQURBUFRPUl9FWERNQTksDQo+ICsJT1ZMU1lTX0FEQVBUT1JfQkxFTkRFUjgsDQo+ICsJT1ZM U1lTX0FEQVBUT1JfT1VUUFJPQzEsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdW5zaWdu ZWQgaW50IG10ODE5Nl9tdGtfb3ZsX3RoaXJkW10gPSB7DQo+ICsJT1ZMU1lTX0FEQVBUT1JfRVhE TUExMiwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTEsDQo+ICsJT1ZMU1lTX0FEQVBUT1Jf RVhETUExMywNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTIsDQo+ICsJT1ZMU1lTX0FEQVBU T1JfRVhETUExNCwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTMsDQo+ICsJT1ZMU1lTX0FE QVBUT1JfRVhETUExNSwNCj4gKwlPVkxTWVNfQURBUFRPUl9CTEVOREVSMTQsDQo+ICsJT1ZMU1lT X0FEQVBUT1JfT1VUUFJPQzYsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgZW51bSBtdGtfb3Zsc3lz X2FkYXB0b3JfY29tcF90eXBlIGdldF90eXBlKGVudW0gbXRrX292bHN5c19hZGFwdG9yX2NvbXBf aWQgaWQpDQo+ICt7DQo+ICsJcmV0dXJuIGNvbXBfbWF0Y2hlc1tpZF0udHlwZTsNCj4gK30NCj4g Kw0KPiArc3RhdGljIGVudW0gbXRrX2RkcF9jb21wX2lkIGdldF9kZHBfY29tcF9pZChlbnVtIG10 a19vdmxzeXNfYWRhcHRvcl9jb21wX2lkIGlkKQ0KPiArew0KPiArCXJldHVybiBjb21wX21hdGNo ZXNbaWRdLmNvbXBfaWQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlICpnZXRf Y29tcF9ieV90eXBlX2lkeChzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ICsJCQkJCSAgIGVudW0gbXRr X292bHN5c19hZGFwdG9yX2NvbXBfdHlwZSB0eXBlLA0KPiArCQkJCQkgICB1bnNpZ25lZCBpbnQg aWR4KQ0KPiArew0KPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArCWludCBpOw0KPiArCWludCBjb3VudCA9IDA7DQo+ICsN Cj4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXplOyBpKyspIHsNCj4gKwkJaWYgKGdl dF90eXBlKHByaXYtPnBhdGhbaV0pID09IHR5cGUpIHsNCj4gKwkJCWlmIChjb3VudCA9PSBpZHgp DQo+ICsJCQkJcmV0dXJuIHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFtpXV07DQo+ ICsJCQljb3VudCsrOw0KPiArCQl9DQo+ICsJfQ0KPiArCXJldHVybiBOVUxMOw0KPiArfQ0KPiAr DQo+ICtpbnQgbXRrX292bHN5c19hZGFwdG9yX3Bvd2VyX29uKHN0cnVjdCBkZXZpY2UgKmRldikN Cj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsNCj4gKwlzdHJ1Y3QgZGV2aWNlICpjb21wOw0KPiArCWludCByZXQgPSAw Ow0KPiArCWludCBpOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IE9WTFNZU19BREFQVE9SX0lE X01BWDsgaSsrKSB7DQoNCldoeSB0aGlzIGZvci1sb29wIGlzIG5vdCBhcyBiZWxvdyBleGFtcGxl Pw0KDQpmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXplOyBpKyspIHsNCg0KPiArCQljb21w ID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtpXTsNCj4gKw0KPiArCQlpZiAoIWNvbXApDQo+ICsJ CQljb250aW51ZTsNCj4gKw0KPiArCQlpZiAoZ2V0X3R5cGUoaSkgIT0gT1ZMU1lTX0FEQVBUT1Jf VFlQRV9FWERNQSkNCg0KV2h5IG9ubHkgRVhETUEgbmVlZCBwb3dlciBvbj8NCg0KPiArCQkJY29u dGludWU7DQo+ICsNCj4gKwkJcmV0ID0gcG1fcnVudGltZV9nZXRfc3luYyhjb21wKTsNCj4gKwkJ aWYgKHJldCA8IDApIHsNCj4gKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBwb3dl ciBkb21haW4gJWQsIGVyciAlZFxuIiwgaSwgcmV0KTsNCj4gKwkJCWdvdG8gcHdyX2VycjsNCj4g KwkJfQ0KPiArCX0NCj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICtwd3JfZXJyOg0KPiArCXdoaWxl ICgtLWkgPj0gMCkgew0KPiArCQljb21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtpXTsNCj4g KwkJaWYgKCFjb21wKQ0KPiArCQkJY29udGludWU7DQo+ICsJCWlmIChnZXRfdHlwZShpKSAhPSBP VkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BKQ0KPiArCQkJY29udGludWU7DQo+ICsJCXBtX3J1bnRp bWVfcHV0KHByaXYtPm92bF9hZGFwdG9yX2NvbXBbaV0pOw0KPiArCX0NCj4gKw0KPiArCXJldHVy biByZXQ7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX3Bvd2VyX29mZihz dHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFw dG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJc3RydWN0IGRldmljZSAqY29t cDsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBPVkxTWVNfQURBUFRPUl9J RF9NQVg7IGkrKykgew0KPiArCQljb21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtpXTsNCj4g Kw0KPiArCQlpZiAoIWNvbXApDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlpZiAoZ2V0X3R5 cGUoaSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSkNCj4gKwkJCXBtX3J1bnRpbWVfcHV0 KGNvbXApOw0KPiArCX0NCj4gK30NCj4gKw0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfbGF5 ZXJfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGlkeCwNCj4gKwkJCQkg ICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRlLA0KPiArCQkJCSAgICAgc3RydWN0IGNt ZHFfcGt0ICpjbWRxX3BrdCkNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX3BsYW5lX3BlbmRpbmdfc3Rh dGUgKnBlbmRpbmcgPSAmc3RhdGUtPnBlbmRpbmc7DQo+ICsJc3RydWN0IGRldmljZSAqZXhkbWE7 DQo+ICsJc3RydWN0IGRldmljZSAqYmxlbmRlcjsNCj4gKwl1bnNpZ25lZCBpbnQgYWxpZ25fd2lk dGggPSAwOw0KPiArCWNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmZtdF9pbmZvID0gZHJt X2Zvcm1hdF9pbmZvKHBlbmRpbmctPmZvcm1hdCk7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5 c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwlEUk1fREVW X0RFQlVHX0RSSVZFUihkZXYsICJpZHg6JWQgZW5hYmxlOiVkIGZtdDoweCV4IGFkZHI6MHglcGFk IGZiX3c6JWQgeyVkLCVkLCVkLCVkfVxuIiwNCj4gKwkJCSAgICAgaWR4LCBwZW5kaW5nLT5lbmFi bGUsIHBlbmRpbmctPmZvcm1hdCwNCj4gKwkJCSAgICAgJnBlbmRpbmctPmFkZHIsIChwZW5kaW5n LT5waXRjaCAvIGZtdF9pbmZvLT5jcHBbMF0pLA0KPiArCQkJICAgICBwZW5kaW5nLT54LCBwZW5k aW5nLT55LCBwZW5kaW5nLT53aWR0aCwgcGVuZGluZy0+aGVpZ2h0KTsNCj4gKw0KPiArCWV4ZG1h ID0gZ2V0X2NvbXBfYnlfdHlwZV9pZHgoZGV2LCBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BLCBp ZHgpOw0KDQpleGRtYSA9IHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFtpZHggKiAy XV07DQoNCj4gKwlpZiAoIWV4ZG1hKSB7DQoNCllvdSBqdXN0IG5lZWQgdG8gY2hlY2sgaWR4IDwg cHJpdi0+bGF5ZXJfbnIuDQoNCj4gKwkJZGV2X2VycihkZXYsICIlczogZXhkbWElZCBjb21wIG5v dCBmb3VuZFxuIiwgX19mdW5jX18sIGlkeCk7DQo+ICsJCXJldHVybjsNCj4gKwl9DQo+ICsJYmxl bmRlciA9IGdldF9jb21wX2J5X3R5cGVfaWR4KGRldiwgT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVO REVSLCBpZHgpOw0KDQpibGVuZGVyID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRo W2lkeCAqIDIgKyAxXV07DQoNCj4gKwlpZiAoIWJsZW5kZXIpIHsNCj4gKwkJZGV2X2VycihkZXYs ICIlczogYmxlbmRlciVkIGNvbXAgbm90IGZvdW5kXG4iLCBfX2Z1bmNfXywgaWR4KTsNCj4gKwkJ cmV0dXJuOw0KPiArCX0NCj4gKw0KPiArCS8qIE9WTFNZUyBpcyBpbiAxVDJQIGRvbWFpbiwgd2lk dGggbmVlZHMgdG8gYmUgMiBwaXhlbHMgYWxpZ24gKi8NCj4gKwlhbGlnbl93aWR0aCA9IEFMSUdO X0RPV04ocGVuZGluZy0+d2lkdGgsIDIpOw0KPiArDQo+ICsJaWYgKHBlbmRpbmctPmhlaWdodCA9 PSAwIHx8IGFsaWduX3dpZHRoID09IDAgfHwNCj4gKwkgICAgcGVuZGluZy0+eCA+IHByaXYtPm1h eF9zaXplIHx8IHBlbmRpbmctPnkgPiBwcml2LT5tYXhfc2l6ZSkgew0KPiArCQlwZW5kaW5nLT5l bmFibGUgPSBmYWxzZTsNCg0KV2h5IG1vZGlmeSBwZW5kaW5nLT5lbmFibGU/DQoNCj4gKwkJbXRr X2Rpc3BfZXhkbWFfbGF5ZXJfY29uZmlnKGV4ZG1hLCBzdGF0ZSwgY21kcV9wa3QpOw0KPiArCQlt dGtfZGlzcF9ibGVuZGVyX2xheWVyX2NvbmZpZyhibGVuZGVyLCBzdGF0ZSwgY21kcV9wa3QpOw0K PiArCQlyZXR1cm47DQo+ICsJfQ0KPiArDQo+ICsJbXRrX2Rpc3BfZXhkbWFfbGF5ZXJfY29uZmln KGV4ZG1hLCBzdGF0ZSwgY21kcV9wa3QpOw0KPiArDQo+ICsJbXRrX2Rpc3BfYmxlbmRlcl9sYXll cl9jb25maWcoYmxlbmRlciwgc3RhdGUsIGNtZHFfcGt0KTsNCj4gKw0KPiArCW10a19kaXNwX2V4 ZG1hX3N0YXJ0KGV4ZG1hLCBjbWRxX3BrdCk7DQo+ICsJbXRrX2Rpc3BfYmxlbmRlcl9zdGFydChi bGVuZGVyLCBjbWRxX3BrdCk7DQoNClRoZSBzdGFydCBmdW5jdGlvbiBpcyBkb25lIGluIG92bHN5 c19zdGFydCgpLCBzbyByZW1vdmUgdGhlc2Ugc3RhcnQgZnVuY3Rpb24uDQoNCj4gK30NCj4gKw0K PiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHcsDQo+ICsJCQkgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2 cmVmcmVzaCwNCj4gKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3Qg KmNtZHFfcGt0KQ0KPiArew0KPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJp diA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArCWludCBpOw0KPiArCWludCBibGVuZGVyX2lk eCA9IDA7DQo+ICsJYm9vbCBtb3N0X3RvcDsNCj4gKwlib29sIG1vc3RfYm90dG9tOw0KPiArDQo+ ICsJZm9yIChpID0gMDsgaSA8IHByaXYtPnBhdGhfc2l6ZTsgaSsrKSB7DQo+ICsJCWlmIChnZXRf dHlwZShwcml2LT5wYXRoW2ldKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIpIHsNCj4g KwkJCWJsZW5kZXJfaWR4Kys7DQo+ICsNCj4gKwkJCWlmIChwcml2LT5sYXllcl9uciA9PSAxKSB7 DQo+ICsJCQkJbW9zdF90b3AgICAgPSB0cnVlOwkvKlNJTkdMRV9CTEVOREVSOyovDQo+ICsJCQkJ bW9zdF9ib3R0b20gPSBmYWxzZTsJLypibGVuZGVyIGlzIExBU1RfQkxFTkRFUiovDQoNCk9ubHkg b25lIGJsZW5kZXIsIHNvIG1vc3RfYm90dG9tID0gdHJ1ZTsNCg0KPiArCQkJfSBlbHNlIGlmIChi bGVuZGVyX2lkeCA9PSAxKSB7DQo+ICsJCQkJbW9zdF90b3AgICAgPSBmYWxzZTsJLyogTk9OLVNJ TkdMRSBMQVlFUiAqLw0KPiArCQkJCW1vc3RfYm90dG9tID0gdHJ1ZTsJLyogRklSU1QgTEFZRVIg Ki8NCj4gKwkJCX0gZWxzZSBpZiAoYmxlbmRlcl9pZHggPT0gcHJpdi0+bGF5ZXJfbnIpIHsNCj4g KwkJCQltb3N0X3RvcCAgICA9IHRydWU7CS8qIE5PTi1TSU5HTEUgTEFZRVIgKi8NCj4gKwkJCQlt b3N0X2JvdHRvbSA9IGZhbHNlOwkvKiBMQVNUIExBWUVSICovDQo+ICsJCQl9IGVsc2Ugew0KPiAr CQkJCW1vc3RfdG9wID0gZmFsc2U7CS8qIE5PTi1TSU5HTEUgTEFZRVIgKi8NCj4gKwkJCQltb3N0 X2JvdHRvbSA9IGZhbHNlOwkvKiBPVEhFUiBMQVlFUiAqLw0KPiArCQkJfQ0KPiArDQo+ICsJCQlt dGtfZGlzcF9ibGVuZGVyX2NvbmZpZyhwcml2LT5vdmxfYWRhcHRvcl9jb21wW3ByaXYtPnBhdGhb aV1dLCB3LCBoLA0KPiArCQkJCQkJdnJlZnJlc2gsIGJwYywgbW9zdF90b3AsIG1vc3RfYm90dG9t LCBjbWRxX3BrdCk7DQoNCllvdSBjb3VsZCByZW1vdmUgdGhlIGlmLWVsc2UgY2hlY2tpbmcsIGFu ZCANCg0KbXRrX2Rpc3BfYmxlbmRlcl9jb25maWcocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2 LT5wYXRoW2ldXSwgdywgaCwNCiB2cmVmcmVzaCwgYnBjLCBibGVuZGVyX2lkeCA9PSBwcml2LT5s YXllcl9uciwNCgkJCWJsZW5kZXJfaWR4ID09IDEsIGNtZHFfcGt0KTsNCg0KPiArCQl9IGVsc2Ug aWYgKGdldF90eXBlKHByaXYtPnBhdGhbaV0pID09IE9WTFNZU19BREFQVE9SX1RZUEVfT1VUUFJP Qykgew0KPiArCQkJbXRrX2Rpc3Bfb3V0cHJvY19jb25maWcocHJpdi0+b3ZsX2FkYXB0b3JfY29t cFtwcml2LT5wYXRoW2ldXSwgdywgaCwNCj4gKwkJCQkJCXZyZWZyZXNoLCBicGMsIGNtZHFfcGt0 KTsNCj4gKwkJfQ0KPiArCX0NCj4gK30NCj4gKw0KPiAraW50IG10a19vdmxzeXNfYWRhcHRvcl9s YXllcl9jaGVjayhzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ICsJCQkJICAgdW5zaWduZWQgaW50IGlk eCwNCj4gKwkJCQkgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICptdGtfc3RhdGUpDQo+ICt7DQo+ ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSAmbXRrX3N0YXRlLT5iYXNlOw0KPiAr DQo+ICsJLyogQ2hlY2sgaWYgYW55IHVuc3VwcG9ydGVkIHJvdGF0aW9uIGlzIHNldCAqLw0KPiAr CWlmIChzdGF0ZS0+cm90YXRpb24gJiB+RFJNX01PREVfUk9UQVRFXzApDQo+ICsJCXJldHVybiAt RUlOVkFMOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5 c19hZGFwdG9yX3N0YXJ0KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRr X2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKwlp bnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3NpemU7IGkrKykgew0K PiArCQlpZiAoZ2V0X3R5cGUocHJpdi0+cGF0aFtpXSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQRV9F WERNQSkNCj4gKwkJCW10a19kaXNwX2V4ZG1hX3N0YXJ0KHByaXYtPm92bF9hZGFwdG9yX2NvbXBb cHJpdi0+cGF0aFtpXV0sIE5VTEwpOw0KPiArCQllbHNlIGlmIChnZXRfdHlwZShwcml2LT5wYXRo W2ldKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIpDQo+ICsJCQltdGtfZGlzcF9ibGVu ZGVyX3N0YXJ0KHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFtpXV0sIE5VTEwpOw0K PiArCQllbHNlDQo+ICsJCQltdGtfZGlzcF9vdXRwcm9jX3N0YXJ0KHByaXYtPm92bF9hZGFwdG9y X2NvbXBbcHJpdi0+cGF0aFtpXV0pOw0KPiArCX0NCg0KSSB0aGluayB0aGUgb3JkZXIgaW4gcGF0 aCBoYXMgc29tZSBydWxlLCBzbyB0aGlzIGZvci1sb29wIGNvdWxkIGJlIHNpbXBsaWZpZWQgYXMN Cg0KZm9yIChpID0gMDsgaSA8IChwcml2LT5wYXRoX3NpemUgLSAxKTsgaSArPSAyKSB7DQoJbXRr X2Rpc3BfZXhkbWFfc3RhcnQocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSwg TlVMTCk7DQoJbXRrX2Rpc3BfYmxlbmRlcl9zdGFydChwcml2LT5vdmxfYWRhcHRvcl9jb21wW3By aXYtPnBhdGhbaSArIDFdXSwgTlVMTCk7DQp9DQoNCm10a19kaXNwX291dHByb2Nfc3RhcnQocHJp di0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSk7DQoNCj4gK30NCj4gKw0KPiArdm9p ZCBtdGtfb3Zsc3lzX2FkYXB0b3Jfc3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJ c3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRl dik7DQo+ICsJaW50IGk7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXpl OyBpKyspIHsNCj4gKwkJaWYgKGdldF90eXBlKHByaXYtPnBhdGhbaV0pID09IE9WTFNZU19BREFQ VE9SX1RZUEVfRVhETUEpDQo+ICsJCQltdGtfZGlzcF9leGRtYV9zdG9wKHByaXYtPm92bF9hZGFw dG9yX2NvbXBbcHJpdi0+cGF0aFtpXV0sIE5VTEwpOw0KPiArCQllbHNlIGlmIChnZXRfdHlwZShw cml2LT5wYXRoW2ldKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX0JMRU5ERVIpDQo+ICsJCQltdGtf ZGlzcF9ibGVuZGVyX3N0b3AocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoW2ldXSwg TlVMTCk7DQo+ICsJCWVsc2UNCj4gKwkJCW10a19kaXNwX291dHByb2Nfc3RvcChwcml2LT5vdmxf YWRhcHRvcl9jb21wW3ByaXYtPnBhdGhbaV1dKTsNCj4gKwl9DQo+ICt9DQo+ICsNCj4gK2ludCBt dGtfb3Zsc3lzX2FkYXB0b3JfY2xrX2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRh KGRldik7DQo+ICsJc3RydWN0IGRldmljZSAqY29tcDsNCj4gKwlpbnQgcmV0ID0gMDsNCj4gKwlp bnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBPVkxTWVNfQURBUFRPUl9JRF9NQVg7IGkr Kykgew0KDQpXaHkgdGhpcyBmb3ItbG9vcCBpcyBub3QgYXMgYmVsb3c/DQoNCmZvciAoaSA9IDA7 IGkgPCBwcml2LT5wYXRoX3NpemU7IGkrKykgew0KDQo+ICsJCWNvbXAgPSBwcml2LT5vdmxfYWRh cHRvcl9jb21wW2ldOw0KPiArDQo+ICsJCWlmICghY29tcCkNCj4gKwkJCWNvbnRpbnVlOw0KPiAr DQo+ICsJCWlmIChnZXRfdHlwZShpKSA9PSBPVkxTWVNfQURBUFRPUl9UWVBFX0VYRE1BKQ0KPiAr CQkJcmV0ID0gbXRrX2Rpc3BfZXhkbWFfY2xrX2VuYWJsZShjb21wKTsNCj4gKwkJZWxzZSBpZiAo Z2V0X3R5cGUoaSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQRV9CTEVOREVSKQ0KPiArCQkJcmV0ID0g bXRrX2Rpc3BfYmxlbmRlcl9jbGtfZW5hYmxlKGNvbXApOw0KPiArCQllbHNlDQo+ICsJCQlyZXQg PSBtdGtfZGlzcF9vdXRwcm9jX2Nsa19lbmFibGUoY29tcCk7DQo+ICsNCj4gKwkJaWYgKHJldCkg ew0KPiArCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZW5hYmxlIGNsb2NrICVkLCBlcnIgJWRc biIsIGksIHJldCk7DQo+ICsJCQlnb3RvIGNsa19lcnI7DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4g KwlyZXR1cm4gcmV0Ow0KPiArDQo+ICtjbGtfZXJyOg0KPiArCXdoaWxlICgtLWkgPj0gMCkgew0K PiArCQljb21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtpXTsNCj4gKwkJaWYgKCFjb21wKQ0K PiArCQkJY29udGludWU7DQo+ICsJCWlmIChnZXRfdHlwZShpKSA9PSBPVkxTWVNfQURBUFRPUl9U WVBFX0VYRE1BKQ0KPiArCQkJbXRrX2Rpc3BfZXhkbWFfY2xrX2Rpc2FibGUoY29tcCk7DQo+ICsJ CWVsc2UgaWYgKGdldF90eXBlKGkpID09IE9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUikNCj4g KwkJCW10a19kaXNwX2JsZW5kZXJfY2xrX2Rpc2FibGUoY29tcCk7DQo+ICsJCWVsc2UNCj4gKwkJ CW10a19kaXNwX291dHByb2NfY2xrX2Rpc2FibGUoY29tcCk7DQo+ICsJfQ0KPiArCWkgPSBPVkxT WVNfQURBUFRPUl9JRF9NQVg7DQoNCldoeSBhc3NpZ24gaSBoZXJlPw0KDQo+ICsNCj4gKwlyZXR1 cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9jbGtfZGlzYWJs ZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19h ZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJc3RydWN0IGRldmljZSAq Y29tcDsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBPVkxTWVNfQURBUFRP Ul9JRF9NQVg7IGkrKykgew0KPiArCQljb21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtpXTsN Cj4gKw0KPiArCQlpZiAoIWNvbXApDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlpZiAoZ2V0 X3R5cGUoaSkgPT0gT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSkNCj4gKwkJCW10a19kaXNwX2V4 ZG1hX2Nsa19kaXNhYmxlKGNvbXApOw0KPiArCQllbHNlIGlmIChnZXRfdHlwZShpKSA9PSBPVkxT WVNfQURBUFRPUl9UWVBFX0JMRU5ERVIpDQo+ICsJCQltdGtfZGlzcF9ibGVuZGVyX2Nsa19kaXNh YmxlKGNvbXApOw0KPiArCQllbHNlDQo+ICsJCQltdGtfZGlzcF9vdXRwcm9jX2Nsa19kaXNhYmxl KGNvbXApOw0KPiArCX0NCj4gK30NCj4gKw0KPiArdW5zaWduZWQgaW50IG10a19vdmxzeXNfYWRh cHRvcl9sYXllcl9ucihzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19k aXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4g KwlyZXR1cm4gcHJpdi0+bGF5ZXJfbnI7DQo+ICt9DQo+ICsNCj4gK3N0cnVjdCBkZXZpY2UgKm10 a19vdmxzeXNfYWRhcHRvcl9kbWFfZGV2X2dldChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRh KGRldik7DQo+ICsNCj4gKwlyZXR1cm4gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRo WzBdXTsNCj4gK30NCj4gKw0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfcmVnaXN0ZXJfdmJs YW5rX2NiKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAoKnZibGFua19jYikodm9pZCAqKSwNCj4g KwkJCQkJICAgdm9pZCAqdmJsYW5rX2NiX2RhdGEpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNw X292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwlt dGtfZGlzcF9vdXRwcm9jX3JlZ2lzdGVyX3ZibGFua19jYihwcml2LT5vdmxfYWRhcHRvcl9jb21w W3ByaXYtPnBhdGhbcHJpdi0+cGF0aF9zaXplIC0gMV1dLA0KPiArCQkJCQkgICAgdmJsYW5rX2Ni LCB2YmxhbmtfY2JfZGF0YSk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9y X3VucmVnaXN0ZXJfdmJsYW5rX2NiKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gK3sNCj4gKwlzdHJ1 Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gKwlzdHJ1Y3QgZGV2aWNlICpjb21wID0gcHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5w YXRoW3ByaXYtPnBhdGhfc2l6ZSAtIDFdXTsNCj4gKw0KPiArCW10a19kaXNwX291dHByb2NfdW5y ZWdpc3Rlcl92YmxhbmtfY2IoY29tcCk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5c19h ZGFwdG9yX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRldmljZSAqZGV2KQ0KPiArew0KPiArCXN0cnVj dCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0K PiArDQo+ICsJbXRrX2Rpc3Bfb3V0cHJvY19lbmFibGVfdmJsYW5rKHByaXYtPm92bF9hZGFwdG9y X2NvbXBbcHJpdi0+cGF0aFtwcml2LT5wYXRoX3NpemUgLSAxXV0pOw0KPiArfQ0KPiArDQo+ICt2 b2lkIG10a19vdmxzeXNfYWRhcHRvcl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZGV2aWNlICpkZXYp DQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dl dF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwltdGtfZGlzcF9vdXRwcm9jX2Rpc2FibGVfdmJsYW5r KHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFtwcml2LT5wYXRoX3NpemUgLSAxXV0p Ow0KPiArfQ0KPiArDQo+ICt1MzIgbXRrX292bHN5c19hZGFwdG9yX2dldF9ibGVuZF9tb2Rlcyhz dHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFw dG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJc3RydWN0IGRldmljZSAqY29t cDsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3NpemU7 IGkrKykNCj4gKwkJaWYgKGdldF90eXBlKHByaXYtPnBhdGhbaV0pID09IE9WTFNZU19BREFQVE9S X1RZUEVfQkxFTkRFUikgew0KPiArCQkJY29tcCA9IHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJp di0+cGF0aFtpXV07DQo+ICsJCQlyZXR1cm4gbXRrX2Rpc3BfYmxlbmRlcl9nZXRfYmxlbmRfbW9k ZXMoY29tcCk7DQo+ICsJCX0NCg0KSW4gbXRrX292bHN5c19hZGFwdG9yX2dldF9mb3JtYXRzKCks IHlvdSBoYXZlIGFzc3VtZSB0aGF0IHByaXYtPm92bF9hZGFwdG9yX2NvbXBbcHJpdi0+cGF0aFsw XV0gaXMgZXhkbWEsDQpzbyB5b3UgY291bGQgYXNzdW1lIHRoYXQgcHJpdi0+b3ZsX2FkYXB0b3Jf Y29tcFtwcml2LT5wYXRoWzFdXSBpcyBibGVuZGVyLg0KVGhlbg0KDQpyZXR1cm4gbXRrX2Rpc3Bf YmxlbmRlcl9nZXRfYmxlbmRfbW9kZXMocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRo WzFdXSk7DQoNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtjb25zdCB1MzIgKm10 a19vdmxzeXNfYWRhcHRvcl9nZXRfZm9ybWF0cyhzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRh KGRldik7DQo+ICsNCj4gKwlyZXR1cm4gbXRrX2Rpc3BfZXhkbWFfZ2V0X2Zvcm1hdHMocHJpdi0+ b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoWzBdXSk7DQo+ICt9DQo+ICsNCj4gK3NpemVfdCBt dGtfb3Zsc3lzX2FkYXB0b3JfZ2V0X251bV9mb3JtYXRzKHN0cnVjdCBkZXZpY2UgKmRldikNCj4g K3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gKw0KPiArCXJldHVybiBtdGtfZGlzcF9leGRtYV9nZXRfbnVtX2Zvcm1h dHMocHJpdi0+b3ZsX2FkYXB0b3JfY29tcFtwcml2LT5wYXRoWzBdXSk7DQo+ICt9DQo+ICsNCj4g K3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2FkZF9jb21wKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IG10a19tdXRleCAqbXV0ZXgpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19h ZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsJaW50IGk7DQo+ICsNCj4g Kwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+cGF0aF9zaXplOyBpKyspDQo+ICsJCW10a19tdXRleF9h ZGRfY29tcChtdXRleCwgZ2V0X2RkcF9jb21wX2lkKHByaXYtPnBhdGhbaV0pKTsNCj4gK30NCj4g Kw0KPiArdm9pZCBtdGtfb3Zsc3lzX2FkYXB0b3JfcmVtb3ZlX2NvbXAoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgbXRrX211dGV4ICptdXRleCkNCj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bf b3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKwlpbnQgaTsN Cj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5wYXRoX3NpemU7IGkrKykNCj4gKwkJbXRr X211dGV4X3JlbW92ZV9jb21wKG11dGV4LCBnZXRfZGRwX2NvbXBfaWQocHJpdi0+cGF0aFtpXSkp Ow0KPiArfQ0KPiArDQo+ICt2b2lkIG10a19vdmxzeXNfYWRhcHRvcl9jb25uZWN0KHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbW1zeXNfZGV2LCB1bnNpZ25lZCBpbnQgbmV4dCkN Cj4gK3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBwcml2 LT5wYXRoX3NpemUgLSAxOyBpKyspDQo+ICsJCW10a19tbXN5c19kZHBfY29ubmVjdChtbXN5c19k ZXYsIGdldF9kZHBfY29tcF9pZChwcml2LT5wYXRoW2ldKSwNCj4gKwkJCQkgICAgICBnZXRfZGRw X2NvbXBfaWQocHJpdi0+cGF0aFtpICsgMV0pKTsNCj4gKw0KPiArCW10a19tbXN5c19kZHBfY29u bmVjdChtbXN5c19kZXYsIGdldF9kZHBfY29tcF9pZChwcml2LT5wYXRoW2ldKSwgbmV4dCk7DQo+ ICt9DQo+ICsNCj4gK3ZvaWQgbXRrX292bHN5c19hZGFwdG9yX2Rpc2Nvbm5lY3Qoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptbXN5c19kZXYsIHVuc2lnbmVkIGludCBuZXh0KQ0K PiArew0KPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdiA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOw0KPiArCWludCBpOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHByaXYt PnBhdGhfc2l6ZSAtIDE7IGkrKykNCj4gKwkJbXRrX21tc3lzX2RkcF9kaXNjb25uZWN0KG1tc3lz X2RldiwgZ2V0X2RkcF9jb21wX2lkKHByaXYtPnBhdGhbaV0pLA0KPiArCQkJCQkgZ2V0X2RkcF9j b21wX2lkKHByaXYtPnBhdGhbaSArIDFdKSk7DQo+ICsNCj4gKwltdGtfbW1zeXNfZGRwX2Rpc2Nv bm5lY3QobW1zeXNfZGV2LCBnZXRfZGRwX2NvbXBfaWQocHJpdi0+cGF0aFtpXSksIG5leHQpOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IG92bHN5c19hZGFwdG9yX2NvbXBfZ2V0X2lkKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9ub2RlICpub2RlLA0KPiArCQkJCSAgICAgIGVu dW0gbXRrX292bHN5c19hZGFwdG9yX2NvbXBfdHlwZSB0eXBlLA0KPiArCQkJCSAgICAgIGVudW0g bXRrX2RkcF9jb21wX2lkICpjb21wX2lkKQ0KPiArew0KPiArCWludCBhbGlhc19pZCA9IG9mX2Fs aWFzX2dldF9pZChub2RlLCBwcml2YXRlX2NvbXBfc3RlbVt0eXBlXSk7DQo+ICsJaW50IGk7DQo+ ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjb21wX21hdGNoZXMpOyBpKyspDQo+ ICsJCWlmIChjb21wX21hdGNoZXNbaV0udHlwZSA9PSB0eXBlICYmDQo+ICsJCSAgICBjb21wX21h dGNoZXNbaV0uYWxpYXNfaWQgPT0gYWxpYXNfaWQpIHsNCj4gKwkJCSpjb21wX2lkID0gY29tcF9t YXRjaGVzW2ldLmNvbXBfaWQ7DQo+ICsJCQlyZXR1cm4gaTsNCj4gKwkJfQ0KPiArCWRldl93YXJu KGRldiwgIkZhaWxlZCB0byBnZXQgaWQuIHR5cGU6ICVkLCBhbGlhczogJWRcbiIsIHR5cGUsIGFs aWFzX2lkKTsNCj4gKwlyZXR1cm4gLUVJTlZBTDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX292bHN5c19hZGFwdG9yX2NvbXBfZHRfaWRzW10gPSB7 DQo+ICsJew0KPiArCQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTYtZXhkbWEiLA0KPiAr CQkuZGF0YSA9ICh2b2lkICopT1ZMU1lTX0FEQVBUT1JfVFlQRV9FWERNQSwNCj4gKwl9LCB7DQo+ ICsJCS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Ni1ibGVuZGVyIiwNCj4gKwkJLmRhdGEg PSAodm9pZCAqKU9WTFNZU19BREFQVE9SX1RZUEVfQkxFTkRFUiwNCj4gKwl9LCB7DQo+ICsJCS5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Ni1vdXRwcm9jIiwNCj4gKwkJLmRhdGEgPSAodm9p ZCAqKU9WTFNZU19BREFQVE9SX1RZUEVfT1VUUFJPQywNCj4gKwl9LA0KPiArCXt9LA0KPiArfTsN Cj4gKw0KPiArc3RhdGljIGludCBvdmxzeXNfYWRhcHRvcl9jb21wX2luaXQoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgY29tcG9uZW50X21hdGNoICoqbWF0Y2gpDQo+ICt7DQo+ICsJc3RydWN0 IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ ICsJc3RydWN0IGRldmljZV9ub2RlICpub2RlLCAqcGFyZW50Ow0KPiArCXN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKmNvbXBfcGRldjsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCXBhcmVudCA9IGRldi0+ cGFyZW50LT5wYXJlbnQtPm9mX25vZGUtPnBhcmVudDsNCj4gKw0KPiArCWZvcl9lYWNoX2NoaWxk X29mX25vZGUocGFyZW50LCBub2RlKSB7DQoNCmZvcl9lYWNoX2NoaWxkX29mX25vZGVfc2NvcGVk KCkNCg0KPiArCQljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZDsNCj4gKwkJZW51bSBt dGtfb3Zsc3lzX2FkYXB0b3JfY29tcF90eXBlIHR5cGU7DQo+ICsJCWVudW0gbXRrX2RkcF9jb21w X2lkIGNvbXBfaWQ7DQoNCmNvbXBfaWQgaXMgdXNlbGVzcywgZHJvcCBpdC4NCg0KPiArCQlpbnQg aWQ7DQo+ICsJCWJvb2wgZm91bmQgPSBmYWxzZTsNCj4gKw0KPiArCQlvZl9pZCA9IG9mX21hdGNo X25vZGUobXRrX292bHN5c19hZGFwdG9yX2NvbXBfZHRfaWRzLCBub2RlKTsNCj4gKwkJaWYgKCFv Zl9pZCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCWlmICghb2ZfZGV2aWNlX2lzX2F2YWls YWJsZShub2RlKSkgew0KPiArCQkJZGV2X2RiZyhkZXYsICJTa2lwcGluZyBkaXNhYmxlZCBjb21w b25lbnQgJXBPRlxuIiwNCj4gKwkJCQlub2RlKTsNCj4gKwkJCWNvbnRpbnVlOw0KPiArCQl9DQo+ ICsNCj4gKwkJdHlwZSA9IChlbnVtIG10a19vdmxzeXNfYWRhcHRvcl9jb21wX3R5cGUpKHVpbnRw dHJfdClvZl9pZC0+ZGF0YTsNCj4gKwkJaWQgPSBvdmxzeXNfYWRhcHRvcl9jb21wX2dldF9pZChk ZXYsIG5vZGUsIHR5cGUsICZjb21wX2lkKTsNCj4gKwkJaWYgKGlkIDwgMCkgew0KPiArCQkJZGV2 X3dhcm4oZGV2LCAiU2tpcHBpbmcgdW5rbm93biBjb21wb25lbnQgJXBPRlxuIiwNCj4gKwkJCQkg bm9kZSk7DQo+ICsJCQljb250aW51ZTsNCj4gKwkJfQ0KPiArDQo+ICsJCWZvciAoaSA9IDA7IGkg PCBwcml2LT5wYXRoX3NpemU7IGkrKykNCj4gKwkJCWlmIChwcml2LT5wYXRoW2ldID09IGlkKQ0K PiArCQkJCWZvdW5kID0gdHJ1ZTsNCj4gKw0KPiArCQlpZiAoIWZvdW5kKQ0KPiArCQkJY29udGlu dWU7DQo+ICsNCj4gKwkJY29tcF9wZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShub2RlKTsN Cj4gKwkJaWYgKCFjb21wX3BkZXYpDQo+ICsJCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsNCj4gKw0K PiArCQlwcml2LT5vdmxfYWRhcHRvcl9jb21wW2lkXSA9ICZjb21wX3BkZXYtPmRldjsNCj4gKw0K PiArCQlkcm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZChkZXYsIG1hdGNoLCBjb21wb25lbnRfY29t cGFyZV9vZiwgbm9kZSk7DQo+ICsJCWRldl9kYmcoZGV2LCAiQWRkaW5nIGNvbXBvbmVudCBtYXRj aCBmb3IgJXBPRlxuIiwgbm9kZSk7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKCEqbWF0Y2gpIHsNCj4g KwkJZGV2X2VycihkZXYsICJObyBtYXRjaCBkZXZpY2UgZm9yIG92bHN5c19hZGFwdG9yXG4iKTsN Cj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ ICsNCj4gK3N0YXRpYyBpbnQgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3JfY29tcF9iaW5kKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLA0KPiArCQkJCQkgICAgIHZvaWQg KmRhdGEpDQo+ICt7DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0g ZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICsNCj4gKwlpZiAoIXByaXYtPmNoaWxkcmVuX2JvdW5k KQ0KPiArCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0K PiArDQo+ICtzdGF0aWMgdm9pZCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9jb21wX3VuYmluZChz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwNCj4gKwkJCQkJCXZvaWQg KmRhdGEpDQo+ICt7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50 X29wcyBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9jb21wX29wcyA9IHsNCj4gKwkuYmluZAk9IG10 a19kaXNwX292bHN5c19hZGFwdG9yX2NvbXBfYmluZCwNCj4gKwkudW5iaW5kID0gbXRrX2Rpc3Bf b3Zsc3lzX2FkYXB0b3JfY29tcF91bmJpbmQsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IG10 a19kaXNwX292bHN5c19hZGFwdG9yX21hc3Rlcl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikNCj4g K3sNCj4gKwlzdHJ1Y3QgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3IgKnByaXYgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsNCj4gKwlpbnQgcmV0LCBpOw0KPiArCXVuc2lnbmVkIGludCBsYXllcl9uciA9 IDA7DQo+ICsNCj4gKwlyZXQgPSBjb21wb25lbnRfYmluZF9hbGwoZGV2LCBwcml2LT5tbXN5c19k ZXYpOw0KPiArCWlmIChyZXQpDQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAi Y29tcG9uZW50X2JpbmRfYWxsIGZhaWxlZCFcbiIpOw0KPiArDQo+ICsJcHJpdi0+Y2hpbGRyZW5f Ym91bmQgPSB0cnVlOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHByaXYtPnBhdGhfc2l6ZTsg aSsrKQ0KPiArCQlpZiAoY29tcF9tYXRjaGVzW3ByaXYtPnBhdGhbaV1dLnR5cGUgPT0gT1ZMU1lT X0FEQVBUT1JfVFlQRV9CTEVOREVSKQ0KPiArCQkJbGF5ZXJfbnIrKzsNCg0KSXQgc2VlbXMgeW91 IGNvdWxkIGRyb3AgbGF5ZXJfbnIuDQpBc3NpZ24gcHJpdi0+bGF5ZXJfbnIgdG8gMCBmaXJzdCwg YW5kIHRoZW4gcHJpdi0+bGF5ZXJfbnIrKy4NCg0KPiArCXByaXYtPmxheWVyX25yID0gbGF5ZXJf bnI7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgbXRrX2Rp c3Bfb3Zsc3lzX2FkYXB0b3JfbWFzdGVyX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7 DQo+ICsJc3RydWN0IG10a19kaXNwX292bHN5c19hZGFwdG9yICpwcml2ID0gZGV2X2dldF9kcnZk YXRhKGRldik7DQo+ICsNCj4gKwlwcml2LT5jaGlsZHJlbl9ib3VuZCA9IGZhbHNlOw0KPiArfQ0K PiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9tYXN0ZXJfb3BzIG10a19kaXNw X292bHN5c19hZGFwdG9yX21hc3Rlcl9vcHMgPSB7DQo+ICsJLmJpbmQJCT0gbXRrX2Rpc3Bfb3Zs c3lzX2FkYXB0b3JfbWFzdGVyX2JpbmQsDQo+ICsJLnVuYmluZAkJPSBtdGtfZGlzcF9vdmxzeXNf YWRhcHRvcl9tYXN0ZXJfdW5iaW5kLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGludCBtdGtfZGlz cF9vdmxzeXNfYWRhcHRvcl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAr ew0KPiArCXN0cnVjdCBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvciAqcHJpdjsNCj4gKwlzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Ow0KPiArCXN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKm1h dGNoID0gTlVMTDsNCj4gKwlzdHJ1Y3QgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhICpvdmxzeXNf cHJpdjsgLy9tdGtfZHJtX292bHN5c19wcml2YXRlDQoNClJlbW92ZSB0aGUgY29tbWVudC4NCg0K PiArCWludCByZXQ7DQo+ICsNCj4gKwlwcml2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpw cml2KSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFwcml2KQ0KPiArCQlyZXR1cm4gLUVOT01FTTsN Cj4gKw0KPiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHByaXYpOw0KPiArDQo+ICsJb3Zs c3lzX3ByaXYgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsNCj4gKwlwcml2LT5tbXN5c19kZXYg PSBvdmxzeXNfcHJpdi0+bW1zeXNfZGV2Ow0KPiArCXByaXYtPm1heF9zaXplID0gT1ZMU1lTX0FE QVBUT1JfRFJJVkVSX0RBVEFfTUFYX1NJWkU7DQo+ICsNCj4gKwlpZiAob3Zsc3lzX3ByaXYtPnVz ZV9wYXRoID09IENSVENfTUFJTikgew0KPiArCQlwcml2LT5wYXRoID0gbXQ4MTk2X210a19vdmxf bWFpbjsNCj4gKwkJcHJpdi0+cGF0aF9zaXplID0gQVJSQVlfU0laRShtdDgxOTZfbXRrX292bF9t YWluKTsNCj4gKwl9IGVsc2UgaWYgKG92bHN5c19wcml2LT51c2VfcGF0aCA9PSBDUlRDX0VYVCkg ew0KPiArCQlwcml2LT5wYXRoID0gbXQ4MTk2X210a19vdmxfZXh0Ow0KPiArCQlwcml2LT5wYXRo X3NpemUgPSBBUlJBWV9TSVpFKG10ODE5Nl9tdGtfb3ZsX2V4dCk7DQo+ICsJfSBlbHNlIGlmIChv dmxzeXNfcHJpdi0+dXNlX3BhdGggPT0gQ1JUQ19USElSRCkgew0KPiArCQlwcml2LT5wYXRoID0g bXQ4MTk2X210a19vdmxfdGhpcmQ7DQo+ICsJCXByaXYtPnBhdGhfc2l6ZSA9IEFSUkFZX1NJWkUo bXQ4MTk2X210a19vdmxfdGhpcmQpOw0KPiArCX0NCj4gKw0KPiArCXJldCA9IG92bHN5c19hZGFw dG9yX2NvbXBfaW5pdChkZXYsICZtYXRjaCk7DQo+ICsJaWYgKHJldCA8IDApDQo+ICsJCXJldHVy biByZXQ7DQo+ICsNCj4gKwljb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwgJm10 a19kaXNwX292bHN5c19hZGFwdG9yX21hc3Rlcl9vcHMsIG1hdGNoKTsNCj4gKw0KPiArCXBtX3J1 bnRpbWVfZW5hYmxlKGRldik7DQo+ICsNCj4gKwlyZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJm10 a19kaXNwX292bHN5c19hZGFwdG9yX2NvbXBfb3BzKTsNCj4gKwlpZiAocmV0ICE9IDApIHsNCj4g KwkJcG1fcnVudGltZV9kaXNhYmxlKGRldik7DQo+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRv IGFkZCBjb21wb25lbnQ6ICVkXG4iLCByZXQpOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiByZXQ7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIG10a19kaXNwX292bHN5c19hZGFwdG9yX3JlbW92 ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiArew0KPiArCWNvbXBvbmVudF9tYXN0 ZXJfZGVsKCZwZGV2LT5kZXYsICZtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9tYXN0ZXJfb3BzKTsN Cj4gKwlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7DQo+ICt9DQo+ICsNCj4gK3N0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3Bfb3Zsc3lzX2FkYXB0b3JfZHJpdmVyID0gew0KPiAr CS5wcm9iZQkJPSBtdGtfZGlzcF9vdmxzeXNfYWRhcHRvcl9wcm9iZSwNCj4gKwkucmVtb3ZlCQk9 IG10a19kaXNwX292bHN5c19hZGFwdG9yX3JlbW92ZSwNCj4gKwkuZHJpdmVyCQk9IHsNCj4gKwkJ Lm5hbWUJPSAibWVkaWF0ZWstZGlzcC1vdmxzeXMtYWRhcHRvciIsDQo+ICsJCS5vd25lcgk9IFRI SVNfTU9EVUxFLA0KPiArCX0sDQo+ICt9Ow0KPiArDQo+ICtNT0RVTEVfQVVUSE9SKCJOYW5jeSBM aW4gPG5hbmN5LmxpbkBtZWRpYXRlay5jb20+Iik7DQo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1l ZGlhVGVrIE92bHN5cyBBZGFwdG9yIERyaXZlciIpOw0KPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIp Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiBpbmRleCBmN2I5Yzdh OTgyYTcuLjA2MzkyMDFlMmU5MiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZHJ2LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZHJ2LmMNCj4gQEAgLTQ1Nyw2ICs0NTcsMjcgQEAgc3RhdGljIGJvb2wgbXRrX2RybV9maW5k X21tc3lzX2NvbXAoc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSwgaW50IGNvbXBfaWQN Cj4gIAlyZXR1cm4gZmFsc2U7DQo+ICB9DQo+ICANCj4gK3N0YXRpYyBpbnQgbXRrX2RybV9tbXN5 c19jb21wX2luX3BhdGgoc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSwgaW50IGNvbXBf aWQpDQo+ICt7DQo+ICsJY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAqZHJ2X2Rh dGEgPSBwcml2YXRlLT5kYXRhOw0KPiArCWludCBpOw0KPiArDQo+ICsJaWYgKGRydl9kYXRhLT5t YWluX3BhdGgpDQo+ICsJCWZvciAoaSA9IDA7IGkgPCBkcnZfZGF0YS0+bWFpbl9sZW47IGkrKykN Cj4gKwkJCWlmIChkcnZfZGF0YS0+bWFpbl9wYXRoW2ldID09IGNvbXBfaWQpDQo+ICsJCQkJcmV0 dXJuIENSVENfTUFJTjsNCj4gKwlpZiAoZHJ2X2RhdGEtPmV4dF9wYXRoKQ0KPiArCQlmb3IgKGkg PSAwOyBpIDwgZHJ2X2RhdGEtPmV4dF9sZW47IGkrKykNCj4gKwkJCWlmIChkcnZfZGF0YS0+ZXh0 X3BhdGhbaV0gPT0gY29tcF9pZCkNCj4gKwkJCQlyZXR1cm4gQ1JUQ19FWFQ7DQo+ICsJaWYgKGRy dl9kYXRhLT50aGlyZF9wYXRoKQ0KPiArCQlmb3IgKGkgPSAwOyBpIDwgZHJ2X2RhdGEtPnRoaXJk X2xlbjsgaSsrKQ0KPiArCQkJaWYgKGRydl9kYXRhLT50aGlyZF9wYXRoW2ldID09IGNvbXBfaWQp DQo+ICsJCQkJcmV0dXJuIENSVENfVEhJUkQ7DQo+ICsNCg0KVGhpcyBmdW5jdGlvbiBpcyBhbG1v c3QgbGlrZSBtdGtfZHJtX2ZpbmRfbW1zeXNfY29tcCgpLCB0cnkgdG8gbWVyZ2UgdGhlbS4NCg0K PiArCXJldHVybiAtRUlOVkFMOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50IG10a19kcm1fa21z X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkNCj4gIHsNCj4gIAlzdHJ1Y3QgbXRrX2RybV9w cml2YXRlICpwcml2YXRlID0gZHJtLT5kZXZfcHJpdmF0ZTsNCj4gQEAgLTExMjIsNiArMTE0Myw1 NyBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikNCj4gIAkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsICZv dmxfYWRhcHRvci0+ZGV2KTsNCj4gIAl9DQo+ICANCj4gKwlpZiAobXRrX2RybV9maW5kX21tc3lz X2NvbXAocHJpdmF0ZSwgRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IwKSkgew0KPiAr CQlzdHJ1Y3QgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhIG92bHN5c19wcml2Ow0KPiArDQo+ICsJ CW92bHN5c19wcml2Lm1tc3lzX2RldiA9IHByaXZhdGUtPm1tc3lzX2RldjsNCj4gKwkJb3Zsc3lz X3ByaXYudXNlX3BhdGggPQ0KPiArCQltdGtfZHJtX21tc3lzX2NvbXBfaW5fcGF0aChwcml2YXRl LCBERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjApOw0KPiArCQlvdmxfYWRhcHRvciA9 DQo+ICsJCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0YShkZXYsICJtZWRpYXRlay1kaXNw LW92bHN5cy1hZGFwdG9yIiwNCj4gKwkJCQkJCSAgICAgIFBMQVRGT1JNX0RFVklEX0FVVE8sDQo+ ICsJCQkJCQkgICAgICAodm9pZCAqKSZvdmxzeXNfcHJpdiwNCj4gKwkJCQkJCSAgICAgIHNpemVv ZihzdHJ1Y3QgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhKSk7DQo+ICsJCXByaXZhdGUtPmRkcF9j b21wW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMF0uZGV2ID0gJm92bF9hZGFwdG9y LT5kZXY7DQo+ICsJCW10a19kZHBfY29tcF9pbml0KE5VTEwsICZwcml2YXRlLT5kZHBfY29tcFtE RFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjBdLA0KPiArCQkJCSAgRERQX0NPTVBPTkVO VF9EUk1fT1ZMU1lTX0FEQVBUT1IwKTsNCj4gKwkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZt YXRjaCwgY29tcGFyZV9kZXYsICZvdmxfYWRhcHRvci0+ZGV2KTsNCj4gKwl9DQo+ICsNCj4gKwlp ZiAobXRrX2RybV9maW5kX21tc3lzX2NvbXAocHJpdmF0ZSwgRERQX0NPTVBPTkVOVF9EUk1fT1ZM U1lTX0FEQVBUT1IxKSkgew0KPiArCQlzdHJ1Y3QgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhIG92 bHN5c19wcml2OyAvL210a19kcm1fb3Zsc3lzX3ByaXZhdGUNCj4gKw0KPiArCQlvdmxzeXNfcHJp di5tbXN5c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ICsJCW92bHN5c19wcml2LnVzZV9w YXRoID0NCj4gKwkJbXRrX2RybV9tbXN5c19jb21wX2luX3BhdGgocHJpdmF0ZSwgRERQX0NPTVBP TkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IxKTsNCj4gKwkJb3ZsX2FkYXB0b3IgPQ0KPiArCQkJcGxh dGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2RhdGEoZGV2LCAibWVkaWF0ZWstZGlzcC1vdmxzeXMtYWRh cHRvciIsDQo+ICsJCQkJCQkgICAgICBQTEFURk9STV9ERVZJRF9BVVRPLA0KPiArCQkJCQkJICAg ICAgKHZvaWQgKikmb3Zsc3lzX3ByaXYsDQo+ICsJCQkJCQkgICAgICBzaXplb2Yoc3RydWN0IG10 a19vdmxzeXNfcGxhdGZvcm1fZGF0YSkpOw0KPiArCQlwcml2YXRlLT5kZHBfY29tcFtERFBfQ09N UE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjFdLmRldiA9ICZvdmxfYWRhcHRvci0+ZGV2Ow0KPiAr CQltdGtfZGRwX2NvbXBfaW5pdChOVUxMLCAmcHJpdmF0ZS0+ZGRwX2NvbXBbRERQX0NPTVBPTkVO VF9EUk1fT1ZMU1lTX0FEQVBUT1IxXSwNCj4gKwkJCQkgIEREUF9DT01QT05FTlRfRFJNX09WTFNZ U19BREFQVE9SMSk7DQo+ICsJCWNvbXBvbmVudF9tYXRjaF9hZGQoZGV2LCAmbWF0Y2gsIGNvbXBh cmVfZGV2LCAmb3ZsX2FkYXB0b3ItPmRldik7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKG10a19kcm1f ZmluZF9tbXN5c19jb21wKHByaXZhdGUsIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9S MikpIHsNCj4gKwkJc3RydWN0IG10a19vdmxzeXNfcGxhdGZvcm1fZGF0YSBvdmxzeXNfcHJpdjsN Cj4gKw0KPiArCQlvdmxzeXNfcHJpdi5tbXN5c19kZXYgPSBwcml2YXRlLT5tbXN5c19kZXY7DQo+ ICsJCW92bHN5c19wcml2LnVzZV9wYXRoID0NCj4gKwkJCW10a19kcm1fbW1zeXNfY29tcF9pbl9w YXRoKHByaXZhdGUsIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMik7DQo+ICsJCW92 bF9hZGFwdG9yID0NCj4gKwkJCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9kYXRhKGRldiwgIm1l ZGlhdGVrLWRpc3Atb3Zsc3lzLWFkYXB0b3IiLA0KPiArCQkJCQkJICAgICAgUExBVEZPUk1fREVW SURfQVVUTywNCj4gKwkJCQkJCSAgICAgICh2b2lkICopJm92bHN5c19wcml2LA0KPiArCQkJCQkJ ICAgICAgc2l6ZW9mKHN0cnVjdCAgbXRrX292bHN5c19wbGF0Zm9ybV9kYXRhKSk7DQo+ICsJCXBy aXZhdGUtPmRkcF9jb21wW0REUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMl0uZGV2ID0g Jm92bF9hZGFwdG9yLT5kZXY7DQo+ICsJCW10a19kZHBfY29tcF9pbml0KE5VTEwsICZwcml2YXRl LT5kZHBfY29tcFtERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjJdLA0KPiArCQkJCSAg RERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1IyKTsNCj4gKwkJY29tcG9uZW50X21hdGNo X2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsICZvdmxfYWRhcHRvci0+ZGV2KTsNCj4gKwl9 DQoNClRoZSBjb2RlIGFib3V0IHRoZXNlIHRocmVlIHBhdGggYXJlIGFsbW9zdCB0aGUgc2FtZS4N ClRyeSB0byBtZXJnZSB0aGVtLg0KWW91IGNvdWxkIHVzZSBvbmUgZnVuY3Rpb24gd2l0aCBkaWZm ZXJlbnQgcGFyYW1ldGVyDQooc3VjaCBhcyBERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRP UjAsIEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMSwgRERQX0NPTVBPTkVOVF9EUk1f T1ZMU1lTX0FEQVBUT1IyKS4NCg0KPiArDQo+ICAJLyogSXRlcmF0ZSBvdmVyIHNpYmxpbmcgRElT UCBmdW5jdGlvbiBibG9ja3MgKi8NCj4gIAlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKHBoYW5kbGUt PnBhcmVudCwgbm9kZSkgew0KPiAgCQllbnVtIG10a19kZHBfY29tcF90eXBlIGNvbXBfdHlwZTsN Cj4gQEAgLTEyODMsNiArMTM1NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICog Y29uc3QgbXRrX2RybV9kcml2ZXJzW10gPSB7DQo+ICAJJm10a19kaXNwX291dHByb2NfZHJpdmVy LA0KPiAgCSZtdGtfZGlzcF9vdmxfYWRhcHRvcl9kcml2ZXIsDQo+ICAJJm10a19kaXNwX292bF9k cml2ZXIsDQo+ICsJJm10a19kaXNwX292bHN5c19hZGFwdG9yX2RyaXZlciwNCj4gIAkmbXRrX2Rp c3BfcmRtYV9kcml2ZXIsDQo+ICAJJm10a19kcGlfZHJpdmVyLA0KPiAgCSZtdGtfZHJtX3BsYXRm b3JtX2RyaXZlciwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgNCj4gaW5k ZXggYzQ3MTdjMzdiMGYxLi42ZTllZDk4MzdjNWIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5oDQo+IEBAIC0xMSw3ICsxMSw5IEBADQo+ICANCj4gICNkZWZpbmUg TUFYX0NPTk5FQ1RPUgkyDQo+ICAjZGVmaW5lIEREUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9S IChERFBfQ09NUE9ORU5UX0lEX01BWCArIDEpDQo+IC0jZGVmaW5lIEREUF9DT01QT05FTlRfRFJN X0lEX01BWCAoRERQX0NPTVBPTkVOVF9EUk1fT1ZMX0FEQVBUT1IgKyAxKQ0KPiArI2RlZmluZSBE RFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjAgKEREUF9DT01QT05FTlRfRFJNX09WTF9B REFQVE9SICsgMSkNCj4gKyNkZWZpbmUgRERQX0NPTVBPTkVOVF9EUk1fT1ZMU1lTX0FEQVBUT1Ix IChERFBfQ09NUE9ORU5UX0RSTV9PVkxTWVNfQURBUFRPUjAgKyAxKQ0KPiArI2RlZmluZSBERFBf Q09NUE9ORU5UX0RSTV9JRF9NQVggKEREUF9DT01QT05FTlRfRFJNX09WTFNZU19BREFQVE9SMSAr IDEpDQo+ICANCj4gIGVudW0gbXRrX2NydGNfcGF0aCB7DQo+ICAJQ1JUQ19NQUlOLA0KPiBAQCAt NjksNiArNzEsMTIgQEAgc3RydWN0IG10a19kcm1fcHJpdmF0ZSB7DQo+ICAJc3RydWN0IG10a19k cm1fcHJpdmF0ZSAqKmFsbF9kcm1fcHJpdmF0ZTsNCj4gIH07DQo+ICANCj4gK3N0cnVjdCBtdGtf b3Zsc3lzX3BsYXRmb3JtX2RhdGEgey8vbXRrX2RybV9vdmxzeXNfcHJpdmF0ZQ0KDQpSZW1vdmUg dGhpcyBjb21tZW50DQoNCj4gKwlzdHJ1Y3QgZGV2aWNlICptbXN5c19kZXY7DQo+ICsJc3RydWN0 IGRldmljZSAqbXV0ZXhfZGV2Ow0KDQptdXRleF9kZXYgaXMgdXNlbGVzcywgZHJvcCBpdC4NCg0K UmVnYXJkcywNCkNLDQoNCj4gKwl1bnNpZ25lZCBpbnQgdXNlX3BhdGg7DQo+ICt9Ow0KPiArDQo+ ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9hYWxfZHJpdmVyOw0KPiAg ZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3BfYmxlbmRlcl9kcml2ZXI7DQo+ ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9jY29ycl9kcml2ZXI7DQo+ IEBAIC03OSw2ICs4Nyw3IEBAIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNw X21lcmdlX2RyaXZlcjsNCj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNw X291dHByb2NfZHJpdmVyOw0KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rp c3Bfb3ZsX2FkYXB0b3JfZHJpdmVyOw0KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg bXRrX2Rpc3Bfb3ZsX2RyaXZlcjsNCj4gK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10 a19kaXNwX292bHN5c19hZGFwdG9yX2RyaXZlcjsNCj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1f ZHJpdmVyIG10a19kaXNwX3JkbWFfZHJpdmVyOw0KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgbXRrX2RwaV9kcml2ZXI7DQo+ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBt dGtfZHNpX2RyaXZlcjsNCg0K