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 476F0C4725D for ; Fri, 19 Jan 2024 08:27:33 +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: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=pvCrKSq/ctLhWL+h4TX/0lZXewH3Y+Uj9UYFuhvr2bs=; b=HWf4Y+io34OCzN Tsomccy69+T1i72HzH2YYvLcf/HMyVy2MTsfGzebeXePCL72XGviSjIu62JrTiTxGgtsxui4T3Un6 FSj5hxEjl3udHnuPbDE7muNI9GMDEhoTMd+VS2VJOI4ueaIFEFy7L02ClmoE3m/b3Eg51/m6foVeh P1lQjCuDT33VH4rOERlRrLszYNe9xlxG3XsTurfkYOsdRDmKtYs3ALt3Uu1Mw+7/P7HPgOS7B0M0s bkzsW0Es2Xo7nNzPBi7oBTYBihzZxbfDkmIsh5symiDk1Zb06pLdzuKh0JgnrckcUW/gYd76443kA YNO6Il9SskH+quQ6KfKw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rQkDT-004q5f-06; Fri, 19 Jan 2024 08:27:07 +0000 Received: from mail-oo1-f44.google.com ([209.85.161.44]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rQkDP-004q3x-0h for linux-arm-kernel@lists.infradead.org; Fri, 19 Jan 2024 08:27:04 +0000 Received: by mail-oo1-f44.google.com with SMTP id 006d021491bc7-598d168f253so282056eaf.3 for ; Fri, 19 Jan 2024 00:27:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1705652761; x=1706257561; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=KkWXmKH0r8EujnkQjuJIPEC6n7Ky9X3nKqyBzdmGTX4=; b=RJAcVQ1h1F8j6YKDgcrVlikWF3wuZi/Ai4w1hL4XIUVw/BxSrwx7mZAuKQ/IVuwl6Z w27zPovoHTXlV7ZyUhrpaontLwLVi4m5WXC7LiTgIoukAkybyH4Wa9v4AN4PELDetAHt 5cLhMnB0P93QVHGmDI9F63zkVmEyH82uqqt95Zrla2xxsqz7bOivP0QyYHpK1UyKp66T o/eHuihfIE+nwe5QrAlG9C4D96/KyYieq7gqIsai9NO5FBsnCK1o9TpxSoZzSxXyJiLS A26qbH05MpBfflceQKHyvfb29AopB2AIm36riSTN/snZpYkqfZVGF4Uz3gidDWlWg+rK lw4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705652761; x=1706257561; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KkWXmKH0r8EujnkQjuJIPEC6n7Ky9X3nKqyBzdmGTX4=; b=w0dDN+2SlnYhbnLSFkyvXCrdfPAJjmfbNA8G7BI0eh6DNJl26hgUWcwFJDuGPqU+fq nI3dUlC51mJuQbTCFjkvbzTJkqv3Ik2i1FJCniS0HbrIFeZtHqotcbcJIJOfNCGEYjkA zDBgLf3/7RKVRXn/AwNATKM5IpNgznoxVfv5MKkHwY8tlvrOb6/LzyV3AOYrRgI44chY MO6zPOaR31fhSrqEwETMJcGrLZq2oKZzAJvF7BmA+nUaJ61MyfMd2kYrWOgbWGXDegfx t9uQ5O3XWdClAbTWQBdW7F1Sjykxy/J3kCe0uUAggkr29UMfwY+IHKjm/59PKm/EPnJg ptlQ== X-Gm-Message-State: AOJu0Yx6KARAmbqm11vYyuup14k5LxsOML5pgfEhTiWvgvOrJsDkEt66 dwKQtNoxKRgyGd/GaAydb1dpJsxqSqA93vWDE9vojT1z3OR/bk7Oy8PAAgic8Q== X-Google-Smtp-Source: AGHT+IH4zHVhjf2dGBDi9fXZGMfVXKS+wYAhsQnF5CU4QOXjKDKMimg65NlxwYiYaoOMd3gXW0pP8w== X-Received: by 2002:a05:6359:3511:b0:175:bfae:a564 with SMTP id un17-20020a056359351100b00175bfaea564mr1866729rwb.38.1705652761382; Fri, 19 Jan 2024 00:26:01 -0800 (PST) Received: from thinkpad ([117.248.2.56]) by smtp.gmail.com with ESMTPSA id p27-20020a056a0026db00b006dbad3a1b84sm2346449pfw.190.2024.01.19.00.25.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jan 2024 00:26:00 -0800 (PST) Date: Fri, 19 Jan 2024 13:55:52 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: krzysztof.kozlowski@linaro.org, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH v8 08/16] PCI: imx6: Simplify switch-case logic by involve init_phy callback Message-ID: <20240119082552.GG2866@thinkpad> References: <20240108232145.2116455-1-Frank.Li@nxp.com> <20240108232145.2116455-9-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240108232145.2116455-9-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240119_002703_252729_C4E4662B X-CRM114-Status: GOOD ( 28.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-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 T24gTW9uLCBKYW4gMDgsIDIwMjQgYXQgMDY6MjE6MzdQTSAtMDUwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gU2ltcGxpZnkgc3dpdGNoLWNhc2UgbG9naWMgYnkgaW52b2x2ZSBpbml0X3BoeSBjYWxsYmFj ay4KPiAKCiJJbnN0ZWFkIG9mIHVzaW5nIHRoZSBzd2l0Y2ggY2FzZSBzdGF0ZW1lbnQgdG8gaW5p dGlhbGl6ZSB0aGUgUEhZIGhhbmRsZWQgYnkKdGhpcyBkcml2ZXIgaXRzZWxmLCBsZXQncyBpbnRy b2R1Y2UgYSBuZXcgY2FsbGJhY2sgaW5pdF9waHkoKSBhbmQgZGVmaW5lIGl0IGZvcgpwbGF0Zm9y bXMgdGhhdCByZXF1aXJlIGl0LiBUaGlzIHNpbXBsaWZpZXMgdGhlIGNvZGUuIgoKPiBTaWduZWQt b2ZmLWJ5OiBGcmFuayBMaSA8RnJhbmsuTGlAbnhwLmNvbT4KClJldmlld2VkLWJ5OiBNYW5pdmFu bmFuIFNhZGhhc2l2YW0gPG1hbml2YW5uYW4uc2FkaGFzaXZhbUBsaW5hcm8ub3JnPgoKLSBNYW5p Cgo+IC0tLQo+IAo+IE5vdGVzOgo+ICAgICBDaGFuZ2UgZnJvbSB2NyB0byB2ODoKPiAgICAgLSBy ZXdvcmsgY29tbWl0IG1lc3NhZ2UKPiAgICAgLSB3cmFwIGNvbW1lbnRzIHRvIDEwMCBjaGFycwo+ ICAgICAtIHJldHVybiAwIGF0IGlteDdkX3BjaWVfaW5pdF9waHkoKQo+ICAgICAKPiAgICAgY2hh bmdlIGZyb20gdjEgdG8gdjQ6Cj4gICAgIC0gbm9uZQo+IAo+ICBkcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2ktaW14Ni5jIHwgMTM0ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gIDEg ZmlsZSBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPiBpbmRleCBmZDgzYWYyMzhmYTYwLi5hYzMz OGE4OGZlMjFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1p bXg2LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCj4gQEAg LTY5LDYgKzY5LDkgQEAgZW51bSBpbXg2X3BjaWVfdmFyaWFudHMgewo+ICAjZGVmaW5lIElNWDZf UENJRV9NQVhfQ0xLUyAgICAgICA2Cj4gIAo+ICAjZGVmaW5lIElNWDZfUENJRV9NQVhfSU5TVEFO Q0VTCQkJMgo+ICsKPiArc3RydWN0IGlteDZfcGNpZTsKPiArCj4gIHN0cnVjdCBpbXg2X3BjaWVf ZHJ2ZGF0YSB7Cj4gIAllbnVtIGlteDZfcGNpZV92YXJpYW50cyB2YXJpYW50Owo+ICAJZW51bSBk d19wY2llX2RldmljZV9tb2RlIG1vZGU7Cj4gQEAgLTgxLDYgKzg0LDcgQEAgc3RydWN0IGlteDZf cGNpZV9kcnZkYXRhIHsKPiAgCWNvbnN0IHUzMiBsdHNzbV9tYXNrOwo+ICAJY29uc3QgdTMyIG1v ZGVfb2ZmW0lNWDZfUENJRV9NQVhfSU5TVEFOQ0VTXTsKPiAgCWNvbnN0IHUzMiBtb2RlX21hc2tb SU1YNl9QQ0lFX01BWF9JTlNUQU5DRVNdOwo+ICsJaW50ICgqaW5pdF9waHkpKHN0cnVjdCBpbXg2 X3BjaWUgKnBjaWUpOwo+ICB9Owo+ICAKPiAgc3RydWN0IGlteDZfcGNpZSB7Cj4gQEAgLTMyMiw3 NiArMzI2LDY2IEBAIHN0YXRpYyBpbnQgcGNpZV9waHlfd3JpdGUoc3RydWN0IGlteDZfcGNpZSAq aW14Nl9wY2llLCBpbnQgYWRkciwgdTE2IGRhdGEpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAt c3RhdGljIHZvaWQgaW14Nl9wY2llX2luaXRfcGh5KHN0cnVjdCBpbXg2X3BjaWUgKmlteDZfcGNp ZSkKPiArc3RhdGljIGludCBpbXg4bXFfcGNpZV9pbml0X3BoeShzdHJ1Y3QgaW14Nl9wY2llICpp bXg2X3BjaWUpCj4gIHsKPiAtCXN3aXRjaCAoaW14Nl9wY2llLT5kcnZkYXRhLT52YXJpYW50KSB7 Cj4gLQljYXNlIElNWDhNTToKPiAtCWNhc2UgSU1YOE1NX0VQOgo+IC0JY2FzZSBJTVg4TVA6Cj4g LQljYXNlIElNWDhNUF9FUDoKPiAtCQkvKgo+IC0JCSAqIFRoZSBQSFkgaW5pdGlhbGl6YXRpb24g aGFkIGJlZW4gZG9uZSBpbiB0aGUgUEhZCj4gLQkJICogZHJpdmVyLCBicmVhayBoZXJlIGRpcmVj dGx5Lgo+IC0JCSAqLwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBJTVg4TVE6Cj4gLQljYXNlIElNWDhN UV9FUDoKPiAtCQkvKgo+IC0JCSAqIFRPRE86IEN1cnJlbnRseSB0aGlzIGNvZGUgYXNzdW1lcyBl eHRlcm5hbAo+IC0JCSAqIG9zY2lsbGF0b3IgaXMgYmVpbmcgdXNlZAo+IC0JCSAqLwo+ICsJLyog VE9ETzogQ3VycmVudGx5IHRoaXMgY29kZSBhc3N1bWVzIGV4dGVybmFsIG9zY2lsbGF0b3IgaXMg YmVpbmcgdXNlZCAqLwo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDZfcGNpZS0+aW9tdXhjX2dw ciwKPiArCQkJICAgaW14Nl9wY2llX2dycF9vZmZzZXQoaW14Nl9wY2llKSwKPiArCQkJICAgSU1Y OE1RX0dQUl9QQ0lFX1JFRl9VU0VfUEFELAo+ICsJCQkgICBJTVg4TVFfR1BSX1BDSUVfUkVGX1VT RV9QQUQpOwo+ICsJLyoKPiArCSAqIFJlZ2FyZGluZyB0aGUgZGF0YXNoZWV0LCB0aGUgUENJRV9W UEggaXMgc3VnZ2VzdGVkIHRvIGJlIDEuOFYuIElmIHRoZSBQQ0lFX1ZQSCBpcwo+ICsJICogc3Vw cGxpZWQgYnkgMy4zViwgdGhlIFZSRUdfQllQQVNTIHNob3VsZCBiZSBjbGVhcmVkIHRvIHplcm8u Cj4gKwkgKi8KPiArCWlmIChpbXg2X3BjaWUtPnZwaCAmJiByZWd1bGF0b3JfZ2V0X3ZvbHRhZ2Uo aW14Nl9wY2llLT52cGgpID4gMzAwMDAwMCkKPiAgCQlyZWdtYXBfdXBkYXRlX2JpdHMoaW14Nl9w Y2llLT5pb211eGNfZ3ByLAo+ICAJCQkJICAgaW14Nl9wY2llX2dycF9vZmZzZXQoaW14Nl9wY2ll KSwKPiAtCQkJCSAgIElNWDhNUV9HUFJfUENJRV9SRUZfVVNFX1BBRCwKPiAtCQkJCSAgIElNWDhN UV9HUFJfUENJRV9SRUZfVVNFX1BBRCk7Cj4gLQkJLyoKPiAtCQkgKiBSZWdhcmRpbmcgdGhlIGRh dGFzaGVldCwgdGhlIFBDSUVfVlBIIGlzIHN1Z2dlc3RlZAo+IC0JCSAqIHRvIGJlIDEuOFYuIElm IHRoZSBQQ0lFX1ZQSCBpcyBzdXBwbGllZCBieSAzLjNWLCB0aGUKPiAtCQkgKiBWUkVHX0JZUEFT UyBzaG91bGQgYmUgY2xlYXJlZCB0byB6ZXJvLgo+IC0JCSAqLwo+IC0JCWlmIChpbXg2X3BjaWUt PnZwaCAmJgo+IC0JCSAgICByZWd1bGF0b3JfZ2V0X3ZvbHRhZ2UoaW14Nl9wY2llLT52cGgpID4g MzAwMDAwMCkKPiAtCQkJcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDZfcGNpZS0+aW9tdXhjX2dwciwK PiAtCQkJCQkgICBpbXg2X3BjaWVfZ3JwX29mZnNldChpbXg2X3BjaWUpLAo+IC0JCQkJCSAgIElN WDhNUV9HUFJfUENJRV9WUkVHX0JZUEFTUywKPiAtCQkJCQkgICAwKTsKPiAtCQlicmVhazsKPiAt CWNhc2UgSU1YN0Q6Cj4gLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDZfcGNpZS0+aW9tdXhjX2dw ciwgSU9NVVhDX0dQUjEyLAo+IC0JCQkJICAgSU1YN0RfR1BSMTJfUENJRV9QSFlfUkVGQ0xLX1NF TCwgMCk7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIElNWDZTWDoKPiAtCQlyZWdtYXBfdXBkYXRlX2Jp dHMoaW14Nl9wY2llLT5pb211eGNfZ3ByLCBJT01VWENfR1BSMTIsCj4gLQkJCQkgICBJTVg2U1hf R1BSMTJfUENJRV9SWF9FUV9NQVNLLAo+IC0JCQkJICAgSU1YNlNYX0dQUjEyX1BDSUVfUlhfRVFf Mik7Cj4gLQkJZmFsbHRocm91Z2g7Cj4gLQlkZWZhdWx0Ogo+IC0JCXJlZ21hcF91cGRhdGVfYml0 cyhpbXg2X3BjaWUtPmlvbXV4Y19ncHIsIElPTVVYQ19HUFIxMiwKPiArCQkJCSAgIElNWDhNUV9H UFJfUENJRV9WUkVHX0JZUEFTUywKPiArCQkJCSAgIDApOwo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IGlteDdkX3BjaWVfaW5pdF9waHkoc3RydWN0IGlteDZfcGNpZSAq aW14Nl9wY2llKQo+ICt7Cj4gKwlyZWdtYXBfdXBkYXRlX2JpdHMoaW14Nl9wY2llLT5pb211eGNf Z3ByLCBJT01VWENfR1BSMTIsIElNWDdEX0dQUjEyX1BDSUVfUEhZX1JFRkNMS19TRUwsIDApOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGlteDZfcGNpZV9pbml0X3Bo eShzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUpCj4gK3sKPiArCXJlZ21hcF91cGRhdGVfYml0 cyhpbXg2X3BjaWUtPmlvbXV4Y19ncHIsIElPTVVYQ19HUFIxMiwKPiAgCQkJCSAgIElNWDZRX0dQ UjEyX1BDSUVfQ1RMXzIsIDAgPDwgMTApOwo+ICAKPiAtCQkvKiBjb25maWd1cmUgY29uc3RhbnQg aW5wdXQgc2lnbmFsIHRvIHRoZSBwY2llIGN0cmwgYW5kIHBoeSAqLwo+IC0JCXJlZ21hcF91cGRh dGVfYml0cyhpbXg2X3BjaWUtPmlvbXV4Y19ncHIsIElPTVVYQ19HUFIxMiwKPiAtCQkJCSAgIElN WDZRX0dQUjEyX0xPU19MRVZFTCwgOSA8PCA0KTsKPiAtCj4gLQkJcmVnbWFwX3VwZGF0ZV9iaXRz KGlteDZfcGNpZS0+aW9tdXhjX2dwciwgSU9NVVhDX0dQUjgsCj4gLQkJCQkgICBJTVg2UV9HUFI4 X1RYX0RFRU1QSF9HRU4xLAo+IC0JCQkJICAgaW14Nl9wY2llLT50eF9kZWVtcGhfZ2VuMSA8PCAw KTsKPiAtCQlyZWdtYXBfdXBkYXRlX2JpdHMoaW14Nl9wY2llLT5pb211eGNfZ3ByLCBJT01VWENf R1BSOCwKPiAtCQkJCSAgIElNWDZRX0dQUjhfVFhfREVFTVBIX0dFTjJfM1A1REIsCj4gLQkJCQkg ICBpbXg2X3BjaWUtPnR4X2RlZW1waF9nZW4yXzNwNWRiIDw8IDYpOwo+IC0JCXJlZ21hcF91cGRh dGVfYml0cyhpbXg2X3BjaWUtPmlvbXV4Y19ncHIsIElPTVVYQ19HUFI4LAo+IC0JCQkJICAgSU1Y NlFfR1BSOF9UWF9ERUVNUEhfR0VOMl82REIsCj4gLQkJCQkgICBpbXg2X3BjaWUtPnR4X2RlZW1w aF9nZW4yXzZkYiA8PCAxMik7Cj4gLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDZfcGNpZS0+aW9t dXhjX2dwciwgSU9NVVhDX0dQUjgsCj4gLQkJCQkgICBJTVg2UV9HUFI4X1RYX1NXSU5HX0ZVTEws Cj4gLQkJCQkgICBpbXg2X3BjaWUtPnR4X3N3aW5nX2Z1bGwgPDwgMTgpOwo+IC0JCXJlZ21hcF91 cGRhdGVfYml0cyhpbXg2X3BjaWUtPmlvbXV4Y19ncHIsIElPTVVYQ19HUFI4LAo+IC0JCQkJICAg SU1YNlFfR1BSOF9UWF9TV0lOR19MT1csCj4gLQkJCQkgICBpbXg2X3BjaWUtPnR4X3N3aW5nX2xv dyA8PCAyNSk7Cj4gLQkJYnJlYWs7Cj4gLQl9Cj4gKwkvKiBjb25maWd1cmUgY29uc3RhbnQgaW5w dXQgc2lnbmFsIHRvIHRoZSBwY2llIGN0cmwgYW5kIHBoeSAqLwo+ICsJcmVnbWFwX3VwZGF0ZV9i aXRzKGlteDZfcGNpZS0+aW9tdXhjX2dwciwgSU9NVVhDX0dQUjEyLAo+ICsJCQkgICBJTVg2UV9H UFIxMl9MT1NfTEVWRUwsIDkgPDwgNCk7Cj4gKwo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDZf cGNpZS0+aW9tdXhjX2dwciwgSU9NVVhDX0dQUjgsCj4gKwkJCSAgIElNWDZRX0dQUjhfVFhfREVF TVBIX0dFTjEsCj4gKwkJCSAgIGlteDZfcGNpZS0+dHhfZGVlbXBoX2dlbjEgPDwgMCk7Cj4gKwly ZWdtYXBfdXBkYXRlX2JpdHMoaW14Nl9wY2llLT5pb211eGNfZ3ByLCBJT01VWENfR1BSOCwKPiAr CQkJICAgSU1YNlFfR1BSOF9UWF9ERUVNUEhfR0VOMl8zUDVEQiwKPiArCQkJICAgaW14Nl9wY2ll LT50eF9kZWVtcGhfZ2VuMl8zcDVkYiA8PCA2KTsKPiArCXJlZ21hcF91cGRhdGVfYml0cyhpbXg2 X3BjaWUtPmlvbXV4Y19ncHIsIElPTVVYQ19HUFI4LAo+ICsJCQkgICBJTVg2UV9HUFI4X1RYX0RF RU1QSF9HRU4yXzZEQiwKPiArCQkJICAgaW14Nl9wY2llLT50eF9kZWVtcGhfZ2VuMl82ZGIgPDwg MTIpOwo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKGlteDZfcGNpZS0+aW9tdXhjX2dwciwgSU9NVVhD X0dQUjgsCj4gKwkJCSAgIElNWDZRX0dQUjhfVFhfU1dJTkdfRlVMTCwKPiArCQkJICAgaW14Nl9w Y2llLT50eF9zd2luZ19mdWxsIDw8IDE4KTsKPiArCXJlZ21hcF91cGRhdGVfYml0cyhpbXg2X3Bj aWUtPmlvbXV4Y19ncHIsIElPTVVYQ19HUFI4LAo+ICsJCQkgICBJTVg2UV9HUFI4X1RYX1NXSU5H X0xPVywKPiArCQkJICAgaW14Nl9wY2llLT50eF9zd2luZ19sb3cgPDwgMjUpOwo+ICsJcmV0dXJu IDA7Cj4gK30KPiAgCj4gLQlpbXg2X3BjaWVfY29uZmlndXJlX3R5cGUoaW14Nl9wY2llKTsKPiAr c3RhdGljIGludCBpbXg2c3hfcGNpZV9pbml0X3BoeShzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3Bj aWUpCj4gK3sKPiArCXJlZ21hcF91cGRhdGVfYml0cyhpbXg2X3BjaWUtPmlvbXV4Y19ncHIsIElP TVVYQ19HUFIxMiwKPiArCQkJICAgSU1YNlNYX0dQUjEyX1BDSUVfUlhfRVFfTUFTSywgSU1YNlNY X0dQUjEyX1BDSUVfUlhfRVFfMik7Cj4gKwo+ICsJcmV0dXJuIGlteDZfcGNpZV9pbml0X3BoeShp bXg2X3BjaWUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbXg3ZF9wY2llX3dhaXRfZm9yX3Bo eV9wbGxfbG9jayhzdHJ1Y3QgaW14Nl9wY2llICppbXg2X3BjaWUpCj4gQEAgLTkwMiw3ICs4OTYs MTEgQEAgc3RhdGljIGludCBpbXg2X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpw cCkKPiAgCX0KPiAgCj4gIAlpbXg2X3BjaWVfYXNzZXJ0X2NvcmVfcmVzZXQoaW14Nl9wY2llKTsK PiAtCWlteDZfcGNpZV9pbml0X3BoeShpbXg2X3BjaWUpOwo+ICsKPiArCWlmIChpbXg2X3BjaWUt PmRydmRhdGEtPmluaXRfcGh5KQo+ICsJCWlteDZfcGNpZS0+ZHJ2ZGF0YS0+aW5pdF9waHkoaW14 Nl9wY2llKTsKPiArCj4gKwlpbXg2X3BjaWVfY29uZmlndXJlX3R5cGUoaW14Nl9wY2llKTsKPiAg Cj4gIAlyZXQgPSBpbXg2X3BjaWVfY2xrX2VuYWJsZShpbXg2X3BjaWUpOwo+ICAJaWYgKHJldCkg ewo+IEBAIC0xMzg2LDYgKzEzODQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDZfcGNpZV9k cnZkYXRhIGRydmRhdGFbXSA9IHsKPiAgCQkubHRzc21fbWFzayA9IElNWDZRX0dQUjEyX1BDSUVf Q1RMXzIsCj4gIAkJLm1vZGVfb2ZmWzBdID0gSU9NVVhDX0dQUjEyLAo+ICAJCS5tb2RlX21hc2tb MF0gPSBJTVg2UV9HUFIxMl9ERVZJQ0VfVFlQRSwKPiArCQkuaW5pdF9waHkgPSBpbXg2X3BjaWVf aW5pdF9waHksCj4gIAl9LAo+ICAJW0lNWDZTWF0gPSB7Cj4gIAkJLnZhcmlhbnQgPSBJTVg2U1gs Cj4gQEAgLTEzOTksNiArMTM5OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14Nl9wY2llX2Ry dmRhdGEgZHJ2ZGF0YVtdID0gewo+ICAJCS5sdHNzbV9tYXNrID0gSU1YNlFfR1BSMTJfUENJRV9D VExfMiwKPiAgCQkubW9kZV9vZmZbMF0gPSBJT01VWENfR1BSMTIsCj4gIAkJLm1vZGVfbWFza1sw XSA9IElNWDZRX0dQUjEyX0RFVklDRV9UWVBFLAo+ICsJCS5pbml0X3BoeSA9IGlteDZzeF9wY2ll X2luaXRfcGh5LAo+ICAJfSwKPiAgCVtJTVg2UVBdID0gewo+ICAJCS52YXJpYW50ID0gSU1YNlFQ LAo+IEBAIC0xNDEzLDYgKzE0MTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDZfcGNpZV9k cnZkYXRhIGRydmRhdGFbXSA9IHsKPiAgCQkubHRzc21fbWFzayA9IElNWDZRX0dQUjEyX1BDSUVf Q1RMXzIsCj4gIAkJLm1vZGVfb2ZmWzBdID0gSU9NVVhDX0dQUjEyLAo+ICAJCS5tb2RlX21hc2tb MF0gPSBJTVg2UV9HUFIxMl9ERVZJQ0VfVFlQRSwKPiArCQkuaW5pdF9waHkgPSBpbXg2X3BjaWVf aW5pdF9waHksCj4gIAl9LAo+ICAJW0lNWDdEXSA9IHsKPiAgCQkudmFyaWFudCA9IElNWDdELAo+ IEBAIC0xNDI0LDYgKzE0MjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDZfcGNpZV9kcnZk YXRhIGRydmRhdGFbXSA9IHsKPiAgCQkuY2xrc19jbnQgPSBBUlJBWV9TSVpFKGlteDZfM2Nsa3Nf YnVzX3BjaWVfcGh5KSwKPiAgCQkubW9kZV9vZmZbMF0gPSBJT01VWENfR1BSMTIsCj4gIAkJLm1v ZGVfbWFza1swXSA9IElNWDZRX0dQUjEyX0RFVklDRV9UWVBFLAo+ICsJCS5pbml0X3BoeSA9IGlt eDdkX3BjaWVfaW5pdF9waHksCj4gIAl9LAo+ICAJW0lNWDhNUV0gPSB7Cj4gIAkJLnZhcmlhbnQg PSBJTVg4TVEsCj4gQEAgLTE0MzYsNiArMTQzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14 Nl9wY2llX2RydmRhdGEgZHJ2ZGF0YVtdID0gewo+ICAJCS5tb2RlX21hc2tbMF0gPSBJTVg2UV9H UFIxMl9ERVZJQ0VfVFlQRSwKPiAgCQkubW9kZV9vZmZbMV0gPSBJT01VWENfR1BSMTIsCj4gIAkJ Lm1vZGVfbWFza1sxXSA9IElNWDhNUV9HUFIxMl9QQ0lFMl9DVFJMX0RFVklDRV9UWVBFLAo+ICsJ CS5pbml0X3BoeSA9IGlteDhtcV9wY2llX2luaXRfcGh5LAo+ICAJfSwKPiAgCVtJTVg4TU1dID0g ewo+ICAJCS52YXJpYW50ID0gSU1YOE1NLAo+IEBAIC0xNDcxLDYgKzE0NzQsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGlteDZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHsKPiAgCQkubW9kZV9t YXNrWzBdID0gSU1YNlFfR1BSMTJfREVWSUNFX1RZUEUsCj4gIAkJLm1vZGVfb2ZmWzFdID0gSU9N VVhDX0dQUjEyLAo+ICAJCS5tb2RlX21hc2tbMV0gPSBJTVg4TVFfR1BSMTJfUENJRTJfQ1RSTF9E RVZJQ0VfVFlQRSwKPiArCQkuaW5pdF9waHkgPSBpbXg4bXFfcGNpZV9pbml0X3BoeSwKPiAgCX0s Cj4gIAlbSU1YOE1NX0VQXSA9IHsKPiAgCQkudmFyaWFudCA9IElNWDhNTV9FUCwKPiAtLSAKPiAy LjM0LjEKPiAKCi0tIArgrq7grqPgrr/grrXgrqPgr43grqPgrqngr40g4K6a4K6k4K6+4K6a4K6/ 4K614K6u4K+NCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==