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 59C91C433EF for ; Tue, 28 Jun 2022 15:52:23 +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:In-Reply-To:MIME-Version: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:References: List-Owner; bh=eehBKXKwUYbsPirg4GlAtthXqRGopEO9eUdGSrwX0KA=; b=4iV7T6AtuTIA/L fK11pSdS4WfFTXP33Q1cFggzTJPLLOzlpLoLtSMgeJMxs5HCDSISYWg/4boRPxiVDvDJThCh4KCpB Q0eoBnRHx4kKP8z22sKkrw881kWTVI1JXuk4+fC0+orI+wJs3iTpZxnvitTm0R3p3joQtUtR8h3RL WlHsZzWVG8Ro+gE5FRFfggKLt5NaTU8NKzRi46I51fGABIyuAxOk3d0MNSQuh0+kniCsT/ShmtMWl YGc3cOlDT5awtCciWxgfHFBeWQ9khxSpnIPS9QzYjZMM7HL4L4fe/2sQXEsJusSdSnmnIQMn7haao Hh5yvAqpBu8Jl488WcIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o6DUh-0073Ud-EO; Tue, 28 Jun 2022 15:51:15 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o6DUd-0073TF-R5 for linux-arm-kernel@lists.infradead.org; Tue, 28 Jun 2022 15:51:13 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id EC58D6172D; Tue, 28 Jun 2022 15:51:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1066DC3411D; Tue, 28 Jun 2022 15:51:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1656431470; bh=9azQKCuWgQRCmfDHvd8v4kd9SU+7xtfhcfoLaTh2aaQ=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=TaF8T7b/CEsQ571jgsJV33iKiGCfoZ2FWAlQpV4dJSvGM+RTwZbHdBDjCmTOSLIeF I1xxyIa9H1RaTYs4+a+yG+L3O6r98z7HxPgY0DIbtpPxU9+XJuv2K5veNzSO7i84lW hIStKK9KutapYqJUhy9tslANeu8djvJMbAqTVlisXi6LQUsHOKP+t0Or0chqF9M1jr dcXq31sK1bBGxWeWxALxtjrV6cTh185HOQ9eRKdCVLY9SnTZESOurUKXzkevbf1QE3 LJ3p72FJY3si8KF7YvYCskYA93NYItBTmpya5VaRGKvoznwq39IozrhhMybEWx49xi jvsnsV2vUXsTg== Date: Tue, 28 Jun 2022 10:51:08 -0500 From: Bjorn Helgaas To: Hongxing Zhu Cc: "l.stach@pengutronix.de" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "broonie@kernel.org" , "lorenzo.pieralisi@arm.com" , "festevam@gmail.com" , "francesco.dolcini@toradex.com" , "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "kernel@pengutronix.de" , dl-linux-imx Subject: Re: [PATCH v13 10/15] PCI: imx6: Turn off regulator when system is in suspend mode Message-ID: <20220628155108.GA1840888@bhelgaas> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220628_085112_001562_57F3C5C6 X-CRM114-Status: GOOD ( 46.66 ) 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 T24gVHVlLCBKdW4gMjgsIDIwMjIgYXQgMDM6NDg6MDFBTSArMDAwMCwgSG9uZ3hpbmcgWmh1IHdy b3RlOgo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZyb206IEJqb3JuIEhlbGdh YXMgPGhlbGdhYXNAa2VybmVsLm9yZz4KPiA+IFNlbnQ6IDIwMjLlubQ25pyIMjjml6UgMzo1Mgo+ ID4gVG86IEhvbmd4aW5nIFpodSA8aG9uZ3hpbmcuemh1QG54cC5jb20+Cj4gPiBDYzogbC5zdGFj aEBwZW5ndXRyb25peC5kZTsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsgcm9iaCtkdEBrZXJuZWwub3Jn Owo+ID4gYnJvb25pZUBrZXJuZWwub3JnOyBsb3JlbnpvLnBpZXJhbGlzaUBhcm0uY29tOyBmZXN0 ZXZhbUBnbWFpbC5jb207Cj4gPiBmcmFuY2VzY28uZG9sY2luaUB0b3JhZGV4LmNvbTsgbGludXgt cGNpQHZnZXIua2VybmVsLm9yZzsKPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsKPiA+IGtlcm5lbEBwZW5ndXRyb25p eC5kZTsgZGwtbGludXgtaW14IDxsaW51eC1pbXhAbnhwLmNvbT4KPiA+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggdjEzIDEwLzE1XSBQQ0k6IGlteDY6IFR1cm4gb2ZmIHJlZ3VsYXRvciB3aGVuIHN5c3Rl bSBpcyBpbgo+ID4gc3VzcGVuZCBtb2RlCj4gPiAKPiA+IE9uIEZyaSwgSnVuIDI0LCAyMDIyIGF0 IDA1OjA1OjAwQU0gKzAwMDAsIEhvbmd4aW5nIFpodSB3cm90ZToKPiA+ID4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQo+ID4gPiA+IEZyb206IEJqb3JuIEhlbGdhYXMgPGhlbGdhYXNAa2Vy bmVsLm9yZz4KPiA+ID4gPiBTZW50OiAyMDIy5bm0NuaciDI05pelIDY6MjAKPiA+ID4gPiBUbzog SG9uZ3hpbmcgWmh1IDxob25neGluZy56aHVAbnhwLmNvbT4KPiA+ID4gPiBDYzogbC5zdGFjaEBw ZW5ndXRyb25peC5kZTsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsgcm9iaCtkdEBrZXJuZWwub3JnOwo+ ID4gPiA+IGJyb29uaWVAa2VybmVsLm9yZzsgbG9yZW56by5waWVyYWxpc2lAYXJtLmNvbTsgZmVz dGV2YW1AZ21haWwuY29tOwo+ID4gPiA+IGZyYW5jZXNjby5kb2xjaW5pQHRvcmFkZXguY29tOyBs aW51eC1wY2lAdmdlci5rZXJuZWwub3JnOwo+ID4gPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsKPiA+ID4gPiBrZXJu ZWxAcGVuZ3V0cm9uaXguZGU7IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+Cj4gPiA+ ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2MTMgMTAvMTVdIFBDSTogaW14NjogVHVybiBvZmYgcmVn dWxhdG9yIHdoZW4KPiA+ID4gPiBzeXN0ZW0gaXMgaW4gc3VzcGVuZCBtb2RlCj4gPiA+ID4KPiA+ ID4gPiBPbiBGcmksIEp1biAxNywgMjAyMiBhdCAwNjozMTowOVBNICswODAwLCBSaWNoYXJkIFpo dSB3cm90ZToKPiA+ID4gPiA+IFRoZSBkcml2ZXIgc2hvdWxkIHVuZG8gYW55IGVuYWJsZXMgaXQg ZGlkIGl0c2VsZi4gVGhlIHJlZ3VsYXRvcgo+ID4gPiA+ID4gZGlzYWJsZSBzaG91bGRuJ3QgYmUg YmFzaW5nIGRlY2lzaW9ucyBvbiByZWd1bGF0b3JfaXNfZW5hYmxlZCgpLgo+ID4gPiA+ID4KPiA+ ID4gPiA+IE1vdmUgdGhlIHJlZ3VsYXRvcl9kaXNhYmxlIHRvIHRoZSBzdXNwZW5kIGZ1bmN0aW9u LCB0dXJuIG9mZgo+ID4gPiA+ID4gcmVndWxhdG9yIHdoZW4gdGhlIHN5c3RlbSBpcyBpbiBzdXNw ZW5kIG1vZGUuCj4gPiA+ID4gPgo+ID4gPiA+ID4gVG8ga2VlcCB0aGUgYmFsYW5jZSBvZiB0aGUg cmVndWxhdG9yIHVzYWdlIGNvdW50ZXIsIGRpc2FibGUgdGhlCj4gPiA+ID4gPiByZWd1bGF0b3Ig aW4gc2h1dGRvd24uCj4gPiA+ID4gPgo+ID4gPiA+ID4gTGluazoKPiA+ID4gPiA+IGh0dHBzOi8v ZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUy Rgo+ID4gPiA+ID4gbG9yZQo+ID4gPiA+ID4gLmtlcm5lbC5vcmclMkZyJTJGMTY1NTE4OTk0Mi0x MjY3OC02LWdpdC1zZW5kLWVtYWlsLWhvbmd4aW5nLnomYW0KPiA+IHAKPiA+ID4gPiA+IDtkCj4g PiA+ID4gYXQKPiA+ID4gPiA+Cj4gPiA+ID4KPiA+IGE9MDUlN0MwMSU3Q2hvbmd4aW5nLnpodSU0 MG54cC5jb20lN0M1NjMzZmExYmYzYzQ0M2UyMDNlMTA4ZGE1NQo+ID4gPiA+IDY2N2RjMiUKPiA+ ID4gPiA+Cj4gPiA+ID4KPiA+IDdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0Mw JTdDMCU3QzYzNzkxNjE5NTkyNzcyNzYKPiA+ID4gPiAwNCU3Q1Vua24KPiA+ID4gPiA+Cj4gPiA+ ID4KPiA+IG93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1 TXpJaUxDSkJUaUk2SWsxCj4gPiA+ID4gaGFXd2kKPiA+ID4gPiA+Cj4gPiA+ID4KPiA+IExDSlhW Q0k2TW4wJTNEJTdDMzAwMCU3QyU3QyU3QyZhbXA7c2RhdGE9MUtiem4zWFNWdnQzZ0dQckV5JTIK PiA+ID4gPiBCRVQ4RVpuNEkKPiA+ID4gPiA+IGR3UyUyQmhVWjNBYWxaMllaMCUzRCZhbXA7cmVz ZXJ2ZWQ9MAo+ID4gPiA+ID4gaHVAbnhwLmNvbQo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUmlj aGFyZCBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTog Qmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ ID4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMgfCAxOSArKysrKysrLS0t LS0tLS0tLS0tCj4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTIg ZGVsZXRpb25zKC0pCj4gPiA+ID4gPgo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPiA+ID4gPiA+IGIvZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpLWlteDYuYwo+ID4gPiA+ID4gaW5kZXggMmI0MmMzN2YxNjE3Li5mNzJlYjYw OTc2OWIgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2ktaW14Ni5jCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2kt aW14Ni5jCj4gPiA+ID4gPiBAQCAtNjcwLDggKzY3MCw2IEBAIHN0YXRpYyB2b2lkIGlteDZfcGNp ZV9jbGtfZGlzYWJsZShzdHJ1Y3QKPiA+ID4gPiA+IGlteDZfcGNpZQo+ID4gPiA+ID4gKmlteDZf cGNpZSkKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgc3RhdGljIHZvaWQgaW14Nl9wY2llX2Fzc2VydF9j b3JlX3Jlc2V0KHN0cnVjdCBpbXg2X3BjaWUKPiA+ID4gPiA+ICppbXg2X3BjaWUpIHsKPiA+ID4g PiA+IC0Jc3RydWN0IGRldmljZSAqZGV2ID0gaW14Nl9wY2llLT5wY2ktPmRldjsKPiA+ID4gPiA+ IC0KPiA+ID4gPiA+ICAJc3dpdGNoIChpbXg2X3BjaWUtPmRydmRhdGEtPnZhcmlhbnQpIHsKPiA+ ID4gPiA+ICAJY2FzZSBJTVg3RDoKPiA+ID4gPiA+ICAJY2FzZSBJTVg4TVE6Cj4gPiA+ID4gPiBA QCAtNzAyLDE0ICs3MDAsNiBAQCBzdGF0aWMgdm9pZAo+ID4gPiA+ID4gaW14Nl9wY2llX2Fzc2Vy dF9jb3JlX3Jlc2V0KHN0cnVjdAo+ID4gPiA+IGlteDZfcGNpZSAqaW14Nl9wY2llKQo+ID4gPiA+ ID4gIAkJYnJlYWs7Cj4gPiA+ID4gPiAgCX0KPiA+ID4gPiA+Cj4gPiA+ID4gPiAtCWlmIChpbXg2 X3BjaWUtPnZwY2llICYmIHJlZ3VsYXRvcl9pc19lbmFibGVkKGlteDZfcGNpZS0+dnBjaWUpID4g MCkKPiA+IHsKPiA+ID4gPiA+IC0JCWludCByZXQgPSByZWd1bGF0b3JfZGlzYWJsZShpbXg2X3Bj aWUtPnZwY2llKTsKPiA+ID4gPiA+IC0KPiA+ID4gPiA+IC0JCWlmIChyZXQpCj4gPiA+ID4gPiAt CQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZGlzYWJsZSB2cGNpZSByZWd1bGF0b3I6ICVkXG4i LAo+ID4gPiA+ID4gLQkJCQlyZXQpOwo+ID4gPiA+ID4gLQl9Cj4gPiA+ID4gPiAtCj4gPiA+ID4g PiAgCS8qIFNvbWUgYm9hcmRzIGRvbid0IGhhdmUgUENJZSByZXNldCBHUElPLiAqLwo+ID4gPiA+ ID4gIAlpZiAoZ3Bpb19pc192YWxpZChpbXg2X3BjaWUtPnJlc2V0X2dwaW8pKQo+ID4gPiA+ID4g IAkJZ3Bpb19zZXRfdmFsdWVfY2Fuc2xlZXAoaW14Nl9wY2llLT5yZXNldF9ncGlvLAo+ID4gPiA+ ID4gQEAgLTcyMiw3ICs3MTIsNyBAQCBzdGF0aWMgaW50Cj4gPiA+ID4gPiBpbXg2X3BjaWVfZGVh c3NlcnRfY29yZV9yZXNldChzdHJ1Y3QKPiA+ID4gPiBpbXg2X3BjaWUgKmlteDZfcGNpZSkKPiA+ ID4gPiA+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gcGNpLT5kZXY7Cj4gPiA+ID4gPiAgCWludCBy ZXQ7Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLQlpZiAoaW14Nl9wY2llLT52cGNpZSAmJiAhcmVndWxh dG9yX2lzX2VuYWJsZWQoaW14Nl9wY2llLT52cGNpZSkpIHsKPiA+ID4gPiA+ICsJaWYgKGlteDZf cGNpZS0+dnBjaWUpIHsKPiA+ID4gPiA+ICAJCXJldCA9IHJlZ3VsYXRvcl9lbmFibGUoaW14Nl9w Y2llLT52cGNpZSk7Cj4gPiA+ID4gPiAgCQlpZiAocmV0KSB7Cj4gPiA+ID4gPiAgCQkJZGV2X2Vy cihkZXYsICJmYWlsZWQgdG8gZW5hYmxlIHZwY2llIHJlZ3VsYXRvcjogJWRcbiIsIEBACj4gPiA+ ID4gLTc5NSw3Cj4gPiA+ID4gPiArNzg1LDcgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfZGVhc3Nl cnRfY29yZV9yZXNldChzdHJ1Y3QKPiA+ID4gPiA+ICtpbXg2X3BjaWUKPiA+ID4gPiAqaW14Nl9w Y2llKQo+ID4gPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgZXJyX2Nsa3M6 Cj4gPiA+ID4gPiAtCWlmIChpbXg2X3BjaWUtPnZwY2llICYmIHJlZ3VsYXRvcl9pc19lbmFibGVk KGlteDZfcGNpZS0+dnBjaWUpID4gMCkKPiA+IHsKPiA+ID4gPiA+ICsJaWYgKGlteDZfcGNpZS0+ dnBjaWUpIHsKPiA+ID4gPiA+ICAJCXJldCA9IHJlZ3VsYXRvcl9kaXNhYmxlKGlteDZfcGNpZS0+ dnBjaWUpOwo+ID4gPiA+ID4gIAkJaWYgKHJldCkKPiA+ID4gPiA+ICAJCQlkZXZfZXJyKGRldiwg ImZhaWxlZCB0byBkaXNhYmxlIHZwY2llIHJlZ3VsYXRvcjogJWRcbiIsIEBACj4gPiA+ID4gLTEw MjIsNgo+ID4gPiA+ID4gKzEwMTIsOSBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9zdXNwZW5kX25v aXJxKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ID4gPiA+ICAJCWJyZWFrOwo+ID4gPiA+ID4gIAl9 Cj4gPiA+ID4gPgo+ID4gPiA+ID4gKwlpZiAoaW14Nl9wY2llLT52cGNpZSkKPiA+ID4gPiA+ICsJ CXJlZ3VsYXRvcl9kaXNhYmxlKGlteDZfcGNpZS0+dnBjaWUpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gIAlyZXR1cm4gMDsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4KPiA+ID4gPiBUaGUgc3VzcGVuZCBh bmQgcmVzdW1lIG1ldGhvZHMgc2hvdWxkIGJlIHN5bW1ldHJpYywgYW5kIHRoZXkgc2hvdWxkCj4g PiA+ID4gKmxvb2sqIHN5bW1ldHJpYy4KPiA+ID4gPgo+ID4gPiA+IGlteDZfcGNpZV9zdXNwZW5k X25vaXJxKCkgZGlzYWJsZXMgdGhlIHJlZ3VsYXRvciwgc28KPiA+ID4gPiBpbXg2X3BjaWVfcmVz dW1lX25vaXJxKCkgc2hvdWxkIGVuYWJsZSBpdC4KPiA+ID4gPgo+ID4gPiA+IGlteDZfcGNpZV9z dXNwZW5kX25vaXJxKCkgY2FsbHMgaW14Nl9wY2llX2Nsa19kaXNhYmxlKCkgdG8gZGlzYWJsZQo+ ID4gPiA+IHNldmVyYWwgY2xvY2tzLiAgaW14Nl9wY2llX3Jlc3VtZV9ub2lycSgpIHNob3VsZCBj YWxsCj4gPiA+ID4gaW14Nl9wY2llX2Nsa19lbmFibGUoKSB0byBlbmFibGUgdGhlbS4KPiA+ID4g Pgo+ID4gPiA+IGlteDZfcGNpZV9jbGtfZW5hYmxlKCkgKmlzKiBjYWxsZWQgaW4gdGhlIHJlc3Vt ZSBwYXRoLCBidXQgaXQncwo+ID4gPiA+IGJ1cmllZCBpbnNpZGUgaW14Nl9wY2llX2hvc3RfaW5p dCgpIGFuZAo+ID4gPiA+IGlteDZfcGNpZV9kZWFzc2VydF9jb3JlX3Jlc2V0KCkuICBUaGF0IG1h a2VzIGl0IGhhcmQgdG8gYW5hbHl6ZS4KPiA+ID4gPgo+ID4gPiA+IFdlIHNob3VsZCBiZSBhYmxl IHRvIGxvb2sgYXQgaW14Nl9wY2llX3N1c3BlbmRfbm9pcnEoKSBhbmQKPiA+ID4gPiBpbXg2X3Bj aWVfcmVzdW1lX25vaXJxKCkgYW5kIGVhc2lseSBzZWUgdGhhdCB0aGUgcmVzdW1lIHBhdGggcmVz dW1lcwo+ID4gPiA+IGV2ZXJ5dGhpbmcgdGhhdCB3YXMgc3VzcGVuZGVkIGluIHRoZSBzdXNwZW5k IHBhdGguCj4gPiA+Cj4gPiA+IFllcywgaXQgaXMuIEl0J3MgYmV0dGVyIHRvIGtlZXAgc3VzcGVu ZC9yZXN1bWUgc3ltbWV0cmljIGFzIG11Y2ggYXMKPiA+ID4gcG9zc2libGUuICBJbiByZXN1bWUs IHRoZSBob3N0X2luaXQgaXMgaW52b2tlZCwgY2xvY2tzLCByZWd1bGF0b3JzIGFuZAo+ID4gPiBz byBvbiB3b3VsZCBiZSBpbml0aWFsaXplZCBwcm9wZXJseS4KPiA+ID4KPiA+ID4gVW5mb3J0dW5h dGVseSwgdGhlcmUgaXMgbm8gYWNjb3JkaW5nIGhvc3RfZXhpdCgpIHRoYXQgY2FuIGJlIGNhbGxl ZCB0bwo+ID4gPiBkbyB0aGUgcmV2ZXJzZWQgY2xvY2tzLCByZWd1bGF0b3JzIGRpc2FibGUgb3Bl cmF0aW9ucyBpbiB0aGUgc3VzcGVuZC4KPiA+ID4gU28sIHRoZSBjbG9ja3MgYW5kIHJlZ3VsYXRv ciBkaXNhYmxlIGFyZSBleHBsaWNpdGx5IGludm9rZWQgaW4gc3VzcGVuZAo+ID4gPiBjYWxsYmFj ay4KPiA+ID4KPiA+ID4gSG93IGFib3V0IHRvIGRvIHRoZSBpbmNyZW1lbnRhbCB1cGRhdGVzIGlm IHRoZSAuaG9zdF9leGl0IGNhbiBiZSBhZGRlZAo+ID4gPiBsYXRlcj8KPiA+IAo+ID4gVGhpcyBk b2Vzbid0IHNlZW0gdmVyeSBjb252aW5jaW5nIGJlY2F1c2UgZXZlcnl0aGluZyBoZXJlIGlzIGlu IHRoZQo+ID4gaW14NiBkb21haW4uICBUaGUgb25seSBEV0MgY29yZSB0aGluZyBoZXJlIGlzIHRo ZSBkd19wY2llX3NldHVwX3JjKCkgY2FsbGVkCj4gPiBpbiBpbXg2X3BjaWVfcmVzdW1lX25vaXJx KCksIGFuZCBpdCBkb2Vzbid0IGNhbGwgYmFjayB0byBhbnkKPiA+IGlteDYgY29kZS4KPiA+IAo+ ID4gU28geW91IHNob3VsZCBiZSBhYmxlIHRvIG1ha2UgYW4gaW14Nl9wY2llX2hvc3RfZXhpdCgp IG9yIHdoYXRldmVyIHRoYXQKPiA+IGNvcnJlc3BvbmRzIHRvIGlteDZfcGNpZV9ob3N0X2luaXQo KS4KPgo+IFRoYW5rcyBmb3IgeW91ciBraW5kbHkgaGVscCB0byByZXZpZXcgaXQuIFRoYXQncyBy ZWFzb25hYmxlLgo+IAo+IFNvLCB0byBtYWtlIGl0IHN5bW1ldHJpYyB3aXRoIGlteDZfcGNpZV9o b3N0X2luaXQoKSBhbmQKPiBpbXg2X3BjaWVfc3RhcnRfbGluaygpLiAgVGhlIGFjY29yZGluZyBs b2NhbCBmdW5jdGlvbnMKPiBpbXg2X3BjaWVfaG9zdF9leGl0KCkgYW5kIGlteDZfcGNpZV9zdG9w X2xpbmsoKSB3b3VsZCBiZSBjcmVhdGVkLgo+IAo+IEJUVywgdG8gYmUgc3ltbWV0cmljIHdpdGgg aW14Nl9wY2llX2hvc3RfaW5pdCgpLCB0aGUgcGFyYW1ldGVyIG9mCj4gaW14Nl9wY2llX2hvc3Rf ZXhpdCgpIGlzIHNhbWUgdG8gdGhlIHBhcmFtZXRlciBvZgo+IGlteDZfcGNpZV9ob3N0X2luaXQo KS4gIFNvIGRvIGlteDZfcGNpZV9zdG9wX2xpbmsoKSBhbmQKPiBpbXg2X3BjaWVfc3RhcnRfbGlu aygpLiAgQXJlIHlvdSBzYXRpc2ZpZWQgd2l0aCB0aGUgZm9sbG93aW5nCj4gZnVuY3Rpb25zPwo+ IAo+IHN0YXRpYyB2b2lkIGlteDZfcGNpZV9zdG9wX2xpbmsoc3RydWN0IGR3X3BjaWUgKnBjaSkK PiB7Cj4gICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsKPiAKPiAgICAgICAg IC8qIFR1cm4gb2ZmIFBDSWUgTFRTU00gKi8KPiAgICAgICAgIGlteDZfcGNpZV9sdHNzbV9kaXNh YmxlKGRldik7Cj4gfQo+IAo+IHN0YXRpYyB2b2lkIGlteDZfcGNpZV9ob3N0X2V4aXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gewo+ICAgICAgICAgc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3 X3BjaWVfZnJvbV9wcChwcCk7Cj4gICAgICAgICBzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUg PSB0b19pbXg2X3BjaWUocGNpKTsKPiAKPiAgICAgICAgIGlteDZfcGNpZV9jbGtfZGlzYWJsZShp bXg2X3BjaWUpOwo+ICAgICAgICAgaWYgKGlteDZfcGNpZS0+cGh5KSB7Cj4gICAgICAgICAgICAg ICAgIGlmIChwaHlfcG93ZXJfb2ZmKGlteDZfcGNpZS0+cGh5KSkKPiAgICAgICAgICAgICAgICAg ICAgICAgICBkZXZfZXJyKHBjaS0+ZGV2LCAidW5hYmxlIHRvIHBvd2VyIG9mZiBQSFlcbiIpOwo+ ICAgICAgICAgICAgICAgICBwaHlfZXhpdChpbXg2X3BjaWUtPnBoeSk7Cj4gICAgICAgICB9Cj4g Cj4gICAgICAgICBpZiAoaW14Nl9wY2llLT52cGNpZSkKPiAgICAgICAgICAgICAgICAgcmVndWxh dG9yX2Rpc2FibGUoaW14Nl9wY2llLT52cGNpZSk7Cj4gfQoKQWZ0ZXIgdGhlIGN1cnJlbnQgc2Vy aWVzLCBpbXg2X3BjaWVfaG9zdF9pbml0KCkgbG9va3MgbGlrZToKCiAgaW14Nl9wY2llX2hvc3Rf aW5pdAogICAgcGh5X3Bvd2VyX29uCiAgICByZWd1bGF0b3JfZW5hYmxlCiAgICBpbXg2X3BjaWVf ZGVhc3NlcnRfY29yZV9yZXNldAogICAgICBpbXg2X3BjaWVfY2xrX2VuYWJsZQogICAgcGh5X2lu aXQKCmFuZCB5b3UgcHJvcG9zZToKCiAgaW14Nl9wY2llX2hvc3RfZXhpdAogICAgaW14Nl9wY2ll X2Nsa19kaXNhYmxlCiAgICBwaHlfcG93ZXJfb2ZmCiAgICBwaHlfZXhpdAogICAgcmVndWxhdG9y X2Rpc2FibGUKCkdlbmVyYWxseSB0aGV5IHNob3VsZCBkbyB0aGluZ3MgaW4gdGhlIHJldmVyc2Ug b3JkZXIuCgppbXg2X3BjaWVfaG9zdF9pbml0KCkgZG9lcyBwaHlfcG93ZXJfb24oKSwgcmVndWxh dG9yX2VuYWJsZSgpLAppbXg2X3BjaWVfY2xrX2VuYWJsZSgpLgoKaW14Nl9wY2llX2hvc3RfZXhp dCgpIHNob3VsZCBkbyBpbXg2X3BjaWVfY2xrX2Rpc2FibGUoKSwKcmVndWxhdG9yX2Rpc2FibGUo KSwgcGh5X3Bvd2VyX29mZigpLgoKKEl0IGxvb2tzIGxpa2UgaW14Nl9wY2llX2hvc3RfaW5pdCgp IGNhbGxzIHBoeV9wb3dlcl9vbigpIGFuZApwaHlfaW5pdCgpIGluIHRoZSB3cm9uZyBvcmRlciBb MV0uKQoKSU1PIHRoZSBpbXg2X3BjaWVfY2xrX2VuYWJsZSgpIHNob3VsZCBub3QgYmUgaGlkZGVu IGluc2lkZQppbXg2X3BjaWVfZGVhc3NlcnRfY29yZV9yZXNldCgpLgoKWzFdIGh0dHBzOi8vZ2l0 Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90 cmVlL2RyaXZlcnMvcGh5L3BoeS1jb3JlLmM/aWQ9djUuMTktcmMxI24yMzMKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK