From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x224kGp+QVHA7TVf9cRZcN+8q5eQQRQlEYCfKnCHc71z+zTS9cE53TViekOycBjhSE5mKuIsX ARC-Seal: i=1; a=rsa-sha256; t=1517207125; cv=none; d=google.com; s=arc-20160816; b=X5tPa0X/UvtBUVzTVw9N5dv6WY92StML+sbDRmVdq1KHj2BM3P2xevzS7coDoZaAm2 ZfL2/TkuS0tnOg74ycAReK9dcUFGgfqF1NdBnT+0wDqBh/lzPIe3Q9a8iGwHC9dg429+ ikDuKwdmddXCn34Isx1dIGDPjnWVT4kxiKgMQ067rahyaCD8WqT4sxNH1V1VlQVviWVl +QIyWA7ADdttxkbsK2ooRj8HKUvy7DQmHirBv4eOkfNF/53JrtjiUN+bPF+91Aj91EVz epuwD6zf4CWA8WQLbzeQw61mCnjVO64oZ1XU4WTloiRdBOuqfOtKEXGm0qC253D6dzXy cM5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=spamdiagnosticmetadata:spamdiagnosticoutput:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=QpIlAfDrK2LvymSo2sH8DBzkzEH0yM7hpQcINzJbugs=; b=V8fO3pl3xMFG+8455kFTSzNylReL072KyDpXHsoNgU77ESZNsgS0C/otGvNMLMd6l8 4UFkEZ9MYI3PrDdX9NyxCY4+UrAeZBkPnqHoAO1NnSn5/Z/27EhJKss5Z0d47SBcUMNS /INKxUrcx2j+cg9oO4eBrEb+Kd7l+tKDq0cuzik19KO+SX64/VrvshSL23oaiJ+HGQ0N xX3RBWAlMQGo/7ChaQ91PuNd8KKr8szYrlEV+bcWfXPP6zLQX3HHBSOJN2BqwPAf2jsh WyRMi97iSqP7Ub+ZhLEwIrGYQvBjq/xPmj+9k7IaUcdWrrSxSbVVDLwg6QPbNKbpo1ZG 4eHA== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning hzpeterchen@gmail.com does not designate 104.47.37.42 as permitted sender) smtp.mailfrom=hzpeterchen@gmail.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning hzpeterchen@gmail.com does not designate 104.47.37.42 as permitted sender) smtp.mailfrom=hzpeterchen@gmail.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Authentication-Results: spf=softfail (sender IP is 192.88.168.50) smtp.mailfrom=gmail.com; linuxfoundation.org; dkim=none (message not signed) header.d=none;linuxfoundation.org; dmarc=fail action=none header.from=gmail.com; Date: Mon, 29 Jan 2018 11:33:15 +0800 From: Peter Chen To: Sebastian Reichel CC: Peter Chen , Greg Kroah-Hartman , , , Ian Ray , Nandor Han , Fabien Lahoudere , Subject: Re: [PATCH 2/2] usb: chipidea: imx: Fix ULPI on imx53 Message-ID: <20180129033315.GA20311@b29397-desktop> References: <20180124171439.10721-1-sebastian.reichel@collabora.co.uk> <20180124171439.10721-2-sebastian.reichel@collabora.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20180124171439.10721-2-sebastian.reichel@collabora.co.uk> User-Agent: Mutt/1.5.24 (2015-08-30) X-EOPAttributedMessage: 0 X-Matching-Connectors: 131616807248770446;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(39380400002)(39860400002)(376002)(346002)(396003)(2980300002)(189003)(199004)(73392002)(77096007)(54906003)(104016004)(1076002)(83506002)(23726003)(16586007)(8936002)(47776003)(76176011)(81166006)(58126008)(81156014)(8676002)(316002)(498600001)(106466001)(86362001)(26005)(2906002)(33896004)(82202002)(50466002)(107886003)(6862004)(6246003)(6666003)(2950100002)(87572001)(305945005)(68736007)(33656002)(76482006)(4326008)(105596002)(5660300001)(9686003)(83322999)(229853002)(55016002)(97736004)(46406003)(33716001)(73972006)(53936002)(97756001)(81442002)(356003)(336011)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR03MB1416;H:tx30smr01.am.freescale.net;FPR:;SPF:SoftFail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11OLC004;1:ANoBKd2fpsnarXpl4eEbCkSX4tIkYt7FCMgr0It51xHMc96Lyea7/XFb/prTXrwKV1EvcU/V7mr1IRLahHy4JaZhmxhlUZhWymP3qlKHOhGklhC99kzwvQfAdu2B1pDL X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 36ff6efc-46b9-4485-b58e-08d566e114ff X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(5600026)(4604075)(2017052603307);SRVR:BN3PR03MB1416; X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1416;3:OQFsMfzTHhUyH8vE1kNqu+FkMSOC79wClTFLrLI36xp3npi6IBImoQx4JcFoH939I5VVteT7ZEv7s4Fewmxs2Qpwgr+b2kKI8Zt40aU6GgIGxpHbbBo28ngM4KjcuKbYb3GGTDUPKKbCbjkQLdxNE4oEgr2voRR79Cb9lmT67vdd3C/femKIpG+m0YRmPvYMWDr3CpxNFYg23ctr+1T4VjRZRS0VJMg/S1vNu2BfBL3U3aO4xa5gTPKRQjI6fsPUdHLQZ2qyJvBvzG88AfYh7gjk/07HoxaQX25TmN20vh0GnOVKQWX47PLB8HDsACrGLvc5qUc5sNkwfhQ8VkoNsXzoOB4ND9SMkiEh5cWMReo=;25:/naSz1FO08zxlY5drwcUO2uJK6F9+Wt2gJB/j1pVfVCIz38u+K7ysJcSQgbL8JSF9W388Ycw8UBnYUDyu3/Ks4skKrSvzgb0IMwKJBrsqCZB8E9rb/tUK/n1KcSvf5iWknOITpLA/UAs/lPitkBFvzRh8AUhoiTrScXLUdkid8C+iRzQ9U02KgvW3O/9pLwOnjnK43/vvW//gL12M4AWy8v9khbObdfRWB7xDZrcwh8d6iIpgUVso4SWoTlPAwadlRcD5ltDmOADWq5sw/ZsOwbEGKNSKqYLPUu5Qrev34N47ZsYNsSGD0eC6oJDZdtE4qtrJeuB5B2sdoEHC17JrA== X-MS-TrafficTypeDiagnostic: BN3PR03MB1416: X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1416;31:qPO2xKBMVxApJllECG1Kv14dqfLg7xbNuoy7WIALKv6aD3bAS1lkA+2EDiwjhVdwi8sdVu8xXD9XHSQXZ9Moe2Yhs5a/BRIC+qlZWReKglfXl1cDIEct0T7dqFTmagvRKKGqmbI3bDL+QqS+ROuLTxEgKAAokxX5fxiVjiM5pvVBbgoQGN4gBXETWyCnWzhzsMpBdPVmNsXlmT41/ycT/3DU1+jQeFsT/455MNN5Ssw=;4:X46aql6X37jPXmQXnP/GrhCAmWRiwJmm41+D9z7p2pjc3jY34XUpTAd+kz7XfaZMvpbtS2g2OpUvpXSFIG+OL5Wj3kRjM0AVzal7q8SRXEeG+Ibc24wLTPO/nofSuDUq3p91hzEotDYYu2oN0nA2I/gFSQFmSJSEKEvLG+aEsJuSX1DOCkkAz8TEZ/fM1qV9vHamw/WatyHQHq09U1PN4ONgYU1qdkitylT2UnNFr65AVYHdSpFwZN04kO+iGmTQKH/KfnTpnRssSM4KXKn6Kg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095135)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231101)(944501161)(93006095)(93001095)(6055026)(6096035)(201703131430075)(201703131448075)(201703131433075)(201703151042153)(20161123565025)(20161123559100)(20161123563025)(20161123561025)(20161123556025)(201708071742011);SRVR:BN3PR03MB1416;BCL:0;PCL:0;RULEID:(400006);SRVR:BN3PR03MB1416; X-Forefront-PRVS: 0567A15835 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR03MB1416;23:cjcETBE8yTGo7S8xw7DwbwwQ+fSL+hpLiuo4F4wbL?= =?us-ascii?Q?EofL3yN2mMrfE3JkCvRrYiqpqpifDXTVupyoddFCpisgxfbbLWz+iQH0JyzG?= =?us-ascii?Q?/NezI9KmEluWAk5H6oCxOhwYphpkkhbX8D2cJZhQiKQGkJOmLPGixYvvJBKV?= =?us-ascii?Q?KVAfgHWExRxbPUa76lfMauUnXOqNulDPy0spJkzFcUInqJMnWxUmfbbHtHnd?= =?us-ascii?Q?qhmgL+zPN38QbuLGuhkUHcrxK+YHJwRC+meTne2/pc1+WdqcZ4Ip28ebLpl5?= =?us-ascii?Q?OHFc5DvePnAq1JntbmIz2OSEAmburkke5CVITCjZKELj7MYW7bk1QdS1QKWJ?= =?us-ascii?Q?84TYbeat866vJRJvg2U3MMjXIJxmQd8lKJdUztkyrIfeui0VmhicAM+Pu4uo?= =?us-ascii?Q?LUTNjq3lUVThg8QlHQHVisXzfWVbWZ7HCwVslyzxmJ77FuGcV8NU/+a4vA+M?= =?us-ascii?Q?R3sPA1uOD0Dpb09gXZfuBqJNR3HCzRCPQW4z2zXv97B3pyti1vIlgeeF7Doe?= =?us-ascii?Q?vVvHkZCT0sYdTWksQSTylDQfBxao8fEiEmk0PyF8NBLb3M1mj8AYx/kuiWeR?= =?us-ascii?Q?/BNoT7EuFMyX7G4oEVw/u7gvPWgZ9IlVB85nNfSlWiTIJkxxDMMpSgDdhwrj?= =?us-ascii?Q?bVY8/+Oc7jOqgCwuTr4BgcgG0z07ObziiCrBW9/xl5YtQYpbSWSZ2ohbSBpO?= =?us-ascii?Q?s3Uqequc46txpmjVIDat3YdMzoDoF2BRH9xoAx0aXacZYB+rTqhcAtzpA8Gp?= =?us-ascii?Q?0/4F26ZDPiGQSUzbd5ldIqw2CWaaKHinvBTT5xnT5OoXTmfjhTFJA6kbo7X1?= =?us-ascii?Q?XfBxQAIGF4oF6t3BrNEl9JHdwwUgi4pHjZbBGk9BcdLKS2JQ07ONv4igse8P?= =?us-ascii?Q?xxcWUo7cqiq9xQRq/tPqs+kot4EWkKeiKQdDzEOGympIT3A9WgAaVomMq/BT?= =?us-ascii?Q?m7+2IxfIMKCFRaC8mSjCU/PmH5e9vmySb6X44YMf3l/dyejIPfmklCA0igTg?= =?us-ascii?Q?CCL85ER8jMKTkgdpwcC51oYiRbm6d2fWIzO9JZei/q1BC1XuhjcHy+4CTNsH?= =?us-ascii?Q?w0r55wim1FZUVTU4zEsVme3CCupGmNKQTdwPY4oWsXAZDZlVPK14eCflO0Wp?= =?us-ascii?Q?d5ljgu6hGsExvtl/9TzBFwoda53eHd5pXo+ACBkkFy8R4VxvAI0xcWBYjsXv?= =?us-ascii?Q?Z/WP4/AT1JJiSSTJjYZt8JnzA8K52rpEWJET5S9bjLLsd8dZu+A2CA5NO/Wi?= =?us-ascii?Q?/8QtXNa6ynMK2w6bwb68k72qVjbSN/BKIsUttxLJJtTlDF19iFdxAM4eJiRj?= =?us-ascii?Q?gVVWt5Nu3iOMKCjtM4qwuY2UPCozP5cxGrs6bD5xik89hgPyNgxmJBQmxyji?= =?us-ascii?Q?QMqug=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1416;6:AgrNaL65QzoZcRPuf4i+A8k1jQr5Kg+MKBxHMocmMdvKH0iAw4hqC9QagoJ07AYM6R83ROHg4KQ/p4CtNpxZhuYzGjhN9hRK2JGJPkWpcXNXTWYa/PdBP0yJtdrDrj4t76eXYvlDpJs7MQQ6gqIMsq6Xku7HwdOpHgEE12STP2zdRvjTaIaE6l6bj31HMJKSAKAbspCHSGhzml1HvUafz3MNRethIb5OwM/ZkdWrmdPmCiZBEn09FeiHtutwFh4VCw02o3OZX77x1RX2HAGIrvu3sofzK89Q30JHXIsfC1TVm1253hlrOaG8wm6/p0PjDZ7KygKUf+VsYdhn0DBQV+DrsEcS5JsOe+003O8BxUQ=;5:IfDWyUpzrMD7aMi9hTWXmjsZY49HbHe7F8PrtxCO9hsTAIvAbveT9Gc1boAtJLE2l2+TLJ8cdJiltdqPGwEGDLsrd9UW2y6VEsz3WIzH5ytxhae3kdgNerg8yMmrSnYoreTT59l0B8mcSUKfaMxZM5a/rt7hhdIeZ2UI3uuzXcs=;24:/FXLEFSQjFJv7+fnkB2wcRCfhZECnCwop22bHzw9d6ntdi3JQBUlKa/i7MTi73jidMFs821D9apDpVyVuxFzUqvKWWrFqVJA1rnvh4pblWw=;7:6TOqdqwq0UQWSwEcncv58XYn0q0UD0l4H6K3RCTI27QJR0YZqEBzVg+lvU7LCsBI7zZR/1PIm66B3vlgHcFdqc/8A2S7vZn+Tr+fZiEc81fYD6tYq4NrzOWtvqWMJsdoQ8DAPCzW2hyyXJPFoBOxGlxncq2l4KP5on3Yh+3OLU/m+I5rnk3OeURn+wZA7ujvnVTPXwelHoooSel19d4ts+fwM8Lqjg9jviW3+4Dh7kdb14igOKGvXt/gSmuqsRF0 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 06:25:20.8835 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 36ff6efc-46b9-4485-b58e-08d566e114ff X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB1416 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590494846034483631?= X-GMAIL-MSGID: =?utf-8?q?1590906979208144541?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On Wed, Jan 24, 2018 at 06:14:39PM +0100, Sebastian Reichel wrote: > Traditionally, PORTSC should be set before initializing ULPI phys. But > setting PORTSC before powering on the phy results in a kernel freeze > on imx53 based GE PPD. As a workaround this initializes the phy early > in the imx platform code and disables phy power management from the > core. > > Signed-off-by: Fabien Lahoudere > Signed-off-by: Sebastian Reichel > --- > drivers/usb/chipidea/ci_hdrc_imx.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c > index de155c80eb70..e431c5aafe35 100644 > --- a/drivers/usb/chipidea/ci_hdrc_imx.c > +++ b/drivers/usb/chipidea/ci_hdrc_imx.c > @@ -83,6 +83,7 @@ struct ci_hdrc_imx_data { > struct clk *clk; > struct imx_usbmisc_data *usbmisc_data; > bool supports_runtime_pm; > + bool override_phy_control; > bool in_lpm; > /* SoC before i.mx6 (except imx23/imx28) needs three clks */ > bool need_three_clks; > @@ -254,6 +255,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) > int ret; > const struct of_device_id *of_id; > const struct ci_hdrc_imx_platform_flag *imx_platform_flag; > + struct device_node *np = pdev->dev.of_node; > > of_id = of_match_device(ci_hdrc_imx_dt_ids, &pdev->dev); > if (!of_id) > @@ -288,6 +290,14 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) > } > > pdata.usb_phy = data->phy; > + > + if (of_device_is_compatible(np, "fsl,imx53-usb") && pdata.usb_phy && > + of_usb_get_phy_mode(np) == USBPHY_INTERFACE_MODE_ULPI) { > + pdata.flags |= CI_HDRC_OVERRIDE_PHY_CONTROL; > + data->override_phy_control = true; > + usb_phy_init(pdata.usb_phy); > + } > + > pdata.flags |= imx_platform_flag->flags; > if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM) > data->supports_runtime_pm = true; > @@ -341,6 +351,8 @@ static int ci_hdrc_imx_remove(struct platform_device *pdev) > pm_runtime_put_noidle(&pdev->dev); > } > ci_hdrc_remove_device(data->ci_pdev); > + if (data->override_phy_control) > + usb_phy_shutdown(data->phy); > imx_disable_unprepare_clks(&pdev->dev); > Sebastian, I have a question, do you have any USB or generic PHY drivers for ULPI bus, any power controls are needed for your ULPI peripheral? -- Best Regards, Peter Chen From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [2/2] usb: chipidea: imx: Fix ULPI on imx53 From: Peter Chen Message-Id: <20180129033315.GA20311@b29397-desktop> Date: Mon, 29 Jan 2018 11:33:15 +0800 To: Sebastian Reichel Cc: Peter Chen , Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Ian Ray , Nandor Han , Fabien Lahoudere , kernel@lists.collabora.co.uk List-ID: T24gV2VkLCBKYW4gMjQsIDIwMTggYXQgMDY6MTQ6MzlQTSArMDEwMCwgU2ViYXN0aWFuIFJlaWNo ZWwgd3JvdGU6Cj4gVHJhZGl0aW9uYWxseSwgUE9SVFNDIHNob3VsZCBiZSBzZXQgYmVmb3JlIGlu aXRpYWxpemluZyBVTFBJIHBoeXMuIEJ1dAo+IHNldHRpbmcgUE9SVFNDIGJlZm9yZSBwb3dlcmlu ZyBvbiB0aGUgcGh5IHJlc3VsdHMgaW4gYSBrZXJuZWwgZnJlZXplCj4gb24gaW14NTMgYmFzZWQg R0UgUFBELiBBcyBhIHdvcmthcm91bmQgdGhpcyBpbml0aWFsaXplcyB0aGUgcGh5IGVhcmx5Cj4g aW4gdGhlIGlteCBwbGF0Zm9ybSBjb2RlIGFuZCBkaXNhYmxlcyBwaHkgcG93ZXIgbWFuYWdlbWVu dCBmcm9tIHRoZQo+IGNvcmUuCj4gCj4gU2lnbmVkLW9mZi1ieTogRmFiaWVuIExhaG91ZGVyZSA8 ZmFiaWVuLmxhaG91ZGVyZUBjb2xsYWJvcmEuY28udWs+Cj4gU2lnbmVkLW9mZi1ieTogU2ViYXN0 aWFuIFJlaWNoZWwgPHNlYmFzdGlhbi5yZWljaGVsQGNvbGxhYm9yYS5jby51az4KPiAtLS0KPiAg ZHJpdmVycy91c2IvY2hpcGlkZWEvY2lfaGRyY19pbXguYyB8IDEyICsrKysrKysrKysrKwo+ICAx IGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3VzYi9jaGlwaWRlYS9jaV9oZHJjX2lteC5jIGIvZHJpdmVycy91c2IvY2hpcGlkZWEvY2lfaGRy Y19pbXguYwo+IGluZGV4IGRlMTU1YzgwZWI3MC4uZTQzMWM1YWFmZTM1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvdXNiL2NoaXBpZGVhL2NpX2hkcmNfaW14LmMKPiArKysgYi9kcml2ZXJzL3VzYi9j aGlwaWRlYS9jaV9oZHJjX2lteC5jCj4gQEAgLTgzLDYgKzgzLDcgQEAgc3RydWN0IGNpX2hkcmNf aW14X2RhdGEgewo+ICAJc3RydWN0IGNsayAqY2xrOwo+ICAJc3RydWN0IGlteF91c2JtaXNjX2Rh dGEgKnVzYm1pc2NfZGF0YTsKPiAgCWJvb2wgc3VwcG9ydHNfcnVudGltZV9wbTsKPiArCWJvb2wg b3ZlcnJpZGVfcGh5X2NvbnRyb2w7Cj4gIAlib29sIGluX2xwbTsKPiAgCS8qIFNvQyBiZWZvcmUg aS5teDYgKGV4Y2VwdCBpbXgyMy9pbXgyOCkgbmVlZHMgdGhyZWUgY2xrcyAqLwo+ICAJYm9vbCBu ZWVkX3RocmVlX2Nsa3M7Cj4gQEAgLTI1NCw2ICsyNTUsNyBAQCBzdGF0aWMgaW50IGNpX2hkcmNf aW14X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlpbnQgcmV0Owo+ICAJ Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQ7Cj4gIAljb25zdCBzdHJ1Y3QgY2lfaGRy Y19pbXhfcGxhdGZvcm1fZmxhZyAqaW14X3BsYXRmb3JtX2ZsYWc7Cj4gKwlzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wID0gcGRldi0+ZGV2Lm9mX25vZGU7Cj4gIAo+ICAJb2ZfaWQgPSBvZl9tYXRjaF9k ZXZpY2UoY2lfaGRyY19pbXhfZHRfaWRzLCAmcGRldi0+ZGV2KTsKPiAgCWlmICghb2ZfaWQpCj4g QEAgLTI4OCw2ICsyOTAsMTQgQEAgc3RhdGljIGludCBjaV9oZHJjX2lteF9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJfQo+ICAKPiAgCXBkYXRhLnVzYl9waHkgPSBkYXRh LT5waHk7Cj4gKwo+ICsJaWYgKG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLCAiZnNsLGlteDUz LXVzYiIpICYmIHBkYXRhLnVzYl9waHkgJiYKPiArCSAgICBvZl91c2JfZ2V0X3BoeV9tb2RlKG5w KSA9PSBVU0JQSFlfSU5URVJGQUNFX01PREVfVUxQSSkgewo+ICsJCXBkYXRhLmZsYWdzIHw9IENJ X0hEUkNfT1ZFUlJJREVfUEhZX0NPTlRST0w7Cj4gKwkJZGF0YS0+b3ZlcnJpZGVfcGh5X2NvbnRy b2wgPSB0cnVlOwo+ICsJCXVzYl9waHlfaW5pdChwZGF0YS51c2JfcGh5KTsKPiArCX0KPiArCj4g IAlwZGF0YS5mbGFncyB8PSBpbXhfcGxhdGZvcm1fZmxhZy0+ZmxhZ3M7Cj4gIAlpZiAocGRhdGEu ZmxhZ3MgJiBDSV9IRFJDX1NVUFBPUlRTX1JVTlRJTUVfUE0pCj4gIAkJZGF0YS0+c3VwcG9ydHNf cnVudGltZV9wbSA9IHRydWU7Cj4gQEAgLTM0MSw2ICszNTEsOCBAQCBzdGF0aWMgaW50IGNpX2hk cmNfaW14X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJCXBtX3J1bnRp bWVfcHV0X25vaWRsZSgmcGRldi0+ZGV2KTsKPiAgCX0KPiAgCWNpX2hkcmNfcmVtb3ZlX2Rldmlj ZShkYXRhLT5jaV9wZGV2KTsKPiArCWlmIChkYXRhLT5vdmVycmlkZV9waHlfY29udHJvbCkKPiAr CQl1c2JfcGh5X3NodXRkb3duKGRhdGEtPnBoeSk7Cj4gIAlpbXhfZGlzYWJsZV91bnByZXBhcmVf Y2xrcygmcGRldi0+ZGV2KTsKPiAgCgpTZWJhc3RpYW4sIEkgaGF2ZSBhIHF1ZXN0aW9uLCBkbyB5 b3UgaGF2ZSBhbnkgVVNCIG9yIGdlbmVyaWMgUEhZIGRyaXZlcnMKZm9yIFVMUEkgYnVzLCBhbnkg cG93ZXIgY29udHJvbHMgYXJlIG5lZWRlZCBmb3IgeW91ciBVTFBJIHBlcmlwaGVyYWw/Cg==