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=-15.9 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,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 8035CC433ED for ; Tue, 4 May 2021 10:32:56 +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 B2606611AB for ; Tue, 4 May 2021 10:32:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B2606611AB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oss.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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=M1J59CDrO6eubiq0n+uH0tAtv/Sm5ftZGs5qAfE4D3I=; b=FhSdQWt9hGdXP/wzOVJ9aOOVi UhtO6UB/j8sHQVkEmWd5UQRNk81/3yxOOVE4PnUClT4FuipWYv7febjrN/pA5tqW1bfLKT7SaWphY Tgpw3RVhrHU6Up528AQfTeW+T5xCUchz25CF2ASyPHFHycLWrhYfzdy80H3FddC3sLsutsuD41WEi kRkh52tpkS0UKNpHGqw1q8R8EzMysnWOT3fjU3VdjdAEDygY2loiS4iYo6GGVftG0mvIUUK6Ii+yj lp0SXMiVL+ea5LJTVQiBV9GCDo846ZlVPb6JD/euXj23zbdc8Ic0rDk+ODZ9Y0Ktx/Zg3pFm8ce9r cgRo3xK8A==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ldsKn-00Fynh-D8; Tue, 04 May 2021 10:31:21 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ldsKh-00Fyn0-Cm for linux-arm-kernel@desiato.infradead.org; Tue, 04 May 2021 10:31:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Sender:Reply-To:Content-ID:Content-Description; bh=GAlEUxyV6J6+FRwZ/VXIT90KKAwT1Gi3dSF9KRt4jdE=; b=dQWRtUzLLKHxrsjXX53dFC0MAv KS6FbH9yfWIZ6c/VvD9OCsLUk6fcToJFs/HEBQ7yKUlsKA5wom/qhwmXtYwGklzr0MamXpKxCoVaH 6WK+km+nngdrUyG2ngGYUlc52b58IVH/l/EhURdFF4/GTk2LWju0MJUJKhUvrX35s+9OKfHxycaCv AnKxKSaf7Alx2kth1gduU1yqwGfVj9bed46QALuNkIT9TDdsdrHPqn8pWhPg31ou1KqteGde5FAmB 5+TmvOKNY+7GGylnyAKkdGS30nWrsQIp52rG6jSik9ul/IfV8Ov6x58k1HngNMYwxy6EMxPMHQ5Ic fx5L7Xug==; Received: from mail-eopbgr40060.outbound.protection.outlook.com ([40.107.4.60] helo=EUR03-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ldsKc-003tqF-RB for linux-arm-kernel@lists.infradead.org; Tue, 04 May 2021 10:31:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WUs5mbTScTttzj6VHDgryIO07HbO2Md1Fed6NEavMkPqZewDLHei4Se8OQJcqQTqtBKX139z8z7Zv5DleLG5CWTVG2UO7OfTm/plK9uBbPywpAfmf5AnBeHro/6kHGjFyrS3bOtKwJ67WFmrtKXc1Dngw8b7ZNSADNKUch3jYimHopd0bXjjEjvZnklkrV2ODOsOl4QUn0BAQGTwgS8SjKkpOXWbfPAmA/2sz9rJREOfhshqUaNr8vUhJaw0uLfxU9ZCtJFCfyMQE8X3L8dbvrmu6LfelC+GpuTSvWFlsiRYWBg0JxLjGAXzF97al6BmAmUTRxQysTjUlzwM5qicCw== 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=GAlEUxyV6J6+FRwZ/VXIT90KKAwT1Gi3dSF9KRt4jdE=; b=JjLj8bB0gmiu6xx8Bg7ktn3ml5B1V8dStNd7MD+ZckH0Qt3TqFAyezI7XA8Q/dIeYyAAQ+6U3l0+dGrjx7WyK+gxBEJX3ekWEPeGoMb8w7ukSB4IOd/68zQDVlXJD9pb0FRe0mKIDJxyfALxPxSbVIieu5x9zSKrTdvOeMewzOMuZlVicaqT7xZYbdZ7w+Rj9y+Kr97ZzmpUGtnnGuSUWV7idacbsIeKKclSPtK1y7OXdwnUmX+70ad+mHpFTIvZepcjLwNi6bXxGpoCUCenDdE5mKQazgr/2NQcBJgU8ip8sDYLwhiV/BMU178Y+oSg4UWlPA9/L/iiwGGQp8DEdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GAlEUxyV6J6+FRwZ/VXIT90KKAwT1Gi3dSF9KRt4jdE=; b=AtNmGROQTxrco86oRsI7s5HDmxzYfVmApsiX/GCBCNQKsaEE/r2sT9YWlyDkQXf/kLO7c2/D21OszbAeg6eHHsrAtNrH+Np1yam6Ndyn8dTBU/w8jtzYJloXe/YxCk4x24t5rdAdmWpA73Xw68cX5ydpEMJIEjTJhB3pepZcvNI= Authentication-Results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=oss.nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DBBPR04MB7850.eurprd04.prod.outlook.com (2603:10a6:10:1e8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.35; Tue, 4 May 2021 10:31:05 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::45b9:c993:87ec:9a64%8]) with mapi id 15.20.4065.039; Tue, 4 May 2021 10:31:05 +0000 Subject: Re: [PATCH V2 3/4] soc: imx: Add generic blk-ctl driver To: Lucas Stach , robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de Cc: kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, p.zabel@pengutronix.de, krzk@kernel.org, agx@sigxcpu.org, marex@denx.de, andrew.smirnov@gmail.com, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, ping.bai@nxp.com, frieder.schrempf@kontron.de, aford173@gmail.com, abel.vesa@nxp.com, Peng Fan References: <20210430052746.10815-1-peng.fan@oss.nxp.com> <20210430052746.10815-4-peng.fan@oss.nxp.com> <6997abd422ffa1fa384a048552109aec1095abc3.camel@pengutronix.de> From: "Peng Fan (OSS)" Message-ID: <1707a917-5f91-b3e8-2be1-6461fb4c950c@oss.nxp.com> Date: Tue, 4 May 2021 18:30:52 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 In-Reply-To: <6997abd422ffa1fa384a048552109aec1095abc3.camel@pengutronix.de> Content-Language: en-US X-Originating-IP: [58.223.139.112] X-ClientProxiedBy: HK2PR02CA0193.apcprd02.prod.outlook.com (2603:1096:201:21::29) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.0.107] (58.223.139.112) by HK2PR02CA0193.apcprd02.prod.outlook.com (2603:1096:201:21::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.43 via Frontend Transport; Tue, 4 May 2021 10:30:59 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 34a7299e-4b2c-4210-d649-08d90ee7b85c X-MS-TrafficTypeDiagnostic: DBBPR04MB7850: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6FPUgqadFMy8l9i2ghvVtdwJFWd9PFRRsmnE/F+tTBFM5oLzaeCK1w10b0CZ7w+T69jGTzXLJp4LbPQy7ciXPjADwuQbCpEZZWy1ouZBbdaE9i+l4N+Oh2RuvvtSMRiYBlJBfNIufgXwQveg87wzsva3yFWk5CoZjLpaPtFjGLmvC94bWQdH6F5ZiD62K6XUKWUZPlyd3FS9UG5dt0TLtRGgvkkgobBEs/7jpbsQXdvVwuSMoiqf11a1dHRKViuWlYqmMFDV3RFYZq/mPdTDBBnfunqoVIFgpJqbxJf1zZMhSzEaMGnwaFnF9/CdiiwV1Rsy5ptuuUw4T4XsUd9iE2N3DkpEaxWYSp5SyON5bjfDqolAxuJ/53FyGo8zWDjUryLPjVYFwubsH3Uffrko9XpraITpu49F7nQS3xOgZ56I50j3bF+7BapydZWhxkM6gvrqavK+D9jCx3c0wprTPgUNYiDdLty4oh7bsmg6rpnL/Kr5grlGPOU0z3m+Vazch03q3FDlfvK5ho2PNCTY70hTFKDzP4vDnKuRdk7XHN5kieaZuJDHovrjwxFRkueYeoykzGnhmmR1whf35e1AjcmwQf+ta9N3Z4i6c+z8VLy9dI9xswwz0rc+CLqNlf0NFkTNVf9JELCe/keW/w7uUlus2aKBeHFbdKBFdITyMYCiCRCNtxZTfywLblgMnmt1e7gbSzIa5ndtC3mFbNVSw8Npy2oBBPyHfF1jNsAGbgu5XewcF5CI9QKl5vFp7/oX X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(346002)(136003)(39850400004)(396003)(956004)(5660300002)(53546011)(16576012)(31696002)(83380400001)(316002)(86362001)(186003)(6666004)(16526019)(2906002)(6486002)(478600001)(31686004)(66946007)(7416002)(26005)(4326008)(38100700002)(8676002)(8936002)(52116002)(66556008)(66476007)(38350700002)(30864003)(2616005)(41533002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?c2wrZERySU0vQjB6VVl1NHVWWUpTbHRIa1RHTEl1b0pQUGxZZFVDdzNqRGp5?= =?utf-8?B?ZlJYREJBZ3FJSW9JY2FWMElQclJYbUR2WHB3emUwbE9ITE16cGRCV081NVdx?= =?utf-8?B?YWcvVDdNVzZZaGRTWlVjT1Nka3FiUnZaY2lEVyt2Wm1LNEpwaE13L25keW45?= =?utf-8?B?RkJtV0dFYmlKbVVyVU1UZG51cllldTdXVWxOMWVHTFNnTXdQc28rZVpqY3N2?= =?utf-8?B?d0pDQit5dFdQd2phU1haWHFpTzVsYVVMNitTZWZUcVRlYng1UW40UFBpek9I?= =?utf-8?B?TjMzK0lpTlZLWk4rUGwwdXhXOWIwNzBVU2dQdi9xTDZqY1dQSWRnSWhleGxr?= =?utf-8?B?OWs2dnU3dld6d2pXdWhyMG11MUZkNlRTMTk4TUdTZUthckI4M0crTHdZcnV4?= =?utf-8?B?R3cvRzVQN1ZNNW41ZkUrNmxaQUx3NG1WTzJhRXRFUUFERnFlVUhHQUROVFR1?= =?utf-8?B?WWFpUnlPWWpTM0N6T0RIMzZvS0ltQm5DY2tPZzZqcVJtWFVkRHhnU0VDN242?= =?utf-8?B?WmZkakF1UDJuRzNBODU3cWZpMWpWVlRYZnlBVzdPODgwUnk3NDdiV2UzMC9j?= =?utf-8?B?MWxBMFBkby81TTd4L1VGUTZQQW90c0xaUC90UGFiZEw1YTZ2QTZ5TmV6MmpY?= =?utf-8?B?K05FS1pORG9EQTJweEpJK1JXVVlZdDNGNXluS0x2QTN6aElMTmtGNkQrZUZl?= =?utf-8?B?aFhremlCOU84WlByZDU0RENWWlJkTnBJZjg4R3F1SUt4WGM5YTIwM0cwQ1Zn?= =?utf-8?B?YU9OREZydFcyTXlXV1psdVZnY0wzZWVUS0dLL3o5UFQ2UkkyeFNrak4yMHAy?= =?utf-8?B?cVZrN3hSci8wQ2Vxc0VHUUJwL1grdjRqNkJGeHdKYlVLNjJxQjBTWnE3V3Y3?= =?utf-8?B?bFF2blNmdHBicUVaUGZaN2RJdTJkNTVSR3d0M0xsMUxCVFJZSmFoTWZhYTNV?= =?utf-8?B?VmtLK3JIMldjaHNwTzRmeG41SFFibmVxeE5mRE43MTdoUXMzeUhkWURubHNx?= =?utf-8?B?Rm95d0hBN1NTckU5SmxzUlRQaFAwQUFTTlZSZlYxTFVHM3RyOFVPT0c3VU91?= =?utf-8?B?dk5yQ0VGNnloaTZrUTdmWStvVENRUWdFY3VmQkNDc1NvVm83ald0STlQSit4?= =?utf-8?B?YUx3N1ZLRnZCZm9IeEdLRmJKcFJBMmtHTnRpVStYWWhMTWxyVlZlMWl3RTBM?= =?utf-8?B?a1BvOENLclhxdDNIdDhqNGRzMklHZ1NFK2t6ekoxa1RsOGhyc3dyUklqQm81?= =?utf-8?B?b3hXc1Q4OE5VL21qK3RuUmVESVZJZ1hBc1ZhcFVvYVhWV21jV1FacWllV0d0?= =?utf-8?B?YlMwYmFLU0NNN2EwdHFyaFRWZmVnWEl5Z1RJcWEycnUxYVV6d1cyUG53a3U2?= =?utf-8?B?UmYrL0VHQVpYMmQvMG95OUdqaUZnb2NNdlQxanZacFR5N0tua3ZNTnVJelJK?= =?utf-8?B?WWE0SUhPN3U2c2VOSkxyRkJwY1pETTRNTUFXWjhKVE15eTZIazNpT3kwcTJv?= =?utf-8?B?ZzdWYmpucjJqSGI0bFRQWXZtVUZ2NFVhYUs1d2hUcS9wcmxhOFJjV0FNbk16?= =?utf-8?B?d3BRTG1pcm1ZSEZHTEZaQXo3UEZJUHpwVUtoNWhNSjgrcnFVMFZ6MkJWVDRy?= =?utf-8?B?N0w3Z055TmcxY1NoOEpLSmxsbTVNcE1WOVBEUi9tTTlBazBnMmRXaEVXM3lP?= =?utf-8?B?TWNDampmQjJQc2JMTW8zYXhaa3kvV1FnbzQ5dXlJbUlrSURjUmIwR0xPVzFP?= =?utf-8?Q?NxjncZViOAdZo2oN9nhq+MBWETAiecSJCtox8B8?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34a7299e-4b2c-4210-d649-08d90ee7b85c X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2021 10:31:04.9598 (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: zHEv3F+WrUqQF4xUGk+Egjs5UxbSJw/ok9kDnsw+YE7unx1U5R+XfiA59UcVd2Mozb79scFzqXc5VHaFYkRJnQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7850 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210504_033111_128759_7A8A541F X-CRM114-Status: GOOD ( 34.69 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAyMDIxLzUvNCAxNzo0NywgTHVjYXMgU3RhY2ggd3JvdGU6Cj4gQW0gRnJlaXRhZywgZGVt IDMwLjA0LjIwMjEgdW0gMTM6MjcgKzA4MDAgc2NocmllYiBQZW5nIEZhbiAoT1NTKToKPj4gRnJv bTogUGVuZyBGYW4gPHBlbmcuZmFuQG54cC5jb20+Cj4+Cj4+IFRoZSBpLk1YOE1NIGludHJvZHVj ZXMgYW4gSVAgbmFtZWQgQkxLX0NUTCBhbmQgdXN1YWxseSBpcyBjb21wcmlzZWQgb2YKPj4gc29t ZSBHUFJzLgo+Pgo+PiBUaGUgR1BScyBoYXMgc29tZSBjbG9jayBiaXRzIGFuZCByZXNldCBiaXRz LCBidXQgaGVyZSB3ZSB0YWtlIGl0Cj4+IGFzIHZpcnR1YWwgUERzLCBiZWNhdXNlIG9mIHRoZSBj bG9jayBhbmQgcG93ZXIgZG9tYWluIEEvQiBsb2NrIGlzc3VlCj4+IHdoZW4gdGFraW5nIGl0IGFz IGEgY2xvY2sgY29udHJvbGxlci4KPj4KPj4gRm9yIHNvbWUgYml0cywgaXQgbWlnaHQgYmUgZ29v ZCB0byBhbHNvIG1ha2UgaXQgYXMgYSByZXNldCBjb250cm9sbGVyLAo+PiBidXQgdG8gaS5NWDhN TSwgd2Ugbm90IGFkZCB0aGF0IHN1cHBvcnQgZm9yIG5vdy4KPj4KPj4gU2lnbmVkLW9mZi1ieTog UGVuZyBGYW4gPHBlbmcuZmFuQG54cC5jb20+Cj4+IC0tLQo+PiAgwqBkcml2ZXJzL3NvYy9pbXgv TWFrZWZpbGUgIHwgICAyICstCj4+ICDCoGRyaXZlcnMvc29jL2lteC9ibGstY3RsLmMgfCAzMDMg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gIMKgZHJpdmVycy9zb2Mv aW14L2Jsay1jdGwuaCB8ICA3NiArKysrKysrKysrCj4+ICDCoDMgZmlsZXMgY2hhbmdlZCwgMzgw IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4gIMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvc29jL2lteC9ibGstY3RsLmMKPj4gIMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv c29jL2lteC9ibGstY3RsLmgKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL2lteC9NYWtl ZmlsZSBiL2RyaXZlcnMvc29jL2lteC9NYWtlZmlsZQo+PiBpbmRleCAwNzhkYzkxOGY0ZjMuLmQz ZDJiNDlhMzg2YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9zb2MvaW14L01ha2VmaWxlCj4+ICsr KyBiL2RyaXZlcnMvc29jL2lteC9NYWtlZmlsZQo+PiBAQCAtNCw0ICs0LDQgQEAgb2JqLSQoQ09O RklHX0FSQ0hfTVhDKSArPSBzb2MtaW14Lm8KPj4gIMKgZW5kaWYKPj4gIMKgb2JqLSQoQ09ORklH X0hBVkVfSU1YX0dQQykgKz0gZ3BjLm8KPj4gIMKgb2JqLSQoQ09ORklHX0lNWF9HUENWMl9QTV9E T01BSU5TKSArPSBncGN2Mi5vCj4+IC1vYmotJChDT05GSUdfU09DX0lNWDhNKSArPSBzb2MtaW14 OG0ubwo+PiArb2JqLSQoQ09ORklHX1NPQ19JTVg4TSkgKz0gc29jLWlteDhtLm8gYmxrLWN0bC5v Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9pbXgvYmxrLWN0bC5jIGIvZHJpdmVycy9zb2Mv aW14L2Jsay1jdGwuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAw MDAuLjFmNzY0ZGZkMzA4ZAo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvc29jL2lt eC9ibGstY3RsLmMKPj4gQEAgLTAsMCArMSwzMDMgQEAKPj4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCj4+ICsvKgo+PiArICogQ29weXJpZ2h0IDIwMjEgTlhQLgo+PiArICov Cj4+ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9lcnIu aD4KPj4gKyNpbmNsdWRlIDxsaW51eC9pby5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pgo+PiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVz cy5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4 L3BsYXRmb3JtX2RldmljZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KPj4g KyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4+ ICsjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K Pj4gKyNpbmNsdWRlIDxsaW51eC9wbV9kb21haW4uaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9yZXNl dC1jb250cm9sbGVyLmg+Cj4+ICsKPj4gKyNpbmNsdWRlICJibGstY3RsLmgiCj4+ICsKPj4gK3N0 YXRpYyBpbmxpbmUgc3RydWN0IGlteF9ibGtfY3RsX2RvbWFpbiAqdG9faW14X2Jsa19jdGxfcGQo c3RydWN0IGdlbmVyaWNfcG1fZG9tYWluICpnZW5wZCkKPj4gK3sKPj4gKwlyZXR1cm4gY29udGFp bmVyX29mKGdlbnBkLCBzdHJ1Y3QgaW14X2Jsa19jdGxfZG9tYWluLCBwZCk7Cj4+ICt9Cj4+ICsK Pj4gK3N0YXRpYyBpbnQgaW14X2Jsa19jdGxfZW5hYmxlX2hzayhzdHJ1Y3QgZGV2aWNlICpkZXYp Cj4+ICt7Cj4+ICsJc3RydWN0IGlteF9ibGtfY3RsICpibGtfY3RsID0gZGV2X2dldF9kcnZkYXRh KGRldik7Cj4+ICsJY29uc3Qgc3RydWN0IGlteF9ibGtfY3RsX2h3ICpodyA9ICZibGtfY3RsLT5k ZXZfZGF0YS0+aHdfaHNrOwo+PiArCXN0cnVjdCByZWdtYXAgKnJlZ21hcCA9IGJsa19jdGwtPnJl Z21hcDsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsKPj4gKwlpZiAoaHctPmZsYWdzICYgSU1YX0JM S19DVExfUERfUkVTRVQpCj4+ICsJCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIGh3 LT5yc3Rfb2Zmc2V0LCBody0+cnN0X21hc2ssIGh3LT5yc3RfbWFzayk7Cj4+ICsKPj4gKwlyZXQg PSByZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCBody0+b2Zmc2V0LCBody0+bWFzaywgaHctPm1h c2spOwo+PiArCj4+ICsJLyogV2FpdCBmb3IgaGFuZHNoYWtlICovCj4+ICsJdWRlbGF5KDUpOwo+ PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiAraW50IGlteF9ibGtfY3RsX3Bvd2Vy X29mZihzdHJ1Y3QgZ2VuZXJpY19wbV9kb21haW4gKmRvbWFpbikKPj4gK3sKPj4gKwlzdHJ1Y3Qg aW14X2Jsa19jdGxfZG9tYWluICpwZDsKPj4gKwlzdHJ1Y3QgaW14X2Jsa19jdGwgKmJsa19jdGw7 Cj4+ICsJY29uc3Qgc3RydWN0IGlteF9ibGtfY3RsX2h3ICpodzsKPj4gKwlzdHJ1Y3QgcmVnbWFw ICpyZWdtYXA7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCXBkID0gdG9faW14X2Jsa19jdGxfcGQo ZG9tYWluKTsKPj4gKwlibGtfY3RsID0gcGQtPmJsa19jdGw7Cj4+ICsJcmVnbWFwID0gYmxrX2N0 bC0+cmVnbWFwOwo+PiArCWh3ID0gJmJsa19jdGwtPmRldl9kYXRhLT5wZHNbcGQtPmlkXTsKPj4g Kwo+PiArCXJldCA9IGNsa19idWxrX3ByZXBhcmVfZW5hYmxlKGJsa19jdGwtPm51bV9jbGtzLCBi bGtfY3RsLT5jbGtzKTsKPj4gKwlpZiAocmV0KQo+PiArCQlyZXR1cm4gcmV0Owo+IAo+IFRoaXMg bG9va3MgYSBiaXQgc3RyYW5nZSB0byBtZS4gRG9lcyB0aGF0IG1lYW4gdGhhdCB5b3Uga2VlcCBh bGwgdGhlCj4gQ0NNIGNsb2NrcyBnb2luZyBpbnRvIHRoZSBibGtjdGwgZW5hYmxlZCBhcyBsb25n IGFzIG9uZSBvZiB0aGUgYmxrY3RsCj4gdmlydHVhbCBwb3dlciBkb21haW5zIGlzIHVwPwoKTm8u IFRoZSBjbG9ja3MgYXJlIGRpc2FibGUgdW5wcmVwYXJlZCB3aGVuIHRoaXMgZnVuY3Rpb24gZmlu aXNoLgpUaGUgY2xvY2tzIGFyZSBvbmx5IHVzZWQgZm9yIHNldHRpbmcgYmxrIGN0bCBiaXRzIGFu ZCBoYW5kc2hha2UuCgogIEkgd291bGQgaGF2ZSBleHBlY3RlZCBlYWNoIHZpcnR1YWwgUEQgdG8K PiBoYXZlIGEgbGlzdCBvZiBjbG9jayBuYW1lcyB0aGF0IG5lZWQgdG8gYmUgZW5hYmxlZCwgdG8g bWFrZSB0aGlzIG1vcmUKPiBzZWxlY3RpdmUuCj4gCj4gSSBoYXZlbid0IGNvbXBsZXRlbHkgdGhv dWdodCBpdCB0aHJvdWdoIGlmIHRoaXMgaXMgYSBwcm9ibGVtLCBidXQgSQo+IGNvdWxkIHNlZSBz b21lIENDTSBQTExzIHJ1bm5pbmcgd2l0aG91dCBhIHJlYXNvbiBpZiBhbGwgQ0NNIGNsb2NrcyBh cmUKPiBrZXB0IGVuYWJsZWQuIFRoaXMgc3VyZWx5IGlzIHNvbWV0aGluZyB3ZSB3YW50IHRvIGF2 b2lkIGZyb20gYSBwd29lcgo+IGNvbnN1bXB0aW9uIFBvVi4KCkkgdGhvdWdodCB0byBhZGQgc2Vs ZWN0aXZlIGNsb2NrcyBmb3IgZWFjaCB2aXJ0dWFsIFBELCBidXQgdGhhdCBtYWtlcwp0aGUgZGVz aWduIGNvbXBsZXRlZCwgYW5kIHRoZSBjbG9ja3MoZ2F0ZSkgYXJlIG9ubHkgZW5hYmxlZCBmb3Ig YSBsaXR0bGUKd2hpbGUsIHNvIEkgdGhpbmsgY29tcGFyZWQgd2l0aCB0aGUgc29mdHdhcmUgY29t cGxleGl0eSwgdGhlIGxpdHRsZQpiZW5pZml0IG9mIHBvd2VyIGNvdWxkIGJlIGlnbm9yZWQ/Cgo+ IAo+PiArCj4+ICsJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgaHctPm9mZnNldCwg aHctPm1hc2ssIDApOwo+PiArCWlmIChyZXQpCj4+ICsJCWdvdG8gaHNrX2ZhaWw7Cj4+ICsKPj4g KwlpZiAoaHctPmZsYWdzICYgSU1YX0JMS19DVExfUERfUkVTRVQpCj4+ICsJCXJldCA9IHJlZ21h cF91cGRhdGVfYml0cyhyZWdtYXAsIGh3LT5yc3Rfb2Zmc2V0LCBody0+cnN0X21hc2ssIDApOwo+ PiArCj4+ICsJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmJsa19jdGwtPnBvd2VyX2NvdW50KSkg ewo+PiArCQlyZXQgPSBpbXhfYmxrX2N0bF9lbmFibGVfaHNrKGJsa19jdGwtPmRldik7Cj4+ICsJ CWlmIChyZXQpIHsKPj4gKwkJCWRldl9lcnIoYmxrX2N0bC0+ZGV2LCAiSGFua3NoYWtlIGZhaWxc biIpOwo+PiArCQkJZ290byBoc2tfZmFpbDsKPj4gKwkJfQo+PiArCX0KPj4gKwo+PiAraHNrX2Zh aWw6Cj4+ICsJY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUoYmxrX2N0bC0+bnVtX2Nsa3MsIGJs a19jdGwtPmNsa3MpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiAraW50IGlt eF9ibGtfY3RsX3Bvd2VyX29uKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFpbiAqZG9tYWluKQo+PiAr ewo+PiArCXN0cnVjdCBpbXhfYmxrX2N0bF9kb21haW4gKnBkOwo+PiArCXN0cnVjdCByZWdtYXAg KnJlZ21hcDsKPj4gKwljb25zdCBzdHJ1Y3QgaW14X2Jsa19jdGxfaHcgKmh3Owo+PiArCWludCBy ZXQ7Cj4+ICsJc3RydWN0IGlteF9ibGtfY3RsICpibGtfY3RsOwo+PiArCj4+ICsJcGQgPSB0b19p bXhfYmxrX2N0bF9wZChkb21haW4pOwo+PiArCWJsa19jdGwgPSBwZC0+YmxrX2N0bDsKPj4gKwly ZWdtYXAgPSBibGtfY3RsLT5yZWdtYXA7Cj4+ICsJaHcgPSAmYmxrX2N0bC0+ZGV2X2RhdGEtPnBk c1twZC0+aWRdOwo+PiArCj4+ICsJcmV0ID0gY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUoYmxrX2N0 bC0+bnVtX2Nsa3MsIGJsa19jdGwtPmNsa3MpOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVybiBy ZXQ7Cj4+ICsKPj4gKwlpZiAoKGF0b21pY19yZWFkKCZibGtfY3RsLT5wb3dlcl9jb3VudCkgPT0g MCkpIHsKPj4gKwkJcmV0ID0gaW14X2Jsa19jdGxfZW5hYmxlX2hzayhibGtfY3RsLT5kZXYpOwo+ PiArCQlpZiAocmV0KSB7Cj4+ICsJCQlkZXZfZXJyKGJsa19jdGwtPmRldiwgIkhhbmtzaGFrZSBm YWlsXG4iKTsKPj4gKwkJCWdvdG8gZGlzYWJsZV9jbGs7Cj4+ICsJCX0KPj4gKwl9Cj4gCj4gVGhp cyBpcyBib2d1cy4gVGhlIHZhcmlhYmxlIGlzbid0IHVzZWQgYXMgYSBhdG9taWMsIGlmIGF0IGFs bCB0aGlzCj4gc2hvdWxkIHVzZSBhdG9taWNfaW5jX3JldHVybiwgYnV0IEkgdGhpbmsgZXZlbiB0 aGF0IGlzbid0IGNvcnJlY3QgaW4KPiB0aGF0IGNhc2UuIGlteF9ibGtfY3RsX2VuYWJsZV9oc2so KSBpbmNsdWRlcyBhIHdhaXQgdGltZSwgc28gaWYgdHdvCj4gcGF0aHMgY2FsbCB0aGlzIGZ1bmN0 aW9uIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBzZWNvbmQgY2FsbGVyIHdvdWxkIGJlCj4gYWJsZSB0 byBvdmVydGFrZSB0aGUgZmlyc3Qgb25lLCB3aGljaCBpcyBzdGlsbCB3YWl0aW5nIGZvciB0aGUK PiBoYW5kc2hha2UgdG8gY29tcGxldGUsIGVmZmVjdGl2ZWx5IHNraXBwaW5nIHRoZSBoYW5kc2hh a2UuIFRoaXMgbmVlZHMgYQo+IHByb3BlciBsb2NrLCBhcyB0aGlzIGZ1bmN0aW9uIGlzbid0IGNh bGxlZCBmcm9tIGEgcGVyZm9ybWFuY2UgY3JpdGljYWwKPiBwYXRoIGl0IG1ha2VzIG5vIHNlbnNl IHRvIHRyeSB0byBvcHRpbWl6ZSB0aGlzIHdpdGggYW4gYXRvbWljIGNvdW50ZXIsCj4gcmF0aGVy IHRoYW4gZ29pbmcgd2l0aCBhIG11dGV4LgoKSSBzZWUuIFdpbGwgdXNlIGEgbXV0ZXggaGVyZS4K Cj4gCj4+ICsKPj4gKwlpZiAoaHctPmZsYWdzICYgSU1YX0JMS19DVExfUERfUkVTRVQpCj4+ICsJ CXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIGh3LT5yc3Rfb2Zmc2V0LCBody0+cnN0 X21hc2ssIDApOwo+PiArCj4+ICsJLyogV2FpdCBmb3IgcmVzZXQgcHJvcGFnYXRlICovCj4+ICsJ dWRlbGF5KDUpOwo+PiArCj4+ICsJaWYgKGh3LT5mbGFncyAmIElNWF9CTEtfQ1RMX1BEX1JFU0VU KQo+PiArCQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMocmVnbWFwLCBody0+cnN0X29mZnNldCwg aHctPnJzdF9tYXNrLCBody0+cnN0X21hc2spOwo+PiArCj4+ICsJcmV0ID0gcmVnbWFwX3VwZGF0 ZV9iaXRzKHJlZ21hcCwgaHctPm9mZnNldCwgaHctPm1hc2ssIGh3LT5tYXNrKTsKPj4gKwlpZiAo cmV0KQo+PiArCQlnb3RvIGRpc2FibGVfY2xrOwo+PiArCj4+ICsJYXRvbWljX2luYygmYmxrX2N0 bC0+cG93ZXJfY291bnQpOwo+PiArCj4+ICtkaXNhYmxlX2NsazoKPj4gKwljbGtfYnVsa19kaXNh YmxlX3VucHJlcGFyZShibGtfY3RsLT5udW1fY2xrcywgYmxrX2N0bC0+Y2xrcyk7Cj4+ICsKPj4g KwlyZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGlteF9ibGtfY3RsX2F0dGFj aF9wZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKipkZXZzLCBjaGFyICoqcGRf bmFtZXMsCj4+ICsJCQkJIHUzMiBudW1fcGRzKQo+PiArewo+PiArCWludCBpLCByZXQ7Cj4+ICsK Pj4gKwlpZiAoIXBkX25hbWVzKQo+PiArCQlyZXR1cm4gMDsKPj4gKwo+PiArCWlmIChkZXYtPnBt X2RvbWFpbikgewo+PiArCQlkZXZzWzBdID0gZGV2Owo+PiArCQlwbV9ydW50aW1lX2VuYWJsZShk ZXYpOwo+PiArCQlyZXR1cm4gMDsKPj4gKwl9Cj4+ICsKPj4gKwlmb3IgKGkgPSAwOyBpIDwgbnVt X3BkczsgaSsrKSB7Cj4+ICsJCWRldnNbaV0gPSBkZXZfcG1fZG9tYWluX2F0dGFjaF9ieV9uYW1l KGRldiwgcGRfbmFtZXNbaV0pOwo+PiArCQlpZiAoSVNfRVJSX09SX05VTEwoZGV2c1tpXSkpIHsK Pj4gKwkJCXJldCA9IFBUUl9FUlIoZGV2c1tpXSkgPyA6IC1FTk9EQVRBOwo+PiArCQkJZ290byBk ZXRhY2hfcG07Cj4+ICsJCX0KPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gKwo+PiArZGV0 YWNoX3BtOgo+PiArCWZvciAoaS0tOyBpID49IDA7IGktLSkKPj4gKwkJZGV2X3BtX2RvbWFpbl9k ZXRhY2goZGV2c1tpXSwgZmFsc2UpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+ PiArc3RhdGljIGludCBpbXhfYmxrX2N0bF9yZWdpc3Rlcl9wZChzdHJ1Y3QgZGV2aWNlICpkZXYp Cj4+ICt7Cj4+ICsJc3RydWN0IGlteF9ibGtfY3RsICpibGtfY3RsID0gZGV2X2dldF9kcnZkYXRh KGRldik7Cj4+ICsJY29uc3Qgc3RydWN0IGlteF9ibGtfY3RsX2Rldl9kYXRhICpkZXZfZGF0YSA9 IGJsa19jdGwtPmRldl9kYXRhOwo+PiArCWludCBudW0gPSBkZXZfZGF0YS0+cGRzX251bTsKPj4g KwlzdHJ1Y3QgaW14X2Jsa19jdGxfZG9tYWluICpkb21haW47Cj4+ICsJaW50IGksIHJldDsKPj4g Kwo+PiArCWJsa19jdGwtPm9uZWNlbGxfZGF0YS5udW1fZG9tYWlucyA9IG51bTsKPj4gKwlibGtf Y3RsLT5vbmVjZWxsX2RhdGEuZG9tYWlucyA9IGRldm1fa2NhbGxvYyhkZXYsIG51bSwKPj4gKwkJ CQkJCSAgICAgc2l6ZW9mKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFpbiAqKSwKPj4gKwkJCQkJCSAg ICAgR0ZQX0tFUk5FTCk7Cj4+ICsKPj4gKwlpZiAoIWJsa19jdGwtPm9uZWNlbGxfZGF0YS5kb21h aW5zKQo+PiArCQlyZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArCWZvciAoaSA9IDA7IGkgPCBudW07 IGkrKykgewo+PiArCQlkb21haW4gPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmRvbWFpbiks IEdGUF9LRVJORUwpOwo+PiArCQlpZiAoIWRvbWFpbikgewo+PiArCQkJcmV0ID0gLUVOT01FTTsK Pj4gKwkJCWdvdG8gcmVtb3ZlX2dlbnBkOwo+PiArCQl9Cj4+ICsJCWRvbWFpbi0+cGQubmFtZSA9 IGRldl9kYXRhLT5wZHNbaV0ubmFtZTsKPj4gKwkJZG9tYWluLT5wZC5wb3dlcl9vZmYgPSBpbXhf YmxrX2N0bF9wb3dlcl9vZmY7Cj4+ICsJCWRvbWFpbi0+cGQucG93ZXJfb24gPSBpbXhfYmxrX2N0 bF9wb3dlcl9vbjsKPj4gKwkJZG9tYWluLT5ibGtfY3RsID0gYmxrX2N0bDsKPj4gKwkJZG9tYWlu LT5pZCA9IGk7Cj4+ICsKPj4gKwkJcmV0ID0gcG1fZ2VucGRfaW5pdCgmZG9tYWluLT5wZCwgTlVM TCwgdHJ1ZSk7Cj4+ICsJCWlmIChyZXQpCj4+ICsJCQlyZXR1cm4gcmV0Owo+PiArCj4+ICsJCWJs a19jdGwtPm9uZWNlbGxfZGF0YS5kb21haW5zW2ldID0gJmRvbWFpbi0+cGQ7Cj4+ICsJfQo+PiAr Cj4+ICsJcmV0dXJuIDA7Cj4+ICsKPj4gK3JlbW92ZV9nZW5wZDoKPj4gKwlmb3IgKGkgPSBpIC0g MTsgaSA+PSAwOyBpLS0pCj4+ICsJCXBtX2dlbnBkX3JlbW92ZShibGtfY3RsLT5vbmVjZWxsX2Rh dGEuZG9tYWluc1tpXSk7Cj4+ICsKPj4gKwlyZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0 aWMgaW50IGlteF9ibGtfY3RsX2hvb2tfcGQoc3RydWN0IGRldmljZSAqZGV2KQo+PiArewo+PiAr CXN0cnVjdCBpbXhfYmxrX2N0bCAqYmxrX2N0bCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+PiAr CWNvbnN0IHN0cnVjdCBpbXhfYmxrX2N0bF9kZXZfZGF0YSAqZGV2X2RhdGEgPSBibGtfY3RsLT5k ZXZfZGF0YTsKPj4gKwljb25zdCBzdHJ1Y3QgaW14X2Jsa19jdGxfaHcgKnBkcyA9IGRldl9kYXRh LT5wZHM7Cj4+ICsJaW50IG51bV9hY3RpdmVfcGQgPSBkZXZfZGF0YS0+bnVtX2FjdGl2ZV9wZDsK Pj4gKwlpbnQgbnVtID0gZGV2X2RhdGEtPnBkc19udW07Cj4+ICsJc3RydWN0IGdlbmVyaWNfcG1f ZG9tYWluICpnZW5wZCwgKmNoaWxkX2dlbnBkOwo+PiArCWludCByZXQ7Cj4+ICsJaW50IGksIGo7 Cj4+ICsKPj4gKwlibGtfY3RsLT5hY3RpdmVfcGRzID0gZGV2bV9rY2FsbG9jKGRldiwgbnVtX2Fj dGl2ZV9wZCwgc2l6ZW9mKHN0cnVjdCBkZXZpY2UgKiksIEdGUF9LRVJORUwpOwo+PiArCWlmICgh YmxrX2N0bC0+YWN0aXZlX3BkcykKPj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4+ICsKPj4gKwlyZXQg PSBpbXhfYmxrX2N0bF9hdHRhY2hfcGQoZGV2LCBibGtfY3RsLT5hY3RpdmVfcGRzLCBkZXZfZGF0 YS0+YWN0aXZlX3BkX25hbWVzLAo+PiArCQkJCSAgICBudW1fYWN0aXZlX3BkKTsKPj4gKwlpZiAo cmV0KSB7Cj4+ICsJCWlmIChyZXQgPT0gLUVQUk9CRV9ERUZFUikKPj4gKwkJCXJldHVybiByZXQ7 Cj4+ICsJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGF0dGFjaCBhY3RpdmUgcGQ6ICVkXG4iLCBy ZXQpOwo+PiArCQlyZXR1cm4gcmV0Owo+PiArCX0KPj4gKwo+PiArCWZvciAoaSA9IDA7IGkgPCBu dW07IGkrKykgewo+PiArCQlmb3IgKGogPSAwOyBqIDwgbnVtX2FjdGl2ZV9wZDsgaisrKSB7Cj4+ ICsJCQlnZW5wZCA9IHBkX3RvX2dlbnBkKGJsa19jdGwtPmFjdGl2ZV9wZHNbal0tPnBtX2RvbWFp bik7Cj4+ICsJCQlpZiAoIXN0cmNtcChnZW5wZC0+bmFtZSwgcGRzW2ldLnBhcmVudF9uYW1lKSkK Pj4gKwkJCQlicmVhazsKPj4gKwkJfQo+PiArCj4+ICsJCWNoaWxkX2dlbnBkID0gYmxrX2N0bC0+ b25lY2VsbF9kYXRhLmRvbWFpbnNbaV07Cj4+ICsJCWlmIChwbV9nZW5wZF9hZGRfc3ViZG9tYWlu KGdlbnBkLCBjaGlsZF9nZW5wZCkpCj4+ICsJCQlwcl93YXJuKCJmYWlsZWQgdG8gYWRkIHN1YmRv bWFpbjpcbiIpOwo+PiArCX0KPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtpbnQg aW14X2Jsa19jdGxfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2KQo+PiArewo+PiArCXN0cnVj dCBpbXhfYmxrX2N0bCAqYmxrX2N0bCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+PiArCWNvbnN0 IHN0cnVjdCBpbXhfYmxrX2N0bF9kZXZfZGF0YSAqZGV2X2RhdGEgPSBibGtfY3RsLT5kZXZfZGF0 YTsKPj4gKwlpbnQgbnVtID0gZGV2X2RhdGEtPnBkc19udW07Cj4+ICsJaW50IGksIHJldDsKPj4g Kwo+PiArCWlmICghYmxrX2N0bCkKPj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4+ICsKPj4gKwlyZXQg PSBpbXhfYmxrX2N0bF9yZWdpc3Rlcl9wZChkZXYpOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVy biByZXQ7Cj4+ICsKPj4gKwlyZXQgPSBpbXhfYmxrX2N0bF9ob29rX3BkKGRldik7Cj4+ICsJaWYg KHJldCkKPj4gKwkJZ290byB1bnJlZ2lzdGVyX3BkOwo+PiArCj4+ICsJcmV0ID0gb2ZfZ2VucGRf YWRkX3Byb3ZpZGVyX29uZWNlbGwoZGV2LT5vZl9ub2RlLCAmYmxrX2N0bC0+b25lY2VsbF9kYXRh KTsKPj4gKwlpZiAocmV0KQo+PiArCQlnb3RvIGRldGFjaF9wZDsKPj4gKwo+PiArCXBtX3J1bnRp bWVfZ2V0X25vcmVzdW1lKGRldik7Cj4+ICsJcG1fcnVudGltZV9zZXRfYWN0aXZlKGRldik7Cj4+ ICsJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKPj4gKwo+PiArCXBtX3J1bnRpbWVfcHV0KGRldik7 Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gKwo+PiArZGV0YWNoX3BkOgo+PiArCWZvciAoaSA9IGJs a19jdGwtPmRldl9kYXRhLT5udW1fYWN0aXZlX3BkOyBpID49IDA7IGktLSkKPj4gKwkJZGV2X3Bt X2RvbWFpbl9kZXRhY2goYmxrX2N0bC0+YWN0aXZlX3Bkc1tpXSwgZmFsc2UpOwo+PiArdW5yZWdp c3Rlcl9wZDoKPj4gKwlmb3IgKGkgPSBudW0gLSAxOyBpID49IDA7IGktLSkKPj4gKwkJcG1fZ2Vu cGRfcmVtb3ZlKGJsa19jdGwtPm9uZWNlbGxfZGF0YS5kb21haW5zW2ldKTsKPj4gKwo+PiArCXJl dHVybiByZXQ7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MX0dQTChpbXhfYmxrX2N0bF9yZWdpc3Rl cik7Cj4+ICsKPj4gK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaW14X2Jsa19jdGxfcnVudGlt ZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPj4gK3sKPj4gKwlyZXR1cm4gMDsKPj4gK30K Pj4gKwo+PiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBpbXhfYmxrX2N0bF9ydW50aW1lX3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt7Cj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4gCj4g V2h5IHRob3NlIGVtcHR5IHN0dWJzPyBJZiB5b3UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBm b3IKPiBzdXNwZW5kL3Jlc3VtZSwganVzdCBkb24ndCBhZGQgdGhlIGZ1bmN0aW9ucy4KCm9rLCB3 aWxsIGRyb3AgaW4gVjMuCgpUaGFua3MsClBlbmcuCgo+IAo+PiArCj4+ICtjb25zdCBzdHJ1Y3Qg ZGV2X3BtX29wcyBpbXhfYmxrX2N0bF9wbV9vcHMgPSB7Cj4+ICsJU0VUX1JVTlRJTUVfUE1fT1BT KGlteF9ibGtfY3RsX3J1bnRpbWVfc3VzcGVuZCwKPj4gKwkJCSAgIGlteF9ibGtfY3RsX3J1bnRp bWVfcmVzdW1lLCBOVUxMKQo+PiArCVNFVF9TWVNURU1fU0xFRVBfUE1fT1BTKHBtX3J1bnRpbWVf Zm9yY2Vfc3VzcGVuZCwKPj4gKwkJCSAgIHBtX3J1bnRpbWVfZm9yY2VfcmVzdW1lKQo+PiArfTsK Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKGlteF9ibGtfY3RsX3BtX29wcyk7Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3NvYy9pbXgvYmxrLWN0bC5oIGIvZHJpdmVycy9zb2MvaW14L2Jsay1jdGwuaAo+ PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmU3MzYzNjk0MDZh MQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvc29jL2lteC9ibGstY3RsLmgKPj4g QEAgLTAsMCArMSw3NiBAQAo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAg Ki8KPj4gKyNpZm5kZWYgX19TT0NfSU1YX0JMS19DVExfSAo+PiArI2RlZmluZSBfX1NPQ19JTVhf QkxLX0NUTF9ICj4+ICsKPj4gK2VudW0gaW14X2Jsa19jdGxfcGRfdHlwZSB7Cj4+ICsJQkxLX0NU TF9QRCwKPj4gK307Cj4+ICsKPj4gK3N0cnVjdCBpbXhfYmxrX2N0bF9odyB7Cj4+ICsJaW50IHR5 cGU7Cj4+ICsJY2hhciAqbmFtZTsKPj4gKwljaGFyICpwYXJlbnRfbmFtZTsKPj4gKwl1MzIgb2Zm c2V0Owo+PiArCXUzMiBtYXNrOwo+PiArCXUzMiBmbGFnczsKPj4gKwl1MzIgaWQ7Cj4+ICsJdTMy IHJzdF9vZmZzZXQ7Cj4+ICsJdTMyIHJzdF9tYXNrOwo+PiArfTsKPj4gKwo+PiArc3RydWN0IGlt eF9ibGtfY3RsX2RvbWFpbiB7Cj4+ICsJc3RydWN0IGdlbmVyaWNfcG1fZG9tYWluIHBkOwo+PiAr CXN0cnVjdCBpbXhfYmxrX2N0bCAqYmxrX2N0bDsKPj4gKwl1MzIgaWQ7Cj4+ICt9Owo+PiArCj4+ ICtzdHJ1Y3QgaW14X2Jsa19jdGxfZGV2X2RhdGEgewo+PiArCXN0cnVjdCByZWdtYXBfY29uZmln IGNvbmZpZzsKPj4gKwlzdHJ1Y3QgaW14X2Jsa19jdGxfaHcgKnBkczsKPj4gKwlzdHJ1Y3QgaW14 X2Jsa19jdGxfaHcgaHdfaHNrOwo+PiArCXUzMiBwZHNfbnVtOwo+PiArCWNoYXIgKiphY3RpdmVf cGRfbmFtZXM7Cj4+ICsJdTMyIG51bV9hY3RpdmVfcGQ7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3Qg aW14X2Jsa19jdGwgewo+PiArCXN0cnVjdCBkZXZpY2UgKmRldjsKPj4gKwlzdHJ1Y3QgcmVnbWFw ICpyZWdtYXA7Cj4+ICsJc3RydWN0IGRldmljZSAqKmFjdGl2ZV9wZHM7Cj4+ICsJdTMyIHBkc19u dW07Cj4+ICsJdTMyIGFjdGl2ZV9wZF9jb3VudDsKPj4gKwlzdHJ1Y3QgZ2VucGRfb25lY2VsbF9k YXRhIG9uZWNlbGxfZGF0YTsKPj4gKwljb25zdCBzdHJ1Y3QgaW14X2Jsa19jdGxfZGV2X2RhdGEg KmRldl9kYXRhOwo+PiArCXN0cnVjdCBjbGtfYnVsa19kYXRhICpjbGtzOwo+PiArCXUzMiBudW1f Y2xrczsKPj4gKwo+PiArCWF0b21pY190IHBvd2VyX2NvdW50Owo+PiArfTsKPj4gKwo+PiArI2Rl ZmluZSBJTVhfQkxLX0NUTChfdHlwZSwgX25hbWUsIF9wYXJlbnRfbmFtZSwgX2lkLCBfb2Zmc2V0 LCBfbWFzaywgX3JzdF9vZmZzZXQsIF9yc3RfbWFzaywJXAo+PiArCQkgICAgX2ZsYWdzKQkJCQkJ CQkJXAo+PiArCXsJCQkJCQkJCQkJXAo+PiArCQkudHlwZSA9IF90eXBlLAkJCQkJCQkJXAo+PiAr CQkubmFtZSA9IF9uYW1lLAkJCQkJCQkJXAo+PiArCQkucGFyZW50X25hbWUgPSBfcGFyZW50X25h bWUsCQkJCQkJXAo+PiArCQkuaWQgPSBfaWQsCQkJCQkJCQlcCj4+ICsJCS5vZmZzZXQgPSBfb2Zm c2V0LAkJCQkJCQlcCj4+ICsJCS5tYXNrID0gX21hc2ssCQkJCQkJCQlcCj4+ICsJCS5mbGFncyA9 IF9mbGFncywJCQkJCQkJXAo+PiArCQkucnN0X29mZnNldCA9IF9yc3Rfb2Zmc2V0LAkJCQkJCVwK Pj4gKwkJLnJzdF9tYXNrID0gX3JzdF9tYXNrLAkJCQkJCQlcCj4+ICsJfQo+PiArCj4+ICsjZGVm aW5lIElNWF9CTEtfQ1RMX1BEKF9uYW1lLCBfcGFyZW50X25hbWUsIF9pZCwgX29mZnNldCwgX21h c2ssIF9yc3Rfb2Zmc2V0LCBfcnN0X21hc2ssIF9mbGFncykgXAo+PiArCUlNWF9CTEtfQ1RMKEJM S19DVExfUEQsIF9uYW1lLCBfcGFyZW50X25hbWUsIF9pZCwgX29mZnNldCwgX21hc2ssIF9yc3Rf b2Zmc2V0LAkJXAo+PiArCQkgICAgX3JzdF9tYXNrLCBfZmxhZ3MpCj4+ICsKPj4gK2ludCBpbXhf YmxrX2N0bF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+PiArCj4+ICsjZGVmaW5lIElN WF9CTEtfQ1RMX1BEX0hBTkRTSEFLRQlCSVQoMCkKPj4gKyNkZWZpbmUgSU1YX0JMS19DVExfUERf UkVTRVQJCUJJVCgxKQo+PiArI2RlZmluZSBJTVhfQkxLX0NUTF9QRF9CVVMJCUJJVCgyKQo+PiAr Cj4+ICtjb25zdCBleHRlcm4gc3RydWN0IGRldl9wbV9vcHMgaW14X2Jsa19jdGxfcG1fb3BzOwo+ PiArCj4+ICsjZW5kaWYKPiAKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK