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=-17.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 867A3C433E0 for ; Wed, 10 Mar 2021 10:13:06 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 C182264FE4 for ; Wed, 10 Mar 2021 10:13:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C182264FE4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ckZZwBE97VRkFKa750JUTjfMW7smcKXFWAVd5It6h6Y=; b=hgX8xiPy9Gai7a+jl+WC04bv+ IbxL/uocUrxY/N7niMsCXCyDkuao1bZ5OfIkdrpYdUXNtEfM27XM2AN1mopuDklZsqfg3NEm0dKI8 gu5sQKbhDkv2H5smubpiHjSmonGerenHa8XKmvzo9qc7HjAYjdUcyJlIDXsGBje57ZVpf4snQL9M9 /ju/R9v0k4FS74cUBlC3Gw2PySNwUwmT4YsJajNyku90bA7ylzgDDHeBzFcTQnRYLi6AgaC8zjVZW 5cSiIyQnJ2IMGG+VduFjunXHtHoJ/mectIuGl3LNF34tLY+/Gp699oXLzuNkXSR3wN6bOQNvqGV7Z W/xIG3nJQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJvnq-006XKU-Sl; Wed, 10 Mar 2021 10:10:55 +0000 Received: from mail-eopbgr30080.outbound.protection.outlook.com ([40.107.3.80] helo=EUR03-AM5-obe.outbound.protection.outlook.com) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lJvmy-006Wwg-26 for linux-arm-kernel@lists.infradead.org; Wed, 10 Mar 2021 10:10:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T8JQwnDACW8/7SCWiGJXNN0kgVeDFIkKmtfsKHeZNXZEy04QJIcFKOyp0yqd4P/qpaaGNoQvltq445EfxPc0OFY5Sd0liOvcth3n6rskUmThkSxUeyDIRoKQe3hXW5aRTx8Lm+hL1hzDUKUo2p5QAyaNXAPUHey5e9Jn1Ourp7t7nZgP+vs2VYMlf5MYc6ru9unW48YxtC+a3GRO/098vS4rJ2fMqnjsQEIRDK9OZqedLntA0PAmhcya+EROF715WeOSNTxmpUMywVDeVR0ME/xTWnYRrS8aSt5W9FSmr7zQ9KvFW4QJrz4hvFOW3D+v2xloKFVuO2JVZeTohP6xdw== 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=OOdbNl8Q3/9eong8LMlu769IEyT7I+G4D0T40NkHEIQ=; b=RbwV6vU47SiQx5FRTuXseRq3BiJ637sJM9atyAgWcIXBno6gPqrgiQX0/5l7WgW489I5prw/8ZNy9EQZJnj8Lh/ZqFFCF6TaC0bPu3JCygOu/KUU6b2UNna4WrrEaDyd9Xr1f57qRPH7w7SZOkoqazUoWyjbxUeKRByQ4WEjn8KMwf4U5oKodOnUAB0RNGotUL8mJugSGvhu4ylhYa5GOGBQ//kvYl3Dc5rV4kxxH/uEkJaEocyh5En6UhwOWYnHEPzFNYfr6SIEVTqhJVsSEpqX2TZkgpWKdy0OWdKIWlJcTIjrwfnJ5dw83gbVH9Nhyd48ZT4NIzfdBO9Rflia0g== 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=OOdbNl8Q3/9eong8LMlu769IEyT7I+G4D0T40NkHEIQ=; b=mCWKnkXhXiAjr08P+pyQDNCqDrPUk7AxFTiyWbGiFaLJGHVJ2V7A2MhSGiWTraWF7ukCebw/jt7Wymb7Kt0ltyA04UgXTxUfHIZ3IYL4ZSXVAtn4y/6BrZHpI1I47TzsNrHk1uUoUJBTGRlsJ2hApP8h9pDHDJFIJNeBIH4FzO0= 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 VI1PR0402MB2813.eurprd04.prod.outlook.com (2603:10a6:800:b1::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.23; Wed, 10 Mar 2021 10:09:56 +0000 Received: from VI1PR04MB3983.eurprd04.prod.outlook.com ([fe80::2564:cacc:2da5:52d0]) by VI1PR04MB3983.eurprd04.prod.outlook.com ([fe80::2564:cacc:2da5:52d0%5]) with mapi id 15.20.3912.028; Wed, 10 Mar 2021 10:09:56 +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 Cc: airlied@linux.ie, daniel@ffwll.ch, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, mchehab@kernel.org, a.hajda@samsung.com, narmstrong@baylibre.com, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@siol.net, kishon@ti.com, vkoul@kernel.org, robert.foss@linaro.org, lee.jones@linaro.org Subject: [PATCH v5 09/14] drm/bridge: imx: Add i.MX8qxp pixel link to DPI support Date: Wed, 10 Mar 2021 17:55:33 +0800 Message-Id: <1615370138-5673-10-git-send-email-victor.liu@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1615370138-5673-1-git-send-email-victor.liu@nxp.com> References: <1615370138-5673-1-git-send-email-victor.liu@nxp.com> X-Originating-IP: [119.31.174.66] X-ClientProxiedBy: HK2PR06CA0010.apcprd06.prod.outlook.com (2603:1096:202:2e::22) 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 HK2PR06CA0010.apcprd06.prod.outlook.com (2603:1096:202:2e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3912.17 via Frontend Transport; Wed, 10 Mar 2021 10:09:50 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0573ebf2-2493-495f-46ca-08d8e3aca78c X-MS-TrafficTypeDiagnostic: VI1PR0402MB2813: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Mt9sKs5JnaTbgMJ/0pYDNnhJFt3G3wJZiCafCtAVe5EGnM+k+Bi3M135qSrBS+hkO9kgxXMnC5yoUSl29rp7ehfeq++jQeBSP4Ha0UhK1Z3OFKxXN/9A9ufbnJP29nJ4oM+I1HvDlemTpxNT1qzM/KquM+Dkiql/+GhAgdLKMZz+AzT2aVGn0ENWTMTEquKLcmyTL8g5yPEwbteBRl6+Ipc6rksaDDbNV1jCkucl1fvQaHxLmtpEybNq6mQxe6O72hGOa5hYIN+rxCvKaZ46sZsWSztAH/furo916rNfwJUtJKjTbSb2miHYekiq3VOM9u9PrfVIMR7vAIqRpuTbJOJsR3rC+C3RSChOZmpO7rLPUk0eUDAEOZM9s3wj+cxAVg/yr8KeKWqTEZxbsWsTLx2DT7mggzt5zn9a1PpzXefP9XC5NWIUT3FJYMmob04xg66JL0u/a7IHr++ZeeE/OIJtyBTOtVyQwXG715pKkNyHf3yskWnklcXQLqfBFqcD3Ih5111cGYRzvA7TEccGUw== 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)(376002)(346002)(39860400002)(396003)(136003)(8936002)(6512007)(6666004)(26005)(30864003)(36756003)(6506007)(956004)(83380400001)(8676002)(2616005)(5660300002)(52116002)(6486002)(316002)(7416002)(478600001)(186003)(66946007)(2906002)(66476007)(66556008)(16526019)(86362001)(4326008); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?ZEdmWlNVang5aGJyZHd0TXg3bm5oTHRjTGV5YnNkZVcvWVhPa3dYRVRiZ3VB?= =?utf-8?B?ZXlBMk5SdFc4SFNSV0prbklpYXB1dXVvcENzeFUzRkZJWG5OdkJGS0tESTBt?= =?utf-8?B?ejJMZmhjM1NYcW5xRWJFdmMrTThkcUxRZCtUeEF2bVVQUFUrY0tJdVVDQ2JU?= =?utf-8?B?ZDcyQmJ1Y3RpRkFFZXluejNYNTB2Yjc2YlJsdTFONGFaRW5FNUNacisyVzlL?= =?utf-8?B?ZGxoRlM2R3N1QlNXaDhuemExa090M2dxMGJqS2ZzNENCakN2cWVCbU81M08v?= =?utf-8?B?Yy9CWVdxeEN2WWl5SUdzME1INGdnS2oyeFdWSDE2RDVJS1B4cVNGUitWbHBr?= =?utf-8?B?enNlRWJ4YnNPSkhQdkNMVHQ0WjY3THdEQTJDL1NZRXJBdE4zMG5sdEZ2c1l0?= =?utf-8?B?dy9VWGYvRU9TZjZYTEZmd2lVaU9uWG1pNnFadTVLYVA1ZzREK3JzdEZKODE3?= =?utf-8?B?dVdkSTJyU1l0SUxNMzgyUkx2MkhDaVQ5cFQ0citCbGRuWTR3TlAyOHY4LzVB?= =?utf-8?B?SE1iSHhMMW84enI2RzROUGpwSTllNE1MdG1QZzlUT3RxRjhla1hadkhMTHhs?= =?utf-8?B?ZkdxNDBVSnJHOVJZb0NUTEVWbFlDSDJuMTZtWFJmSjdnODU1K1hlb205RWJ2?= =?utf-8?B?Umx5VWN0VDA0ZzdjZTV4cmhlOFFPY0dQWjkxeTNaU015bEVENlUzQ1piT0hr?= =?utf-8?B?TWRVYjhBdXVYcUNEdnNUeEU3eWRER1dESS9SZnZCNGMxL2Z0MWZCTlBPY1Vp?= =?utf-8?B?VzNiNU9HUmtCelZqMS9ESTA5NzFnYmNhTE9tdXliM2hqVUR5N29CTnZHU2or?= =?utf-8?B?d1M5Z3h3SmlpS1FzaWZ6bG5nY2x5WDRPeVQyTlF5N1FRWWZNazVLM2FmTFZV?= =?utf-8?B?K2NPVXNVTEdGZHRlNVFqUnkvOUxFUkJwT3luYVRlN0V3OUVQWXA3OXlOQlh3?= =?utf-8?B?eUs0VFZoeElqdUJaRHdoMllEOGZnZGdWSmNrUVZtQjlLY0tOdWF4eG45UXZq?= =?utf-8?B?ZGs1bFBZTGF5Wnh4bE5pU0JNU09DcUZEakorT3hJT3pFc1Frd0NCVVdRdGZ0?= =?utf-8?B?MW51QTJvcXREa2RnWXZBT1JXZFVwTkhGa0wvazdqZUZzd3RlZyt2NGVFQTlQ?= =?utf-8?B?VGJacktkeXpUZGxzczlqNk1oRFczOFB1SDZ3MFI5Z2JvaU9wSTVDekhDd3U4?= =?utf-8?B?aHNGNTdWNElELzNCNmJPSGgvVVpETkVLZWZva3dzSHVJcnpqSUJwZi9nTWtL?= =?utf-8?B?R3Byd1lJTUpQUmxxZU12MHZucTl3THNZMmhMTm96Y0tHK2c3VTlWcHNaaTc1?= =?utf-8?B?MkptTnBNYjJTeWswck5Ddy9MdWlyU09NR2ZOemUyNUhnM0VNSi81QU5KNUto?= =?utf-8?B?R0Z3Q3pwcW9HVGdFamdYWEtHdlFxYjhOaldmRVpMZXlQSGw5UG0yNlVvTGhH?= =?utf-8?B?eFZOQUQ4b0dLSG9DZ2FmYXQ3L3o2YXZIM1ViOXlCVUdidSt5QkwwSW0rNm5N?= =?utf-8?B?ZjBaWlNjdWhpK1JtWU9FTU9ndUpSVCtVOWVmZ0tJWVpPemlGUkYyNmVtN2dY?= =?utf-8?B?MnA3QWFPQ01CV2c2c2tLZkthUVlXdDFibEp0dzJyN1hMTldwK0Q3Y0RHS1ND?= =?utf-8?B?SmZldWZvR3ZJVTJFMTQ4SXI1TjQ4SXNORCtreGRaeWVaOVB5bm11VXJzTHcv?= =?utf-8?B?aS81L3dTS0puTjRpWlVHQ3hLblVpYzN6eXUxWVZxZkV6TGQ2VitCM3haNnk2?= =?utf-8?Q?0NgvqK39ehA+zQjx3aCgV9TSOMHWtU/wI927dH3?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0573ebf2-2493-495f-46ca-08d8e3aca78c X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB3983.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2021 10:09:56.0122 (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: ooSELmXQPJBxT58iXuoDsfn7UaI06EZVIvgZrVFhVkXwSrt+4k2vSpPn/EqWu+EbOtcbY+oJ9vr52A+OdpXpnQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2813 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210310_101001_434681_8693763C X-CRM114-Status: GOOD ( 24.56 ) 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhpcyBwYXRjaCBhZGRzIGEgZHJtIGJyaWRnZSBkcml2ZXIgZm9yIGkuTVg4cXhwIHBpeGVsIGxp bmsgdG8gZGlzcGxheQpwaXhlbCBpbnRlcmZhY2UoUFhMMkRQSSkuICBUaGUgUFhMMkRQSSBpbnRl cmZhY2VzIHRoZSBwaXhlbCBsaW5rIDM2LWJpdApkYXRhIG91dHB1dCBhbmQgdGhlIERTSSBjb250 cm9sbGVy4oCZcyBNSVBJLURQSSAyNC1iaXQgZGF0YSBpbnB1dCwgYW5kCmlucHV0cyBvZiBMVkRT IERpc3BsYXkgQnJpZGdlKExEQikgbW9kdWxlIHVzZWQgaW4gTFZEUyBtb2RlLCB0byByZW1hcAp0 aGUgcGl4ZWwgY29sb3IgY29kaW5ncyBiZXR3ZWVuIHRob3NlIG1vZHVsZXMuIFRoZSBQWEwyRFBJ IGlzIHB1cmVseQpjb21iaW5hdG9yaWFsLgoKU2lnbmVkLW9mZi1ieTogTGl1IFlpbmcgPHZpY3Rv ci5saXVAbnhwLmNvbT4KLS0tCnY0LT52NToKKiBObyBjaGFuZ2UuCgp2My0+djQ6CiogVXNlICdm c2wsc2MtcmVzb3VyY2UnIERUIHByb3BlcnR5IHRvIGdldCB0aGUgU0NVIHJlc291cmNlIElEIGFz c29jaWF0ZWQgd2l0aAogIHRoZSBQWEwyRFBJIGluc3RhbmNlIGluc3RlYWQgb2YgdXNpbmcgYWxp YXMgSUQuIChSb2IpCgp2Mi0+djM6CiogQ2FsbCBzeXNjb25fbm9kZV90b19yZWdtYXAoKSB0byBn ZXQgcmVnbWFwIGluc3RlYWQgb2YKICBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKCku Cgp2MS0+djI6CiogRHJvcCB1bm5lY2Vzc2FyeSBwb3J0IGF2YWlsYWJpbGl0eSBjaGVjay4KCiBk cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9LY29uZmlnICAgICAgICAgICB8ICAgOCArCiBkcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCiBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4cXhwLXB4bDJkcGkuYyB8IDQ4NSArKysrKysrKysrKysr KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNDk0IGluc2VydGlvbnMoKykKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4cXhwLXB4bDJkcGku YwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L0tjb25maWcgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9LY29uZmlnCmluZGV4IDRkMWYwMjcuLjFlYTFjZTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L0tjb25maWcKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9pbXgvS2NvbmZpZwpAQCAtMTQsMyArMTQsMTEgQEAgY29uZmlnIERS TV9JTVg4UVhQX1BJWEVMX0xJTksKIAloZWxwCiAJICBDaG9vc2UgdGhpcyB0byBlbmFibGUgZGlz cGxheSBwaXhlbCBsaW5rIGZvdW5kIGluCiAJICBGcmVlc2NhbGUgaS5NWDhxbS9xeHAgcHJvY2Vz c29ycy4KKworY29uZmlnIERSTV9JTVg4UVhQX1BJWEVMX0xJTktfVE9fRFBJCisJdHJpc3RhdGUg IkZyZWVzY2FsZSBpLk1YOFFYUCBwaXhlbCBsaW5rIHRvIGRpc3BsYXkgcGl4ZWwgaW50ZXJmYWNl IgorCWRlcGVuZHMgb24gT0YKKwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKKwloZWxwCisJICBDaG9v c2UgdGhpcyB0byBlbmFibGUgcGl4ZWwgbGluayB0byBkaXNwbGF5IHBpeGVsIGludGVyZmFjZShQ WEwyRFBJKQorCSAgZm91bmQgaW4gRnJlZXNjYWxlIGkuTVg4cXhwIHByb2Nlc3Nvci4KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L01ha2VmaWxlIGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9pbXgvTWFrZWZpbGUKaW5kZXggYzE1NDY5Zi4uZTc0ZGQ2NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9pbXgvTWFrZWZpbGUKQEAgLTEsMiArMSwzIEBACiBvYmotJChDT05GSUdfRFJN X0lNWDhRWFBfUElYRUxfQ09NQklORVIpICs9IGlteDhxeHAtcGl4ZWwtY29tYmluZXIubwogb2Jq LSQoQ09ORklHX0RSTV9JTVg4UVhQX1BJWEVMX0xJTkspICs9IGlteDhxeHAtcGl4ZWwtbGluay5v CitvYmotJChDT05GSUdfRFJNX0lNWDhRWFBfUElYRUxfTElOS19UT19EUEkpICs9IGlteDhxeHAt cHhsMmRwaS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2lteC9pbXg4cXhw LXB4bDJkcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvaW14L2lteDhxeHAtcHhsMmRwaS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi42Njk2ODU1Ci0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9pbXgvaW14OHF4cC1weGwyZHBpLmMKQEAg LTAsMCArMSw0ODUgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworCisv KgorICogQ29weXJpZ2h0IDIwMjAgTlhQCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJl L2lteC9zdmMvbWlzYy5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4 L29mX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX2dyYXBoLmg+CisjaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfc3RhdGVf aGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9icmlkZ2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJt X29mLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgorCisjaW5jbHVkZSA8ZHQtYmluZGlu Z3MvZmlybXdhcmUvaW14L3JzcmMuaD4KKworI2RlZmluZSBQWEwyRFBJX0NUUkwJMHg0MAorI2Rl ZmluZSAgQ0ZHMV8xNkJJVAkweDAKKyNkZWZpbmUgIENGRzJfMTZCSVQJMHgxCisjZGVmaW5lICBD RkczXzE2QklUCTB4MgorI2RlZmluZSAgQ0ZHMV8xOEJJVAkweDMKKyNkZWZpbmUgIENGRzJfMThC SVQJMHg0CisjZGVmaW5lICBDRkdfMjRCSVQJMHg1CisKKyNkZWZpbmUgRFJJVkVSX05BTUUJImlt eDhxeHAtcHhsMmRwaSIKKworc3RydWN0IGlteDhxeHBfcHhsMmRwaSB7CisJc3RydWN0IHJlZ21h cCAqcmVnbWFwOworCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKKwlzdHJ1Y3QgZHJtX2JyaWRn ZSAqbmV4dF9icmlkZ2U7CisJc3RydWN0IGRybV9icmlkZ2UgKmNvbXBhbmlvbjsKKwlzdHJ1Y3Qg ZGV2aWNlICpkZXY7CisJc3RydWN0IGlteF9zY19pcGMgKmlwY19oYW5kbGU7CisJdTMyIHNjX3Jl c291cmNlOworCXUzMiBpbl9idXNfZm9ybWF0OworCXUzMiBvdXRfYnVzX2Zvcm1hdDsKKwl1MzIg cGxfc2VsOworfTsKKworI2RlZmluZSBicmlkZ2VfdG9fcDJkKGIpCWNvbnRhaW5lcl9vZihiLCBz dHJ1Y3QgaW14OHF4cF9weGwyZHBpLCBicmlkZ2UpCisKK3N0YXRpYyBpbnQgaW14OHF4cF9weGwy ZHBpX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJCQkJIGVudW0g ZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCit7CisJc3RydWN0IGlteDhxeHBfcHhsMmRw aSAqcDJkID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKKworCWlmICghKGZsYWdzICYgRFJNX0JS SURHRV9BVFRBQ0hfTk9fQ09OTkVDVE9SKSkgeworCQlEUk1fREVWX0VSUk9SKHAyZC0+ZGV2LAor CQkJICAgICAgImRvIG5vdCBzdXBwb3J0IGNyZWF0aW5nIGEgZHJtX2Nvbm5lY3RvclxuIik7CisJ CXJldHVybiAtRUlOVkFMOworCX0KKworCWlmICghYnJpZGdlLT5lbmNvZGVyKSB7CisJCURSTV9E RVZfRVJST1IocDJkLT5kZXYsICJtaXNzaW5nIGVuY29kZXJcbiIpOworCQlyZXR1cm4gLUVOT0RF VjsKKwl9CisKKwlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLAorCQkJ CSBwMmQtPm5leHRfYnJpZGdlLCBicmlkZ2UsCisJCQkJIERSTV9CUklER0VfQVRUQUNIX05PX0NP Tk5FQ1RPUik7Cit9CisKK3N0YXRpYyBpbnQKK2lteDhxeHBfcHhsMmRwaV9icmlkZ2VfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJICAgIHN0cnVjdCBkcm1fYnJp ZGdlX3N0YXRlICpicmlkZ2Vfc3RhdGUsCisJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKKwkJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCit7CisJc3RydWN0IGlteDhxeHBfcHhsMmRwaSAqcDJkID0gYnJpZGdlLT5kcml2ZXJfcHJp dmF0ZTsKKworCXAyZC0+aW5fYnVzX2Zvcm1hdCA9IGJyaWRnZV9zdGF0ZS0+aW5wdXRfYnVzX2Nm Zy5mb3JtYXQ7CisJcDJkLT5vdXRfYnVzX2Zvcm1hdCA9IGJyaWRnZV9zdGF0ZS0+b3V0cHV0X2J1 c19jZmcuZm9ybWF0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitpbXg4cXhwX3B4 bDJkcGlfYnJpZGdlX21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCit7CisJc3RydWN0IGlteDhxeHBfcHhsMmRwaSAq cDJkID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW14OHF4cF9weGwyZHBpICpj b21wYW5pb25fcDJkOworCWludCByZXQ7CisKKwlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKHAy ZC0+ZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwKKwkJCSAg ICAgICJmYWlsZWQgdG8gZ2V0IHJ1bnRpbWUgUE0gc3luYzogJWRcbiIsIHJldCk7CisKKwlyZXQg PSBpbXhfc2NfbWlzY19zZXRfY29udHJvbChwMmQtPmlwY19oYW5kbGUsIHAyZC0+c2NfcmVzb3Vy Y2UsCisJCQkJICAgICAgSU1YX1NDX0NfUFhMX0xJTktfU0VMLCBwMmQtPnBsX3NlbCk7CisJaWYg KHJldCkKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwKKwkJCSAgICAgICJmYWlsZWQgdG8gc2V0 IHBpeGVsIGxpbmsgc2VsZWN0aW9uKCV1KTogJWRcbiIsCisJCQkJCQkJcDJkLT5wbF9zZWwsIHJl dCk7CisKKwlzd2l0Y2ggKHAyZC0+b3V0X2J1c19mb3JtYXQpIHsKKwljYXNlIE1FRElBX0JVU19G TVRfUkdCODg4XzFYMjQ6CisJCXJlZ21hcF93cml0ZShwMmQtPnJlZ21hcCwgUFhMMkRQSV9DVFJM LCBDRkdfMjRCSVQpOworCQlicmVhazsKKwljYXNlIE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMjRf Q1BBREhJOgorCQlyZWdtYXBfd3JpdGUocDJkLT5yZWdtYXAsIFBYTDJEUElfQ1RSTCwgQ0ZHMl8x OEJJVCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9ERVZfRVJST1IocDJkLT5kZXYsCisJ CQkgICAgICAidW5zdXBwb3J0ZWQgb3V0cHV0IGJ1cyBmb3JtYXQgMHglMDh4XG4iLAorCQkJCQkJ CXAyZC0+b3V0X2J1c19mb3JtYXQpOworCX0KKworCWlmIChwMmQtPmNvbXBhbmlvbikgeworCQlj b21wYW5pb25fcDJkID0gYnJpZGdlX3RvX3AyZChwMmQtPmNvbXBhbmlvbik7CisKKwkJY29tcGFu aW9uX3AyZC0+aW5fYnVzX2Zvcm1hdCA9IHAyZC0+aW5fYnVzX2Zvcm1hdDsKKwkJY29tcGFuaW9u X3AyZC0+b3V0X2J1c19mb3JtYXQgPSBwMmQtPm91dF9idXNfZm9ybWF0OworCisJCXAyZC0+Y29t cGFuaW9uLT5mdW5jcy0+bW9kZV9zZXQocDJkLT5jb21wYW5pb24sIG1vZGUsCisJCQkJCQkJYWRq dXN0ZWRfbW9kZSk7CisJfQorfQorCitzdGF0aWMgdm9pZAoraW14OHF4cF9weGwyZHBpX2JyaWRn ZV9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJCSAgICAgIHN0 cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpvbGRfYnJpZGdlX3N0YXRlKQoreworCXN0cnVjdCBpbXg4 cXhwX3B4bDJkcGkgKnAyZCA9IGJyaWRnZS0+ZHJpdmVyX3ByaXZhdGU7CisJaW50IHJldDsKKwor CXJldCA9IHBtX3J1bnRpbWVfcHV0KHAyZC0+ZGV2KTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RF Vl9FUlJPUihwMmQtPmRldiwgImZhaWxlZCB0byBwdXQgcnVudGltZSBQTTogJWRcbiIsIHJldCk7 CisKKwlpZiAocDJkLT5jb21wYW5pb24pCisJCXAyZC0+Y29tcGFuaW9uLT5mdW5jcy0+YXRvbWlj X2Rpc2FibGUocDJkLT5jb21wYW5pb24sCisJCQkJCQkJb2xkX2JyaWRnZV9zdGF0ZSk7Cit9CisK K3N0YXRpYyBjb25zdCB1MzIgaW14OHF4cF9weGwyZHBpX2J1c19vdXRwdXRfZm10c1tdID0gewor CU1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQsCisJTUVESUFfQlVTX0ZNVF9SR0I2NjZfMVgyNF9D UEFESEksCit9OworCitzdGF0aWMgYm9vbCBpbXg4cXhwX3B4bDJkcGlfYnVzX291dHB1dF9mbXRf c3VwcG9ydGVkKHUzMiBmbXQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlf U0laRShpbXg4cXhwX3B4bDJkcGlfYnVzX291dHB1dF9mbXRzKTsgaSsrKSB7CisJCWlmIChpbXg4 cXhwX3B4bDJkcGlfYnVzX291dHB1dF9mbXRzW2ldID09IGZtdCkKKwkJCXJldHVybiB0cnVlOwor CX0KKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHUzMiAqCitpbXg4cXhwX3B4bDJkcGlf YnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSwKKwkJCQkJc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9zdGF0ZSwKKwkJCQkJc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSwKKwkJCQkJdTMyIG91dHB1dF9mbXQsCisJCQkJCXVuc2lnbmVk IGludCAqbnVtX2lucHV0X2ZtdHMpCit7CisJdTMyICppbnB1dF9mbXRzOworCisJaWYgKCFpbXg4 cXhwX3B4bDJkcGlfYnVzX291dHB1dF9mbXRfc3VwcG9ydGVkKG91dHB1dF9mbXQpKQorCQlyZXR1 cm4gTlVMTDsKKworCSpudW1faW5wdXRfZm10cyA9IDE7CisKKwlpbnB1dF9mbXRzID0ga21hbGxv YyhzaXplb2YoKmlucHV0X2ZtdHMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWlucHV0X2ZtdHMpCisJ CXJldHVybiBOVUxMOworCisJc3dpdGNoIChvdXRwdXRfZm10KSB7CisJY2FzZSBNRURJQV9CVVNf Rk1UX1JHQjg4OF8xWDI0OgorCQlpbnB1dF9mbXRzWzBdID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhf MVgzNl9DUEFETE87CisJCWJyZWFrOworCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I2NjZfMVgyNF9D UEFESEk6CisJCWlucHV0X2ZtdHNbMF0gPSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDM2X0NQQURM TzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJa2ZyZWUoaW5wdXRfZm10cyk7CisJCWlucHV0X2Zt dHMgPSBOVUxMOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gaW5wdXRfZm10czsKK30KKworc3Rh dGljIHUzMiAqCitpbXg4cXhwX3B4bDJkcGlfYnJpZGdlX2F0b21pY19nZXRfb3V0cHV0X2J1c19m bXRzKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJCXN0cnVjdCBkcm1fYnJpZGdlX3N0 YXRlICpicmlkZ2Vfc3RhdGUsCisJCQkJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKKwkJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCisJCQkJCXVu c2lnbmVkIGludCAqbnVtX291dHB1dF9mbXRzKQoreworCSpudW1fb3V0cHV0X2ZtdHMgPSBBUlJB WV9TSVpFKGlteDhxeHBfcHhsMmRwaV9idXNfb3V0cHV0X2ZtdHMpOworCXJldHVybiBrbWVtZHVw KGlteDhxeHBfcHhsMmRwaV9idXNfb3V0cHV0X2ZtdHMsCisJCQlzaXplb2YoaW14OHF4cF9weGwy ZHBpX2J1c19vdXRwdXRfZm10cyksIEdGUF9LRVJORUwpOworfQorCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9icmlkZ2VfZnVuY3MgaW14OHF4cF9weGwyZHBpX2JyaWRnZV9mdW5jcyA9IHsKKwku YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZQk9IGRybV9hdG9taWNfaGVscGVyX2JyaWRnZV9kdXBsaWNh dGVfc3RhdGUsCisJLmF0b21pY19kZXN0cm95X3N0YXRlCT0gZHJtX2F0b21pY19oZWxwZXJfYnJp ZGdlX2Rlc3Ryb3lfc3RhdGUsCisJLmF0b21pY19yZXNldAkJPSBkcm1fYXRvbWljX2hlbHBlcl9i cmlkZ2VfcmVzZXQsCisJLmF0dGFjaAkJCT0gaW14OHF4cF9weGwyZHBpX2JyaWRnZV9hdHRhY2gs CisJLmF0b21pY19jaGVjawkJPSBpbXg4cXhwX3B4bDJkcGlfYnJpZGdlX2F0b21pY19jaGVjaywK KwkubW9kZV9zZXQJCT0gaW14OHF4cF9weGwyZHBpX2JyaWRnZV9tb2RlX3NldCwKKwkuYXRvbWlj X2Rpc2FibGUJCT0gaW14OHF4cF9weGwyZHBpX2JyaWRnZV9hdG9taWNfZGlzYWJsZSwKKwkuYXRv bWljX2dldF9pbnB1dF9idXNfZm10cyA9CisJCQlpbXg4cXhwX3B4bDJkcGlfYnJpZGdlX2F0b21p Y19nZXRfaW5wdXRfYnVzX2ZtdHMsCisJLmF0b21pY19nZXRfb3V0cHV0X2J1c19mbXRzID0KKwkJ CWlteDhxeHBfcHhsMmRwaV9icmlkZ2VfYXRvbWljX2dldF9vdXRwdXRfYnVzX2ZtdHMsCit9Owor CitzdGF0aWMgc3RydWN0IGRldmljZV9ub2RlICoKK2lteDhxeHBfcHhsMmRwaV9nZXRfYXZhaWxh YmxlX2VwX2Zyb21fcG9ydChzdHJ1Y3QgaW14OHF4cF9weGwyZHBpICpwMmQsCisJCQkJCSAgIHUz MiBwb3J0X2lkKQoreworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydCwgKmVwOworCWludCBlcF9j bnQ7CisKKwlwb3J0ID0gb2ZfZ3JhcGhfZ2V0X3BvcnRfYnlfaWQocDJkLT5kZXYtPm9mX25vZGUs IHBvcnRfaWQpOworCWlmICghcG9ydCkgeworCQlEUk1fREVWX0VSUk9SKHAyZC0+ZGV2LCAiZmFp bGVkIHRvIGdldCBwb3J0QCV1XG4iLCBwb3J0X2lkKTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT0RF Vik7CisJfQorCisJZXBfY250ID0gb2ZfZ2V0X2F2YWlsYWJsZV9jaGlsZF9jb3VudChwb3J0KTsK KwlpZiAoZXBfY250ID09IDApIHsKKwkJRFJNX0RFVl9FUlJPUihwMmQtPmRldiwgIm5vIGF2YWls YWJsZSBlbmRwb2ludHMgb2YgcG9ydEAldVxuIiwKKwkJCQkJCQkJcG9ydF9pZCk7CisJCWVwID0g RVJSX1BUUigtRU5PREVWKTsKKwkJZ290byBvdXQ7CisJfSBlbHNlIGlmIChlcF9jbnQgPiAxKSB7 CisJCURSTV9ERVZfRVJST1IocDJkLT5kZXYsCisJCQkiaW52YWxpZCBhdmFpbGFibGUgZW5kcG9p bnRzIG9mIHBvcnRAJXVcbiIsIHBvcnRfaWQpOworCQllcCA9IEVSUl9QVFIoLUVOT1RTVVBQKTsK KwkJZ290byBvdXQ7CisJfQorCisJZXAgPSBvZl9nZXRfbmV4dF9hdmFpbGFibGVfY2hpbGQocG9y dCwgTlVMTCk7CisJaWYgKCFlcCkgeworCQlEUk1fREVWX0VSUk9SKHAyZC0+ZGV2LAorCQkJICAg ICAgImZhaWxlZCB0byBnZXQgYXZhaWxhYmxlIGVuZHBvaW50IG9mIHBvcnRAJXVcbiIsCisJCQkJ CQkJCXBvcnRfaWQpOworCQllcCA9IEVSUl9QVFIoLUVOT0RFVik7CisJCWdvdG8gb3V0OworCX0K K291dDoKKwlvZl9ub2RlX3B1dChwb3J0KTsKKwlyZXR1cm4gZXA7Cit9CisKK3N0YXRpYyBzdHJ1 Y3QgZHJtX2JyaWRnZSAqCitpbXg4cXhwX3B4bDJkcGlfZmluZF9uZXh0X2JyaWRnZShzdHJ1Y3Qg aW14OHF4cF9weGwyZHBpICpwMmQpCit7CisJc3RydWN0IGRldmljZV9ub2RlICplcCwgKnJlbW90 ZTsKKwlzdHJ1Y3QgZHJtX2JyaWRnZSAqbmV4dF9icmlkZ2U7CisJaW50IHJldDsKKworCWVwID0g aW14OHF4cF9weGwyZHBpX2dldF9hdmFpbGFibGVfZXBfZnJvbV9wb3J0KHAyZCwgMSk7CisJaWYg KElTX0VSUihlcCkpIHsKKwkJcmV0ID0gUFRSX0VSUihlcCk7CisJCXJldHVybiBFUlJfUFRSKHJl dCk7CisJfQorCisJcmVtb3RlID0gb2ZfZ3JhcGhfZ2V0X3JlbW90ZV9wb3J0X3BhcmVudChlcCk7 CisJaWYgKCFyZW1vdGUgfHwgIW9mX2RldmljZV9pc19hdmFpbGFibGUocmVtb3RlKSkgeworCQlE Uk1fREVWX0VSUk9SKHAyZC0+ZGV2LCAibm8gYXZhaWxhYmxlIHJlbW90ZVxuIik7CisJCW5leHRf YnJpZGdlID0gRVJSX1BUUigtRU5PREVWKTsKKwkJZ290byBvdXQ7CisJfSBlbHNlIGlmICghb2Zf ZGV2aWNlX2lzX2F2YWlsYWJsZShyZW1vdGUtPnBhcmVudCkpIHsKKwkJRFJNX0RFVl9FUlJPUihw MmQtPmRldiwgInJlbW90ZSBwYXJlbnQgaXMgbm90IGF2YWlsYWJsZVxuIik7CisJCW5leHRfYnJp ZGdlID0gRVJSX1BUUigtRU5PREVWKTsKKwkJZ290byBvdXQ7CisJfQorCisJbmV4dF9icmlkZ2Ug PSBvZl9kcm1fZmluZF9icmlkZ2UocmVtb3RlKTsKKwlpZiAoIW5leHRfYnJpZGdlKSB7CisJCW5l eHRfYnJpZGdlID0gRVJSX1BUUigtRVBST0JFX0RFRkVSKTsKKwkJZ290byBvdXQ7CisJfQorb3V0 OgorCW9mX25vZGVfcHV0KHJlbW90ZSk7CisJb2Zfbm9kZV9wdXQoZXApOworCisJcmV0dXJuIG5l eHRfYnJpZGdlOworfQorCitzdGF0aWMgaW50IGlteDhxeHBfcHhsMmRwaV9zZXRfcGl4ZWxfbGlu a19zZWwoc3RydWN0IGlteDhxeHBfcHhsMmRwaSAqcDJkKQoreworCXN0cnVjdCBkZXZpY2Vfbm9k ZSAqZXA7CisJc3RydWN0IG9mX2VuZHBvaW50IGVuZHBvaW50OworCWludCByZXQ7CisKKwllcCA9 IGlteDhxeHBfcHhsMmRwaV9nZXRfYXZhaWxhYmxlX2VwX2Zyb21fcG9ydChwMmQsIDApOworCWlm IChJU19FUlIoZXApKQorCQlyZXR1cm4gUFRSX0VSUihlcCk7CisKKwlyZXQgPSBvZl9ncmFwaF9w YXJzZV9lbmRwb2ludChlcCwgJmVuZHBvaW50KTsKKwlpZiAocmV0KSB7CisJCURSTV9ERVZfRVJS T1IocDJkLT5kZXYsCisJCQkgICAgICAiZmFpbGVkIHRvIHBhcnNlIGVuZHBvaW50IG9mIHBvcnRA MDogJWRcbiIsIHJldCk7CisJCWdvdG8gb3V0OworCX0KKworCXAyZC0+cGxfc2VsID0gZW5kcG9p bnQuaWQ7CitvdXQ6CisJb2Zfbm9kZV9wdXQoZXApOworCisJcmV0dXJuIHJldDsKK30KKworc3Rh dGljIGludCBpbXg4cXhwX3B4bDJkcGlfcGFyc2VfZHRfY29tcGFuaW9uKHN0cnVjdCBpbXg4cXhw X3B4bDJkcGkgKnAyZCkKK3sKKwlzdHJ1Y3QgaW14OHF4cF9weGwyZHBpICpjb21wYW5pb25fcDJk OworCXN0cnVjdCBkZXZpY2UgKmRldiA9IHAyZC0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAq Y29tcGFuaW9uOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydDEsICpwb3J0MjsKKwljb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsKKwlpbnQgZHVhbF9saW5rOworCWludCByZXQgPSAw OworCisJLyogTG9jYXRlIHRoZSBjb21wYW5pb24gUFhMMkRQSSBmb3IgZHVhbC1saW5rIG9wZXJh dGlvbiwgaWYgYW55LiAqLworCWNvbXBhbmlvbiA9IG9mX3BhcnNlX3BoYW5kbGUoZGV2LT5vZl9u b2RlLCAiZnNsLGNvbXBhbmlvbi1weGwyZHBpIiwgMCk7CisJaWYgKCFjb21wYW5pb24pCisJCXJl dHVybiAwOworCisJaWYgKCFvZl9kZXZpY2VfaXNfYXZhaWxhYmxlKGNvbXBhbmlvbikpIHsKKwkJ RFJNX0RFVl9FUlJPUihkZXYsICJjb21wYW5pb24gUFhMMkRQSSBpcyBub3QgYXZhaWxhYmxlXG4i KTsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQorCisJLyoKKwkgKiBTYW5pdHkg Y2hlY2s6IHRoZSBjb21wYW5pb24gYnJpZGdlIG11c3QgaGF2ZSB0aGUgc2FtZSBjb21wYXRpYmxl CisJICogc3RyaW5nLgorCSAqLworCW1hdGNoID0gb2ZfbWF0Y2hfZGV2aWNlKGRldi0+ZHJpdmVy LT5vZl9tYXRjaF90YWJsZSwgZGV2KTsKKwlpZiAoIW9mX2RldmljZV9pc19jb21wYXRpYmxlKGNv bXBhbmlvbiwgbWF0Y2gtPmNvbXBhdGlibGUpKSB7CisJCURSTV9ERVZfRVJST1IoZGV2LCAiY29t cGFuaW9uIFBYTDJEUEkgaXMgaW5jb21wYXRpYmxlXG4iKTsKKwkJcmV0ID0gLUVOWElPOworCQln b3RvIG91dDsKKwl9CisKKwlwMmQtPmNvbXBhbmlvbiA9IG9mX2RybV9maW5kX2JyaWRnZShjb21w YW5pb24pOworCWlmICghcDJkLT5jb21wYW5pb24pIHsKKwkJcmV0ID0gLUVQUk9CRV9ERUZFUjsK KwkJRFJNX0RFVl9ERUJVR19EUklWRVIocDJkLT5kZXYsCisJCQkJImZhaWxlZCB0byBmaW5kIGNv bXBhbmlvbiBicmlkZ2U6ICVkXG4iLCByZXQpOworCQlnb3RvIG91dDsKKwl9CisKKwljb21wYW5p b25fcDJkID0gYnJpZGdlX3RvX3AyZChwMmQtPmNvbXBhbmlvbik7CisKKwkvKgorCSAqIFdlIG5l ZWQgdG8gd29yayBvdXQgaWYgdGhlIHNpbmsgaXMgZXhwZWN0aW5nIHVzIHRvIGZ1bmN0aW9uIGlu CisJICogZHVhbC1saW5rIG1vZGUuICBXZSBkbyB0aGlzIGJ5IGxvb2tpbmcgYXQgdGhlIERUIHBv cnQgbm9kZXMgdGhhdAorCSAqIHRoZSBuZXh0IGJyaWRnZXMgYXJlIGNvbm5lY3RlZCB0by4gIElm IHRoZXkgYXJlIG1hcmtlZCBhcyBleHBlY3RpbmcKKwkgKiBldmVuIHBpeGVscyBhbmQgb2RkIHBp eGVscyB0aGFuIHdlIG5lZWQgdG8gdXNlIHRoZSBjb21wYW5pb24gUFhMMkRQSS4KKwkgKi8KKwlw b3J0MSA9IG9mX2dyYXBoX2dldF9wb3J0X2J5X2lkKHAyZC0+bmV4dF9icmlkZ2UtPm9mX25vZGUs IDEpOworCXBvcnQyID0gb2ZfZ3JhcGhfZ2V0X3BvcnRfYnlfaWQoY29tcGFuaW9uX3AyZC0+bmV4 dF9icmlkZ2UtPm9mX25vZGUsIDEpOworCWR1YWxfbGluayA9IGRybV9vZl9sdmRzX2dldF9kdWFs X2xpbmtfcGl4ZWxfb3JkZXIocG9ydDEsIHBvcnQyKTsKKwlvZl9ub2RlX3B1dChwb3J0MSk7CisJ b2Zfbm9kZV9wdXQocG9ydDIpOworCisJaWYgKGR1YWxfbGluayA8IDApIHsKKwkJcmV0ID0gZHVh bF9saW5rOworCQlEUk1fREVWX0VSUk9SKGRldiwgImZhaWxlZCB0byBnZXQgZHVhbCBsaW5rIHBp eGVsIG9yZGVyOiAlZFxuIiwKKwkJCQkJCQkJCXJldCk7CisJCWdvdG8gb3V0OworCX0KKworCURS TV9ERVZfREVCVUdfRFJJVkVSKGRldiwKKwkJImR1YWwtbGluayBjb25maWd1cmF0aW9uIGRldGVj dGVkIChjb21wYW5pb24gYnJpZGdlICVwT0YpXG4iLAorCQkJCQkJCQljb21wYW5pb24pOworb3V0 OgorCW9mX25vZGVfcHV0KGNvbXBhbmlvbik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlu dCBpbXg4cXhwX3B4bDJkcGlfYnJpZGdlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCit7CisJc3RydWN0IGlteDhxeHBfcHhsMmRwaSAqcDJkOworCXN0cnVjdCBkZXZpY2UgKmRl diA9ICZwZGV2LT5kZXY7CisJc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZTsK KwlpbnQgcmV0OworCisJcDJkID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwMmQpLCBHRlBf S0VSTkVMKTsKKwlpZiAoIXAyZCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwMmQtPnJlZ21hcCA9 IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChucC0+cGFyZW50KTsKKwlpZiAoSVNfRVJSKHAyZC0+cmVn bWFwKSkgeworCQlyZXQgPSBQVFJfRVJSKHAyZC0+cmVnbWFwKTsKKwkJaWYgKHJldCAhPSAtRVBS T0JFX0RFRkVSKQorCQkJRFJNX0RFVl9FUlJPUihkZXYsICJmYWlsZWQgdG8gZ2V0IHJlZ21hcDog JWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gaW14X3NjdV9nZXRfaGFu ZGxlKCZwMmQtPmlwY19oYW5kbGUpOworCWlmIChyZXQpIHsKKwkJaWYgKHJldCAhPSAtRVBST0JF X0RFRkVSKQorCQkJRFJNX0RFVl9FUlJPUihkZXYsICJmYWlsZWQgdG8gZ2V0IFNDVSBpcGMgaGFu ZGxlOiAlZFxuIiwKKwkJCQkJCQkJCXJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcDJkLT5k ZXYgPSBkZXY7CisKKwlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImZzbCxzYy1yZXNv dXJjZSIsICZwMmQtPnNjX3Jlc291cmNlKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERVZfRVJST1Io ZGV2LCAiZmFpbGVkIHRvIGdldCBTQyByZXNvdXJjZSAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJl dDsKKwl9CisKKwlwMmQtPm5leHRfYnJpZGdlID0gaW14OHF4cF9weGwyZHBpX2ZpbmRfbmV4dF9i cmlkZ2UocDJkKTsKKwlpZiAoSVNfRVJSKHAyZC0+bmV4dF9icmlkZ2UpKSB7CisJCXJldCA9IFBU Ul9FUlIocDJkLT5uZXh0X2JyaWRnZSk7CisJCWlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikKKwkJ CURSTV9ERVZfRVJST1IoZGV2LCAiZmFpbGVkIHRvIGZpbmQgbmV4dCBicmlkZ2U6ICVkXG4iLAor CQkJCQkJCQkJcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSBpbXg4cXhwX3B4bDJk cGlfc2V0X3BpeGVsX2xpbmtfc2VsKHAyZCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwor CXJldCA9IGlteDhxeHBfcHhsMmRwaV9wYXJzZV9kdF9jb21wYW5pb24ocDJkKTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcDJkKTsKKwlw bV9ydW50aW1lX2VuYWJsZShkZXYpOworCisJcDJkLT5icmlkZ2UuZHJpdmVyX3ByaXZhdGUgPSBw MmQ7CisJcDJkLT5icmlkZ2UuZnVuY3MgPSAmaW14OHF4cF9weGwyZHBpX2JyaWRnZV9mdW5jczsK KwlwMmQtPmJyaWRnZS5vZl9ub2RlID0gbnA7CisKKwlkcm1fYnJpZGdlX2FkZCgmcDJkLT5icmlk Z2UpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBpbXg4cXhwX3B4bDJkcGlfYnJp ZGdlX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBpbXg4 cXhwX3B4bDJkcGkgKnAyZCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJZHJtX2Jy aWRnZV9yZW1vdmUoJnAyZC0+YnJpZGdlKTsKKworCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ ZGV2KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBpbXg4cXhwX3B4bDJkcGlfZHRfaWRzW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJmc2wsaW14 OHF4cC1weGwyZHBpIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CitNT0RVTEVfREVWSUNF X1RBQkxFKG9mLCBpbXg4cXhwX3B4bDJkcGlfZHRfaWRzKTsKKworc3RhdGljIHN0cnVjdCBwbGF0 Zm9ybV9kcml2ZXIgaW14OHF4cF9weGwyZHBpX2JyaWRnZV9kcml2ZXIgPSB7CisJLnByb2JlCT0g aW14OHF4cF9weGwyZHBpX2JyaWRnZV9wcm9iZSwKKwkucmVtb3ZlID0gaW14OHF4cF9weGwyZHBp X2JyaWRnZV9yZW1vdmUsCisJLmRyaXZlcgk9IHsKKwkJLm9mX21hdGNoX3RhYmxlID0gaW14OHF4 cF9weGwyZHBpX2R0X2lkcywKKwkJLm5hbWUgPSBEUklWRVJfTkFNRSwKKwl9LAorfTsKK21vZHVs ZV9wbGF0Zm9ybV9kcml2ZXIoaW14OHF4cF9weGwyZHBpX2JyaWRnZV9kcml2ZXIpOworCitNT0RV TEVfREVTQ1JJUFRJT04oImkuTVg4UVhQIHBpeGVsIGxpbmsgdG8gRFBJIGJyaWRnZSBkcml2ZXIi KTsKK01PRFVMRV9BVVRIT1IoIkxpdSBZaW5nIDx2aWN0b3IubGl1QG54cC5jb20+Iik7CitNT0RV TEVfTElDRU5TRSgiR1BMIHYyIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOiIgRFJJVkVSX05B TUUpOwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1hcm0ta2VybmVsCg==