From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6A964C001DE for ; Fri, 28 Jul 2023 15:50:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uu3Mbjxc4A5Jcjc6MSQFrBOk5Xhlcf1bm4yx20rd0Kk=; b=1mUauG3zQ1QlT7 Dhns3P5nxKIzdbT6rJWdsENMRK0BORfH3VIEbLtdZWMgNFr3q/9N4w4ZVeJ+v/V4ue3GltMwStOa8 1/I2IF+Etybtcs7VNokwab8OjPrNlLcZly5+LmWqGkdBx36N6w79sYupTXakh6htS19b1nbrdabEW 4O+TOmaEzfCaTmbVlpkw8pAP8AOvvP752aRIx/ORkAo/YwZXxOrRFrJo/AXaxFHOxK8uRqtW0CB5u 2yzDOt98sfTgSa8zNNg7q/9pJgMwL76cgybMxGg4u4te4Ahe9c1bAgus91L9TMy5C9WloGdaIlHGM ZL/g6n6Ph6fmNaVKn81A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qPPjC-003uRC-0k; Fri, 28 Jul 2023 15:50:06 +0000 Received: from mail-db5eur01on061b.outbound.protection.outlook.com ([2a01:111:f400:fe02::61b] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qPPj4-003uPZ-0x for linux-arm-kernel@lists.infradead.org; Fri, 28 Jul 2023 15:50:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jS9V2D5qYR0LuU1QRM1OUl7UIkMkS2rYo38P2b5gWpbPlW6nHjjpb1r8703PKFkGYJnBSqDoq2QArY/jr6unP0bHoEDF8c2H/Neml14zzGJQBPiabheLbmcxgqhXu5W+QxJ2LwAuNv8FXBI4t/n5tHuTlQhtNXCb5VwJvzE+D8+vJKOvNsuQg0pcT3kbTnFfbdrS+a7Dl8gkaqvY1MppWIYVgimOGeO3IeCBzvs0fjUUjlo7+Dq3nPqhyPFVFrAVZ5eIyYxSEoSQWrauOdy5RYRWchJDz1sTaNLa/NrcPP78nGiZhvZOaVRqffr9FvQgCl5VHT8jdh4azuTouorY4w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mDIfjQNXS5FEMRkQGzG0lDKTtsYYWcF7A+BSHR0eCio=; b=F0Ldg1bKvYE1CdKHJ8Peoo5typQNDuznjuUHtktP1JbTQXYvXRlbVaIRJyjopUlE5INmYfHD4lK01CaTXkZOu8SgDr2JoPys9kySgwFHrGrJd1zzJqlQXCO9BLKlrnS4PQLLsx9O1BPClfbJ3pL4CE+rvPSpJSvYWaERKpQrUF68Uz3tIyX24fw2/YTja30Zf8CfPoWCjgbw87tNwFe5mEERO7Wnat7mFV6BzvKwd2I7XvjF14wDx/nt0TQuGvVmOXPlVjbjAuZx9U1YuFLiS541LdtI5Doa80hU02eKlBOEdILmvcH54aToEN3IKJ/L+uaFalpmSWIl+KuX0V3bxw== 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=mDIfjQNXS5FEMRkQGzG0lDKTtsYYWcF7A+BSHR0eCio=; b=Iao7ccbRLSsWchHPZnZ9fdIJoFOPz4OEgnzIATyTp4kNGW7Fs5d+IkncZ72n2x2w/VdUvUhrQ70/jdWG/CaHovf/CtBPnn5cw7+fCzuFBGOt+QIwFTGgvzE1A4OPTvXGi4bmExMVBUrXJuUvbfz7CLRzSiL47LeRwO5zB92+HGw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.29; Fri, 28 Jul 2023 15:49:47 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::d0d5:3604:98da:20b1]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::d0d5:3604:98da:20b1%7]) with mapi id 15.20.6631.026; Fri, 28 Jul 2023 15:49:46 +0000 Date: Fri, 28 Jul 2023 11:49:28 -0400 From: Frank Li To: Manivannan Sadhasivam Cc: lorenzo.pieralisi@arm.com, bhelgaas@google.com, devicetree@vger.kernel.org, gustavo.pimentel@synopsys.com, helgaas@kernel.org, imx@lists.linux.dev, kw@linux.com, leoyang.li@nxp.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, mani@kernel.org, minghuan.lian@nxp.com, mingkai.hu@nxp.com, robh+dt@kernel.org, roy.zang@nxp.com, shawnguo@kernel.org, zhiqiang.hou@nxp.com Subject: Re: [PATCH v5 1/2] PCI: dwc: Implement general suspend/resume functionality for L2/L3 transitionse Message-ID: References: <20230724215830.2253112-1-Frank.Li@nxp.com> <20230728153238.GA4719@thinkpad> Content-Disposition: inline In-Reply-To: <20230728153238.GA4719@thinkpad> X-ClientProxiedBy: BY5PR17CA0008.namprd17.prod.outlook.com (2603:10b6:a03:1b8::21) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 434baf2d-71f8-4a8d-a9c8-08db8f8244c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kBVi/TWNL8rcnee8CBjEiryvK4uF9YFcEyOBZtodw1UPXQdewK+l5PcaOwP96WMJmqdKa+LoMe02LtfmRxGTnPfTE2pYq3fnz/eLTZ4CbufwO3RTSRgV8QmFCzFmp24fJGy6zkE5wlH9sK8yrJjl9KvPRkhXhejXmaLVzwYGk/pSOEglOaENPT3cd7wlNeNgO6oC1ylbndXUiK8GgEy6No+8+47pqsfyScijHtMfSqxP2EvF7K2ZeNePO0BZ13km+v4t1nDPQg2O/0Ef3ie+uJJL0B8gK3ijAJfPgnvoeoG1hI/N8CCIvQAXsnaRJVuoDN8BtJ5KhedPMtia7ELq8d7KfIFSoai/z1wXApsSomQeFTmt/IXWbEI/PSS4aPEmbGv13gVpG6jkmI5DXK7lvD1HbtPriLWzajueLHI1W75H8Z52W20Cv3yAm78xnFicaQVVkdkoR/zQYFn2IGG2BIQUFo3LyF1AGsaP648W3zarAwj/IdZjcZBUKq4Js9qC9x616b5Nvro5lKDklF7U54fONdNXgFS90pi5Ns+TTjOkp9kSy3CwLwUmsp5sowS+uFaCWRKBiJJUe2b+oRntqbh1ZkKb/k7rTLCaDTg+EZo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(7916004)(4636009)(376002)(39860400002)(396003)(346002)(136003)(366004)(451199021)(86362001)(2906002)(15650500001)(8936002)(8676002)(7416002)(316002)(83380400001)(38100700002)(5660300002)(66476007)(66946007)(66556008)(38350700002)(4326008)(6916009)(33716001)(186003)(6486002)(26005)(478600001)(6506007)(6666004)(41300700001)(6512007)(966005)(52116002)(9686003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VVRyRGhzVndURHo3T3RGUmdQZkdJQnhvdWRGNlRuZE9HL3RJb1lOOGdvTzlw?= =?utf-8?B?UGlGMGpPaFE3TWJtb0cxTjVrRTYzdWRSa0FrRVdZbGIwUzUyUG02bENvUVR4?= =?utf-8?B?SDNXSkV5WWlnMXJhaituZ0lEVjZxL2lORHZWdzhBS2hndGhsMW5DMkt1U3hF?= =?utf-8?B?MEdjR0FhcU55QnJ1Z1NwWFJUSFN2M3RKRFVwQ3kzbGtKTXd5SEwxejk5NjBx?= =?utf-8?B?OXhoaThyNy9SRVVmTlhlejUwUnVGWHZtR3lhZU1JOXVOMTJRZVBoSUhzTkFo?= =?utf-8?B?TE8xRWVNemo0M0NIdkRSMHFzaUlVakRvVDhZLzRKRExVS2diQ2lJdVZHWjdW?= =?utf-8?B?TGF6KzlpNGNLdnVTck9nMndqUmF4RW53cUFPUjV5eUJkMGJNTXBQVjljYzNI?= =?utf-8?B?UmhoRC83bmMzL3ROR1Y1c3k2VitJTDZqajRCRUh3N2VQTm5JTHBQcVpRa0JH?= =?utf-8?B?bFY2NE9EZ1VPaDMrOS80ZE56VlVGb0JYMnVWdmlUbDJYaGVqUkJZR1hMNjk2?= =?utf-8?B?M1FqTm5kc2pmeWdobzFuZmliZTh6YUthV1puM2Z3elBtcDFrYlVXV3ZBUG04?= =?utf-8?B?a2c4c1VnVFpUQjY5MitBY2w1dE4vS3NPKzNGR3lpV1BXL3NaQ1c1cTdyeVVX?= =?utf-8?B?ZTRXck85MWdkY0xYem5RSlFHdzlIL0pXN0RLanlGNHRlYzZ1VURvMkNnaEhF?= =?utf-8?B?Sys0cUhmVlpRTVBrTUxzODVHWnc4VGh4SklMT0lnME5DWUNoSVlrQzRvTUZQ?= =?utf-8?B?SkNHMHFESGR2R3pUZk5kSVlwdU1Db1Z1Wk42dzFnLzNFMzJFZURWTnc3dlJR?= =?utf-8?B?T3NXZHlFMjFEVmdjWTJySUVibzdtTjR4dUlUbHBnSjR1b1RlWjE0dld0UnZo?= =?utf-8?B?c3NUbjBIcm1EdWdYenBvZTRWZVVITEJ5OWxReERjVXVYSERFSmdOOVJIcVJa?= =?utf-8?B?YysyZzF1SytEa2tKazhRMXBLYUxXeDJGYWt5dGtZMzZuSTNQcWxOOFB6dmlO?= =?utf-8?B?c0YzNXNMSjRRbFJHYmlPYjY2OFd6UC9qZ3I2aE0yRkZrcnlsN0RBQU1qOTUw?= =?utf-8?B?ZWlXVmp1WnFqV1ZCMkRFaDF0c3ZpTUIwOTdJL1ZlVXhlNFI0bzd1S1lISDV6?= =?utf-8?B?bTErQnRid2dITXF6MWVBbk5GQmcvaXVreVdROHlwQzBFekltU0pVeEM1czRO?= =?utf-8?B?R1pEeWlTWDRNWjgveTJEWE9RbTM3YUlwMHJTSkFlbkNzSkdqeE9ueTBVUVBJ?= =?utf-8?B?YTA1bzNrY0hsMko5R1kyelgyVEgrd1ZLZlg2V3l6dit1cmpWL05uYVlUeTZM?= =?utf-8?B?eWFKZEVpaFVVaUxCL2UyVlJMSmpGcFNrMjFBMTdTdVA0OU5IWHRTSE1OZ1BG?= =?utf-8?B?SmxlOWhtWHRXTlU3anVSY09Cc0VLSWUvbS9kMitWdjNxbnV6REJ6RzVMcFpG?= =?utf-8?B?OFlOKzBlL0YzVlJIeUFnY2RTb0tQWE85enNvWUc2UVJjVlljTFRmSmptZDlx?= =?utf-8?B?TlNFUjRHcFB6cU44eUJ3dWFZbkZ0TUk2TEQxK2QrQjluSDlsNUhBKzlMWmND?= =?utf-8?B?L05iak5HeWxuTU1FUC8yTmpxWXFKaEswdGU3MjBWbFh1RFN2N1FuZ3VheFZ4?= =?utf-8?B?aHRQdldOa3JPVHNCeVJkUE50amd6UG96MmhSU3dNVk9lN1I5LzE5NExnekll?= =?utf-8?B?TS9aUFJkQVZhdENIOWc5Q1N5KzVGUzZQMlhUOUhFcTVHVWxsQURCTzd0WFJB?= =?utf-8?B?aFFjMC96K3M5WDhXU2dkdThHUGdMWi91Zm1tVDhvVFZKQllEUUVPSWRaeUkv?= =?utf-8?B?SFNrODZnUzNuQk9sQ1lYU3RsUVRUNEx6MlRFQVh6MVl0L0tlOVN1T2doOFc0?= =?utf-8?B?OERCdnZhVXhScmNzeGhyV2xlYWVXS3RneVBKSU1ZRGlnRXZwbHBaUHNiUnpw?= =?utf-8?B?a1BuRzZ2YTAreE13ZlRETi8xT0FyUFlXM3N4eHFnY0h4M3pkaVlzTDN5MHdk?= =?utf-8?B?TVphcTZhd2UzT1lPVFBlc3lJN2MzMlhOZDJWMC94WGJTc0o0YW5PSFVkZE9l?= =?utf-8?B?cFNQZ3JkQ1lIMktNY3BSbnRLeTJqZkxuK25sUXZCeXoxOTRpQU9TQzVZeFVa?= =?utf-8?Q?cYQ6dFKnFleQxtVSKDkhzrCML?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 434baf2d-71f8-4a8d-a9c8-08db8f8244c3 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jul 2023 15:49:46.8096 (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: kLrYwp4HKNw6mW3KFUoaQYOPHjj/zRoowuQJX3fj4nyk0xI7PHpbxAd8ZP3q800sGPHiNKrCYcYOBrpOydTHww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230728_084958_471209_E45DB8B9 X-CRM114-Status: GOOD ( 34.19 ) 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 T24gRnJpLCBKdWwgMjgsIDIwMjMgYXQgMDk6MDI6MzhQTSArMDUzMCwgTWFuaXZhbm5hbiBTYWRo YXNpdmFtIHdyb3RlOgo+IE9uIE1vbiwgSnVsIDI0LCAyMDIzIGF0IDA1OjU4OjI5UE0gLTA0MDAs IEZyYW5rIExpIHdyb3RlOgo+ID4gSW50cm9kdWNlZCBoZWxwZXIgZnVuY3Rpb24gZHdfcGNpZV9n ZXRfbHRzc20gdG8gcmV0cmlldmUgU01MSF9MVFNTX1NUQVRFLgo+ID4gQWRkZWQgQVBJIHBtZV90 dXJuX29mZiBhbmQgZXhpdF9mcm9tX2wyIGZvciBtYW5hZ2luZyBMMi9MMyBzdGF0ZSB0cmFuc2l0 aW9ucy4KPiA+IAo+ID4gVHlwaWNhbCBMMiBlbnRyeSB3b3JrZmxvdzoKPiA+IAo+ID4gMS4gVHJh bnNtaXQgUE1FIHR1cm4gb2ZmIHNpZ25hbCB0byBQQ0kgZGV2aWNlcyBhbmQgd2FpdCBmb3IgUE1F X1RvX0Fjay4KPiA+IDIuIEF3YWl0IGxpbmsgZW50ZXJpbmcgTDJfSURMRSBzdGF0ZS4KPiA+IDMu IFRyYW5zaXRpb24gUm9vdCBjb21wbGV4IHRvIEQzIHN0YXRlLgo+ID4gCj4gPiBUeXBpY2FsIEwy IGV4aXQgd29ya2Zsb3c6Cj4gPiAKPiA+IDEuIFRyYW5zaXRpb24gUm9vdCBjb21wbGV4IHRvIEQw IHN0YXRlLgo+ID4gMi4gSXNzdWUgZXhpdCBmcm9tIEwyIGNvbW1hbmQuCj4gPiAzLiBSZWluaXRp YWxpemUgUENJIGhvc3QuCj4gPiA0LiBXYWl0IGZvciBsaW5rIHRvIGJlY29tZSBhY3RpdmUuCj4g PiAKPiA+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIExpIDxGcmFuay5MaUBueHAuY29tPgo+ID4gLS0t Cj4gPiBDaGFuZ2UgZnJvbSB2NCB0byB2NToKPiA+IC0gQ2xvc2VzOiBodHRwczovL2xvcmUua2Vy bmVsLm9yZy9vZS1rYnVpbGQtYWxsLzIwMjMwNzIxMTkwNC56RXh3NFE4SC1sa3BAaW50ZWwuY29t Lwo+ID4gQ2hhbmdlIGZyb20gdjMgdG8gdjQ6Cj4gPiAtIGNoYW5nZSBhY2NvcmRpbmcgdG8gTWFu aXZhbm5hbidzIGNvbW1lbnRzLgo+ID4gICBJIGhvcGUgSSBoYXZlIG5vdCBtaXNzZWQgYW55dGhp bmcuIHF1aXRlIGxvbmcgZGlzY3VzcyB0aHJlYWQKPiA+IENoYW5nZSBmcm9tIHYyIHRvIHYzOgo+ ID4gLSBCYXNpYyByZXdyaXRlIHdob2xlIHBhdGNoIGFjY29yZGluZyByb2IgaGVycnkgc3VnZ2Vz dGlvbi4KPiA+ICAgcHV0IGNvbW1vbiBmdW5jdGlvbiBpbnRvIGR3Yywgc28gbW9yZSBzb2MgY2Fu IHNoYXJlIHRoZSBzYW1lIGxvZ2ljLgo+ID4gCj4gPiAgLi4uL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2llLWRlc2lnbndhcmUtaG9zdC5jIHwgOTUgKysrKysrKysrKysrKysrKysrKwo+ID4gIGRyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oICB8IDI4ICsrKysrKwo+ID4g IDIgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMgYi9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jCj4gPiBpbmRleCA5 OTUyMDU3Yzg4MTkuLjAzMWUxZjljMGQwYyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMKPiA+ICsrKyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMKPiA+IEBAIC04LDYgKzgsNyBA QAo+ID4gICAqIEF1dGhvcjogSmluZ29vIEhhbiA8amcxLmhhbkBzYW1zdW5nLmNvbT4KPiA+ICAg Ki8KPiA+ICAKPiA+ICsjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+Cj4gPiAgI2luY2x1ZGUgPGxp bnV4L2lycWNoaXAvY2hhaW5lZF9pcnEuaD4KPiA+ICAjaW5jbHVkZSA8bGludXgvaXJxZG9tYWlu Lmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L21zaS5oPgo+ID4gQEAgLTgwNywzICs4MDgsOTcgQEAg aW50IGR3X3BjaWVfc2V0dXBfcmMoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ID4gIAlyZXR1cm4g MDsKPiA+ICB9Cj4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHdfcGNpZV9zZXR1cF9yYyk7Cj4gPiAr Cj4gPiArLyoKPiA+ICsgKiBUaGlzIHJlc2VtYmxlIHRoZSBwY2lfc2V0X3Bvd2VyX3N0YXRlKCkg aW50ZXJmYWNlcywgYnV0IHRoZXNlIGFyZSBmb3IKPiAKPiBzL2ludGVyZmFjZXMvQVBJCj4gcy90 aGVzZSBhcmUvdGhpcyBpcwo+IAo+ID4gKyAqIGNvbmZpZ3VyaW5nIGhvc3QgY29udHJvbGxlcnMs IHdoaWNoIGFyZSBicmlkZ2VzICp0byogUENJIGRldmljZXMgYnV0Cj4gPiArICogYXJlIG5vdCBQ Q0kgZGV2aWNlcyB0aGVtc2VsdmVzLgo+ID4gKyAqLwo+ID4gK3N0YXRpYyB2b2lkIGR3X3BjaWVf c2V0X2RzdGF0ZShzdHJ1Y3QgZHdfcGNpZSAqcGNpLCBwY2lfcG93ZXJfdCBkc3RhdGUpCj4gPiAr ewo+ID4gKwl1OCBvZmZzZXQgPSBkd19wY2llX2ZpbmRfY2FwYWJpbGl0eShwY2ksIFBDSV9DQVBf SURfUE0pOwo+ID4gKwl1MTYgdmFsOwo+ID4gKwo+ID4gKwl2YWwgPSBkd19wY2llX3JlYWR3X2Ri aShwY2ksIG9mZnNldCArIFBDSV9QTV9DVFJMKTsKPiA+ICsJdmFsICY9IH5QQ0lfUE1fQ1RSTF9T VEFURV9NQVNLOwo+ID4gKwl2YWwgfD0gKCh1MTYgX19mb3JjZSlkc3RhdGUpICYgUENJX1BNX0NU UkxfU1RBVEVfTUFTSzsKPiAKPiBXaHkgY2FuJ3QganVzdCwKPiAKPiB2YWwgfD0gZHN0YXRlOwoK Zml4ZWQgYSBidWlsZCB3YXJuaW5nLgoKQ2xvc2VzOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9v ZS1rYnVpbGQtYWxsLzIwMjMwNzIxMTkwNC56RXh3NFE4SC1sa3BAaW50ZWwuY29tLwoKPiAKPiA+ ICsJZHdfcGNpZV93cml0ZXdfZGJpKHBjaSwgb2Zmc2V0ICsgUENJX1BNX0NUUkwsIHZhbCk7Cj4g PiArfQo+ID4gKwo+ID4gK2ludCBkd19wY2llX3N1c3BlbmRfbm9pcnEoc3RydWN0IGR3X3BjaWUg KnBjaSkKPiA+ICt7Cj4gPiArCXU4IG9mZnNldDsKPiA+ICsJdTMyIHZhbDsKPiA+ICsJaW50IHJl dDsKPiA+ICsKPiA+ICsJb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkocGNpLCBQQ0lf Q0FQX0lEX0VYUCk7Cj4gCj4gSnVzdCBhc3NpZ24gdGhpcyBkdXJpbmcgdmFyaWFibGUgZGVmaW5p dGlvbiBpdHNlbGYuLgoKRG8geW91IG1lYW5zPwoJdTggb2Zmc2V0ID0gZHdfcGNpZV9maW5kX2Nh cGFiaWxpdHkocGNpLCBQQ0lfQ0FQX0lEX0VYUCk7Cj4gCj4gPiArCS8qCj4gPiArCSAqIElmIEwx LjFcTDEuMiBlbmFibGUsIGRldmljZXMgKHN1Y2ggYXMgTlZNRSkgd2FudCBzaG9ydAo+ID4gKwkg KiByZXN1bWUgbGF0ZW5jeSwgY29udHJvbGxlciB3aWxsIG5vdCBlbnRlciBMMgo+IAo+ICJJZiBM MVNTIGlzIHN1cHBvcnRlZCwgdGhlbiBkbyBub3QgcHV0IHRoZSBsaW5rIGludG8gTDIgYXMgc29t ZSBkZXZpY2VzIHN1Y2ggYXMKPiBOVk1lIGV4cGVjdCBsb3cgcmVzdW1lIGxhdGVuY3kuIgo+IAo+ ID4gKwkgKi8KPiA+ICsJaWYgKGR3X3BjaWVfcmVhZHdfZGJpKHBjaSwgb2Zmc2V0ICsgUENJX0VY UF9MTktDVEwpICYgUENJX0VYUF9MTktDVExfQVNQTV9MMSkKPiA+ICsJCXJldHVybiAwOwo+ID4g Kwo+ID4gKwlpZiAoZHdfcGNpZV9nZXRfbHRzc20ocGNpKSA8PSBEV19QQ0lFX0xUU1NNX0RFVEVD VF9BQ1QpCj4gPiArCQlyZXR1cm4gMDsKPiA+ICsKPiA+ICsJaWYgKCFwY2ktPnBwLm9wcy0+cG1l X3R1cm5fb2ZmKQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gCj4gQ2FuIHlvdSBqdXN0IHJldHVy biAwIGluc3RlYWQgb2YgZmFpbGluZz8gQXMgcGVyIG15IGNvbW1lbnQgYmVsb3csIGlmIHlvdSBt b3ZlCj4gdGhlIEQtc3RhdGUgY2hhbmdlIGJlZm9yZSB0aGlzIGNhbGxiYWNrLCB0aGVuIHRoaXMg d29uJ3QgYmUgYSBoYXJkIHJlcXVpcmVtZW50Lgo+IAo+ID4gKwo+ID4gKwlwY2ktPnBwLm9wcy0+ cG1lX3R1cm5fb2ZmKCZwY2ktPnBwKTsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogUENJIEV4cHJl c3MgQmFzZSBTcGVjaWZpY2F0aW9uIFJldiA0LjAKPiA+ICsJICogNS4zLjMuMi4xIFBNRSBTeW5j aHJvbml6YXRpb24KPiA+ICsJICogUmVjb21tYW5kIDFtcyB0byAxMG1zIHRpbWVvdXQgdG8gY2hl Y2sgTDIgcmVhZHkKPiAKPiAiUmVjb21tZW5kcyIKPiAKPiBQbGVhc2UgdXNlIGZ1bGwgODAgY29s dW1ucyBmb3IgY29tbWVudHMuCj4gCj4gPiArCSAqLwo+ID4gKwlyZXQgPSByZWFkX3BvbGxfdGlt ZW91dChkd19wY2llX2dldF9sdHNzbSwgdmFsLCB2YWwgPT0gRFdfUENJRV9MVFNTTV9MMl9JRExF LAo+ID4gKwkJCQkxMDAsIDEwMDAwLCBmYWxzZSwgcGNpKTsKPiA+ICsJaWYgKHJldCkgewo+ID4g KwkJZGV2X2VycihwY2ktPmRldiwgIlBDSWUgbGluayBlbnRlciBMMiB0aW1lb3V0ISBsdHNzbSA9 IDB4JXhcbiIsIHZhbCk7Cj4gCj4gIlRpbWVvdXQgd2FpdGluZyBmb3IgTDIgZW50cnkhIExUU1NN OiAweCV4XG4iCj4gCj4gPiArCQlyZXR1cm4gcmV0Owo+ID4gKwl9Cj4gPiArCj4gPiArCWR3X3Bj aWVfc2V0X2RzdGF0ZShwY2ksIFBDSV9EM2hvdCk7Cj4gCj4gVGhpcyBzaG91bGQgYmUgZG9uZSBi ZWZvcmUgaW5pdGlhdGluZyBMMiBlbnRyeSBhcyBwZXIKPiBQQ0lfRXhwcmVzc19CYXNlX1NwZWNp ZmljYXRpb24gMy4wLCBzZWN0aW9uIDUuMi4KClRoaXMgaXMgZm9yIHJvb3QgY29tcGxleCBicmlk Z2UsIGFmdGVyIFBDSSBkZXZpY2UgYW5kIGxpbmsgdG8gTDIsClBDSSBIb3N0IGNhbiBiZSBlbnRl ciBsb3dlciBwb3dlciBzdGF0ZSwgSSB0aGluayBpdCBpcyBqdXN0CmJvcnJvdyAnRDMgc3RhdGUn IGZyb20gUENJLgoKPiAKPiA+ICsKPiA+ICsJcGNpLT5zdXNwZW5kZWQgPSB0cnVlOwo+ID4gKwo+ ID4gKwlyZXR1cm4gcmV0Owo+ID4gK30KPiA+ICtFWFBPUlRfU1lNQk9MX0dQTChkd19wY2llX3N1 c3BlbmRfbm9pcnEpOwo+ID4gKwo+ID4gK2ludCBkd19wY2llX3Jlc3VtZV9ub2lycShzdHJ1Y3Qg ZHdfcGNpZSAqcGNpKQo+ID4gK3sKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJaWYgKCFwY2kt PnN1c3BlbmRlZCkKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4gKwlwY2ktPnN1c3BlbmRlZCA9 IGZhbHNlOwo+ID4gKwo+ID4gKwlkd19wY2llX3NldF9kc3RhdGUocGNpLCBQQ0lfRDApOwo+ID4g Kwo+ID4gKwlpZiAoIXBjaS0+cHAub3BzLT5leGl0X2Zyb21fbDIpCj4gPiArCQlyZXR1cm4gLUVJ TlZBTDsKPiAKPiBTYW1lIGNvbW1lbnQgYXMgYWJvdmUuCj4gCj4gPiArCj4gPiArCXBjaS0+cHAu b3BzLT5leGl0X2Zyb21fbDIoJnBjaS0+cHApOwo+ID4gKwo+ID4gKwlyZXQgPSBwY2ktPnBwLm9w cy0+aG9zdF9pbml0KCZwY2ktPnBwKTsKPiAKPiBJIGRvbid0IHNlZSBtYXRjaGluZyBob3N0X2Rl aW5pdCgpIGluIHN1c3BlbmQuCj4gCj4gLSBNYW5pCj4gCj4gPiArCWlmIChyZXQpIHsKPiA+ICsJ CWRldl9lcnIocGNpLT5kZXYsICJIb3N0IGluaXQgZmFpbGVkISByZXQgPSAweCV4XG4iLCByZXQp Owo+ID4gKwkJcmV0dXJuIHJldDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlkd19wY2llX3NldHVwX3Jj KCZwY2ktPnBwKTsKPiA+ICsKPiA+ICsJcmV0ID0gZHdfcGNpZV9zdGFydF9saW5rKHBjaSk7Cj4g PiArCWlmIChyZXQpCj4gPiArCQlyZXR1cm4gcmV0Owo+ID4gKwo+ID4gKwlyZXQgPSBkd19wY2ll X3dhaXRfZm9yX2xpbmsocGNpKTsKPiA+ICsJaWYgKHJldCkKPiA+ICsJCXJldHVybiByZXQ7Cj4g PiArCj4gPiArCXJldHVybiByZXQ7Cj4gPiArfQo+ID4gK0VYUE9SVF9TWU1CT0xfR1BMKGR3X3Bj aWVfcmVzdW1lX25vaXJxKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWRlc2lnbndhcmUuaCBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUt ZGVzaWdud2FyZS5oCj4gPiBpbmRleCA3OTcxM2NlMDc1Y2MuLmVmZmIwN2E1MDZlNCAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oCj4g PiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuaAo+ID4g QEAgLTI4OCwxMCArMjg4LDIxIEBAIGVudW0gZHdfcGNpZV9jb3JlX3JzdCB7Cj4gPiAgCURXX1BD SUVfTlVNX0NPUkVfUlNUUwo+ID4gIH07Cj4gPiAgCj4gPiArZW51bSBkd19wY2llX2x0c3NtIHsK PiA+ICsJRFdfUENJRV9MVFNTTV9VTktOT1dOID0gMHhGRkZGRkZGRiwKPiA+ICsJLyogTmVlZCBh bGlnbiBQQ0lFX1BPUlRfREVCVUcwIGJpdDA6NSAqLwo+IAo+ICJOZWVkIHRvIGFsaWduIHdpdGgg UENJRV9QT1JUX0RFQlVHMCBiaXRzIDA6NSIuCj4gCj4gLSBNYW5pCj4gCj4gPiArCURXX1BDSUVf TFRTU01fREVURUNUX1FVSUVUID0gMHgwLAo+ID4gKwlEV19QQ0lFX0xUU1NNX0RFVEVDVF9BQ1Qg PSAweDEsCj4gPiArCURXX1BDSUVfTFRTU01fTDAgPSAweDExLAo+ID4gKwlEV19QQ0lFX0xUU1NN X0wyX0lETEUgPSAweDE1LAo+ID4gK307Cj4gPiArCj4gPiAgc3RydWN0IGR3X3BjaWVfaG9zdF9v cHMgewo+ID4gIAlpbnQgKCpob3N0X2luaXQpKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gPiAg CXZvaWQgKCpob3N0X2RlaW5pdCkoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiA+ICAJaW50ICgq bXNpX2hvc3RfaW5pdCkoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiA+ICsJdm9pZCAoKnBtZV90 dXJuX29mZikoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiA+ICsJdm9pZCAoKmV4aXRfZnJvbV9s Mikoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVjdCBkd19w Y2llX3JwIHsKPiA+IEBAIC0zNjQsNiArMzc1LDcgQEAgc3RydWN0IGR3X3BjaWVfb3BzIHsKPiA+ ICAJdm9pZCAgICAoKndyaXRlX2RiaTIpKHN0cnVjdCBkd19wY2llICpwY2llLCB2b2lkIF9faW9t ZW0gKmJhc2UsIHUzMiByZWcsCj4gPiAgCQkJICAgICAgc2l6ZV90IHNpemUsIHUzMiB2YWwpOwo+ ID4gIAlpbnQJKCpsaW5rX3VwKShzdHJ1Y3QgZHdfcGNpZSAqcGNpZSk7Cj4gPiArCWVudW0gZHdf cGNpZV9sdHNzbSAoKmdldF9sdHNzbSkoc3RydWN0IGR3X3BjaWUgKnBjaWUpOwo+ID4gIAlpbnQJ KCpzdGFydF9saW5rKShzdHJ1Y3QgZHdfcGNpZSAqcGNpZSk7Cj4gPiAgCXZvaWQJKCpzdG9wX2xp bmspKHN0cnVjdCBkd19wY2llICpwY2llKTsKPiA+ICB9Owo+ID4gQEAgLTM5Myw2ICs0MDUsNyBA QCBzdHJ1Y3QgZHdfcGNpZSB7Cj4gPiAgCXN0cnVjdCByZXNldF9jb250cm9sX2J1bGtfZGF0YQlh cHBfcnN0c1tEV19QQ0lFX05VTV9BUFBfUlNUU107Cj4gPiAgCXN0cnVjdCByZXNldF9jb250cm9s X2J1bGtfZGF0YQljb3JlX3JzdHNbRFdfUENJRV9OVU1fQ09SRV9SU1RTXTsKPiA+ICAJc3RydWN0 IGdwaW9fZGVzYwkJKnBlX3JzdDsKPiA+ICsJYm9vbAkJCXN1c3BlbmRlZDsKPiA+ICB9Owo+ID4g IAo+ID4gICNkZWZpbmUgdG9fZHdfcGNpZV9mcm9tX3BwKHBvcnQpIGNvbnRhaW5lcl9vZigocG9y dCksIHN0cnVjdCBkd19wY2llLCBwcCkKPiA+IEBAIC00MzAsNiArNDQzLDkgQEAgdm9pZCBkd19w Y2llX2lhdHVfZGV0ZWN0KHN0cnVjdCBkd19wY2llICpwY2kpOwo+ID4gIGludCBkd19wY2llX2Vk bWFfZGV0ZWN0KHN0cnVjdCBkd19wY2llICpwY2kpOwo+ID4gIHZvaWQgZHdfcGNpZV9lZG1hX3Jl bW92ZShzdHJ1Y3QgZHdfcGNpZSAqcGNpKTsKPiA+ICAKPiA+ICtpbnQgZHdfcGNpZV9zdXNwZW5k X25vaXJxKHN0cnVjdCBkd19wY2llICpwY2kpOwo+ID4gK2ludCBkd19wY2llX3Jlc3VtZV9ub2ly cShzdHJ1Y3QgZHdfcGNpZSAqcGNpKTsKPiA+ICsKPiA+ICBzdGF0aWMgaW5saW5lIHZvaWQgZHdf cGNpZV93cml0ZWxfZGJpKHN0cnVjdCBkd19wY2llICpwY2ksIHUzMiByZWcsIHUzMiB2YWwpCj4g PiAgewo+ID4gIAlkd19wY2llX3dyaXRlX2RiaShwY2ksIHJlZywgMHg0LCB2YWwpOwo+ID4gQEAg LTUwMSw2ICs1MTcsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGR3X3BjaWVfc3RvcF9saW5rKHN0 cnVjdCBkd19wY2llICpwY2kpCj4gPiAgCQlwY2ktPm9wcy0+c3RvcF9saW5rKHBjaSk7Cj4gPiAg fQo+ID4gIAo+ID4gK3N0YXRpYyBpbmxpbmUgZW51bSBkd19wY2llX2x0c3NtIGR3X3BjaWVfZ2V0 X2x0c3NtKHN0cnVjdCBkd19wY2llICpwY2kpCj4gPiArewo+ID4gKwl1MzIgdmFsOwo+ID4gKwo+ ID4gKwlpZiAocGNpLT5vcHMgJiYgcGNpLT5vcHMtPmdldF9sdHNzbSkKPiA+ICsJCXJldHVybiBw Y2ktPm9wcy0+Z2V0X2x0c3NtKHBjaSk7Cj4gPiArCj4gPiArCXZhbCA9IGR3X3BjaWVfcmVhZGxf ZGJpKHBjaSwgUENJRV9QT1JUX0RFQlVHMCk7Cj4gPiArCj4gPiArCXJldHVybiAoZW51bSBkd19w Y2llX2x0c3NtKUZJRUxEX0dFVChQT1JUX0xPR0lDX0xUU1NNX1NUQVRFX01BU0ssIHZhbCk7Cj4g PiArfQo+ID4gKwo+ID4gICNpZmRlZiBDT05GSUdfUENJRV9EV19IT1NUCj4gPiAgaXJxcmV0dXJu X3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiA+ICBpbnQgZHdf cGNpZV9zZXR1cF9yYyhzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ID4gLS0gCj4gPiAyLjM0LjEK PiA+IAo+IAo+IC0tIAo+IOCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprg rr/grrXgrq7gr40KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK