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 X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E586AC433DB for ; Wed, 31 Mar 2021 06:49:35 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id A33D4614A7 for ; Wed, 31 Mar 2021 06:49:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A33D4614A7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2F6A16E9ED; Wed, 31 Mar 2021 06:49:35 +0000 (UTC) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40084.outbound.protection.outlook.com [40.107.4.84]) by gabe.freedesktop.org (Postfix) with ESMTPS id C249F6E9ED for ; Wed, 31 Mar 2021 06:49:33 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cKgzBWDvCO4u8iaRotVddFXjo+/vo6jrYHfu11nzi78YcL8xvGryamnFnwxJ1sQCj6SMOBJf2ufbyIaTktZgpFLya0L6I+RHPKLIcoza945r/svm4XUNL+A5X6jm6mlq8qvvHeIsHeNo46DjXFfcNkDSsa/GUP3mQsVjIKo/Rfq4V/Ap/NyvmjZ5Wo8TVZzGcg6OWYxBfloLziHaJ956TSKTkBeVmSM/bOAxqHLDs9fodlz+mwy2MqXT+l/feAEkiwz+ZqucEZhewO6n0cx+6LTSGIZk5wAVC8dx0ZtPyaNnbk48kWs0bIKchRhAP8htjUqPQ90KvZc2f0itrOZj3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6ZOAIP3PhOuVwAD2Vw7mvRNYnWj4N0TuvBGrIBVt9qc=; b=ZyXNAwU8O22EXhxbuWHmrbtwTXJNbWHNBWgDi4s9LrxD6yPRwHeTShNgB9BgdUIFfNIu4i42K7GbDHTnByQfRbgfXf6RCANn4W7wFvuS2meSAACR+wyNZMRGvclaNaT/B46PJ3QkaIjwJ7hDA2zhZFfINMD5XthHrDTzdJw9lQOYuKI827XuoQ2SXy0hxzkrCWV6KmU5nUcULM8ZGfVOOf/murNhBxBKuOZEGBSg0ByvT9B5Hn47AjPd0JPq9zlFnawqw6+POkfVBwH6m/1R6x8FRNPD88e2cdSCv/jA8BEClYzJV93X8vDfjtnsrwb7oGrnWCH5r1qens5yp9yM4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6ZOAIP3PhOuVwAD2Vw7mvRNYnWj4N0TuvBGrIBVt9qc=; b=FHYBlZm7hsbSKhz5LZDE17151/pWagr0FiYm2T/2oNa/CVEiku4oT+6WxtZhiIb2qjxVxKDm930jB2zJh6sDMDv0ZPALmE1gNiYz42+RrBVtWKgxc/p9UwTHz/HqygjhbrHr+W5f1FC0QjFfj6HozfiOf4FUPhWLjQC7SYQjp4o= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB3983.eurprd04.prod.outlook.com (2603:10a6:803:4c::16) by VE1PR04MB6349.eurprd04.prod.outlook.com (2603:10a6:803:126::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.30; Wed, 31 Mar 2021 06:49:29 +0000 Received: from VI1PR04MB3983.eurprd04.prod.outlook.com ([fe80::3ce1:4759:5c33:514c]) by VI1PR04MB3983.eurprd04.prod.outlook.com ([fe80::3ce1:4759:5c33:514c%5]) with mapi id 15.20.3977.033; Wed, 31 Mar 2021 06:49:29 +0000 From: Liu Ying To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org Subject: [PATCH v7 09/14] drm/bridge: imx: Add i.MX8qxp pixel link to DPI support Date: Wed, 31 Mar 2021 14:33:20 +0800 Message-Id: <1617172405-12962-10-git-send-email-victor.liu@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1617172405-12962-1-git-send-email-victor.liu@nxp.com> References: <1617172405-12962-1-git-send-email-victor.liu@nxp.com> X-Originating-IP: [119.31.174.66] X-ClientProxiedBy: MA1PR01CA0105.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:1::21) To VI1PR04MB3983.eurprd04.prod.outlook.com (2603:10a6:803:4c::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (119.31.174.66) by MA1PR01CA0105.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3977.26 via Frontend Transport; Wed, 31 Mar 2021 06:49:22 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: fcac6f85-2ccc-47c7-cd03-08d8f41121d1 X-MS-TrafficTypeDiagnostic: VE1PR04MB6349: X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3826; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9GX8hDmBQQBEFKkoyggPKVindwhFcHnu/LdDy3rzJsZv9QYKbRquVKwX8252GDSYTvhMX+rjNFkAm8BD0p6ch11jrVyOeMqhGsQcugqEhUHodinSBArkF//NJPWZRl5cMRNfETTrw8CKluKoPleNF+g9H1X9sJglIXlXAUP7AAgQnqpam6fv1lKwozBWD16Wl4yoVpNmGZllwR18z7Apfpf78hpmrqxuENGUp8S/txxBLX6s/wyKv5QMe2bQbFjtAIQst+wRyfU2J2fqL78Rx3xsetTH6QhJoMCFBjsqLfiZPlfJp5wyZY3hiDNGAn5MMuwKv9L3UuFjHmgStaa+EFXoK0R16jPG57tD7f+3cQ5RujmmsctglrK3oRxg0NsW9hc3edZKt4Q/n8d6T4mVcpglc4XtMPMwp0Rou4lpW+zNjuXs11DTUokPIioLZ+IvGvCmdQkw/L2T8xrzlvwVOUvuU544DGQ1Y9vcwv1Is7Sp3LE6uiOIoqdW9I3TFELJo3gsTynRKzLztT11vdtFU3WAIFCjB2uriuu4sVLzEsF5IG5tl9zoJKp4i11OVbVAa6KTNkJdtTGgsM+7GiXlmI5KTPPZ4ypjeF6TcRNW5EA9FRgbQVEgSFduEz5Zq5v9Rw42Cz4UFznXlZRdpndCMA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB3983.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(16526019)(7416002)(52116002)(30864003)(86362001)(6512007)(8676002)(6506007)(186003)(66556008)(5660300002)(26005)(498600001)(66476007)(38100700001)(4326008)(2616005)(956004)(83380400001)(36756003)(2906002)(8936002)(6486002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?c3dSS0lNMnI1M1hNUVpyWDB0QjVQOHJoV3RoODFxVkR0L2RJK1hqZmc1TFZ0?= =?utf-8?B?cG5DTk53WXd3dlVuWVorT3d3L3hkQ25idjUzcUM4U0dGWlJ1SXc1RnFZak1v?= =?utf-8?B?cld6VlcxNVhsZTdwRjF0N0ZDa2dEeUtGUlBWbjRrUjMySVNVNzVJWHgzUFBC?= =?utf-8?B?YU4vOHZjQzlwdlgrYTRoQnhZWFdGR3RsRjBQL2NwT0xaV09IejJZbGE3MGFl?= =?utf-8?B?bnhFNjBNbHdVWEQ1RjBqSEpLNzMrUDV3RUl6a3UvbGR2SlhWYlU5YkdtL2R2?= =?utf-8?B?dVVSRWJSL04zeDN6ZXhFM2JrN21uVnF4eHFuaTZDVDY5Z0FPQlp1ak55V21P?= =?utf-8?B?N2xmL0hVWlZZMTExcXhvQVVYNWpqSFZOelFyNHlHSGlqam5IQjJJbXQ4WU56?= =?utf-8?B?N3U0R3c4NDZvVUdPWFFQTHIwbjAwSlRnL1huY2FlVWxXVVNrMmd6elpWSytq?= =?utf-8?B?Z3Faa0MvaEpPeFRDVndnaDVodmhOOVVZbnNYRTBFdGo3Z3dzQUNheVNCcTIr?= =?utf-8?B?cHFIcnVZT3pEdEk5NCtacWlZM1M2cjNsWjZMcCt2ZWFYYzJTSCsyeFlBZlhh?= =?utf-8?B?dFRKV0R1YW9KcSt0WnVBMTNGaGRjek1Oenk1N3JJc1NuT1p3VWRKeGRtaCti?= =?utf-8?B?bTAwRmVkU0RqZk1Pc05ncFVvOFJ5dHkxaTZTS2NDNTdpVFZWdnU4MmNNZXZh?= =?utf-8?B?eVRwck5hRWdQdHFDcXdOdkp1WjV1emhWckdEbytmblI2dmRkYnlRVi9kN0Fk?= =?utf-8?B?TnB4OWcvSGJabU9jLzk5WnlCQm5XcXJ5RC9tODQvVjRSS0o3bnVoVmQ5WEU4?= =?utf-8?B?Zm9zeHZXSktYTE9kMll6VURGMlZMSXh3L0UwSUZUVEt0V2Y4SE1lc2FCaFRi?= =?utf-8?B?ZlVwSHRac1JBaXA1Y1RZcFVkZkV2aEE4QUxNdHlFZEVyd3F5Y2dDMkV1c1BT?= =?utf-8?B?VG82UHVpc1ZEZUlvUUlFVkdVdVEyMDVZMUo5dVRDc0Y1YnZ2VUI0Q1RPaEFo?= =?utf-8?B?WkF3ZXN3UHlPdnlqOVU3N2xWTEJVOEluUkRUejdSWTFRb3MwNkpwUVRtWk10?= =?utf-8?B?Zk1yR3hoMUYyWGdUSytWQUxSai91aW5vNW5xdTNFTE1vZzJKemZ1VG01Wmsx?= =?utf-8?B?N2hDWnZpazV5a2RYd2NCZkFnVlIwZDg4SlBYTGpmTnRrMmRlWHFJVlhxNWo1?= =?utf-8?B?MTMxV2p4ME1SV0hpdDFqYnhjdjdTbWg5aStNeUdZNHVjRFdnL0VRM1FCV3Za?= =?utf-8?B?SUZOeU1GTEFlb0xEdVlSQVRnODE4OUIyZGdORGpsOVA0NVM2Q0plYXZHNVlF?= =?utf-8?B?QklHam15UWN1Zkx3YVNMNGd2WDhmRHFqMm5ENjI2bFBTUitiVXdTZnQwQko4?= =?utf-8?B?cVJ3YVRQdmd2WnFEN2Ewa0ppM0JYQ1NVU2dWMnUyVWl5cFZOcEIrUzdNazJY?= =?utf-8?B?R01BM0FuMVhLOEhSVUZib21UNXZNT3hIYlBPUWNIK0pXZ0YvaGoydGVmYzV6?= =?utf-8?B?S0t3cS9wZ1dRZ1RxNmN5Ny9kRE9UWXB4aFNnL2VBZGF1QUFxcWxxaVlHMkhX?= =?utf-8?B?dm5aOEpPWFpreTEvS1dQMHdqZTlqUEc0TjNVT3N5VlZNSjlRVkQyWFg1dGc3?= =?utf-8?B?VEFvMXpyVG9zdUJPZkFnRVlKTForYU1YajRJU3FLWGhhYkxOTjM5T0d1cFpX?= =?utf-8?B?aWlzaWpJUUZ5VTh4cHFzNmNmajNZdjFWVzdzbmpjU3ZnMTdZQVMwcElIZjhI?= =?utf-8?Q?orjLRauVDEaLNn9aDbjRK/WRES7VDZWZ9lA612G?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fcac6f85-2ccc-47c7-cd03-08d8f41121d1 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB3983.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2021 06:49:29.5392 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: btGPco6coXh4VtZVcRM0CGmUmEjyRMcYy0EON3xhLweCUN4VonyQQOur9KIPozd4U0Xi+/2TcYCanEc+t8DuUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6349 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jernej.skrabec@siol.net, marcel.ziswiler@toradex.com, narmstrong@baylibre.com, airlied@linux.ie, s.hauer@pengutronix.de, jonas@kwiboo.se, robert.foss@linaro.org, kishon@ti.com, a.hajda@samsung.com, vkoul@kernel.org, robh+dt@kernel.org, linux-imx@nxp.com, kernel@pengutronix.de, lee.jones@linaro.org, mchehab@kernel.org, shawnguo@kernel.org, Laurent.pinchart@ideasonboard.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBwYXRjaCBhZGRzIGEgZHJtIGJyaWRnZSBkcml2ZXIgZm9yIGkuTVg4cXhwIHBpeGVsIGxp bmsgdG8gZGlzcGxheQpwaXhlbCBpbnRlcmZhY2UoUFhMMkRQSSkuICBUaGUgUFhMMkRQSSBpbnRl cmZhY2VzIHRoZSBwaXhlbCBsaW5rIDM2LWJpdApkYXRhIG91dHB1dCBhbmQgdGhlIERTSSBjb250 cm9sbGVy4oCZcyBNSVBJLURQSSAyNC1iaXQgZGF0YSBpbnB1dCwgYW5kCmlucHV0cyBvZiBMVkRT IERpc3BsYXkgQnJpZGdlKExEQikgbW9kdWxlIHVzZWQgaW4gTFZEUyBtb2RlLCB0byByZW1hcAp0 aGUgcGl4ZWwgY29sb3IgY29kaW5ncyBiZXR3ZWVuIHRob3NlIG1vZHVsZXMuIFRoZSBQWEwyRFBJ IGlzIHB1cmVseQpjb21iaW5hdG9yaWFsLgoKVGVzdGVkLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1h cmNlbC56aXN3aWxlckB0b3JhZGV4LmNvbT4gIyBDb2xpYnJpIGlNWDhYLCBMVDE3MDQxMC0yV0hD LCBMUDE1NldGMQpSZXZpZXdlZC1ieTogUm9iZXJ0IEZvc3MgPHJvYmVydC5mb3NzQGxpbmFyby5v cmc+ClNpZ25lZC1vZmYtYnk6IExpdSBZaW5nIDx2aWN0b3IubGl1QG54cC5jb20+Ci0tLQpNYXJj ZWwsIEkgYWRkIHlvdXIgVC1iIHRhZyBmcm9tIHY2LCBsZXQgbWUga25vdyBpZiB5b3Ugd2FudCBt ZSB0byBkcm9wIGl0LCBhcwp0aGUgY2hlY2twYXRjaCBmaXggYW5kIGluZGVudGF0aW9uIGZpeCBp biB2NyBhcmUgdHJpdmlhbC4KCnY2LT52NzoKKiBGaXggYmVsb3cgY29tcGxhaW50cyBmcm9tICdj aGVja3BhdGNoLnBsIC0tc3RyaWN0Jy4gKFJvYmVydCkKICAgLSAnQWxpZ25tZW50IHNob3VsZCBt YXRjaCBvcGVuIHBhcmVudGhlc2lzJwogICAtICdFTk9UU1VQUCBpcyBub3QgYSBTVVNWNCBlcnJv ciBjb2RlLCBwcmVmZXIgRU9QTk9UU1VQUCcKKiBBIHRyaXZpYWwgaW5kZW50YXRpb24gZml4LiAo Um9iZXJ0KQoqIEFkZCBNYXJjZWwncyBULWIgdGFnLgoqIEFkZCBSb2JlcnQncyBSLWIgdGFnLgoK djUtPnY2OgoqIE5vIGNoYW5nZS4KCnY0LT52NToKKiBObyBjaGFuZ2UuCgp2My0+djQ6CiogVXNl ICdmc2wsc2MtcmVzb3VyY2UnIERUIHByb3BlcnR5IHRvIGdldCB0aGUgU0NVIHJlc291cmNlIElE IGFzc29jaWF0ZWQgd2l0aAogIHRoZSBQWEwyRFBJIGluc3RhbmNlIGluc3RlYWQgb2YgdXNpbmcg YWxpYXMgSUQuIChSb2IpCgp2Mi0+djM6CiogQ2FsbCBzeXNjb25fbm9kZV90b19yZWdtYXAoKSB0 byBnZXQgcmVnbWFwIGluc3RlYWQgb2YKICBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxl KCkuCgp2MS0+djI6CiogRHJvcCB1bm5lY2Vzc2FyeSBwb3J0IGF2YWlsYWJpbGl0eSBjaGVjay4K CiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9LY29uZmlnICAgICAgICAgICB8ICAgOCArCiBk cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCiBkcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4cXhwLXB4bDJkcGkuYyB8IDQ4NyArKysrKysrKysr KysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNDk2IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4cXhwLXB4bDJk cGkuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L0tjb25maWcgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9LY29uZmlnCmluZGV4IDRkMWYwMjcuLjFlYTFjZTcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L0tjb25maWcKKysrIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvS2NvbmZpZwpAQCAtMTQsMyArMTQsMTEgQEAgY29uZmln IERSTV9JTVg4UVhQX1BJWEVMX0xJTksKIAloZWxwCiAJICBDaG9vc2UgdGhpcyB0byBlbmFibGUg ZGlzcGxheSBwaXhlbCBsaW5rIGZvdW5kIGluCiAJICBGcmVlc2NhbGUgaS5NWDhxbS9xeHAgcHJv Y2Vzc29ycy4KKworY29uZmlnIERSTV9JTVg4UVhQX1BJWEVMX0xJTktfVE9fRFBJCisJdHJpc3Rh dGUgIkZyZWVzY2FsZSBpLk1YOFFYUCBwaXhlbCBsaW5rIHRvIGRpc3BsYXkgcGl4ZWwgaW50ZXJm YWNlIgorCWRlcGVuZHMgb24gT0YKKwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKKwloZWxwCisJICBD aG9vc2UgdGhpcyB0byBlbmFibGUgcGl4ZWwgbGluayB0byBkaXNwbGF5IHBpeGVsIGludGVyZmFj ZShQWEwyRFBJKQorCSAgZm91bmQgaW4gRnJlZXNjYWxlIGkuTVg4cXhwIHByb2Nlc3Nvci4KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L01ha2VmaWxlIGIvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9pbXgvTWFrZWZpbGUKaW5kZXggYzE1NDY5Zi4uZTc0ZGQ2NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9pbXgvTWFrZWZpbGUKQEAgLTEsMiArMSwzIEBACiBvYmotJChDT05GSUdf RFJNX0lNWDhRWFBfUElYRUxfQ09NQklORVIpICs9IGlteDhxeHAtcGl4ZWwtY29tYmluZXIubwog b2JqLSQoQ09ORklHX0RSTV9JTVg4UVhQX1BJWEVMX0xJTkspICs9IGlteDhxeHAtcGl4ZWwtbGlu ay5vCitvYmotJChDT05GSUdfRFJNX0lNWDhRWFBfUElYRUxfTElOS19UT19EUEkpICs9IGlteDhx eHAtcHhsMmRwaS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4 cXhwLXB4bDJkcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhxeHAtcHhsMmRw aS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4zMDlmNDdhCi0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvaW14OHF4cC1weGwyZHBpLmMK QEAgLTAsMCArMSw0ODcgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwor CisvKgorICogQ29weXJpZ2h0IDIwMjAgTlhQCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Zpcm13 YXJlL2lteC9zdmMvbWlzYy5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxp bnV4L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CisjaW5jbHVkZSA8 bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgor I2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfc3Rh dGVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9icmlkZ2UuaD4KKyNpbmNsdWRlIDxkcm0v ZHJtX29mLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorCisjaW5jbHVkZSA8ZHQtYmlu ZGluZ3MvZmlybXdhcmUvaW14L3JzcmMuaD4KKworI2RlZmluZSBQWEwyRFBJX0NUUkwJMHg0MAor I2RlZmluZSAgQ0ZHMV8xNkJJVAkweDAKKyNkZWZpbmUgIENGRzJfMTZCSVQJMHgxCisjZGVmaW5l ICBDRkczXzE2QklUCTB4MgorI2RlZmluZSAgQ0ZHMV8xOEJJVAkweDMKKyNkZWZpbmUgIENGRzJf MThCSVQJMHg0CisjZGVmaW5lICBDRkdfMjRCSVQJMHg1CisKKyNkZWZpbmUgRFJJVkVSX05BTUUJ ImlteDhxeHAtcHhsMmRwaSIKKworc3RydWN0IGlteDhxeHBfcHhsMmRwaSB7CisJc3RydWN0IHJl Z21hcCAqcmVnbWFwOworCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKKwlzdHJ1Y3QgZHJtX2Jy aWRnZSAqbmV4dF9icmlkZ2U7CisJc3RydWN0IGRybV9icmlkZ2UgKmNvbXBhbmlvbjsKKwlzdHJ1 Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IGlteF9zY19pcGMgKmlwY19oYW5kbGU7CisJdTMyIHNj X3Jlc291cmNlOworCXUzMiBpbl9idXNfZm9ybWF0OworCXUzMiBvdXRfYnVzX2Zvcm1hdDsKKwl1 MzIgcGxfc2VsOworfTsKKworI2RlZmluZSBicmlkZ2VfdG9fcDJkKGIpCWNvbnRhaW5lcl9vZihi LCBzdHJ1Y3QgaW14OHF4cF9weGwyZHBpLCBicmlkZ2UpCisKK3N0YXRpYyBpbnQgaW14OHF4cF9w eGwyZHBpX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJCQkJIGVu dW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCit7CisJc3RydWN0IGlteDhxeHBfcHhs MmRwaSAqcDJkID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKKworCWlmICghKGZsYWdzICYgRFJN X0JSSURHRV9BVFRBQ0hfTk9fQ09OTkVDVE9SKSkgeworCQlEUk1fREVWX0VSUk9SKHAyZC0+ZGV2 LAorCQkJICAgICAgImRvIG5vdCBzdXBwb3J0IGNyZWF0aW5nIGEgZHJtX2Nvbm5lY3RvclxuIik7 CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmICghYnJpZGdlLT5lbmNvZGVyKSB7CisJCURS TV9ERVZfRVJST1IocDJkLT5kZXYsICJtaXNzaW5nIGVuY29kZXJcbiIpOworCQlyZXR1cm4gLUVO T0RFVjsKKwl9CisKKwlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLAor CQkJCSBwMmQtPm5leHRfYnJpZGdlLCBicmlkZ2UsCisJCQkJIERSTV9CUklER0VfQVRUQUNIX05P X0NPTk5FQ1RPUik7Cit9CisKK3N0YXRpYyBpbnQKK2lteDhxeHBfcHhsMmRwaV9icmlkZ2VfYXRv bWljX2NoZWNrKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJICAgIHN0cnVjdCBkcm1f YnJpZGdlX3N0YXRlICpicmlkZ2Vfc3RhdGUsCisJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKKwkJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUpCit7CisJc3RydWN0IGlteDhxeHBfcHhsMmRwaSAqcDJkID0gYnJpZGdlLT5kcml2ZXJf cHJpdmF0ZTsKKworCXAyZC0+aW5fYnVzX2Zvcm1hdCA9IGJyaWRnZV9zdGF0ZS0+aW5wdXRfYnVz X2NmZy5mb3JtYXQ7CisJcDJkLT5vdXRfYnVzX2Zvcm1hdCA9IGJyaWRnZV9zdGF0ZS0+b3V0cHV0 X2J1c19jZmcuZm9ybWF0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitpbXg4cXhw X3B4bDJkcGlfYnJpZGdlX21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCit7CisJc3RydWN0IGlteDhxeHBfcHhsMmRw aSAqcDJkID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW14OHF4cF9weGwyZHBp ICpjb21wYW5pb25fcDJkOworCWludCByZXQ7CisKKwlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5j KHAyZC0+ZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwKKwkJ CSAgICAgICJmYWlsZWQgdG8gZ2V0IHJ1bnRpbWUgUE0gc3luYzogJWRcbiIsIHJldCk7CisKKwly ZXQgPSBpbXhfc2NfbWlzY19zZXRfY29udHJvbChwMmQtPmlwY19oYW5kbGUsIHAyZC0+c2NfcmVz b3VyY2UsCisJCQkJICAgICAgSU1YX1NDX0NfUFhMX0xJTktfU0VMLCBwMmQtPnBsX3NlbCk7CisJ aWYgKHJldCkKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwKKwkJCSAgICAgICJmYWlsZWQgdG8g c2V0IHBpeGVsIGxpbmsgc2VsZWN0aW9uKCV1KTogJWRcbiIsCisJCQkJCQkJcDJkLT5wbF9zZWws IHJldCk7CisKKwlzd2l0Y2ggKHAyZC0+b3V0X2J1c19mb3JtYXQpIHsKKwljYXNlIE1FRElBX0JV U19GTVRfUkdCODg4XzFYMjQ6CisJCXJlZ21hcF93cml0ZShwMmQtPnJlZ21hcCwgUFhMMkRQSV9D VFJMLCBDRkdfMjRCSVQpOworCQlicmVhazsKKwljYXNlIE1FRElBX0JVU19GTVRfUkdCNjY2XzFY MjRfQ1BBREhJOgorCQlyZWdtYXBfd3JpdGUocDJkLT5yZWdtYXAsIFBYTDJEUElfQ1RSTCwgQ0ZH Ml8xOEJJVCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9ERVZfRVJST1IocDJkLT5kZXYs CisJCQkgICAgICAidW5zdXBwb3J0ZWQgb3V0cHV0IGJ1cyBmb3JtYXQgMHglMDh4XG4iLAorCQkJ CQkJCXAyZC0+b3V0X2J1c19mb3JtYXQpOworCX0KKworCWlmIChwMmQtPmNvbXBhbmlvbikgewor CQljb21wYW5pb25fcDJkID0gYnJpZGdlX3RvX3AyZChwMmQtPmNvbXBhbmlvbik7CisKKwkJY29t cGFuaW9uX3AyZC0+aW5fYnVzX2Zvcm1hdCA9IHAyZC0+aW5fYnVzX2Zvcm1hdDsKKwkJY29tcGFu aW9uX3AyZC0+b3V0X2J1c19mb3JtYXQgPSBwMmQtPm91dF9idXNfZm9ybWF0OworCisJCXAyZC0+ Y29tcGFuaW9uLT5mdW5jcy0+bW9kZV9zZXQocDJkLT5jb21wYW5pb24sIG1vZGUsCisJCQkJCQkJ YWRqdXN0ZWRfbW9kZSk7CisJfQorfQorCitzdGF0aWMgdm9pZAoraW14OHF4cF9weGwyZHBpX2Jy aWRnZV9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJCSAgICAg IHN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpvbGRfYnJpZGdlX3N0YXRlKQoreworCXN0cnVjdCBp bXg4cXhwX3B4bDJkcGkgKnAyZCA9IGJyaWRnZS0+ZHJpdmVyX3ByaXZhdGU7CisJaW50IHJldDsK KworCXJldCA9IHBtX3J1bnRpbWVfcHV0KHAyZC0+ZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJRFJN X0RFVl9FUlJPUihwMmQtPmRldiwgImZhaWxlZCB0byBwdXQgcnVudGltZSBQTTogJWRcbiIsIHJl dCk7CisKKwlpZiAocDJkLT5jb21wYW5pb24pCisJCXAyZC0+Y29tcGFuaW9uLT5mdW5jcy0+YXRv bWljX2Rpc2FibGUocDJkLT5jb21wYW5pb24sCisJCQkJCQkJb2xkX2JyaWRnZV9zdGF0ZSk7Cit9 CisKK3N0YXRpYyBjb25zdCB1MzIgaW14OHF4cF9weGwyZHBpX2J1c19vdXRwdXRfZm10c1tdID0g eworCU1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQsCisJTUVESUFfQlVTX0ZNVF9SR0I2NjZfMVgy NF9DUEFESEksCit9OworCitzdGF0aWMgYm9vbCBpbXg4cXhwX3B4bDJkcGlfYnVzX291dHB1dF9m bXRfc3VwcG9ydGVkKHUzMiBmbXQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShpbXg4cXhwX3B4bDJkcGlfYnVzX291dHB1dF9mbXRzKTsgaSsrKSB7CisJCWlmIChp bXg4cXhwX3B4bDJkcGlfYnVzX291dHB1dF9mbXRzW2ldID09IGZtdCkKKwkJCXJldHVybiB0cnVl OworCX0KKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHUzMiAqCitpbXg4cXhwX3B4bDJk cGlfYnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSwKKwkJCQkJCSBzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqYnJpZGdlX3N0YXRlLAorCQkJ CQkJIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkJCSBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKKwkJCQkJCSB1MzIgb3V0cHV0X2ZtdCwKKwkJ CQkJCSB1bnNpZ25lZCBpbnQgKm51bV9pbnB1dF9mbXRzKQoreworCXUzMiAqaW5wdXRfZm10czsK KworCWlmICghaW14OHF4cF9weGwyZHBpX2J1c19vdXRwdXRfZm10X3N1cHBvcnRlZChvdXRwdXRf Zm10KSkKKwkJcmV0dXJuIE5VTEw7CisKKwkqbnVtX2lucHV0X2ZtdHMgPSAxOworCisJaW5wdXRf Zm10cyA9IGttYWxsb2Moc2l6ZW9mKCppbnB1dF9mbXRzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFp bnB1dF9mbXRzKQorCQlyZXR1cm4gTlVMTDsKKworCXN3aXRjaCAob3V0cHV0X2ZtdCkgeworCWNh c2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDoKKwkJaW5wdXRfZm10c1swXSA9IE1FRElBX0JV U19GTVRfUkdCODg4XzFYMzZfQ1BBRExPOworCQlicmVhazsKKwljYXNlIE1FRElBX0JVU19GTVRf UkdCNjY2XzFYMjRfQ1BBREhJOgorCQlpbnB1dF9mbXRzWzBdID0gTUVESUFfQlVTX0ZNVF9SR0I2 NjZfMVgzNl9DUEFETE87CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWtmcmVlKGlucHV0X2ZtdHMp OworCQlpbnB1dF9mbXRzID0gTlVMTDsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIGlucHV0X2Zt dHM7Cit9CisKK3N0YXRpYyB1MzIgKgoraW14OHF4cF9weGwyZHBpX2JyaWRnZV9hdG9taWNfZ2V0 X291dHB1dF9idXNfZm10cyhzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJCQkJICBzdHJ1 Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqYnJpZGdlX3N0YXRlLAorCQkJCQkJICBzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlLAorCQkJCQkJICB1bnNpZ25lZCBpbnQgKm51bV9vdXRwdXRfZm10cykKK3sK KwkqbnVtX291dHB1dF9mbXRzID0gQVJSQVlfU0laRShpbXg4cXhwX3B4bDJkcGlfYnVzX291dHB1 dF9mbXRzKTsKKwlyZXR1cm4ga21lbWR1cChpbXg4cXhwX3B4bDJkcGlfYnVzX291dHB1dF9mbXRz LAorCQkJc2l6ZW9mKGlteDhxeHBfcHhsMmRwaV9idXNfb3V0cHV0X2ZtdHMpLCBHRlBfS0VSTkVM KTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIGlteDhxeHBfcHhs MmRwaV9icmlkZ2VfZnVuY3MgPSB7CisJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUJPSBkcm1fYXRv bWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0 ZQk9IGRybV9hdG9taWNfaGVscGVyX2JyaWRnZV9kZXN0cm95X3N0YXRlLAorCS5hdG9taWNfcmVz ZXQJCT0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX3Jlc2V0LAorCS5hdHRhY2gJCQk9IGlteDhx eHBfcHhsMmRwaV9icmlkZ2VfYXR0YWNoLAorCS5hdG9taWNfY2hlY2sJCT0gaW14OHF4cF9weGwy ZHBpX2JyaWRnZV9hdG9taWNfY2hlY2ssCisJLm1vZGVfc2V0CQk9IGlteDhxeHBfcHhsMmRwaV9i cmlkZ2VfbW9kZV9zZXQsCisJLmF0b21pY19kaXNhYmxlCQk9IGlteDhxeHBfcHhsMmRwaV9icmlk Z2VfYXRvbWljX2Rpc2FibGUsCisJLmF0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMgPQorCQkJaW14 OHF4cF9weGwyZHBpX2JyaWRnZV9hdG9taWNfZ2V0X2lucHV0X2J1c19mbXRzLAorCS5hdG9taWNf Z2V0X291dHB1dF9idXNfZm10cyA9CisJCQlpbXg4cXhwX3B4bDJkcGlfYnJpZGdlX2F0b21pY19n ZXRfb3V0cHV0X2J1c19mbXRzLAorfTsKKworc3RhdGljIHN0cnVjdCBkZXZpY2Vfbm9kZSAqCitp bXg4cXhwX3B4bDJkcGlfZ2V0X2F2YWlsYWJsZV9lcF9mcm9tX3BvcnQoc3RydWN0IGlteDhxeHBf cHhsMmRwaSAqcDJkLAorCQkJCQkgICB1MzIgcG9ydF9pZCkKK3sKKwlzdHJ1Y3QgZGV2aWNlX25v ZGUgKnBvcnQsICplcDsKKwlpbnQgZXBfY250OworCisJcG9ydCA9IG9mX2dyYXBoX2dldF9wb3J0 X2J5X2lkKHAyZC0+ZGV2LT5vZl9ub2RlLCBwb3J0X2lkKTsKKwlpZiAoIXBvcnQpIHsKKwkJRFJN X0RFVl9FUlJPUihwMmQtPmRldiwgImZhaWxlZCB0byBnZXQgcG9ydEAldVxuIiwgcG9ydF9pZCk7 CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOworCX0KKworCWVwX2NudCA9IG9mX2dldF9hdmFp bGFibGVfY2hpbGRfY291bnQocG9ydCk7CisJaWYgKGVwX2NudCA9PSAwKSB7CisJCURSTV9ERVZf RVJST1IocDJkLT5kZXYsICJubyBhdmFpbGFibGUgZW5kcG9pbnRzIG9mIHBvcnRAJXVcbiIsCisJ CQkgICAgICBwb3J0X2lkKTsKKwkJZXAgPSBFUlJfUFRSKC1FTk9ERVYpOworCQlnb3RvIG91dDsK Kwl9IGVsc2UgaWYgKGVwX2NudCA+IDEpIHsKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwKKwkJ CSAgICAgICJpbnZhbGlkIGF2YWlsYWJsZSBlbmRwb2ludHMgb2YgcG9ydEAldVxuIiwKKwkJCSAg ICAgIHBvcnRfaWQpOworCQllcCA9IEVSUl9QVFIoLUVJTlZBTCk7CisJCWdvdG8gb3V0OworCX0K KworCWVwID0gb2ZfZ2V0X25leHRfYXZhaWxhYmxlX2NoaWxkKHBvcnQsIE5VTEwpOworCWlmICgh ZXApIHsKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwKKwkJCSAgICAgICJmYWlsZWQgdG8gZ2V0 IGF2YWlsYWJsZSBlbmRwb2ludCBvZiBwb3J0QCV1XG4iLAorCQkJICAgICAgcG9ydF9pZCk7CisJ CWVwID0gRVJSX1BUUigtRU5PREVWKTsKKwkJZ290byBvdXQ7CisJfQorb3V0OgorCW9mX25vZGVf cHV0KHBvcnQpOworCXJldHVybiBlcDsKK30KKworc3RhdGljIHN0cnVjdCBkcm1fYnJpZGdlICoK K2lteDhxeHBfcHhsMmRwaV9maW5kX25leHRfYnJpZGdlKHN0cnVjdCBpbXg4cXhwX3B4bDJkcGkg KnAyZCkKK3sKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwLCAqcmVtb3RlOworCXN0cnVjdCBkcm1f YnJpZGdlICpuZXh0X2JyaWRnZTsKKwlpbnQgcmV0OworCisJZXAgPSBpbXg4cXhwX3B4bDJkcGlf Z2V0X2F2YWlsYWJsZV9lcF9mcm9tX3BvcnQocDJkLCAxKTsKKwlpZiAoSVNfRVJSKGVwKSkgewor CQlyZXQgPSBQVFJfRVJSKGVwKTsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisKKwlyZW1v dGUgPSBvZl9ncmFwaF9nZXRfcmVtb3RlX3BvcnRfcGFyZW50KGVwKTsKKwlpZiAoIXJlbW90ZSB8 fCAhb2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShyZW1vdGUpKSB7CisJCURSTV9ERVZfRVJST1IocDJk LT5kZXYsICJubyBhdmFpbGFibGUgcmVtb3RlXG4iKTsKKwkJbmV4dF9icmlkZ2UgPSBFUlJfUFRS KC1FTk9ERVYpOworCQlnb3RvIG91dDsKKwl9IGVsc2UgaWYgKCFvZl9kZXZpY2VfaXNfYXZhaWxh YmxlKHJlbW90ZS0+cGFyZW50KSkgeworCQlEUk1fREVWX0VSUk9SKHAyZC0+ZGV2LCAicmVtb3Rl IHBhcmVudCBpcyBub3QgYXZhaWxhYmxlXG4iKTsKKwkJbmV4dF9icmlkZ2UgPSBFUlJfUFRSKC1F Tk9ERVYpOworCQlnb3RvIG91dDsKKwl9CisKKwluZXh0X2JyaWRnZSA9IG9mX2RybV9maW5kX2Jy aWRnZShyZW1vdGUpOworCWlmICghbmV4dF9icmlkZ2UpIHsKKwkJbmV4dF9icmlkZ2UgPSBFUlJf UFRSKC1FUFJPQkVfREVGRVIpOworCQlnb3RvIG91dDsKKwl9CitvdXQ6CisJb2Zfbm9kZV9wdXQo cmVtb3RlKTsKKwlvZl9ub2RlX3B1dChlcCk7CisKKwlyZXR1cm4gbmV4dF9icmlkZ2U7Cit9CisK K3N0YXRpYyBpbnQgaW14OHF4cF9weGwyZHBpX3NldF9waXhlbF9saW5rX3NlbChzdHJ1Y3QgaW14 OHF4cF9weGwyZHBpICpwMmQpCit7CisJc3RydWN0IGRldmljZV9ub2RlICplcDsKKwlzdHJ1Y3Qg b2ZfZW5kcG9pbnQgZW5kcG9pbnQ7CisJaW50IHJldDsKKworCWVwID0gaW14OHF4cF9weGwyZHBp X2dldF9hdmFpbGFibGVfZXBfZnJvbV9wb3J0KHAyZCwgMCk7CisJaWYgKElTX0VSUihlcCkpCisJ CXJldHVybiBQVFJfRVJSKGVwKTsKKworCXJldCA9IG9mX2dyYXBoX3BhcnNlX2VuZHBvaW50KGVw LCAmZW5kcG9pbnQpOworCWlmIChyZXQpIHsKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwKKwkJ CSAgICAgICJmYWlsZWQgdG8gcGFyc2UgZW5kcG9pbnQgb2YgcG9ydEAwOiAlZFxuIiwgcmV0KTsK KwkJZ290byBvdXQ7CisJfQorCisJcDJkLT5wbF9zZWwgPSBlbmRwb2ludC5pZDsKK291dDoKKwlv Zl9ub2RlX3B1dChlcCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGlteDhxeHBf cHhsMmRwaV9wYXJzZV9kdF9jb21wYW5pb24oc3RydWN0IGlteDhxeHBfcHhsMmRwaSAqcDJkKQor eworCXN0cnVjdCBpbXg4cXhwX3B4bDJkcGkgKmNvbXBhbmlvbl9wMmQ7CisJc3RydWN0IGRldmlj ZSAqZGV2ID0gcDJkLT5kZXY7CisJc3RydWN0IGRldmljZV9ub2RlICpjb21wYW5pb247CisJc3Ry dWN0IGRldmljZV9ub2RlICpwb3J0MSwgKnBvcnQyOworCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgKm1hdGNoOworCWludCBkdWFsX2xpbms7CisJaW50IHJldCA9IDA7CisKKwkvKiBMb2NhdGUg dGhlIGNvbXBhbmlvbiBQWEwyRFBJIGZvciBkdWFsLWxpbmsgb3BlcmF0aW9uLCBpZiBhbnkuICov CisJY29tcGFuaW9uID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJmc2wsY29tcGFu aW9uLXB4bDJkcGkiLCAwKTsKKwlpZiAoIWNvbXBhbmlvbikKKwkJcmV0dXJuIDA7CisKKwlpZiAo IW9mX2RldmljZV9pc19hdmFpbGFibGUoY29tcGFuaW9uKSkgeworCQlEUk1fREVWX0VSUk9SKGRl diwgImNvbXBhbmlvbiBQWEwyRFBJIGlzIG5vdCBhdmFpbGFibGVcbiIpOworCQlyZXQgPSAtRU5P REVWOworCQlnb3RvIG91dDsKKwl9CisKKwkvKgorCSAqIFNhbml0eSBjaGVjazogdGhlIGNvbXBh bmlvbiBicmlkZ2UgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbXBhdGlibGUKKwkgKiBzdHJpbmcuCisJ ICovCisJbWF0Y2ggPSBvZl9tYXRjaF9kZXZpY2UoZGV2LT5kcml2ZXItPm9mX21hdGNoX3RhYmxl LCBkZXYpOworCWlmICghb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUoY29tcGFuaW9uLCBtYXRjaC0+ Y29tcGF0aWJsZSkpIHsKKwkJRFJNX0RFVl9FUlJPUihkZXYsICJjb21wYW5pb24gUFhMMkRQSSBp cyBpbmNvbXBhdGlibGVcbiIpOworCQlyZXQgPSAtRU5YSU87CisJCWdvdG8gb3V0OworCX0KKwor CXAyZC0+Y29tcGFuaW9uID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGNvbXBhbmlvbik7CisJaWYgKCFw MmQtPmNvbXBhbmlvbikgeworCQlyZXQgPSAtRVBST0JFX0RFRkVSOworCQlEUk1fREVWX0RFQlVH X0RSSVZFUihwMmQtPmRldiwKKwkJCQkgICAgICJmYWlsZWQgdG8gZmluZCBjb21wYW5pb24gYnJp ZGdlOiAlZFxuIiwKKwkJCQkgICAgIHJldCk7CisJCWdvdG8gb3V0OworCX0KKworCWNvbXBhbmlv bl9wMmQgPSBicmlkZ2VfdG9fcDJkKHAyZC0+Y29tcGFuaW9uKTsKKworCS8qCisJICogV2UgbmVl ZCB0byB3b3JrIG91dCBpZiB0aGUgc2luayBpcyBleHBlY3RpbmcgdXMgdG8gZnVuY3Rpb24gaW4K KwkgKiBkdWFsLWxpbmsgbW9kZS4gIFdlIGRvIHRoaXMgYnkgbG9va2luZyBhdCB0aGUgRFQgcG9y dCBub2RlcyB0aGF0CisJICogdGhlIG5leHQgYnJpZGdlcyBhcmUgY29ubmVjdGVkIHRvLiAgSWYg dGhleSBhcmUgbWFya2VkIGFzIGV4cGVjdGluZworCSAqIGV2ZW4gcGl4ZWxzIGFuZCBvZGQgcGl4 ZWxzIHRoYW4gd2UgbmVlZCB0byB1c2UgdGhlIGNvbXBhbmlvbiBQWEwyRFBJLgorCSAqLworCXBv cnQxID0gb2ZfZ3JhcGhfZ2V0X3BvcnRfYnlfaWQocDJkLT5uZXh0X2JyaWRnZS0+b2Zfbm9kZSwg MSk7CisJcG9ydDIgPSBvZl9ncmFwaF9nZXRfcG9ydF9ieV9pZChjb21wYW5pb25fcDJkLT5uZXh0 X2JyaWRnZS0+b2Zfbm9kZSwgMSk7CisJZHVhbF9saW5rID0gZHJtX29mX2x2ZHNfZ2V0X2R1YWxf bGlua19waXhlbF9vcmRlcihwb3J0MSwgcG9ydDIpOworCW9mX25vZGVfcHV0KHBvcnQxKTsKKwlv Zl9ub2RlX3B1dChwb3J0Mik7CisKKwlpZiAoZHVhbF9saW5rIDwgMCkgeworCQlyZXQgPSBkdWFs X2xpbms7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiZmFpbGVkIHRvIGdldCBkdWFsIGxpbmsgcGl4 ZWwgb3JkZXI6ICVkXG4iLAorCQkJICAgICAgcmV0KTsKKwkJZ290byBvdXQ7CisJfQorCisJRFJN X0RFVl9ERUJVR19EUklWRVIoZGV2LAorCQkJICAgICAiZHVhbC1saW5rIGNvbmZpZ3VyYXRpb24g ZGV0ZWN0ZWQgKGNvbXBhbmlvbiBicmlkZ2UgJXBPRilcbiIsCisJCQkgICAgIGNvbXBhbmlvbik7 CitvdXQ6CisJb2Zfbm9kZV9wdXQoY29tcGFuaW9uKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgaW50IGlteDhxeHBfcHhsMmRwaV9icmlkZ2VfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKK3sKKwlzdHJ1Y3QgaW14OHF4cF9weGwyZHBpICpwMmQ7CisJc3RydWN0IGRldmlj ZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gZGV2LT5vZl9u b2RlOworCWludCByZXQ7CisKKwlwMmQgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnAyZCks IEdGUF9LRVJORUwpOworCWlmICghcDJkKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXAyZC0+cmVn bWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG5wLT5wYXJlbnQpOworCWlmIChJU19FUlIocDJk LT5yZWdtYXApKSB7CisJCXJldCA9IFBUUl9FUlIocDJkLT5yZWdtYXApOworCQlpZiAocmV0ICE9 IC1FUFJPQkVfREVGRVIpCisJCQlEUk1fREVWX0VSUk9SKGRldiwgImZhaWxlZCB0byBnZXQgcmVn bWFwOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSBpbXhfc2N1X2dl dF9oYW5kbGUoJnAyZC0+aXBjX2hhbmRsZSk7CisJaWYgKHJldCkgeworCQlpZiAocmV0ICE9IC1F UFJPQkVfREVGRVIpCisJCQlEUk1fREVWX0VSUk9SKGRldiwgImZhaWxlZCB0byBnZXQgU0NVIGlw YyBoYW5kbGU6ICVkXG4iLAorCQkJCSAgICAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJ cDJkLT5kZXYgPSBkZXY7CisKKwlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImZzbCxz Yy1yZXNvdXJjZSIsICZwMmQtPnNjX3Jlc291cmNlKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERVZf RVJST1IoZGV2LCAiZmFpbGVkIHRvIGdldCBTQyByZXNvdXJjZSAlZFxuIiwgcmV0KTsKKwkJcmV0 dXJuIHJldDsKKwl9CisKKwlwMmQtPm5leHRfYnJpZGdlID0gaW14OHF4cF9weGwyZHBpX2ZpbmRf bmV4dF9icmlkZ2UocDJkKTsKKwlpZiAoSVNfRVJSKHAyZC0+bmV4dF9icmlkZ2UpKSB7CisJCXJl dCA9IFBUUl9FUlIocDJkLT5uZXh0X2JyaWRnZSk7CisJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZF UikKKwkJCURSTV9ERVZfRVJST1IoZGV2LCAiZmFpbGVkIHRvIGZpbmQgbmV4dCBicmlkZ2U6ICVk XG4iLAorCQkJCSAgICAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gaW14OHF4 cF9weGwyZHBpX3NldF9waXhlbF9saW5rX3NlbChwMmQpOworCWlmIChyZXQpCisJCXJldHVybiBy ZXQ7CisKKwlyZXQgPSBpbXg4cXhwX3B4bDJkcGlfcGFyc2VfZHRfY29tcGFuaW9uKHAyZCk7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHAy ZCk7CisJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKKworCXAyZC0+YnJpZGdlLmRyaXZlcl9wcml2 YXRlID0gcDJkOworCXAyZC0+YnJpZGdlLmZ1bmNzID0gJmlteDhxeHBfcHhsMmRwaV9icmlkZ2Vf ZnVuY3M7CisJcDJkLT5icmlkZ2Uub2Zfbm9kZSA9IG5wOworCisJZHJtX2JyaWRnZV9hZGQoJnAy ZC0+YnJpZGdlKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaW14OHF4cF9weGwy ZHBpX2JyaWRnZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1 Y3QgaW14OHF4cF9weGwyZHBpICpwMmQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwor CWRybV9icmlkZ2VfcmVtb3ZlKCZwMmQtPmJyaWRnZSk7CisKKwlwbV9ydW50aW1lX2Rpc2FibGUo JnBkZXYtPmRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgaW14OHF4cF9weGwyZHBpX2R0X2lkc1tdID0geworCXsgLmNvbXBhdGlibGUgPSAi ZnNsLGlteDhxeHAtcHhsMmRwaSIsIH0sCisJeyAvKiBzZW50aW5lbCAqLyB9Cit9OworTU9EVUxF X0RFVklDRV9UQUJMRShvZiwgaW14OHF4cF9weGwyZHBpX2R0X2lkcyk7CisKK3N0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIGlteDhxeHBfcHhsMmRwaV9icmlkZ2VfZHJpdmVyID0geworCS5w cm9iZQk9IGlteDhxeHBfcHhsMmRwaV9icmlkZ2VfcHJvYmUsCisJLnJlbW92ZSA9IGlteDhxeHBf cHhsMmRwaV9icmlkZ2VfcmVtb3ZlLAorCS5kcml2ZXIJPSB7CisJCS5vZl9tYXRjaF90YWJsZSA9 IGlteDhxeHBfcHhsMmRwaV9kdF9pZHMsCisJCS5uYW1lID0gRFJJVkVSX05BTUUsCisJfSwKK307 Cittb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGlteDhxeHBfcHhsMmRwaV9icmlkZ2VfZHJpdmVyKTsK KworTU9EVUxFX0RFU0NSSVBUSU9OKCJpLk1YOFFYUCBwaXhlbCBsaW5rIHRvIERQSSBicmlkZ2Ug ZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJMaXUgWWluZyA8dmljdG9yLmxpdUBueHAuY29tPiIp OworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOworTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybToiIERS SVZFUl9OQU1FKTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK