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 X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EFC92C43381 for ; Fri, 29 Mar 2019 04:15:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C449D21773 for ; Fri, 29 Mar 2019 04:15:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728409AbfC2EOd (ORCPT ); Fri, 29 Mar 2019 00:14:33 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:5201 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725866AbfC2EO1 (ORCPT ); Fri, 29 Mar 2019 00:14:27 -0400 Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 355686B58BC63A91D58D; Fri, 29 Mar 2019 12:14:25 +0800 (CST) Received: from vm100-107-113-134.huawei.com (100.107.113.134) by DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id 14.3.408.0; Fri, 29 Mar 2019 12:14:18 +0800 From: Yu Chen To: , , CC: , , , , , , , , , , , , , , Yu Chen , Andy Shevchenko , Felipe Balbi , "Greg Kroah-Hartman" , Binghui Wang Subject: [PATCH v5 04/13] usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc Date: Fri, 29 Mar 2019 12:14:00 +0800 Message-ID: <20190329041409.70138-5-chenyu56@huawei.com> X-Mailer: git-send-email 2.15.0-rc2 In-Reply-To: <20190329041409.70138-1-chenyu56@huawei.com> References: <20190329041409.70138-1-chenyu56@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [100.107.113.134] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SPLIT_BOUNDARY_DISABLE should be set for DesignWare USB3 DRD Core of Hisilicon Kirin Soc when dwc3 core act as host. Cc: Andy Shevchenko Cc: Felipe Balbi Cc: Greg Kroah-Hartman Cc: John Stultz Cc: Binghui Wang Signed-off-by: Yu Chen --- v4: * Add dwc3_complete definition while CONFIG_PM_SLEEP does not defined. * Add description for 'dis_split_quirk'. --- --- drivers/usb/dwc3/core.c | 26 ++++++++++++++++++++++++++ drivers/usb/dwc3/core.h | 7 +++++++ 2 files changed, 33 insertions(+) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index a1b126f90261..c3ef6bd2b0d4 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -117,6 +117,7 @@ static void __dwc3_set_mode(struct work_struct *work) struct dwc3 *dwc = work_to_dwc(work); unsigned long flags; int ret; + u32 reg; if (dwc->dr_mode != USB_DR_MODE_OTG) return; @@ -169,6 +170,11 @@ static void __dwc3_set_mode(struct work_struct *work) phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST); phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST); phy_calibrate(dwc->usb2_generic_phy); + if (dwc->dis_split_quirk) { + reg = dwc3_readl(dwc->regs, DWC3_GUCTL3); + reg |= DWC3_GUCTL3_SPLITDISABLE; + dwc3_writel(dwc->regs, DWC3_GUCTL3, reg); + } } break; case DWC3_GCTL_PRTCAP_DEVICE: @@ -1306,6 +1312,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) dwc->dis_metastability_quirk = device_property_read_bool(dev, "snps,dis_metastability_quirk"); + dwc->dis_split_quirk = device_property_read_bool(dev, + "snps,dis-split-quirk"); + dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; @@ -1825,10 +1834,27 @@ static int dwc3_resume(struct device *dev) return 0; } + +static void dwc3_complete(struct device *dev) +{ + struct dwc3 *dwc = dev_get_drvdata(dev); + u32 reg; + + if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST && + dwc->dis_split_quirk) { + dev_dbg(dwc->dev, "set DWC3_GUCTL3_SPLITDISABLE\n"); + reg = dwc3_readl(dwc->regs, DWC3_GUCTL3); + reg |= DWC3_GUCTL3_SPLITDISABLE; + dwc3_writel(dwc->regs, DWC3_GUCTL3, reg); + } +} +#else +#define dwc3_complete NULL #endif /* CONFIG_PM_SLEEP */ static const struct dev_pm_ops dwc3_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(dwc3_suspend, dwc3_resume) + .complete = dwc3_complete, SET_RUNTIME_PM_OPS(dwc3_runtime_suspend, dwc3_runtime_resume, dwc3_runtime_idle) }; diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index 1528d395b156..28475e301ad9 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -136,6 +136,7 @@ #define DWC3_GEVNTCOUNT(n) (0xc40c + ((n) * 0x10)) #define DWC3_GHWPARAMS8 0xc600 +#define DWC3_GUCTL3 0xc60c #define DWC3_GFLADJ 0xc630 /* Device Registers */ @@ -370,6 +371,9 @@ /* Global User Control Register 2 */ #define DWC3_GUCTL2_RST_ACTBITLATER BIT(14) +/* Global User Control Register 3 */ +#define DWC3_GUCTL3_SPLITDISABLE BIT(14) + /* Device Configuration Register */ #define DWC3_DCFG_DEVADDR(addr) ((addr) << 3) #define DWC3_DCFG_DEVADDR_MASK DWC3_DCFG_DEVADDR(0x7f) @@ -1030,6 +1034,7 @@ struct dwc3_scratchpad_array { * 2 - No de-emphasis * 3 - Reserved * @dis_metastability_quirk: set to disable metastability quirk. + * @dis_split_quirk: set to disable split boundary. * @imod_interval: set the interrupt moderation interval in 250ns * increments or 0 to disable. */ @@ -1216,6 +1221,8 @@ struct dwc3 { unsigned dis_metastability_quirk:1; + unsigned dis_split_quirk:1; + u16 imod_interval; }; -- 2.15.0-rc2 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Chen Subject: [PATCH v5 04/13] usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc Date: Fri, 29 Mar 2019 12:14:00 +0800 Message-ID: <20190329041409.70138-5-chenyu56@huawei.com> References: <20190329041409.70138-1-chenyu56@huawei.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <20190329041409.70138-1-chenyu56@huawei.com> Sender: linux-kernel-owner@vger.kernel.org To: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.stultz@linaro.org, suzhuangluan@hisilicon.com, kongfei@hisilicon.com, liuyu712@hisilicon.com, wanghu17@hisilicon.com, butao@hisilicon.com, chenyao11@huawei.com, fangshengzhou@hisilicon.com, lipengcheng8@huawei.com, songxiaowei@hisilicon.com, xuyiping@hisilicon.com, xuyoujun4@huawei.com, yudongbin@hisilicon.com, zangleigang@hisilicon.com, Yu Chen , Andy Shevchenko , Felipe Balbi , Greg Kroah-Hartman , Binghui Wang List-Id: devicetree@vger.kernel.org SPLIT_BOUNDARY_DISABLE should be set for DesignWare USB3 DRD Core of Hisilicon Kirin Soc when dwc3 core act as host. Cc: Andy Shevchenko Cc: Felipe Balbi Cc: Greg Kroah-Hartman Cc: John Stultz Cc: Binghui Wang Signed-off-by: Yu Chen --- v4: * Add dwc3_complete definition while CONFIG_PM_SLEEP does not defined. * Add description for 'dis_split_quirk'. --- --- drivers/usb/dwc3/core.c | 26 ++++++++++++++++++++++++++ drivers/usb/dwc3/core.h | 7 +++++++ 2 files changed, 33 insertions(+) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index a1b126f90261..c3ef6bd2b0d4 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -117,6 +117,7 @@ static void __dwc3_set_mode(struct work_struct *work) struct dwc3 *dwc = work_to_dwc(work); unsigned long flags; int ret; + u32 reg; if (dwc->dr_mode != USB_DR_MODE_OTG) return; @@ -169,6 +170,11 @@ static void __dwc3_set_mode(struct work_struct *work) phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST); phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST); phy_calibrate(dwc->usb2_generic_phy); + if (dwc->dis_split_quirk) { + reg = dwc3_readl(dwc->regs, DWC3_GUCTL3); + reg |= DWC3_GUCTL3_SPLITDISABLE; + dwc3_writel(dwc->regs, DWC3_GUCTL3, reg); + } } break; case DWC3_GCTL_PRTCAP_DEVICE: @@ -1306,6 +1312,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) dwc->dis_metastability_quirk = device_property_read_bool(dev, "snps,dis_metastability_quirk"); + dwc->dis_split_quirk = device_property_read_bool(dev, + "snps,dis-split-quirk"); + dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; @@ -1825,10 +1834,27 @@ static int dwc3_resume(struct device *dev) return 0; } + +static void dwc3_complete(struct device *dev) +{ + struct dwc3 *dwc = dev_get_drvdata(dev); + u32 reg; + + if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST && + dwc->dis_split_quirk) { + dev_dbg(dwc->dev, "set DWC3_GUCTL3_SPLITDISABLE\n"); + reg = dwc3_readl(dwc->regs, DWC3_GUCTL3); + reg |= DWC3_GUCTL3_SPLITDISABLE; + dwc3_writel(dwc->regs, DWC3_GUCTL3, reg); + } +} +#else +#define dwc3_complete NULL #endif /* CONFIG_PM_SLEEP */ static const struct dev_pm_ops dwc3_dev_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(dwc3_suspend, dwc3_resume) + .complete = dwc3_complete, SET_RUNTIME_PM_OPS(dwc3_runtime_suspend, dwc3_runtime_resume, dwc3_runtime_idle) }; diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index 1528d395b156..28475e301ad9 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -136,6 +136,7 @@ #define DWC3_GEVNTCOUNT(n) (0xc40c + ((n) * 0x10)) #define DWC3_GHWPARAMS8 0xc600 +#define DWC3_GUCTL3 0xc60c #define DWC3_GFLADJ 0xc630 /* Device Registers */ @@ -370,6 +371,9 @@ /* Global User Control Register 2 */ #define DWC3_GUCTL2_RST_ACTBITLATER BIT(14) +/* Global User Control Register 3 */ +#define DWC3_GUCTL3_SPLITDISABLE BIT(14) + /* Device Configuration Register */ #define DWC3_DCFG_DEVADDR(addr) ((addr) << 3) #define DWC3_DCFG_DEVADDR_MASK DWC3_DCFG_DEVADDR(0x7f) @@ -1030,6 +1034,7 @@ struct dwc3_scratchpad_array { * 2 - No de-emphasis * 3 - Reserved * @dis_metastability_quirk: set to disable metastability quirk. + * @dis_split_quirk: set to disable split boundary. * @imod_interval: set the interrupt moderation interval in 250ns * increments or 0 to disable. */ @@ -1216,6 +1221,8 @@ struct dwc3 { unsigned dis_metastability_quirk:1; + unsigned dis_split_quirk:1; + u16 imod_interval; }; -- 2.15.0-rc2 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: [v5,04/13] usb: dwc3: Add splitdisable quirk for Hisilicon Kirin Soc From: Yu Chen Message-Id: <20190329041409.70138-5-chenyu56@huawei.com> Date: Fri, 29 Mar 2019 12:14:00 +0800 To: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: john.stultz@linaro.org, suzhuangluan@hisilicon.com, kongfei@hisilicon.com, liuyu712@hisilicon.com, wanghu17@hisilicon.com, butao@hisilicon.com, chenyao11@huawei.com, fangshengzhou@hisilicon.com, lipengcheng8@huawei.com, songxiaowei@hisilicon.com, xuyiping@hisilicon.com, xuyoujun4@huawei.com, yudongbin@hisilicon.com, zangleigang@hisilicon.com, Yu Chen , Andy Shevchenko , Felipe Balbi , Greg Kroah-Hartman , Binghui Wang List-ID: U1BMSVRfQk9VTkRBUllfRElTQUJMRSBzaG91bGQgYmUgc2V0IGZvciBEZXNpZ25XYXJlIFVTQjMg RFJEIENvcmUKb2YgSGlzaWxpY29uIEtpcmluIFNvYyB3aGVuIGR3YzMgY29yZSBhY3QgYXMgaG9z dC4KCkNjOiBBbmR5IFNoZXZjaGVua28gPGFuZHkuc2hldmNoZW5rb0BnbWFpbC5jb20+CkNjOiBG ZWxpcGUgQmFsYmkgPGJhbGJpQGtlcm5lbC5vcmc+CkNjOiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdy ZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpDYzogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6QGxp bmFyby5vcmc+CkNjOiBCaW5naHVpIFdhbmcgPHdhbmdiaW5naHVpQGhpc2lsaWNvbi5jb20+ClNp Z25lZC1vZmYtYnk6IFl1IENoZW4gPGNoZW55dTU2QGh1YXdlaS5jb20+Ci0tLQp2NDoKKiBBZGQg ZHdjM19jb21wbGV0ZSBkZWZpbml0aW9uIHdoaWxlIENPTkZJR19QTV9TTEVFUCBkb2VzIG5vdCBk ZWZpbmVkLgoqIEFkZCBkZXNjcmlwdGlvbiBmb3IgJ2Rpc19zcGxpdF9xdWlyaycuCi0tLQotLS0K IGRyaXZlcnMvdXNiL2R3YzMvY29yZS5jIHwgMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvdXNiL2R3YzMvY29yZS5oIHwgIDcgKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAz MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMgYi9k cml2ZXJzL3VzYi9kd2MzL2NvcmUuYwppbmRleCBhMWIxMjZmOTAyNjEuLmMzZWY2YmQyYjBkNCAx MDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmMKKysrIGIvZHJpdmVycy91c2IvZHdj My9jb3JlLmMKQEAgLTExNyw2ICsxMTcsNyBAQCBzdGF0aWMgdm9pZCBfX2R3YzNfc2V0X21vZGUo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCBkd2MzICpkd2MgPSB3b3JrX3RvX2R3 Yyh3b3JrKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXQ7CisJdTMyIHJlZzsKIAog CWlmIChkd2MtPmRyX21vZGUgIT0gVVNCX0RSX01PREVfT1RHKQogCQlyZXR1cm47CkBAIC0xNjks NiArMTcwLDExIEBAIHN0YXRpYyB2b2lkIF9fZHdjM19zZXRfbW9kZShzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJCQlwaHlfc2V0X21vZGUoZHdjLT51c2IyX2dlbmVyaWNfcGh5LCBQSFlfTU9E RV9VU0JfSE9TVCk7CiAJCQlwaHlfc2V0X21vZGUoZHdjLT51c2IzX2dlbmVyaWNfcGh5LCBQSFlf TU9ERV9VU0JfSE9TVCk7CiAJCQlwaHlfY2FsaWJyYXRlKGR3Yy0+dXNiMl9nZW5lcmljX3BoeSk7 CisJCQlpZiAoZHdjLT5kaXNfc3BsaXRfcXVpcmspIHsKKwkJCQlyZWcgPSBkd2MzX3JlYWRsKGR3 Yy0+cmVncywgRFdDM19HVUNUTDMpOworCQkJCXJlZyB8PSBEV0MzX0dVQ1RMM19TUExJVERJU0FC TEU7CisJCQkJZHdjM193cml0ZWwoZHdjLT5yZWdzLCBEV0MzX0dVQ1RMMywgcmVnKTsKKwkJCX0K IAkJfQogCQlicmVhazsKIAljYXNlIERXQzNfR0NUTF9QUlRDQVBfREVWSUNFOgpAQCAtMTMwNiw2 ICsxMzEyLDkgQEAgc3RhdGljIHZvaWQgZHdjM19nZXRfcHJvcGVydGllcyhzdHJ1Y3QgZHdjMyAq ZHdjKQogCWR3Yy0+ZGlzX21ldGFzdGFiaWxpdHlfcXVpcmsgPSBkZXZpY2VfcHJvcGVydHlfcmVh ZF9ib29sKGRldiwKIAkJCQkic25wcyxkaXNfbWV0YXN0YWJpbGl0eV9xdWlyayIpOwogCisJZHdj LT5kaXNfc3BsaXRfcXVpcmsgPSBkZXZpY2VfcHJvcGVydHlfcmVhZF9ib29sKGRldiwKKwkJCQki c25wcyxkaXMtc3BsaXQtcXVpcmsiKTsKKwogCWR3Yy0+bHBtX255ZXRfdGhyZXNob2xkID0gbHBt X255ZXRfdGhyZXNob2xkOwogCWR3Yy0+dHhfZGVfZW1waGFzaXMgPSB0eF9kZV9lbXBoYXNpczsK IApAQCAtMTgyNSwxMCArMTgzNCwyNyBAQCBzdGF0aWMgaW50IGR3YzNfcmVzdW1lKHN0cnVjdCBk ZXZpY2UgKmRldikKIAogCXJldHVybiAwOwogfQorCitzdGF0aWMgdm9pZCBkd2MzX2NvbXBsZXRl KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHdjMwkqZHdjID0gZGV2X2dldF9kcnZk YXRhKGRldik7CisJdTMyCQlyZWc7CisKKwlpZiAoZHdjLT5jdXJyZW50X2RyX3JvbGUgPT0gRFdD M19HQ1RMX1BSVENBUF9IT1NUICYmCisJCQlkd2MtPmRpc19zcGxpdF9xdWlyaykgeworCQlkZXZf ZGJnKGR3Yy0+ZGV2LCAic2V0IERXQzNfR1VDVEwzX1NQTElURElTQUJMRVxuIik7CisJCXJlZyA9 IGR3YzNfcmVhZGwoZHdjLT5yZWdzLCBEV0MzX0dVQ1RMMyk7CisJCXJlZyB8PSBEV0MzX0dVQ1RM M19TUExJVERJU0FCTEU7CisJCWR3YzNfd3JpdGVsKGR3Yy0+cmVncywgRFdDM19HVUNUTDMsIHJl Zyk7CisJfQorfQorI2Vsc2UKKyNkZWZpbmUgZHdjM19jb21wbGV0ZSBOVUxMCiAjZW5kaWYgLyog Q09ORklHX1BNX1NMRUVQICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBkd2Mz X2Rldl9wbV9vcHMgPSB7CiAJU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMoZHdjM19zdXNwZW5kLCBk d2MzX3Jlc3VtZSkKKwkuY29tcGxldGUgPSBkd2MzX2NvbXBsZXRlLAogCVNFVF9SVU5USU1FX1BN X09QUyhkd2MzX3J1bnRpbWVfc3VzcGVuZCwgZHdjM19ydW50aW1lX3Jlc3VtZSwKIAkJCWR3YzNf cnVudGltZV9pZGxlKQogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5oIGIv ZHJpdmVycy91c2IvZHdjMy9jb3JlLmgKaW5kZXggMTUyOGQzOTViMTU2Li4yODQ3NWUzMDFhZDkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2R3YzMvY29yZS5oCisrKyBiL2RyaXZlcnMvdXNiL2R3 YzMvY29yZS5oCkBAIC0xMzYsNiArMTM2LDcgQEAKICNkZWZpbmUgRFdDM19HRVZOVENPVU5UKG4p CSgweGM0MGMgKyAoKG4pICogMHgxMCkpCiAKICNkZWZpbmUgRFdDM19HSFdQQVJBTVM4CQkweGM2 MDAKKyNkZWZpbmUgRFdDM19HVUNUTDMJCTB4YzYwYwogI2RlZmluZSBEV0MzX0dGTEFESgkJMHhj NjMwCiAKIC8qIERldmljZSBSZWdpc3RlcnMgKi8KQEAgLTM3MCw2ICszNzEsOSBAQAogLyogR2xv YmFsIFVzZXIgQ29udHJvbCBSZWdpc3RlciAyICovCiAjZGVmaW5lIERXQzNfR1VDVEwyX1JTVF9B Q1RCSVRMQVRFUgkJQklUKDE0KQogCisvKiBHbG9iYWwgVXNlciBDb250cm9sIFJlZ2lzdGVyIDMg Ki8KKyNkZWZpbmUgRFdDM19HVUNUTDNfU1BMSVRESVNBQkxFCQlCSVQoMTQpCisKIC8qIERldmlj ZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCiAjZGVmaW5lIERXQzNfRENGR19ERVZBRERSKGFk ZHIpCSgoYWRkcikgPDwgMykKICNkZWZpbmUgRFdDM19EQ0ZHX0RFVkFERFJfTUFTSwlEV0MzX0RD RkdfREVWQUREUigweDdmKQpAQCAtMTAzMCw2ICsxMDM0LDcgQEAgc3RydWN0IGR3YzNfc2NyYXRj aHBhZF9hcnJheSB7CiAgKiAJMgktIE5vIGRlLWVtcGhhc2lzCiAgKiAJMwktIFJlc2VydmVkCiAg KiBAZGlzX21ldGFzdGFiaWxpdHlfcXVpcms6IHNldCB0byBkaXNhYmxlIG1ldGFzdGFiaWxpdHkg cXVpcmsuCisgKiBAZGlzX3NwbGl0X3F1aXJrOiBzZXQgdG8gZGlzYWJsZSBzcGxpdCBib3VuZGFy eS4KICAqIEBpbW9kX2ludGVydmFsOiBzZXQgdGhlIGludGVycnVwdCBtb2RlcmF0aW9uIGludGVy dmFsIGluIDI1MG5zCiAgKiAgICAgICAgICAgICAgICAgaW5jcmVtZW50cyBvciAwIHRvIGRpc2Fi bGUuCiAgKi8KQEAgLTEyMTYsNiArMTIyMSw4IEBAIHN0cnVjdCBkd2MzIHsKIAogCXVuc2lnbmVk CQlkaXNfbWV0YXN0YWJpbGl0eV9xdWlyazoxOwogCisJdW5zaWduZWQJCWRpc19zcGxpdF9xdWly azoxOworCiAJdTE2CQkJaW1vZF9pbnRlcnZhbDsKIH07CiAK