Received: by 2002:a05:6358:16cd:b0:dc:6189:e246 with SMTP id r13csp3862rwl; Thu, 3 Nov 2022 18:46:35 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5hE220b8ANjOZHoguxC2pt8RDHfTJzAFnR7H4IKwLZkya7/eo4bA9tIy5ODlq6YyX8bWbi X-Received: by 2002:a17:906:6a26:b0:7ad:975c:9785 with SMTP id qw38-20020a1709066a2600b007ad975c9785mr34451842ejc.25.1667526394829; Thu, 03 Nov 2022 18:46:34 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1667526394; cv=pass; d=google.com; s=arc-20160816; b=Fqd3RZAVMQQLO+5IbwCEdLWWhjzKFlx/um6hgt4FtTEwaPf1QRV+jIJWuSyLxERZdd z0ebm/z6UmJlg7qGmgQZcj/yydphqZFizHgZ1eF5VFQtabVI897dI+0Eo94ouKnXi9ro j3kLMu8oxLTmxQlWIBFVROFa0T3B7Cuuft/1JLiNZMKnNJPDkSKXvc38JlGdswU/B7TQ LAmVMmPJ4bK442zFzhLRvWPd+bjv0oIugCx/G4SXk6R5qdaQmvrBkF3hVwQ+1Vn9GI3E zjAINrUUWE6aDXU5NjLBHNmwz2E68VT0j1ZP3ezfeZLw2KvOSJHQNNncNGDoNA9pVpuq FVJg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=xhyQtvwLrRLjO8uDWyBP+YY2Bvr5SKTiIOZxZrg59NQ=; b=R80uxTExViyRdUHza1hisYkcGErafAYjGfSBE5TgW4bI81GQL3hCRLqm7dEvtQE8G1 ghAf9WPwXs10j+WjnArNCXA6n1qCUy/KoBB9dqpC6fkN3myZfLnDDNLMextEaZl7PpND hZiRAyjBTC8ihilNTMZFQiA8gCuXnDJ9YROywA30hh19H5cwP4JSIMehwffrH7vNju2Y +HyA0CWfIjL4E7GniyhRaU138LRsbBrsN3FrfdHMDd08mOJV01gQ6zqtAHJ4CTocG/45 f+X4OR9AQy9POfz4FdUUQJ2dF1iYpMlvySXQBpl2O5ZM0CDnucf/wk8OlwfCIIF00i0j 23gw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=IIzl6Flu; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sh6-20020a1709076e8600b00773dd14c80asi2959015ejc.860.2022.11.03.18.45.40; Thu, 03 Nov 2022 18:46:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=IIzl6Flu; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230045AbiKDBWR (ORCPT + 97 others); Thu, 3 Nov 2022 21:22:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229461AbiKDBWQ (ORCPT ); Thu, 3 Nov 2022 21:22:16 -0400 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70085.outbound.protection.outlook.com [40.107.7.85]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 025F0958B; Thu, 3 Nov 2022 18:22:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=offUB9bIrbDGC4C/Q+4HyNdDz3Or+EvLWgBMyiE/d/qt3vDfqjA3C5qfq81/zX62JFWr+4VExEFykr2uF9fZr0+K9oND36IK8vH9XxIfTXOc515akkmRXZEPwKKmbIjfG0+9t5bWndCFrg+wTHGDq6eoDuNjGMP6rKRWCYIaLxb7j1v9bf5p4dC/kv04W9shLV0RAN9uUWZVBVamKHQUNikSiUgifMH8XsNJTNpDRkfvmMLvA5yEs0jsrBY7eaP3BqNjw/Uvx/mtcyIcrbIjNmF6pDHAVBJoYhOmIazEu3KJ2fKozRucHUY0ZkiFJ+6i79sx5eHOjvOlN2L4DQvvuw== 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=xhyQtvwLrRLjO8uDWyBP+YY2Bvr5SKTiIOZxZrg59NQ=; b=oPAJXi6Zx5vW30GwDXkqNsPxDlczBC5SZkVGvyN7FpcUFW+9P2YIGpbhE0I4m3eDHH0LtiWGPxRuQ8fApzTAkdlUNnLXQQyf4TfMa2a3ZhaJU9spCN08RjkJpc0XPcU25JNo+XMo41ZXXzY/pCn6ulCcaCl8DyE4FMLRD+hKs6bsluoritRE25ocUe8ITnD4ro1Sg3UyipVzY/c8XQeqnEypYPWKHmHZN29xXCgxwpUzlZSGW0OUYBme17xZkJ4qL5neOwO5WAqppgLMsNR/nyq/155v9qJOku78Fi3B0O9/kDoyggMgDyk2R8IY3BSekGf53qQqqeZSVyFaArdOQA== 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=xhyQtvwLrRLjO8uDWyBP+YY2Bvr5SKTiIOZxZrg59NQ=; b=IIzl6FluGyz3FlPFsuIUJmIqpYyDHlU5ut3XoQPdixRlfygHZiIxBmiMCjclyNPzxzfqYxyi0v4b0YolJ4OMJJlvNmqbE7C0C4nFsHn3aHSODi1F9xF3vWJ2ETzMx9Q2Gcv9x1UuwWnVnS0Nrnab44QakNPxTLwq8Df0RZJpPlg= Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by PR3PR04MB7257.eurprd04.prod.outlook.com (2603:10a6:102:93::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.22; Fri, 4 Nov 2022 01:22:11 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::f135:ec2c:8528:d866]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::f135:ec2c:8528:d866%9]) with mapi id 15.20.5769.021; Fri, 4 Nov 2022 01:22:11 +0000 From: Hongxing Zhu To: Ahmad Fatoum , "l.stach@pengutronix.de" , "bhelgaas@google.com" , "lorenzo.pieralisi@arm.com" CC: "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , dl-linux-imx , "kernel@pengutronix.de" , "linux-arm-kernel@lists.infradead.org" Subject: RE: [PATCH v1] PCI: imx6: Keep the GPIO regulator always on Thread-Topic: [PATCH v1] PCI: imx6: Keep the GPIO regulator always on Thread-Index: AQHY702b+QfiU75Jy0iV08bNcaBQXq4sxpYAgAALjtCAAC2tAIAA9w0A Date: Fri, 4 Nov 2022 01:22:11 +0000 Message-ID: References: <1667455698-14578-1-git-send-email-hongxing.zhu@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS8PR04MB8676:EE_|PR3PR04MB7257:EE_ x-ms-office365-filtering-correlation-id: 54c268a6-dbe9-4e6c-3d1d-08dabe02ff91 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vl9JV8mntiHBWiOKAkAVXkXHTzuaME9jgiCr6EaWzQguFfsJa1lQciws7M1E8OTTB+PLIGmSKiHLgTlO5CS2GUnkJo+1VpPcccIWZHmvzk5es79zQR/m9SryM9O3jCPQQ/tk09c3502+v9/CyVNAlVppwJf1KGkAc2hbU0LjXr0ZQ5Kmtbw2BfefGic01XxJkjAydBSry7A2731kPNK5psvyeATy6Vj+2jZgLZhYGTTfX6blLnmve+VFtRBYD7EhFtQRVoaM2ncG38xahXMlZCiuMzertbpx0q8YjTol52dNWvN9OsoJd7eNLiNPABbTUE5+E2YaYT/ItKhPK65JOFedNExGgUHPAMikZ85T6IRfb80HtH8a4PKTNdNHF8578KEr53ZnSeRz1YvWLFhPTMLZLdzBNvnpNX/GPTBeiURPN/KIPkFbnlgG2y9py8xjZJu5XqAPXpPOLffBzvs6hrGDgmDWKNQwxRW6rgvxtG1qfwRnhG0PCGfWEbhyTeYsDsJI1kSphaalGtcvwTb/DZ1zUL0r+UAmPVqEiJqnPoT5gO5QCGDiwdpQVTTPfG8UMMqSgUU6+g7ldSxj1jYqVaLBz1Nrxv41VlRVkVHM9MPJZ/Xd22XndNYzLsH8rbo+KJhVZ+HF7gm4W+71yOgDb9mTh2hrxHwDuI5YZUS5adZ90scRlZXRj67KO6ZPcOA/F9WkEr2x+OEYrzmtUyFztec+iOcqG+j3S6+v8YWiVTz7/0p2JaxpmJ/2/7n1Bd5C1Uh3HGsKo3ySb4i8UocIhvomeb2hrEl8Gad6gbWKb1k= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(136003)(366004)(346002)(376002)(396003)(451199015)(966005)(45080400002)(8676002)(478600001)(76116006)(2906002)(64756008)(71200400001)(66556008)(66476007)(4326008)(66946007)(66446008)(52536014)(86362001)(5660300002)(33656002)(8936002)(122000001)(38100700002)(41300700001)(110136005)(55016003)(54906003)(316002)(44832011)(38070700005)(83380400001)(186003)(6506007)(7696005)(9686003)(26005)(53546011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?K3drdVNQNU9TZGFMRXA1SkplRmN6aEQ4dVk0c0NCUis4ajJkVHV1SFE4NVhr?= =?gb2312?B?anZSVUVmNWVTV0NOMUlGZXhocnY4Z0hMeHp5Z2pDZTlLYnhkdUFTNnhsVzht?= =?gb2312?B?NzNtMmJEelNmYWRhU1hENnB5bk4wdUZZTnYrMDdPaTVxcitHaXIvRGNaRTI2?= =?gb2312?B?ZzMxbDk4KzN4ZnNPSU55dmIvc2hOMHBKaVdmTDhNZ2YyeDkyNjZyQVhiaE9W?= =?gb2312?B?Y29VbkJOQjVwS3VKbi9la004VWxSRDcrRmJZb3UrMWxCUmZhWkVQbHk3amRj?= =?gb2312?B?aUxlYWJ2YjZNR0h5cVpsdHNnTTFnUVUyTkovSm9FWFNoWWxMTXdiSVRLRUFV?= =?gb2312?B?V1hzZ2VKY3JLZXNndXZUSVZ6VVBIbkp3QUpieGdtZEY1MnJ5V0hPZE5kQ1Yv?= =?gb2312?B?Ym1za252OG82c1JJRTkxS2xDZ0ZwM1N0dUppbzN4ODRMZTFVV1hIcS9ML3Z5?= =?gb2312?B?NWdydDhZVnVPZ2QvL2U2ZXRZU1g1MFZ0RUt3M0Rta3BIK0ZIeXNYbEVGRmVX?= =?gb2312?B?ZlBtUWpCT3kvWEVuYUZMZ2p5Wk16Z29kVUw1dVl3RnpaVTkzbWxPbGNLY0U2?= =?gb2312?B?NTlsUFcybU9hRzVoT2NjaDN5RGEwUnptRnh0cDZlRmFDaG5Gamt5RzE3UGhy?= =?gb2312?B?YU1qczFmU01lb3owdVk1c1NhcnBqZVp4QkFUMVBIdFJkMFNTSGF1cmpIaUhY?= =?gb2312?B?ZnE1eXNCam9ZbjFmVDNlZ1dxTXJTa0k2ZXpydStNUFIrbksvc0FHc3VocU00?= =?gb2312?B?VGlvOWNYcWdXc0tiZklvSTFZaFU2Y0ViVng1VENkdE5uaXFpYnF5aU9xcWpj?= =?gb2312?B?TXhhcTlEZjl0bXNJeTNJaFRsc0dNM0ZUSXhibDZ6Q1VRb29sSlE4UWZMVjFK?= =?gb2312?B?LzQ4aHRCT1NiMnU1YVRXK1FwZGVoU2NuY0ZvMjA4VGhrMzF1V0dIK1NMSDlv?= =?gb2312?B?QTFMNks0UmRtbzdaQ0VGVFhKOXFLNVgxRUtzQ2ZaZklWaFJYS2F3ZlhudzQ0?= =?gb2312?B?cEtoN0xYaUlUcXAxZGErUTJZZk8vcEE2YTdxVnRJaVpFQmlvZTVpcmQzMDJz?= =?gb2312?B?OHgzcWtVVFZxbS9oMDNBOTJlSE4xU0pLcWp5ZDA5eE9OTmFsaWVFRlc0WG9m?= =?gb2312?B?VnVOMHJ0UVBrS3h1K25OZlVSUGI2M1lJZHZ4cHMvRTZLNDd0SHVtSUxCS05Z?= =?gb2312?B?bHdiRmhRMDdxYTduOXhjallmVUZsek9yZnlmWGRqV0kzZzZVNGluQXMwZmlP?= =?gb2312?B?OTNDWXovY0ZDekhZTEdFVVd4WlZmYmw5cGhwSGtiKy9SY3hVdWRIZHo5eDdx?= =?gb2312?B?dXVhbWdSTkY2S0prakE1OEtMWTNzdEpCTGpPNUs2VVBZUjYzZ2pOUko1UnF2?= =?gb2312?B?QlovZ3gxU2Z4Tlc5K3gxVCt3a3BwdENjMUZOOGpNR3NJclNzR3RQQWRpdHZV?= =?gb2312?B?emduR0dYcVpjSWJvWG5nQUtmNDVOS1JYMVhHWUcrQUtGVVJwcVFucFJvVStZ?= =?gb2312?B?b3phMjc3Qk9TcXdWbDNXckZFZkExM0pOQmU1cjFpNlBEbFFoVjNVNGdjbVh3?= =?gb2312?B?VXhudmZTL1RSa2F1VHpxblNMVDhCMS8yWkVsbGZXMmMzVVNJT0tJM0tOUkZL?= =?gb2312?B?enJOMWR5VkhkU1BKdzdqZVVJNXo5MnN6eWd0SW5oaTBxZkZQS0k2Mm9GNW5B?= =?gb2312?B?VGo0dVdFbElSbWtRcFdXVUNPRUtDeFU3N3Z5Z0k2MkwyTU92bDVkY3l5bTBn?= =?gb2312?B?ajNCS3FkR1B2R2VaTlpoSFVmNkRWeTJZTkx1THh2d2wxcG9hL3RVMHd0M1p4?= =?gb2312?B?aStUNXE5dzFDRUlhajV5Ry9pb0w5Z3NTK3QxL2tmMUVyczdlYjdLK2txOUg5?= =?gb2312?B?Z2tYa3AyWmMxOHg3Qyt6WGE2NDlkbWg4RG9zOHg5S1RKM1JiTGVqVGs2cUNV?= =?gb2312?B?Nnk1S1orREkwekpxczcxYUtZdW44Q050aGVHTjBmZXlXZzdMYlFBVk15MWFE?= =?gb2312?B?c09oM2xTZEwrQzNINFhQS2NPV1d4YUl1dGlhUHlYMTJSbHlGMEhPcVJhTHBF?= =?gb2312?B?ek90K1k4Z01GdlVSdEE3WGtiUVcvRXhaRlh2eEZPeEhjOG14Q1c0TGhYbVdq?= =?gb2312?Q?pqGBYKzoJjMzojXJBrURMa++Y?= Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54c268a6-dbe9-4e6c-3d1d-08dabe02ff91 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2022 01:22:11.2954 (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: 3Kq4dLgTPabvpjg6XuyC8WQgqdNvTrkVqe7dewghM/MeMD0zFYT/Q+1r88jISg0sH1q2u1j15POsamz6AbnunQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7257 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBaG1hZCBGYXRvdW0gPGEuZmF0 b3VtQHBlbmd1dHJvbml4LmRlPg0KPiBTZW50OiAyMDIyxOoxMdTCM8jVIDE4OjMwDQo+IFRvOiBI b25neGluZyBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPjsgbC5zdGFjaEBwZW5ndXRyb25peC5k ZTsNCj4gYmhlbGdhYXNAZ29vZ2xlLmNvbTsgbG9yZW56by5waWVyYWxpc2lAYXJtLmNvbQ0KPiBD YzogbGludXgtcGNpQHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9y ZzsgZGwtbGludXgtaW14DQo+IDxsaW51eC1pbXhAbnhwLmNvbT47IGtlcm5lbEBwZW5ndXRyb25p eC5kZTsNCj4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnDQo+IFN1YmplY3Q6 IFJlOiBbUEFUQ0ggdjFdIFBDSTogaW14NjogS2VlcCB0aGUgR1BJTyByZWd1bGF0b3IgYWx3YXlz IG9uDQo+IA0KPiBIZWxsbyBSaWNoYXJkLA0KPiANCj4gT24gMDMuMTEuMjIgMDk6MDUsIEhvbmd4 aW5nIFpodSB3cm90ZToNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogQWhtYWQgRmF0b3VtIDxhLmZhdG91bUBwZW5ndXRyb25peC5kZT4gT24gMDMuMTEuMjIgMDc6 MDgsDQo+ID4+IFJpY2hhcmQgWmh1IHdyb3RlOg0KPiA+Pj4gU29tZSBXSUZJIG1vZHVsZXMgbG9h ZCB0aGVpciBmaXJtd2FyZSBvbmNlIGluIHByb2JlLCBhbmQgY2FuJ3QgYmUNCj4gPj4+IHBvd2Vy ZWQgb2ZmIGR1cmluZyBzdXNwZW5kLiBPdGhlcndpc2UsIHRoZXNlIFdJRkkgbW9kdWxlcyB3b3Vs ZG4ndA0KPiA+Pj4gYmUgZnVuY3Rpb25hbCBhbnltb3JlIGFmdGVyIHJlc3VtZSBiYWNrLg0KPiA+ Pg0KPiA+PiBUaGUgYnJjbWZtYWMgT1RPSCwgcmVwcm9iZXMgd2hlbiByZXN1bWluZyBmcm9tIHN1 c3BlbmQuIEJlZm9yZSB0aGlzDQo+ID4+IHBhdGNoLCBBRkFJVSwgaXQgc2hvdWxkJ3ZlIGJlZW4g cG9zc2libGUgZm9yIHRoZSBFUCB0byBnbyBpbnRvIEQzY29sZCBkdXJpbmcNCj4gc3VzcGVuZC4N Cj4gPj4gVGhpcyBtYXkgbm8gbG9uZ2VyIGJlIHBvc3NpYmxlIHdoZW4gd2Uga2VlcCB2cGNpZSBw b3dlcmVkLg0KPiA+Pg0KPiA+IE9oLCB1bmRlcnN0b29kLiBJbiB0aGUgb3RoZXIgd29yZHMsIHRo ZSBFUCB3b3VsZG4ndCBiZSBpbiBEMyBtb2RlIHdoZW4NCj4gPiB2cGNpZSAgaXMgYWx3YXlzIHBv d2VyZWQgb24sIHJpZ2h0Pw0KPiA+IFRoYW5rcyBmb3IgeW91ciBkZXRhaWxlZCBleHBsYWlucy4N Cj4gDQo+IEQzY29sZCBzcGVjaWZpY2FsbHksIHdoaWNoIGlzIHRoZSBzdGF0ZSB0aGUgZGV2aWNl IGVudGVycyB3aGVuIHN1cHBseSB2b2x0YWdlIGlzDQo+IGN1dC4gRGV2aWNlcyBlbnRlciBEM2hv dCBwcm9ncmFtbWF0aWNhbGx5IGFuZCBpbiB0aGlzIGNhc2UgZGV2aWNlIHN1cHBseQ0KPiB2b2x0 YWdlIHJlbWFpbnMgcG93ZXJlZC4NCkdvdCB0aGF0LCB0aGFua3MuDQo+IA0KPiA+PiBQcmlvciB0 byBhNGJiNzIwZWViMWUsIHZwY2llIHdhcyBicmllZmx5IHRvZ2dsZWQgZHVyaW5nIFBDSWUgY29y ZQ0KPiA+PiByZXNldCBzZXF1ZW5jZSwgc28gYWZvcmVtZW50aW9uZWQgV2lGaSBtb2R1bGVzIHRo YXQgZG9uJ3QgcmVwcm9iZQ0KPiA+PiBvdmVyIHJlc3VtZSBzaG91bGQndmUgYmVlbiBicm9rZW4g YnkgdGhhdCB0b28/IElmIHNvLCBJIGRvbid0IHNlZSBob3cNCj4gPj4gaXQgZml4ZXMgdGhhdCBj b21taXQgYXMgZXZlcnl0aGluZyB0aGF0IGlzIGJyb2tlbiBub3cgd2FzIGJyb2tlbg0KPiA+PiBi ZWZvcmUgdGhhdCBjb21taXQgYXMgd2VsbC4gQWZ0ZXIgdGhpcyBwYXRjaCBob3dldmVyLCBtb2R1 bGVzIHRoYXQNCj4gPj4gY2FuIGFjY2VwdCB2cGNpZSBiZWluZyB0b2dnbGVkIGNhbid0IGJlbmVm aXQgZnJvbSBzb21lIG9mIHRoZSBwb3dlciBzYXZpbmcuDQo+ID4gVGhlIFdJRkkgbW9kdWxlcyB0 aGF0IGRvbid0IHJlLXByb2JlIG92ZXIgcmVzdW1lIGFyZSBhbHdheXMgYnJva2VuLCBpZg0KPiA+ IHRoZSAgdnBjaWUgaXMgdG9nZ2xlZCBkdXJpbmcgc3VzcGVuZC9yZXN1bWUsIEkgdGhpbmsuDQo+ ID4NCj4gPiBCVFcsIGlzIHRoZSByZS1wcm9iZSBvdmVyIHJlc3VtZSBtYW5kYXRvcnkgcmVxdWly ZW1lbnRzIGZvciBFUCBkZXZpY2VzDQo+ID4gKGZvciBleGFtcGxlLCBXSUZJIG1vZHVsZXMpPw0K PiANCj4gSSBvbmx5IGxvb2tlZCBhdCBicmNtZm1hYy4NCkdvdCB0aGF0Lg0KPiANCj4gPiBJJ20g Y3VyaW91cyB0aGF0IGhvdyB0aGUgV0lGSSByZW1vdGUgd2FrZSB1cCBnb2luZyBvbiBpZiB0aGUg V0lGSQ0KPiA+IG1vZHVsZSAgaXMgdG90YWxseSBwb3dlcmVkIG9mZi4NCj4gDQo+IERldmljZSBt YXkgYmUgaW4gRDNjb2xkLCBidXQgbGluayBpcyBhdCBMMiwgc28gdGhlcmUncyBzdGlsbCBhdXhp bGlhcnkgcG93ZXIgZm9yDQo+IGRldmljZSB0byBzdXBwb3J0IHdha2Ugb24gKHdpcmVkKSBMQU4u IE5vIGlkZWEgaG93IHByZXZhbGVudCB0aGlzIGlzIGZvciBXYWtlDQo+IG9uIFdpcmVsZXNzIExB Ti4NCj4NClRoYW5rcy4NCj4gPj4gV2h5IGNhbid0IHVzZXJzIHdpdGggdGhpcyBpc3N1ZSB1c2Ug YSByZWd1bGF0b3ItYWx3YXlzLW9uIHJlZ3VsYXRvciBpbnN0ZWFkPw0KPiA+IFllcywgeW91J3Jl IHJpZ2h0Lg0KPiA+IE9uZSByZWd1bGF0b3ItYWx3YXlzLW9uIHJlZ3VsYXRvciBpcyBhIGdvb2Qg aWRlYS4NCj4gDQo+IFRoYXQncyB3aGF0IEkgZG8gb24gbXkgc2lkZSBhcyB3ZWxsLCBiZWNhdXNl IHdlIGRpZG4ndCB3YW50IHRoZSBpbnRlcmZhY2UgdG8NCj4gYnJpZWZseSBkaXNhcHBlYXIgYW5k IHJlYXBwZWFyIGR1cmluZyBzdXNwZW5kLg0KVW5kZXJzdG9vZCwgSSBwcmVmZXIgdG8gdXNlIHRo ZSBzaW1pbGFyIG1ldGhvZCBvbiB0aGUgRVZLIGJvYXJkcy4NClRoYW5rcyBhIGxvdCBmb3IgeW91 ciBncmVhdCBoZWxwLg0KDQpCZXN0IFJlZ2FyZHMNClJpY2hhcmQgWmh1DQoNCj4gDQo+IENoZWVy cywNCj4gQWhtYWQNCj4gDQo+ID4NCj4gPj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQg Wmh1IDxob25neGluZy56aHVAbnhwLmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gIGRyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMgfCAyNCArKysrKysrKy0tLS0tLS0tLS0tLS0tLS0N Cj4gPj4+ICAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkN Cj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp LWlteDYuYw0KPiA+Pj4gYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jDQo+ ID4+PiBpbmRleCAyNjE2NTg1Y2E1ZjguLjk0YTg5YmJmMzgxZCAxMDA2NDQNCj4gPj4+IC0tLSBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMNCj4gPj4+ICsrKyBiL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMNCj4gPj4+IEBAIC05MjYsMjIgKzkyNiwx MyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9ob3N0X2luaXQoc3RydWN0DQo+ID4+PiBkd19wY2ll X3JwDQo+ID4+ICpwcCkNCj4gPj4+ICAJc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2llID0gdG9f aW14Nl9wY2llKHBjaSk7DQo+ID4+PiAgCWludCByZXQ7DQo+ID4+Pg0KPiA+Pj4gLQlpZiAoaW14 Nl9wY2llLT52cGNpZSkgew0KPiA+Pj4gLQkJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShpbXg2X3Bj aWUtPnZwY2llKTsNCj4gPj4+IC0JCWlmIChyZXQpIHsNCj4gPj4+IC0JCQlkZXZfZXJyKGRldiwg ImZhaWxlZCB0byBlbmFibGUgdnBjaWUgcmVndWxhdG9yOiAlZFxuIiwNCj4gPj4+IC0JCQkJcmV0 KTsNCj4gPj4+IC0JCQlyZXR1cm4gcmV0Ow0KPiA+Pj4gLQkJfQ0KPiA+Pj4gLQl9DQo+ID4+PiAt DQo+ID4+PiAgCWlteDZfcGNpZV9hc3NlcnRfY29yZV9yZXNldChpbXg2X3BjaWUpOw0KPiA+Pj4g IAlpbXg2X3BjaWVfaW5pdF9waHkoaW14Nl9wY2llKTsNCj4gPj4+DQo+ID4+PiAgCXJldCA9IGlt eDZfcGNpZV9jbGtfZW5hYmxlKGlteDZfcGNpZSk7DQo+ID4+PiAgCWlmIChyZXQpIHsNCj4gPj4+ ICAJCWRldl9lcnIoZGV2LCAidW5hYmxlIHRvIGVuYWJsZSBwY2llIGNsb2NrczogJWRcbiIsIHJl dCk7DQo+ID4+PiAtCQlnb3RvIGVycl9yZWdfZGlzYWJsZTsNCj4gPj4+ICsJCXJldHVybiByZXQ7 DQo+ID4+PiAgCX0NCj4gPj4+DQo+ID4+PiAgCWlmIChpbXg2X3BjaWUtPnBoeSkgew0KPiA+Pj4g QEAgLTk3NCw5ICs5NjUsNiBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9ob3N0X2luaXQoc3RydWN0 IGR3X3BjaWVfcnANCj4gPj4gKnBwKQ0KPiA+Pj4gIAkJcGh5X2V4aXQoaW14Nl9wY2llLT5waHkp Ow0KPiA+Pj4gIGVycl9jbGtfZGlzYWJsZToNCj4gPj4+ICAJaW14Nl9wY2llX2Nsa19kaXNhYmxl KGlteDZfcGNpZSk7DQo+ID4+PiAtZXJyX3JlZ19kaXNhYmxlOg0KPiA+Pj4gLQlpZiAoaW14Nl9w Y2llLT52cGNpZSkNCj4gPj4+IC0JCXJlZ3VsYXRvcl9kaXNhYmxlKGlteDZfcGNpZS0+dnBjaWUp Ow0KPiA+Pj4gIAlyZXR1cm4gcmV0Ow0KPiA+Pj4gIH0NCj4gPj4+DQo+ID4+PiBAQCAtOTkxLDkg Kzk3OSw2IEBAIHN0YXRpYyB2b2lkIGlteDZfcGNpZV9ob3N0X2V4aXQoc3RydWN0DQo+ID4+PiBk d19wY2llX3JwDQo+ID4+ICpwcCkNCj4gPj4+ICAJCXBoeV9leGl0KGlteDZfcGNpZS0+cGh5KTsN Cj4gPj4+ICAJfQ0KPiA+Pj4gIAlpbXg2X3BjaWVfY2xrX2Rpc2FibGUoaW14Nl9wY2llKTsNCj4g Pj4+IC0NCj4gPj4+IC0JaWYgKGlteDZfcGNpZS0+dnBjaWUpDQo+ID4+PiAtCQlyZWd1bGF0b3Jf ZGlzYWJsZShpbXg2X3BjaWUtPnZwY2llKTsNCj4gPj4+ICB9DQo+ID4+Pg0KPiA+Pj4gIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHdfcGNpZV9ob3N0X29wcyBpbXg2X3BjaWVfaG9zdF9vcHMgPSB7IEBA DQo+ID4+PiAtMTI2Myw2ICsxMjQ4LDEzIEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX3Byb2JlKHN0 cnVjdA0KPiA+Pj4gcGxhdGZvcm1fZGV2aWNlDQo+ID4+ICpwZGV2KQ0KPiA+Pj4gIAkJaWYgKFBU Ul9FUlIoaW14Nl9wY2llLT52cGNpZSkgIT0gLUVOT0RFVikNCj4gPj4+ICAJCQlyZXR1cm4gUFRS X0VSUihpbXg2X3BjaWUtPnZwY2llKTsNCj4gPj4+ICAJCWlteDZfcGNpZS0+dnBjaWUgPSBOVUxM Ow0KPiA+Pj4gKwl9IGVsc2Ugew0KPiA+Pj4gKwkJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShpbXg2 X3BjaWUtPnZwY2llKTsNCj4gPj4+ICsJCWlmIChyZXQpIHsNCj4gPj4+ICsJCQlkZXZfZXJyKGRl diwgImZhaWxlZCB0byBlbmFibGUgdnBjaWUgcmVndWxhdG9yOiAlZFxuIiwNCj4gPj4+ICsJCQkJ cmV0KTsNCj4gPj4+ICsJCQlyZXR1cm4gcmV0Ow0KPiA+Pj4gKwkJfQ0KPiA+Pg0KPiA+PiBTaG91 bGRuJ3QgdGhlIHJlZ3VsYXRvciBlbmFibGUgYmUgdW5kb25lIGlmIHRoZSBwcm9iZSBsYXRlciBm YWlscz8NCj4gPj4NCj4gPiBZZXMsIGl0J3MgcmVxdWlyZWQuDQo+ID4gVGhhbmtzIGEgbG90IGZv ciB5b3VyIGNvbW1lbnRzLg0KPiA+DQo+ID4gUmljaGFyZCBaaHUNCj4gPiBCZXN0IFJlZ2FyZHMN Cj4gPj4gQ2hlZXJzLA0KPiA+PiBBaG1hZA0KPiA+Pg0KPiA+PiAtLQ0KPiA+PiBQZW5ndXRyb25p eCBlLksuICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+PiB8DQo+ID4+IFN0ZXVlcndh bGRlciBTdHIuIDIxICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4+IGh0dHBzOi8vZXVyMDEu c2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGd3d3Lg0K PiA+Pg0KPiBwZSUyRiZhbXA7ZGF0YT0wNSU3QzAxJTdDaG9uZ3hpbmcuemh1JTQwbnhwLmNvbSU3 QzI3NGUwMjUxNDIyOQ0KPiA0MmNmOGNiDQo+ID4+DQo+IDEwOGRhYmQ4NjVhMzglN0M2ODZlYTFk M2JjMmI0YzZmYTkyY2Q5OWM1YzMwMTYzNSU3QzAlN0MwJTdDNjMNCj4gODAzMDY4MTkNCj4gPj4N Cj4gNzc3Nzk4NzglN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlM Q0pRSWpvaQ0KPiBWMmx1TXpJaQ0KPiA+Pg0KPiBMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAl M0QlN0MzMDAwJTdDJTdDJTdDJmFtcDtzZGF0YT1qM3E3RA0KPiBweWRvYVFjDQo+ID4+IHB5cUpM NnU0MTc5WUNPa0Q1RnB6UWRiSzNNVUUlMkJsQSUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+Pg0KPiBu Z3V0cm9uaXguZGUlMkYmYW1wO2RhdGE9MDUlN0MwMSU3Q2hvbmd4aW5nLnpodSU0MG54cC5jb20l N0MwNmY1DQo+ID4+DQo+IDM2MzM0MmM5NDY0YmNhNWEwOGRhYmQ2OWJkYjUlN0M2ODZlYTFkM2Jj MmI0YzZmYTkyY2Q5OWM1YzMwMTYzNQ0KPiA+PiAlN0MwJTdDMCU3QzYzODAzMDU1OTA5NDg3NTE5 NSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleQ0KPiBKVw0KPiA+Pg0KPiBJam9pTUM0d0xqQXdN REFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMNCj4g Pj4NCj4gMDAwJTdDJTdDJTdDJmFtcDtzZGF0YT0zNmZwdmVWQmdLcmFZSWVFSmpNU2lQQTEwYXpC ZmhoSHJOVllUYW9jTg0KPiA+PiBuUSUzRCZhbXA7cmVzZXJ2ZWQ9MCAgfA0KPiA+PiAzMTEzNyBI aWxkZXNoZWltLCBHZXJtYW55ICAgICAgICAgICAgICAgICAgfCBQaG9uZToNCj4gPj4gKzQ5LTUx MjEtMjA2OTE3LTAgICAgfA0KPiA+PiBBbXRzZ2VyaWNodCBIaWxkZXNoZWltLCBIUkEgMjY4NiAg ICAgICAgICAgfCBGYXg6DQo+ID4+ICs0OS01MTIxLTIwNjkxNy01NTU1IHwNCj4gPg0KPiANCj4g LS0NCj4gUGVuZ3V0cm9uaXggZS5LLiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gfA0K PiBTdGV1ZXJ3YWxkZXIgU3RyLiAyMSAgICAgICAgICAgICAgICAgICAgICAgfA0KPiBodHRwczov L2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUy Rnd3dy5wZQ0KPiBuZ3V0cm9uaXguZGUlMkYmYW1wO2RhdGE9MDUlN0MwMSU3Q2hvbmd4aW5nLnpo dSU0MG54cC5jb20lN0MyNzRlDQo+IDAyNTE0MjI5NDJjZjhjYjEwOGRhYmQ4NjVhMzglN0M2ODZl YTFkM2JjMmI0YzZmYTkyY2Q5OWM1YzMwMTYzNQ0KPiAlN0MwJTdDMCU3QzYzODAzMDY4MTk3Nzc3 OTg3OCU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXDQo+IElqb2lNQzR3TGpBd01EQWlMQ0pR SWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMw0KPiAwMDAlN0Ml N0MlN0MmYW1wO3NkYXRhPVRadWJLbjAlMkJqY3dFeURoMXIwV1hoUnklMkZUTSUyRmVPQQ0KPiBl QXVmR05MdE10Q0VnJTNEJmFtcDtyZXNlcnZlZD0wICB8DQo+IDMxMTM3IEhpbGRlc2hlaW0sIEdl cm1hbnkgICAgICAgICAgICAgICAgICB8IFBob25lOg0KPiArNDktNTEyMS0yMDY5MTctMCAgICB8 DQo+IEFtdHNnZXJpY2h0IEhpbGRlc2hlaW0sIEhSQSAyNjg2ICAgICAgICAgICB8IEZheDoNCj4g KzQ5LTUxMjEtMjA2OTE3LTU1NTUgfA0KDQo=