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 E1FCACD13DE for ; Thu, 30 Apr 2026 18:34:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 425FE10F411; Thu, 30 Apr 2026 18:34:02 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=ti.com header.i=@ti.com header.b="xZmcoZyp"; dkim-atps=neutral Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012025.outbound.protection.outlook.com [40.107.209.25]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7CF4010F411 for ; Thu, 30 Apr 2026 18:34:01 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DrNRJl0AV/IYy/oKjtDDxY/rWqLumuxRNKWLfQZxjK3RRgas0x04Ay+hFuoFWqLhVk6/3uQDIOze8m2IZErEa/Fhsa84wTvlq+Y5r8mZTvzy5p2FznFfK5Jvev1ZpKJH5LCRCeIQ3rant8FfjA2BRJ4TMPxQCl8EQ7LpSIlg3BPQkK6qjgk4ZeMxZL4ZkzpDllZQSQj4gnu9Wb4+k3jTqaa/Nfwj26K4in7Q/L2P0OD0aepdwlenq9ykAmXRDApyXQysax5eSBVfGPWgJg6o5p/w1mfr2Nrn5wf0mv2FAMCFtQHV+ee04hTnimKdom2AQen6R3/st18oyFvU4Ttrhw== 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=+iJNnskLQ02CCD3lKjxFQJuCvaj6DxdtgnwRip4cgmw=; b=yI3v0yOa/SI1LdVFPjPbCVErlwoN5Fp6Xq1kkvWHHPouLgJNcUfAZWlEDtdahxX1FTyE+ijufWTDSxTPt28AYQZpOCbQ2yEMou1Tl+HX/Nq6QBnoscqr4beZ3cn1CORMqTLwcqpfdPgVRKg8pQdELtRPfyDFyYVOv54OGYONBVmYEDqAuvwzOgdj/RhF957ara53QcbAce0EMKl81C1YJBy9NBlxyM1vwcQJingvKiB+QHFbLYtjl6z1EhfH3Db/TF0Ls9fYfZo26eXin8F45Z761vvfwNpaD+Z7HPec0mnRmYKwpKe4WPUSXPKrU4zU+6Py8GxFXXvGFf8vioxiLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 198.47.21.195) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=ti.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=ti.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+iJNnskLQ02CCD3lKjxFQJuCvaj6DxdtgnwRip4cgmw=; b=xZmcoZyp5M18U4jILTHGpS/ZB8eZ5n0mKj2lZbodv9hmAO2JDV1lk8AC9xI2hyMCRiS8yqiprBMyWXbD6N9+Ie0lhDsOE3tiPQAbJKUNhXKcQAncJkr1ovCcl6M/U59TScXZ6U6HE/9ofktEOqy07f5lCp9+DIO9oRQqXsDGFqA= Received: from PH8P222CA0018.NAMP222.PROD.OUTLOOK.COM (2603:10b6:510:2d7::13) by DM6PR10MB4314.namprd10.prod.outlook.com (2603:10b6:5:216::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr 2026 18:33:57 +0000 Received: from CY4PEPF0000EDD1.namprd03.prod.outlook.com (2603:10b6:510:2d7:cafe::35) by PH8P222CA0018.outlook.office365.com (2603:10b6:510:2d7::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.30 via Frontend Transport; Thu, 30 Apr 2026 18:33:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 198.47.21.195) smtp.mailfrom=ti.com; dkim=none (message not signed) header.d=none; dmarc=pass action=none header.from=ti.com; Received-SPF: Pass (protection.outlook.com: domain of ti.com designates 198.47.21.195 as permitted sender) receiver=protection.outlook.com; client-ip=198.47.21.195; helo=flwvzet201.ext.ti.com; pr=C Received: from flwvzet201.ext.ti.com (198.47.21.195) by CY4PEPF0000EDD1.mail.protection.outlook.com (10.167.241.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.22 via Frontend Transport; Thu, 30 Apr 2026 18:33:55 +0000 Received: from DFLE211.ent.ti.com (10.64.6.69) by flwvzet201.ext.ti.com (10.248.192.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 30 Apr 2026 13:33:55 -0500 Received: from DFLE206.ent.ti.com (10.64.6.64) by DFLE211.ent.ti.com (10.64.6.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 30 Apr 2026 13:33:53 -0500 Received: from lelvem-mr06.itg.ti.com (10.180.75.8) by DFLE206.ent.ti.com (10.64.6.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend Transport; Thu, 30 Apr 2026 13:33:53 -0500 Received: from localhost (ti.dhcp.ti.com [172.24.233.157] (may be forged)) by lelvem-mr06.itg.ti.com (8.18.1/8.18.1) with ESMTP id 63UIXqW91698856; Thu, 30 Apr 2026 13:33:53 -0500 From: Devarsh Thakkar To: David Airlie , Simona Vetter , "Maarten Lankhorst" , Maxime Ripard , Thomas Zimmermann , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Neil Armstrong , "Bjorn Andersson" , , , CC: , , , , , , , Subject: [PATCH 4/6] drm/tiny: panel-ssd16xx: Add power management support Date: Fri, 1 May 2026 00:03:09 +0530 Message-ID: <20260430183311.2978142-5-devarsht@ti.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20260430183311.2978142-1-devarsht@ti.com> References: <20260430183311.2978142-1-devarsht@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-C2ProcessedOrg: 333ef613-75bf-4e12-a4b1-8e3623f5dcea X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD1:EE_|DM6PR10MB4314:EE_ X-MS-Office365-Filtering-Correlation-Id: 435584cb-fc72-44a5-9736-08dea6e7095a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|376014|7416014|36860700016|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: J9/pbKemK2w08mXixSZp9bI9R9L4s9pynJlV6GVqEBacrWjPlVH9PtEerxGBwwzFJzgbsni9UT7jzmw8qZ6qIUqXaWWpieVdKEJNF3bkv0Iio7o8xof/u4WmTZUXF7x/aSn7bAPa1Y5jmCP1chfwaqRgSezVZVJiN6SJj5jFX7CGtHuHUeezxrDUiC/0qsx5CMd/tAgEOeJEOFrlm883hIpQuXixtMp4xOEzw7zJ7xLLzMK0+Xvk0bzvMwODQsBokl1XInXMmiNzu4QiVTJSqTSX3i4PEbrXuO8J2dXi0YIYHI/tunlQWIMF3/jDQoYk/OHiKkYVUsFtWvKNv4lVvvngYKuNBnjXgOH5P+4jiDpkiJ5xEq5cM0mBz50N6k0uAvBKZEJSFLUv/yExF0k6bvh4KFMU/E9E50uPNFM6XcLB5hwHUx1QAoWmEI9NaHAonpao+DcKPXpDb+LD23fty5I+G8IY75tamMUUG/EqpK5HaHNyzeWNzkJH0LCU++sWvuRsFMev0dl6/7tQliyn3xncgXVHQd5tY8eVoKScaiXbv4FEKYro2gwVPEqTMXgJMgg6uepg7YZYqNx04K9bQUW6W8CuCvMzQ/Ssmp/Un8PVBprV4hHXGpPByQ9ygnUCiQrid4IFN0KvFdg3AAgpLXPn2+VKDFTKeqcOMcdQqdWVU6Wu8hsf/36mnPAxoCMQZ9zCKz3u+7J/4kQnj2LqTRKW6fGJhDaJNY0vP1yD8H8nry0azBfC2vti4tX5dngQfP6NpLouD7paU1/sR4HVjg== X-Forefront-Antispam-Report: CIP:198.47.21.195; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:flwvzet201.ext.ti.com; PTR:ErrorRetry; CAT:NONE; SFS:(13230040)(82310400026)(376014)(7416014)(36860700016)(1800799024)(921020)(18002099003)(22082099003)(56012099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: K9DTttbWdcYEpVaz0E9RJRl5lsMncEdMxhlCPdGD5E+Ln0bKcrR8fvVSeRAHLMu1a3kdxPfxqU6dH3E6O/22euS0KQIg7h6krjiIrKey7kJD0RZEAuETCl6MF5//nWopTiapLCmTDYm4tQcPL6XmioEqGowCLTpLNTi71GR5qJQusHZ8K3WMem363wDR2TpiUp2j0/oIcxtXorCzrjo4rjQk746PyMHOf11TohJf966iXuBKegOABt7f0gjRbzAIgdJoGOVCLD9nJDQtFLMQYbEHAuOM0m0dVES0wk9O6qlw0v1h6cfM3kKFoO+dwdTzw/lHvi6FZwNa+9y1ylUbuJHRP3oxhoPk5zY8OKqQ3gYEsT3fTmSaB4Muk93amO4Gzbfg0C6cbZwsfUdg1P5D+ZwY8F4YjEj/mcbd1z6/LZSCWN5dQVpKbCVwwOHkOdYb X-OriginatorOrg: ti.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 18:33:55.6867 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 435584cb-fc72-44a5-9736-08dea6e7095a X-MS-Exchange-CrossTenant-Id: e5b49634-450b-4709-8abb-1e2b19b982b7 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e5b49634-450b-4709-8abb-1e2b19b982b7; Ip=[198.47.21.195]; Helo=[flwvzet201.ext.ti.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EDD1.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4314 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" QWRkIHN5c3RlbSBzdXNwZW5kL3Jlc3VtZSBhbmQgcnVudGltZSBQTSB3aXRoIGlkbGUgdGltZW91 dCBzdXBwb3J0IHRvCnRoZSBTU0QxNnh4IGRyaXZlci4KCkUtcGFwZXIgcGFuZWxzIGFyZSBiaXN0 YWJsZTogdGhleSBjb250aW51ZSB0byBkaXNwbGF5IHRoZSBsYXN0IHJlbmRlcmVkCmltYWdlIGlu ZGVmaW5pdGVseSBldmVuIGluIGRlZXAgc2xlZXAgb3Igd2hlbiBwb3dlciBpcyBjdXQgdG8gdGhl CmNvbnRyb2xsZXIgSUMuICBUaGlzIG1ha2VzIGl0IHByYWN0aWNhbCB0byBzdXNwZW5kIHRoZSBj b250cm9sbGVyCmFnZ3Jlc3NpdmVseSDigJQgaW5jbHVkaW5nIHdoaWxlIGEgZGlzcGxheSBhcHBs aWNhdGlvbiBpcyBzdGlsbCBvcGVuIGFuZCB0aGUKdXNlciBpcyBzaW1wbHkgcmVhZGluZyDigJQg d2l0aG91dCBhbnkgdmlzaWJsZSBkaXNydXB0aW9uLiAgVGhlIGRyaXZlcgpleHBsb2l0cyB0aGlz IGJ5IGZpcmluZyB0aGUgYXV0b3N1c3BlbmQgdGltZXIgYWZ0ZXIgYW4gaWRsZSB0aW1lb3V0LApw dXR0aW5nIHRoZSBjb250cm9sbGVyIGludG8gZGVlcCBzbGVlcCByZWdhcmRsZXNzIG9mIENSVEMg c3RhdGUsIGFuZCB3YWtpbmcKaXQgdHJhbnNwYXJlbnRseSBvbiB0aGUgbmV4dCBmcmFtZSB1cGRh dGUuCgpUaGUgU1NEMTZ4eCBmYW1pbHkgc3VwcG9ydHMgdHdvIGRlZXAgc2xlZXAgbW9kZXM6CgpN b2RlIDEgKFJBTSByZXRhaW5lZCk6IHVzZWQgZm9yIHJ1bnRpbWUgaWRsZS4gIERpc3BsYXkgUkFN IHN1cnZpdmVzIHRoZQpzbGVlcCwgc28gcmVzdW1lIG9ubHkgcmVxdWlyZXMgYSBoYXJkd2FyZSBy ZXNldCBhbmQgcmUtaW5pdGlhbGlzYXRpb247IG5vCmZ1bGwgcmVkcmF3IGlzIG5lZWRlZCwga2Vl cGluZyB3YWtlIGxhdGVuY3kgbWluaW1hbC4KCk1vZGUgMiAoUkFNIGxvc3QpOiB1c2VkIGZvciBz eXN0ZW0gc3VzcGVuZC4gIE1heGltaXNlcyBwb3dlciBzYXZpbmdzIGF0CnRoZSBjb3N0IG9mIGEg Y29tcGxldGUgY29udHJvbGxlciByZS1pbml0IGFuZCByZXBhaW50IG9uIHJlc3VtZS4KClJ1bnRp bWUgUE06IEVhY2ggaGFyZHdhcmUtdG91Y2hpbmcgY2FsbGJhY2sgd3JhcHMgaXRzIFNQSSBhY2Nl c3Mgd2l0aApwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KCkgLyBwbV9ydW50aW1lX3B1dF9hdXRv c3VzcGVuZCgpIHBhaXJzIHNvIHRoZSBQTQpyZWZlcmVuY2UgY291bnQgZHJvcHMgdG8gemVybyBh ZnRlciBldmVyeSB1cGRhdGUuICBUaGlzIGFsbG93cyB0aGUKYXV0b3N1c3BlbmQgdGltZXIgdG8g ZmlyZSB3aGlsZSB0aGUgQ1JUQyBpcyBzdGlsbCBlbmFibGVkLCBwdXR0aW5nIHRoZQpjb250cm9s bGVyIGludG8gTW9kZSAxIGRlZXAgc2xlZXAgYmV0d2VlbiB1cGRhdGVzIHdpdGhvdXQgcmVxdWly aW5nIHRoZQphcHBsaWNhdGlvbiB0byBjbG9zZSBvciB0aGUgZGlzcGxheSBwaXBlbGluZSB0byBi ZSB0b3JuIGRvd24uCgpBbiBhdXRvc3VzcGVuZCBkZWxheSBvZiAzNSBzZWNvbmRzIGtlZXBzIHRo ZSBwYW5lbCBhY3RpdmUgYWNyb3NzIHR5cGljYWwKdXNlci1pbnRlcmFjdGlvbiBnYXBzIHdoaWxl IHN0aWxsIGNhcHR1cmluZyBsb25nIGlkbGUgcGVyaW9kcy4KClN5c3RlbSBzdXNwZW5kL3Jlc3Vt ZTogT24gc3lzdGVtIHN1c3BlbmQgdGhlIGRyaXZlciBzd2l0Y2hlcyB0byBNb2RlIDIgYW5kCnF1 aWVzY2VzIHRoZSBhdG9taWMgcGlwZWxpbmUgdmlhIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfc3Vz cGVuZCgpLiAgSWYgdGhlCmF1dG9zdXNwZW5kIHRpbWVyIGFscmVhZHkgZmlyZWQgKGRldmljZSBp cyBSUE1fU1VTUEVOREVEKSwgdGhlIGRyaXZlciB3YWtlcwp0aGUgcGFuZWwgdmlhIEhXUkVTRVQg KHRoZSBvbmx5IGV4aXQgZnJvbSBkZWVwIHNsZWVwIHNpbmNlIFNQSSBpcwp1bnJlc3BvbnNpdmUp LCBzZW5kcyBNb2RlIDIgZGlyZWN0bHksIGFuZCB0cmFja3MgdGhlIHN0YXRlIHdpdGggYQpwbV9m b3JjZV9zdXNwZW5kZWQgZmxhZyBzbyB0aGUgbWF0Y2hpbmcgZm9yY2VfcmVzdW1lIGlzIGNhbGxl ZCBvbmx5IHdoZW4KbmVlZGVkLiAgT24gcmVzdW1lLCBNb2RlIDEgaXMgcmVzdG9yZWQgZm9yIHN1 YnNlcXVlbnQgcnVudGltZSBQTSBjeWNsZXMgYW5kCnRoZSBhdG9taWMgcGlwZWxpbmUgaXMgcmVi dWlsdCB2aWEgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9yZXN1bWUoKS4KClBlci1jbGllbnQgaW5p dGlhbGlzYXRpb24gcmVmcmVzaDogQSBkcm1fZHJpdmVyLm1hc3Rlcl9zZXQgY2FsbGJhY2sgYXJt cwppbml0X3JlZnJlc2hfcGVuZGluZyB3aGVuIGEgbmV3IGNsaWVudCBvcGVucyB0aGUgRFJNIGRl dmljZSBhcyBhIERSTQptYXN0ZXIsIGVuc3VyaW5nIGl0cyBmaXJzdCBmcmFtZSB1c2VzIHRoZSBj b25maWd1cmVkIGluaXQtcmVmcmVzaCB3YXZlZm9ybS4KQSBwYWlyZWQgbWFzdGVyX2Ryb3AgY2Fs bGJhY2sgY2xlYXJzIHRoZSBmbGFnIG9uIGZkIGNsb3NlIGJ5IGEgRFJNIG1hc3Rlci4KVGhpcyBp cyBrZXB0IHNlcGFyYXRlIGZyb20gdGhlIHJ1bnRpbWUgcmVzdW1lIHBhdGggc2luY2UgTW9kZSAx IHJldGFpbnMgUkFNCmFuZCBhIGZ1bGwgcmVmcmVzaCBvbiBldmVyeSBydW50aW1lIHdha2Ugd291 bGQgYmUgd2FzdGVmdWwuCgpTaWduZWQtb2ZmLWJ5OiBEZXZhcnNoIFRoYWtrYXIgPGRldmFyc2h0 QHRpLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGlueS9wYW5lbC1zc2QxNnh4LmMgfCAyMDMg KysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTkzIGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55 L3BhbmVsLXNzZDE2eHguYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L3BhbmVsLXNzZDE2eHguYwpp bmRleCBiMjMyODM3YzU0ZmYuLjZiZjc2MzY2N2Q4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3RpbnkvcGFuZWwtc3NkMTZ4eC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L3BhbmVs LXNzZDE2eHguYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRl IDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvcGVydHkuaD4KICNpbmNs dWRlIDxsaW51eC9zcGkvc3BpLmg+CiAKQEAgLTg4LDYgKzg5LDcgQEAgTU9EVUxFX1BBUk1fREVT Qyhjb2xvcl9tb2RlLAogCiAvKiBTUEkgY29tbWFuZCBjb2RlcyAoY29tbW9uKSAqLwogI2RlZmlu ZSBTU0QxNlhYX0NNRF9EUklWRVJfT1VUUFVUX0NPTlRST0wJCTB4MDEKKyNkZWZpbmUgU1NEMTZY WF9DTURfREVFUF9TTEVFUF9NT0RFCQkJMHgxMAogI2RlZmluZSBTU0QxNlhYX0NNRF9EQVRBX0VO VFJZX01PREUJCQkweDExCiAjZGVmaW5lIFNTRDE2WFhfQ01EX1NXX1JFU0VUCQkJCTB4MTIKICNk ZWZpbmUgU1NEMTZYWF9DTURfTUFTVEVSX0FDVElWQVRJT04JCQkweDIwCkBAIC0xMDAsNiArMTAy LDkgQEAgTU9EVUxFX1BBUk1fREVTQyhjb2xvcl9tb2RlLAogI2RlZmluZSBTU0QxNlhYX0NNRF9T RVRfUkFNX1hfQUREUkVTU19DT1VOVEVSCQkweDRFCiAjZGVmaW5lIFNTRDE2WFhfQ01EX1NFVF9S QU1fWV9BRERSRVNTX0NPVU5URVIJCTB4NEYKIAorLyogUnVudGltZSBQTSBhdXRvc3VzcGVuZCBk ZWxheSAobXMpOiBrZWVwIGRpc3BsYXkgYWN0aXZlIGFjcm9zcyB0eXBpY2FsIGdhcHMgKi8KKyNk ZWZpbmUgU1NEMTZYWF9QTV9BVVRPU1VTUEVORF9ERUxBWV9NUwkJCTM1MDAwCisKIC8qCiAgKiBE YXRhIEVudHJ5IE1vZGUgKGNvbW1hbmQgMHgxMSkgQU0vSURZL0lEWCBiaXQgZW5jb2RpbmcgKGNv bW1vbikuCiAgKgpAQCAtNDA1LDggKzQxMCwxMCBAQCBzdHJ1Y3Qgc3NkMTZ4eF9wYW5lbCB7CiAJ Ym9vbCBpbml0X3JlZnJlc2hfcGVuZGluZzsgLyogRmlyc3QgZnJhbWUgYWZ0ZXIgcmVmcmVzaF9t b2RlX2luaXQgZW5hYmxlICovCiAJYm9vbCBmaXJzdF9jbGVhcl9kb25lOyAgLyogY2xlYXJfb25f aW5pdCBoYXMgYWxyZWFkeSBmaXJlZCBvbmNlICovCiAJYm9vbCBkaXNwbGF5X2NsZWFyZWRfb25f ZGVpbml0OyAvKiBBdm9pZCByZWR1bmRhbnQgY2xlYXIgaW4gYXRvbWljX2Rpc2FibGUvbWFzdGVy X2Ryb3AgKi8KKwlib29sIHBtX2ZvcmNlX3N1c3BlbmRlZDsgIC8qIHBtX3J1bnRpbWVfZm9yY2Vf c3VzcGVuZCB3YXMgY2FsbGVkIGluIHBtX3N1c3BlbmQgKi8KIAotCWludCBvcmllbnRhdGlvbjsg LyogRGlzcGxheSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzOiAwLzkwLzE4MC8yNzAgKi8KKwlpbnQg b3JpZW50YXRpb247ICAgICAgLyogRGlzcGxheSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzOiAwLzkw LzE4MC8yNzAgKi8KKwl1OCBkZWVwX3NsZWVwX21vZGU7ICAgLyogRGVlcCBzbGVlcCBtb2RlIHRv IHVzZSBvbiBuZXh0IGRpc2FibGUgKi8KIAllbnVtIHNzZDE2eHhfcmVmcmVzaF9tb2RlIHJlZnJl c2hfbW9kZTsgLyogQWN0aXZlIHJlZnJlc2ggbW9kZSAqLwogCWVudW0gc3NkMTZ4eF9jb2xvcl9t b2RlIGNvbG9yX21vZGU7ICAgICAvKiBBY3RpdmUgY29sb3IgbW9kZSAoQlcgb3IgMy1jb2xvcikg Ki8KIAlib29sIGZhc3RfbHV0X3BlbmRpbmc7IC8qIExVVCBwcmUtbG9hZCBuZWVkZWQgYmVmb3Jl IG5leHQgZmFzdCByZWZyZXNoICovCkBAIC0xNTI2LDEwICsxNTMzLDkgQEAgc3RhdGljIHZvaWQg c3NkMTZ4eF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0 cnVjdCBkcm1fcmVjdCByZWN0OwogCWludCByZXQ7CiAKLQlkcm1fZGJnKCZwYW5lbC0+ZHJtLCAi cGxhbmVfYXRvbWljX3VwZGF0ZTogZmI9JXAsIGluaXRpYWxpemVkPSVkXG4iLAotCQlmYiwgcGFu ZWwtPmluaXRpYWxpemVkKTsKKwlkcm1fZGJnKCZwYW5lbC0+ZHJtLCAicGxhbmVfYXRvbWljX3Vw ZGF0ZTogZmI9JXBcbiIsIGZiKTsKIAotCWlmICghZmIgfHwgIXBhbmVsLT5pbml0aWFsaXplZCkK KwlpZiAoIWZiKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMTU0MSw2ICsxNTQ3LDEyIEBAIHN0YXRp YyB2b2lkIHNzZDE2eHhfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAkJcmV0dXJuOwogCX0KIAorCXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQocGFu ZWwtPmRybS5kZXYpOworCWlmIChyZXQgPCAwKSB7CisJCWRybV9lcnIoJnBhbmVsLT5kcm0sICJw bGFuZV9hdG9taWNfdXBkYXRlOiBmYWlsZWQgdG8gcmVzdW1lOiAlZFxuIiwgcmV0KTsKKwkJcmV0 dXJuOworCX0KKwogCWlmICghZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX21lcmdlZChvbGRfc3Rh dGUsIG5ld19zdGF0ZSwgJnJlY3QpKSB7CiAJCXJlY3QueDEgPSAwOwogCQlyZWN0LnkxID0gMDsK QEAgLTE1OTgsNiArMTYxMCw5IEBAIHN0YXRpYyB2b2lkIHNzZDE2eHhfcGxhbmVfYXRvbWljX3Vw ZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJcGFuZWwtPmluaXRfcmVmcmVzaF9wZW5k aW5nID0gZmFsc2U7CiAJCXBhbmVsLT5ib3JkZXJfd2F2ZWZvcm1fcGVuZGluZyA9IHRydWU7CiAJ fQorCisJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShwYW5lbC0+ZHJtLmRldik7CisJcG1fcnVu dGltZV9wdXRfYXV0b3N1c3BlbmQocGFuZWwtPmRybS5kZXYpOwogfQogCiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3Mgc3NkMTZ4eF9wbGFuZV9oZWxwZXJfZnVuY3Mg PSB7CkBAIC0xNjU2LDYgKzE2NzEsMTAgQEAgc3RhdGljIHZvaWQgc3NkMTZ4eF9jcnRjX2F0b21p Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpZiAocGFuZWwtPmNsZWFyX29uX2Rp c2FibGUgPCAwIHx8IHBhbmVsLT5kaXNwbGF5X2NsZWFyZWRfb25fZGVpbml0KQogCQlnb3RvIG91 dDsKIAorCXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQocGFuZWwtPmRybS5kZXYpOwor CWlmIChyZXQgPCAwKQorCQlnb3RvIG91dDsKKwogCWRybV9kYmcoJnBhbmVsLT5kcm0sICJjbGVh cl9vbl9kaXNhYmxlOiBydW5uaW5nLCBtb2RlPSVkXG4iLAogCQlwYW5lbC0+Y2xlYXJfb25fZGlz YWJsZSk7CiAJcmV0ID0gc3NkMTZ4eF9jbGVhcl9kaXNwbGF5KHBhbmVsLApAQCAtMTY2MywxMCAr MTY4MiwxMiBAQCBzdGF0aWMgdm9pZCBzc2QxNnh4X2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCQkJCQkJCQkgIHBhbmVsLT5jbGVhcl9vbl9kaXNhYmxlKSk7CiAJ aWYgKHJldCkgewogCQlkcm1fZXJyKCZwYW5lbC0+ZHJtLCAiYXRvbWljX2Rpc2FibGU6IGNsZWFy IGZhaWxlZDogJWRcbiIsIHJldCk7CisJCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHBhbmVs LT5kcm0uZGV2KTsKIAkJZ290byBvdXQ7CiAJfQogCiAJcGFuZWwtPmRpc3BsYXlfY2xlYXJlZF9v bl9kZWluaXQgPSB0cnVlOworCXBtX3J1bnRpbWVfcHV0X3N5bmNfc3VzcGVuZChwYW5lbC0+ZHJt LmRldik7CiBvdXQ6CiAJZHJtX2Rldl9leGl0KGlkeCk7CiB9CkBAIC0xNjgyLDYgKzE3MDMsMTIg QEAgc3RhdGljIHZvaWQgc3NkMTZ4eF9jcnRjX2F0b21pY19lbmFibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCQlyZXR1cm47CiAKIAlwYW5lbC0+ZGlzcGxheV9jbGVhcmVkX29uX2RlaW5pdCA9 IGZhbHNlOworCXJldCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQocGFuZWwtPmRybS5kZXYp OworCWlmIChyZXQgPCAwKSB7CisJCWRybV9lcnIoJnBhbmVsLT5kcm0sICJjcnRjX2F0b21pY19l bmFibGU6IGZhaWxlZCB0byByZXN1bWU6ICVkXG4iLCByZXQpOworCQlkcm1fZGV2X2V4aXQoaWR4 KTsKKwkJcmV0dXJuOworCX0KIAogCWRybV9kYmcoJnBhbmVsLT5kcm0sICJhdG9taWNfZW5hYmxl OiAlZHglZFxuIiwKIAkJY3J0Y19zdGF0ZS0+bW9kZS5oZGlzcGxheSwgY3J0Y19zdGF0ZS0+bW9k ZS52ZGlzcGxheSk7CkBAIC0xNjg5LDEyICsxNzE2LDE5IEBAIHN0YXRpYyB2b2lkIHNzZDE2eHhf Y3J0Y19hdG9taWNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlwYW5lbC0+d2lkdGgg PSBjcnRjX3N0YXRlLT5tb2RlLmhkaXNwbGF5OwogCXBhbmVsLT5oZWlnaHQgPSBjcnRjX3N0YXRl LT5tb2RlLnZkaXNwbGF5OwogCi0JcmV0ID0gc3NkMTZ4eF9od19pbml0KHBhbmVsKTsKLQlpZiAo cmV0KSB7Ci0JCWRybV9lcnIoJnBhbmVsLT5kcm0sICJjcnRjX2F0b21pY19lbmFibGU6IEhXIGlu aXQgZmFpbGVkOiAlZFxuIiwgcmV0KTsKLQkJZ290byBvdXQ7CisJLyoKKwkgKiBwbV9ydW50aW1l X3Jlc3VtZV9hbmRfZ2V0KCkgdHJpZ2dlcnMgcG1fcnVudGltZV9yZXN1bWUgd2hpY2ggcnVucwor CSAqIGh3X2luaXQgYW5kIHNldHMgaW5pdGlhbGl6ZWQuIElmIHJ1bnRpbWUgUE0gaXMgZGlzYWJs ZWQgdGhlIGNhbGxiYWNrCisJICogbmV2ZXIgZmlyZXMsIHNvIGZhbGwgYmFjayB0byBydW5uaW5n IGh3X2luaXQgZGlyZWN0bHkgaGVyZS4KKwkgKi8KKwlpZiAoIXBhbmVsLT5pbml0aWFsaXplZCkg eworCQlyZXQgPSBzc2QxNnh4X2h3X2luaXQocGFuZWwpOworCQlpZiAocmV0KSB7CisJCQlkcm1f ZXJyKCZwYW5lbC0+ZHJtLCAiY3J0Y19hdG9taWNfZW5hYmxlOiBIVyBpbml0IGZhaWxlZDogJWRc biIsIHJldCk7CisJCQlnb3RvIG91dDsKKwkJfQorCQlwYW5lbC0+aW5pdGlhbGl6ZWQgPSB0cnVl OwogCX0KLQlwYW5lbC0+aW5pdGlhbGl6ZWQgPSB0cnVlOwogCiAJLyogQ2xlYXIgZGlzcGxheSBv biBmaXJzdCBhcHAgbGF1bmNoIGlmIGNvbmZpZ3VyZWQgKi8KIAlyZXQgPSBzc2QxNnh4X2NsZWFy X2Rpc3BsYXlfb25faW5pdChwYW5lbCk7CkBAIC0xNzE0LDYgKzE3NDgsOCBAQCBzdGF0aWMgdm9p ZCBzc2QxNnh4X2NydGNfYXRvbWljX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJfQog CiBvdXQ6CisJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShwYW5lbC0+ZHJtLmRldik7CisJcG1f cnVudGltZV9wdXRfYXV0b3N1c3BlbmQocGFuZWwtPmRybS5kZXYpOwogCWRybV9kZXZfZXhpdChp ZHgpOwogfQogCkBAIC0xNzMwLDcgKzE3NjYsNyBAQCBzdGF0aWMgdm9pZCBzc2QxNnh4X2NydGNf YXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX3JlY3QgZnVs bDsKIAlpbnQgcmV0LCBpZHg7CiAKLQlpZiAoIXBhbmVsLT5yZWluaXRfcGVuZGluZyB8fCAhcGFu ZWwtPmluaXRpYWxpemVkKQorCWlmICghcGFuZWwtPnJlaW5pdF9wZW5kaW5nKQogCQlyZXR1cm47 CiAKIAlpZiAoIWRybV9kZXZfZW50ZXIoJnBhbmVsLT5kcm0sICZpZHgpKQpAQCAtMTczOCw2ICsx Nzc0LDEzIEBAIHN0YXRpYyB2b2lkIHNzZDE2eHhfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCiAJcGFuZWwtPnJlaW5pdF9wZW5kaW5nID0gZmFsc2U7CiAKKwlyZXQg PSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KHBhbmVsLT5kcm0uZGV2KTsKKwlpZiAocmV0IDwg MCkgeworCQlkcm1fZXJyKCZwYW5lbC0+ZHJtLCAiYXRvbWljX2ZsdXNoOiBmYWlsZWQgdG8gcmVz dW1lOiAlZFxuIiwgcmV0KTsKKwkJZHJtX2Rldl9leGl0KGlkeCk7CisJCXJldHVybjsKKwl9CisK IAlkcm1fZGJnKCZwYW5lbC0+ZHJtLCAiYXRvbWljX2ZsdXNoOiByZWluaXQsIG9yaWVudGF0aW9u PSV1wrBcbiIsCiAJCXBhbmVsLT5vcmllbnRhdGlvbik7CiAKQEAgLTE3NjIsNiArMTgwNSw4IEBA IHN0YXRpYyB2b2lkIHNzZDE2eHhfY3J0Y19hdG9taWNfZmx1c2goc3RydWN0IGRybV9jcnRjICpj cnRjLAogCX0KIAogb3V0OgorCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3kocGFuZWwtPmRybS5k ZXYpOworCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHBhbmVsLT5kcm0uZGV2KTsKIAlkcm1f ZGV2X2V4aXQoaWR4KTsKIH0KIApAQCAtMjE4OSwxMSArMjIzNCwxNyBAQCBzdGF0aWMgdm9pZCBz c2QxNnh4X2RybV9tYXN0ZXJfZHJvcChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAogCWlmIChwYW5l bC0+Y2xlYXJfb25fY2xvc2UgPCAwIHx8IHBhbmVsLT5kaXNwbGF5X2NsZWFyZWRfb25fZGVpbml0 KQogCQlyZXR1cm47CiAKKwlyZXQgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KGRybS0+ZGV2 KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuOworCiAJcmV0ID0gc3NkMTZ4eF9jbGVhcl9kaXNw bGF5X29uX2V4aXQocGFuZWwpOwogCWlmIChyZXQpCiAJCWRybV9lcnIoZHJtLCAibWFzdGVyX2Ry b3A6IGNsZWFyIG9uIGNsb3NlIGZhaWxlZDogJWRcbiIsIHJldCk7CiAKIAlwYW5lbC0+ZGlzcGxh eV9jbGVhcmVkX29uX2RlaW5pdCA9IHRydWU7CisJLyogc3luYyBzdXNwZW5kIOKAlCBieXBhc3Mg YXV0b3N1c3BlbmQsIHNsZWVwIGltbWVkaWF0ZWx5IGFmdGVyIGNsZWFyICovCisJcG1fcnVudGlt ZV9wdXRfc3luY19zdXNwZW5kKGRybS0+ZGV2KTsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fZHJp dmVyIHNzZDE2eHhfZHJtX2RyaXZlciA9IHsKQEAgLTI0OTYsNiArMjU0NywyMCBAQCBzdGF0aWMg aW50IHNzZDE2eHhfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwogCisJLyogRGVmYXVsdCB0byBydW50aW1lIHNsZWVwIG1vZGUgKFJBTSByZXRh aW5lZCBpZiBzdXBwb3J0ZWQpICovCisJcGFuZWwtPmRlZXBfc2xlZXBfbW9kZSA9IHBhbmVsLT5j b250cm9sbGVyX2NmZy0+ZGVlcF9zbGVlcF9tb2RlX2xldmVsMTsKKwkvKgorCSAqIE1hcmsgdGhl IGRldmljZSBhY3RpdmUgYmVmb3JlIGVuYWJsaW5nIHJ1bnRpbWUgUE0uICBUaGUgU1BJIGRldmlj ZQorCSAqIHBlcnNpc3RzIGFjcm9zcyBtb2R1bGUgcmVsb2FkIGN5Y2xlczsgcG1fcnVudGltZV9l bmFibGUoKSBhbG9uZQorCSAqIGRvZXMgbm90IGNsZWFyIGEgc3RhbGUgZGV2LT5wb3dlci5ydW50 aW1lX2Vycm9yIGxlZnQgYnkgYSBwcmV2aW91cworCSAqIGZhaWxlZCBod19pbml0LCB3aGljaCB3 b3VsZCBjYXVzZSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KCkgdG8KKwkgKiByZXR1cm4gLUVJ TlZBTCBvbiBldmVyeSBzdWJzZXF1ZW50IGNhbGwuCisJICovCisJcG1fcnVudGltZV9zZXRfYWN0 aXZlKGRldik7CisJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKKwlwbV9ydW50aW1lX3NldF9hdXRv c3VzcGVuZF9kZWxheShkZXYsIFNTRDE2WFhfUE1fQVVUT1NVU1BFTkRfREVMQVlfTVMpOworCXBt X3J1bnRpbWVfdXNlX2F1dG9zdXNwZW5kKGRldik7CisKIAlkcm1fZGJnKGRybSwgIlNTRDE2eHgg ZS1wYXBlciBkaXNwbGF5IGluaXRpYWxpemVkICglZHglZCwgJWTCsCByb3RhdGlvbilcbiIsCiAJ CXBhbmVsLT53aWR0aCwgcGFuZWwtPmhlaWdodCwgcGFuZWwtPm9yaWVudGF0aW9uKTsKIApAQCAt MjUwOCw2ICsyNTczLDggQEAgc3RhdGljIHZvaWQgc3NkMTZ4eF9yZW1vdmUoc3RydWN0IHNwaV9k ZXZpY2UgKnNwaSkKIHsKIAlzdHJ1Y3Qgc3NkMTZ4eF9wYW5lbCAqcGFuZWwgPSBzcGlfZ2V0X2Ry dmRhdGEoc3BpKTsKIAorCXBtX3J1bnRpbWVfZG9udF91c2VfYXV0b3N1c3BlbmQoJnNwaS0+ZGV2 KTsKKwlwbV9ydW50aW1lX2Rpc2FibGUoJnNwaS0+ZGV2KTsKIAlkcm1fZGV2X3VucGx1ZygmcGFu ZWwtPmRybSk7CiAJZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oJnBhbmVsLT5kcm0pOwogfQpA QCAtMjUxNiw5ICsyNTgzLDEyNCBAQCBzdGF0aWMgdm9pZCBzc2QxNnh4X3NodXRkb3duKHN0cnVj dCBzcGlfZGV2aWNlICpzcGkpCiB7CiAJc3RydWN0IHNzZDE2eHhfcGFuZWwgKnBhbmVsID0gc3Bp X2dldF9kcnZkYXRhKHNwaSk7CiAKKwlwbV9ydW50aW1lX2RvbnRfdXNlX2F1dG9zdXNwZW5kKCZz cGktPmRldik7CisJcG1fcnVudGltZV9kaXNhYmxlKCZzcGktPmRldik7CiAJZHJtX2F0b21pY19o ZWxwZXJfc2h1dGRvd24oJnBhbmVsLT5kcm0pOwogfQogCitzdGF0aWMgaW50IHNzZDE2eHhfcG1f c3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBzc2QxNnh4X3BhbmVsICpwYW5lbCA9IHRv X3NzZDE2eHhfcGFuZWwoZHJtKTsKKwlpbnQgcmV0OworCisJLyogU3lzdGVtIHN1c3BlbmQ6IE1v ZGUgMiAobWF4IHNhdmluZ3MsIFJBTSBsb3N0LCBmdWxsIHJlLWluaXQgb24gcmVzdW1lKS4gKi8K KwlwYW5lbC0+ZGVlcF9zbGVlcF9tb2RlID0gcGFuZWwtPmNvbnRyb2xsZXJfY2ZnLT5kZWVwX3Ns ZWVwX21vZGVfbGV2ZWwyOworCWRldl9kYmcoZGV2LCAic3lzdGVtIHN1c3BlbmQ6IGVudGVyaW5n IGRlZXAgc2xlZXAgbW9kZSAweCUwMnhcbiIsCisJCXBhbmVsLT5kZWVwX3NsZWVwX21vZGUpOwor CisJcmV0ID0gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kKGRybSk7CisJaWYgKHJldCkK KwkJcmV0dXJuIHJldDsKKworCS8qCisJICogV2l0aCBwZXItdXBkYXRlIFBNIGdhdGluZyB0aGUg cGFuZWwgbWF5IGFscmVhZHkgYmUgaW4gTU9ERV8xIGRlZXAKKwkgKiBzbGVlcCAoYXV0b3N1c3Bl bmQgZmlyZWQgd2hpbGUgdGhlIHVzZXIgd2FzIHJlYWRpbmcpLgorCSAqIHBtX3J1bnRpbWVfZm9y Y2Vfc3VzcGVuZCgpIHNraXBzIGl0cyBjYWxsYmFjayB3aGVuIHRoZSBkZXZpY2UgaXMKKwkgKiBh bHJlYWR5IFJQTV9TVVNQRU5ERUQsIHNvIE1PREVfMiB3b3VsZCBuZXZlciByZWFjaCB0aGUgaGFy ZHdhcmUuCisJICoKKwkgKiBQZXIgdGhlIGRhdGFzaGVldCwgSFdSRVNFVCBpcyB0aGUgb25seSB3 YXkgdG8gZXhpdCBkZWVwIHNsZWVwIChTUEkKKwkgKiBpcyB1bnJlc3BvbnNpdmUgaW4gYm90aCBt b2RlcykuICBBZnRlciB0aGUgcmVzZXQsIE1PREVfMiBjYW4gYmUKKwkgKiBzZW50IGltbWVkaWF0 ZWx5IOKAlCBubyBmdWxsIGh3X2luaXQgaXMgcmVxdWlyZWQuICBUaGUgUlBNIHN0YXRlCisJICog cmVtYWlucyBSUE1fU1VTUEVOREVEOyBwbV9ydW50aW1lX2ZvcmNlX3N1c3BlbmQoKSBpcyBza2lw cGVkIHNpbmNlCisJICogdGhlIGRldmljZSBpcyBhbHJlYWR5IGluIHRoZSByaWdodCBzdGF0ZS4K KwkgKi8KKwlpZiAocG1fcnVudGltZV9zdGF0dXNfc3VzcGVuZGVkKGRldikpIHsKKwkJaW50IGVy ciA9IDA7CisKKwkJZGV2X2RiZyhkZXYsICJzeXN0ZW0gc3VzcGVuZDogdXBncmFkaW5nIE1PREVf MSAtPiBNT0RFXzIgdmlhIEhXUkVTRVRcbiIpOworCQlzc2QxNnh4X2h3X3Jlc2V0KHBhbmVsKTsK KwkJc3NkMTZ4eF9zZW5kX2NtZChwYW5lbCwgU1NEMTZYWF9DTURfREVFUF9TTEVFUF9NT0RFLCAm ZXJyKTsKKwkJc3NkMTZ4eF9zZW5kX2RhdGEocGFuZWwsIHBhbmVsLT5jb250cm9sbGVyX2NmZy0+ ZGVlcF9zbGVlcF9tb2RlX2xldmVsMiwgJmVycik7CisJCXBhbmVsLT5wbV9mb3JjZV9zdXNwZW5k ZWQgPSBmYWxzZTsgIC8qIFNraXAgZm9yY2VfcmVzdW1lIG9uIHJlc3VtZSAqLworCQlyZXR1cm4g ZXJyOworCX0KKworCS8qIEZvcmNlIHJ1bnRpbWUtc3VzcGVuZGVkIHN0YXRlIGZvciBjbGVhbiBy ZXN1bWUuICovCisJcG1fcnVudGltZV9mb3JjZV9zdXNwZW5kKGRldik7CisJcGFuZWwtPnBtX2Zv cmNlX3N1c3BlbmRlZCA9IHRydWU7ICAvKiBSZXN1bWUgbXVzdCBjYWxsIGZvcmNlX3Jlc3VtZSAq LworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc3NkMTZ4eF9wbV9yZXN1bWUoc3RydWN0 IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsKKwlzdHJ1Y3Qgc3NkMTZ4eF9wYW5lbCAqcGFuZWwgPSB0b19zc2QxNnh4X3BhbmVs KGRybSk7CisKKwlkZXZfZGJnKGRldiwgInN5c3RlbSByZXN1bWU6IHJlc3RvcmluZyBzdGF0ZVxu Iik7CisKKwkvKgorCSAqIE9ubHkgY2FsbCBmb3JjZV9yZXN1bWUgaWYgd2UgYWN0dWFsbHkgY2Fs bGVkIGZvcmNlX3N1c3BlbmQgZHVyaW5nCisJICogc3lzdGVtIHN1c3BlbmQuIFRoZSBNT0RFXzEt Pk1PREVfMiB1cGdyYWRlIHBhdGggc2tpcHMgZm9yY2Vfc3VzcGVuZAorCSAqIHNpbmNlIHRoZSBk ZXZpY2UgaXMgYWxyZWFkeSBSUE1fU1VTUEVOREVELgorCSAqLworCWlmIChwYW5lbC0+cG1fZm9y Y2Vfc3VzcGVuZGVkKSB7CisJCXBtX3J1bnRpbWVfZm9yY2VfcmVzdW1lKGRldik7CisJCXBhbmVs LT5wbV9mb3JjZV9zdXNwZW5kZWQgPSBmYWxzZTsKKwl9CisKKwkvKiBSZXN0b3JlIE1vZGUgMSAo UkFNIHJldGFpbmVkKSBmb3Igc3Vic2VxdWVudCBydW50aW1lIFBNIGN5Y2xlcy4gKi8KKwlwYW5l bC0+ZGVlcF9zbGVlcF9tb2RlID0gcGFuZWwtPmNvbnRyb2xsZXJfY2ZnLT5kZWVwX3NsZWVwX21v ZGVfbGV2ZWwxOworCisJcmV0dXJuIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKGRybSk7 Cit9CisKK3N0YXRpYyBpbnQgc3NkMTZ4eF9wbV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmlj ZSAqZGV2KQoreworCXN0cnVjdCBzc2QxNnh4X3BhbmVsICpwYW5lbCA9IHRvX3NzZDE2eHhfcGFu ZWwoZGV2X2dldF9kcnZkYXRhKGRldikpOworCWludCBlcnIgPSAwOworCisJZGV2X2RiZyhkZXYs ICJydW50aW1lIHN1c3BlbmQ6IGVudGVyaW5nIGRlZXAgc2xlZXAgbW9kZSAweCUwMnhcbiIsCisJ CXBhbmVsLT5kZWVwX3NsZWVwX21vZGUpOworCisJc3NkMTZ4eF9zZW5kX2NtZChwYW5lbCwgU1NE MTZYWF9DTURfREVFUF9TTEVFUF9NT0RFLCAmZXJyKTsKKwlzc2QxNnh4X3NlbmRfZGF0YShwYW5l bCwgcGFuZWwtPmRlZXBfc2xlZXBfbW9kZSwgJmVycik7CisJcGFuZWwtPmluaXRpYWxpemVkID0g ZmFsc2U7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IHNzZDE2eHhfcG1fcnVudGlt ZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBzc2QxNnh4X3BhbmVsICpw YW5lbCA9IHRvX3NzZDE2eHhfcGFuZWwoZGV2X2dldF9kcnZkYXRhKGRldikpOworCWludCByZXQ7 CisKKwlkZXZfZGJnKGRldiwgInJ1bnRpbWUgcmVzdW1lOiBpbml0aWFsaXplZD0lZCVzXG4iLAor CQlwYW5lbC0+aW5pdGlhbGl6ZWQsCisJCSFwYW5lbC0+aW5pdGlhbGl6ZWQgPyAiIChydW5uaW5n IGh3X2luaXQpIiA6ICIiKTsKKworCS8qCisJICogcG1fcnVudGltZV9zdXNwZW5kIGNsZWFycyBp bml0aWFsaXplZCBhZnRlciBzZW5kaW5nIHRoZSBkZWVwIHNsZWVwCisJICogY29tbWFuZC4gIElm IGEgbmV3IGFwcCBvcGVucyBiZWZvcmUgdGhlIHN1c3BlbmQgZmlyZXMgKHRoZSBwdXQgd2FzCisJ ICogY2FuY2VsbGVkKSwgaW5pdGlhbGl6ZWQgaXMgc3RpbGwgdHJ1ZSBhbmQgaHdfaW5pdCBpcyB1 bm5lY2Vzc2FyeS4KKwkgKi8KKwlpZiAoIXBhbmVsLT5pbml0aWFsaXplZCkgeworCQlyZXQgPSBz c2QxNnh4X2h3X2luaXQocGFuZWwpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlw YW5lbC0+aW5pdGlhbGl6ZWQgPSB0cnVlOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRldl9wbV9vcHMgc3NkMTZ4eF9wbV9vcHMgPSB7CisJU1lTVEVNX1NMRUVQ X1BNX09QUyhzc2QxNnh4X3BtX3N1c3BlbmQsIHNzZDE2eHhfcG1fcmVzdW1lKQorCVJVTlRJTUVf UE1fT1BTKHNzZDE2eHhfcG1fcnVudGltZV9zdXNwZW5kLCBzc2QxNnh4X3BtX3J1bnRpbWVfcmVz dW1lLCBOVUxMKQorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3NkMTZ4 eF9vZl9tYXRjaFtdID0gewogCXsgLmNvbXBhdGlibGUgPSAiZ29vZGRpc3BsYXksZ2RleTA0MnQ4 MSIsIC5kYXRhID0gKHZvaWQgKilHREVZMDQyVDgxIH0sCiAJeyB9CkBAIC0yNTM1LDYgKzI3MTcs NyBAQCBzdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3NkMTZ4eF9zcGlfZHJpdmVyID0gewogCS5k cml2ZXIgPSB7CiAJCS5uYW1lID0gInNzZDE2eHgiLAogCQkub2ZfbWF0Y2hfdGFibGUgPSBzc2Qx Nnh4X29mX21hdGNoLAorCQkucG0gPSBwbV9wdHIoJnNzZDE2eHhfcG1fb3BzKSwKIAl9LAogCS5w cm9iZSA9IHNzZDE2eHhfcHJvYmUsCiAJLnJlbW92ZSA9IHNzZDE2eHhfcmVtb3ZlLAotLSAKMi4z OS4xCgo=