From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752132AbdLFNtL (ORCPT ); Wed, 6 Dec 2017 08:49:11 -0500 Received: from smtprelay4.synopsys.com ([198.182.47.9]:49675 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751601AbdLFNtH (ORCPT ); Wed, 6 Dec 2017 08:49:07 -0500 Date: Wed, 6 Dec 2017 17:48:04 +0400 From: Razmik Karapetyan Subject: [PATCH v2] usb: dwc2: Rename function names To: John Youn , Felipe Balbi , "Greg Kroah-Hartman" , , CC: Razmik Karapetyan MIME-Version: 1.0 Content-Type: text/plain Message-ID: X-Originating-IP: [10.13.184.19] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Renamed __orr32 and __bic32 function names to more descriptive dwc2_set_bit and dwc2_clear_bit respectively. Signed-off-by: Razmik Karapetyan --- drivers/usb/dwc2/gadget.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 66be52bde8da..c7ba399c3623 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -47,12 +47,12 @@ static inline struct dwc2_hsotg *to_hsotg(struct usb_gadget *gadget) return container_of(gadget, struct dwc2_hsotg, gadget); } -static inline void __orr32(void __iomem *ptr, u32 val) +static inline void dwc2_set_bit(void __iomem *ptr, u32 val) { dwc2_writel(dwc2_readl(ptr) | val, ptr); } -static inline void __bic32(void __iomem *ptr, u32 val) +static inline void dwc2_clear_bit(void __iomem *ptr, u32 val) { dwc2_writel(dwc2_readl(ptr) & ~val, ptr); } @@ -3285,7 +3285,7 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, dwc2_hsotg_init_fifo(hsotg); if (!is_usb_reset) - __orr32(hsotg->regs + DCTL, DCTL_SFTDISCON); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_SFTDISCON); dcfg |= DCFG_EPMISCNT(1); @@ -3331,7 +3331,7 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, /* Set DDMA mode support in the core if needed */ if (using_desc_dma(hsotg)) - __orr32(hsotg->regs + DCFG, DCFG_DESCDMA_EN); + dwc2_set_bit(hsotg->regs + DCFG, DCFG_DESCDMA_EN); } else { dwc2_writel(((hsotg->dedicated_fifos) ? @@ -3364,7 +3364,7 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, /* Enable BNA interrupt for DDMA */ if (using_desc_dma(hsotg)) - __orr32(hsotg->regs + DOEPMSK, DOEPMSK_BNAMSK); + dwc2_set_bit(hsotg->regs + DOEPMSK, DOEPMSK_BNAMSK); dwc2_writel(0, hsotg->regs + DAINTMSK); @@ -3388,9 +3388,9 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, dwc2_hsotg_ctrl_epint(hsotg, 0, 1, 1); if (!is_usb_reset) { - __orr32(hsotg->regs + DCTL, DCTL_PWRONPRGDONE); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_PWRONPRGDONE); udelay(10); /* see openiboot */ - __bic32(hsotg->regs + DCTL, DCTL_PWRONPRGDONE); + dwc2_clear_bit(hsotg->regs + DCTL, DCTL_PWRONPRGDONE); } dev_dbg(hsotg->dev, "DCTL=0x%08x\n", dwc2_readl(hsotg->regs + DCTL)); @@ -3423,7 +3423,7 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, val = DCTL_CGOUTNAK | DCTL_CGNPINNAK; if (!is_usb_reset) val |= DCTL_SFTDISCON; - __orr32(hsotg->regs + DCTL, val); + dwc2_set_bit(hsotg->regs + DCTL, val); /* must be at-least 3ms to allow bus to see disconnect */ mdelay(3); @@ -3434,13 +3434,13 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, static void dwc2_hsotg_core_disconnect(struct dwc2_hsotg *hsotg) { /* set the soft-disconnect bit */ - __orr32(hsotg->regs + DCTL, DCTL_SFTDISCON); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_SFTDISCON); } void dwc2_hsotg_core_connect(struct dwc2_hsotg *hsotg) { /* remove the soft-disconnect and let's go */ - __bic32(hsotg->regs + DCTL, DCTL_SFTDISCON); + dwc2_clear_bit(hsotg->regs + DCTL, DCTL_SFTDISCON); } /** @@ -3514,7 +3514,7 @@ static void dwc2_gadget_handle_incomplete_isoc_out(struct dwc2_hsotg *hsotg) gintsts = dwc2_readl(hsotg->regs + GINTSTS); if (!(gintsts & GINTSTS_GOUTNAKEFF)) - __orr32(hsotg->regs + DCTL, DCTL_SGOUTNAK); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_SGOUTNAK); } } @@ -3573,7 +3573,7 @@ static irqreturn_t dwc2_hsotg_irq(int irq, void *pw) dwc2_hsotg_disconnect(hsotg); /* Reset device address to zero */ - __bic32(hsotg->regs + DCFG, DCFG_DEVADDR_MASK); + dwc2_clear_bit(hsotg->regs + DCFG, DCFG_DEVADDR_MASK); if (usb_status & GOTGCTL_BSESVLD && connected) dwc2_hsotg_core_init_disconnected(hsotg, true); @@ -3684,7 +3684,7 @@ static irqreturn_t dwc2_hsotg_irq(int irq, void *pw) if (gintsts & GINTSTS_GINNAKEFF) { dev_info(hsotg->dev, "GINNakEff triggered\n"); - __orr32(hsotg->regs + DCTL, DCTL_CGNPINNAK); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_CGNPINNAK); dwc2_hsotg_dump(hsotg); } @@ -3738,7 +3738,7 @@ static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg, if (hs_ep->dir_in) { if (hsotg->dedicated_fifos || hs_ep->periodic) { - __orr32(hsotg->regs + epctrl_reg, DXEPCTL_SNAK); + dwc2_set_bit(hsotg->regs + epctrl_reg, DXEPCTL_SNAK); /* Wait for Nak effect */ if (dwc2_hsotg_wait_bit_set(hsotg, epint_reg, DXEPINT_INEPNAKEFF, 100)) @@ -3746,7 +3746,7 @@ static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg, "%s: timeout DIEPINT.NAKEFF\n", __func__); } else { - __orr32(hsotg->regs + DCTL, DCTL_SGNPINNAK); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_SGNPINNAK); /* Wait for Nak effect */ if (dwc2_hsotg_wait_bit_set(hsotg, GINTSTS, GINTSTS_GINNAKEFF, 100)) @@ -3756,7 +3756,7 @@ static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg, } } else { if (!(dwc2_readl(hsotg->regs + GINTSTS) & GINTSTS_GOUTNAKEFF)) - __orr32(hsotg->regs + DCTL, DCTL_SGOUTNAK); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_SGOUTNAK); /* Wait for global nak to take effect */ if (dwc2_hsotg_wait_bit_set(hsotg, GINTSTS, @@ -3766,7 +3766,7 @@ static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg, } /* Disable ep */ - __orr32(hsotg->regs + epctrl_reg, DXEPCTL_EPDIS | DXEPCTL_SNAK); + dwc2_set_bit(hsotg->regs + epctrl_reg, DXEPCTL_EPDIS | DXEPCTL_SNAK); /* Wait for ep to be disabled */ if (dwc2_hsotg_wait_bit_set(hsotg, epint_reg, DXEPINT_EPDISBLD, 100)) @@ -3774,7 +3774,7 @@ static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg, "%s: timeout DOEPCTL.EPDisable\n", __func__); /* Clear EPDISBLD interrupt */ - __orr32(hsotg->regs + epint_reg, DXEPINT_EPDISBLD); + dwc2_set_bit(hsotg->regs + epint_reg, DXEPINT_EPDISBLD); if (hs_ep->dir_in) { unsigned short fifo_index; @@ -3789,11 +3789,11 @@ static void dwc2_hsotg_ep_stop_xfr(struct dwc2_hsotg *hsotg, /* Clear Global In NP NAK in Shared FIFO for non periodic ep */ if (!hsotg->dedicated_fifos && !hs_ep->periodic) - __orr32(hsotg->regs + DCTL, DCTL_CGNPINNAK); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_CGNPINNAK); } else { /* Remove global NAKs */ - __orr32(hsotg->regs + DCTL, DCTL_CGOUTNAK); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_CGOUTNAK); } } @@ -4215,7 +4215,7 @@ static void dwc2_hsotg_init(struct dwc2_hsotg *hsotg) dwc2_writel(0, hsotg->regs + DAINTMSK); /* Be in disconnected state until gadget is registered */ - __orr32(hsotg->regs + DCTL, DCTL_SFTDISCON); + dwc2_set_bit(hsotg->regs + DCTL, DCTL_SFTDISCON); /* setup fifos */ @@ -4237,7 +4237,7 @@ static void dwc2_hsotg_init(struct dwc2_hsotg *hsotg) dwc2_writel(usbcfg, hsotg->regs + GUSBCFG); if (using_dma(hsotg)) - __orr32(hsotg->regs + GAHBCFG, GAHBCFG_DMA_EN); + dwc2_set_bit(hsotg->regs + GAHBCFG, GAHBCFG_DMA_EN); } /** -- 2.11.0 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: [v2] usb: dwc2: Rename function names From: Razmik Karapetyan Message-Id: Date: Wed, 6 Dec 2017 17:48:04 +0400 To: John Youn , Felipe Balbi , Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Razmik Karapetyan List-ID: UmVuYW1lZCBfX29ycjMyIGFuZCBfX2JpYzMyIGZ1bmN0aW9uIG5hbWVzIHRvIG1vcmUgZGVzY3Jp cHRpdmUKZHdjMl9zZXRfYml0IGFuZCBkd2MyX2NsZWFyX2JpdCByZXNwZWN0aXZlbHkuCgpTaWdu ZWQtb2ZmLWJ5OiBSYXptaWsgS2FyYXBldHlhbiA8cmF6bWlrQHN5bm9wc3lzLmNvbT4KLS0tCiBk cml2ZXJzL3VzYi9kd2MyL2dhZGdldC5jIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAyMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MyL2dhZGdldC5jIGIvZHJp dmVycy91c2IvZHdjMi9nYWRnZXQuYwppbmRleCA2NmJlNTJiZGU4ZGEuLmM3YmEzOTljMzYyMyAx MDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMi9nYWRnZXQuYworKysgYi9kcml2ZXJzL3VzYi9k d2MyL2dhZGdldC5jCkBAIC00NywxMiArNDcsMTIgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHdj Ml9oc290ZyAqdG9faHNvdGcoc3RydWN0IHVzYl9nYWRnZXQgKmdhZGdldCkKIAlyZXR1cm4gY29u dGFpbmVyX29mKGdhZGdldCwgc3RydWN0IGR3YzJfaHNvdGcsIGdhZGdldCk7CiB9CiAKLXN0YXRp YyBpbmxpbmUgdm9pZCBfX29ycjMyKHZvaWQgX19pb21lbSAqcHRyLCB1MzIgdmFsKQorc3RhdGlj IGlubGluZSB2b2lkIGR3YzJfc2V0X2JpdCh2b2lkIF9faW9tZW0gKnB0ciwgdTMyIHZhbCkKIHsK IAlkd2MyX3dyaXRlbChkd2MyX3JlYWRsKHB0cikgfCB2YWwsIHB0cik7CiB9CiAKLXN0YXRpYyBp bmxpbmUgdm9pZCBfX2JpYzMyKHZvaWQgX19pb21lbSAqcHRyLCB1MzIgdmFsKQorc3RhdGljIGlu bGluZSB2b2lkIGR3YzJfY2xlYXJfYml0KHZvaWQgX19pb21lbSAqcHRyLCB1MzIgdmFsKQogewog CWR3YzJfd3JpdGVsKGR3YzJfcmVhZGwocHRyKSAmIH52YWwsIHB0cik7CiB9CkBAIC0zMjg1LDcg KzMyODUsNyBAQCB2b2lkIGR3YzJfaHNvdGdfY29yZV9pbml0X2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qg ZHdjMl9oc290ZyAqaHNvdGcsCiAJZHdjMl9oc290Z19pbml0X2ZpZm8oaHNvdGcpOwogCiAJaWYg KCFpc191c2JfcmVzZXQpCi0JCV9fb3JyMzIoaHNvdGctPnJlZ3MgKyBEQ1RMLCBEQ1RMX1NGVERJ U0NPTik7CisJCWR3YzJfc2V0X2JpdChoc290Zy0+cmVncyArIERDVEwsIERDVExfU0ZURElTQ09O KTsKIAogCWRjZmcgfD0gRENGR19FUE1JU0NOVCgxKTsKIApAQCAtMzMzMSw3ICszMzMxLDcgQEAg dm9pZCBkd2MyX2hzb3RnX2NvcmVfaW5pdF9kaXNjb25uZWN0ZWQoc3RydWN0IGR3YzJfaHNvdGcg Kmhzb3RnLAogCiAJCS8qIFNldCBERE1BIG1vZGUgc3VwcG9ydCBpbiB0aGUgY29yZSBpZiBuZWVk ZWQgKi8KIAkJaWYgKHVzaW5nX2Rlc2NfZG1hKGhzb3RnKSkKLQkJCV9fb3JyMzIoaHNvdGctPnJl Z3MgKyBEQ0ZHLCBEQ0ZHX0RFU0NETUFfRU4pOworCQkJZHdjMl9zZXRfYml0KGhzb3RnLT5yZWdz ICsgRENGRywgRENGR19ERVNDRE1BX0VOKTsKIAogCX0gZWxzZSB7CiAJCWR3YzJfd3JpdGVsKCgo aHNvdGctPmRlZGljYXRlZF9maWZvcykgPwpAQCAtMzM2NCw3ICszMzY0LDcgQEAgdm9pZCBkd2My X2hzb3RnX2NvcmVfaW5pdF9kaXNjb25uZWN0ZWQoc3RydWN0IGR3YzJfaHNvdGcgKmhzb3RnLAog CiAJLyogRW5hYmxlIEJOQSBpbnRlcnJ1cHQgZm9yIERETUEgKi8KIAlpZiAodXNpbmdfZGVzY19k bWEoaHNvdGcpKQotCQlfX29ycjMyKGhzb3RnLT5yZWdzICsgRE9FUE1TSywgRE9FUE1TS19CTkFN U0spOworCQlkd2MyX3NldF9iaXQoaHNvdGctPnJlZ3MgKyBET0VQTVNLLCBET0VQTVNLX0JOQU1T Syk7CiAKIAlkd2MyX3dyaXRlbCgwLCBoc290Zy0+cmVncyArIERBSU5UTVNLKTsKIApAQCAtMzM4 OCw5ICszMzg4LDkgQEAgdm9pZCBkd2MyX2hzb3RnX2NvcmVfaW5pdF9kaXNjb25uZWN0ZWQoc3Ry dWN0IGR3YzJfaHNvdGcgKmhzb3RnLAogCWR3YzJfaHNvdGdfY3RybF9lcGludChoc290ZywgMCwg MSwgMSk7CiAKIAlpZiAoIWlzX3VzYl9yZXNldCkgewotCQlfX29ycjMyKGhzb3RnLT5yZWdzICsg RENUTCwgRENUTF9QV1JPTlBSR0RPTkUpOworCQlkd2MyX3NldF9iaXQoaHNvdGctPnJlZ3MgKyBE Q1RMLCBEQ1RMX1BXUk9OUFJHRE9ORSk7CiAJCXVkZWxheSgxMCk7ICAvKiBzZWUgb3Blbmlib290 ICovCi0JCV9fYmljMzIoaHNvdGctPnJlZ3MgKyBEQ1RMLCBEQ1RMX1BXUk9OUFJHRE9ORSk7CisJ CWR3YzJfY2xlYXJfYml0KGhzb3RnLT5yZWdzICsgRENUTCwgRENUTF9QV1JPTlBSR0RPTkUpOwog CX0KIAogCWRldl9kYmcoaHNvdGctPmRldiwgIkRDVEw9MHglMDh4XG4iLCBkd2MyX3JlYWRsKGhz b3RnLT5yZWdzICsgRENUTCkpOwpAQCAtMzQyMyw3ICszNDIzLDcgQEAgdm9pZCBkd2MyX2hzb3Rn X2NvcmVfaW5pdF9kaXNjb25uZWN0ZWQoc3RydWN0IGR3YzJfaHNvdGcgKmhzb3RnLAogCXZhbCA9 IERDVExfQ0dPVVROQUsgfCBEQ1RMX0NHTlBJTk5BSzsKIAlpZiAoIWlzX3VzYl9yZXNldCkKIAkJ dmFsIHw9IERDVExfU0ZURElTQ09OOwotCV9fb3JyMzIoaHNvdGctPnJlZ3MgKyBEQ1RMLCB2YWwp OworCWR3YzJfc2V0X2JpdChoc290Zy0+cmVncyArIERDVEwsIHZhbCk7CiAKIAkvKiBtdXN0IGJl IGF0LWxlYXN0IDNtcyB0byBhbGxvdyBidXMgdG8gc2VlIGRpc2Nvbm5lY3QgKi8KIAltZGVsYXko Myk7CkBAIC0zNDM0LDEzICszNDM0LDEzIEBAIHZvaWQgZHdjMl9oc290Z19jb3JlX2luaXRfZGlz Y29ubmVjdGVkKHN0cnVjdCBkd2MyX2hzb3RnICpoc290ZywKIHN0YXRpYyB2b2lkIGR3YzJfaHNv dGdfY29yZV9kaXNjb25uZWN0KHN0cnVjdCBkd2MyX2hzb3RnICpoc290ZykKIHsKIAkvKiBzZXQg dGhlIHNvZnQtZGlzY29ubmVjdCBiaXQgKi8KLQlfX29ycjMyKGhzb3RnLT5yZWdzICsgRENUTCwg RENUTF9TRlRESVNDT04pOworCWR3YzJfc2V0X2JpdChoc290Zy0+cmVncyArIERDVEwsIERDVExf U0ZURElTQ09OKTsKIH0KIAogdm9pZCBkd2MyX2hzb3RnX2NvcmVfY29ubmVjdChzdHJ1Y3QgZHdj Ml9oc290ZyAqaHNvdGcpCiB7CiAJLyogcmVtb3ZlIHRoZSBzb2Z0LWRpc2Nvbm5lY3QgYW5kIGxl dCdzIGdvICovCi0JX19iaWMzMihoc290Zy0+cmVncyArIERDVEwsIERDVExfU0ZURElTQ09OKTsK Kwlkd2MyX2NsZWFyX2JpdChoc290Zy0+cmVncyArIERDVEwsIERDVExfU0ZURElTQ09OKTsKIH0K IAogLyoqCkBAIC0zNTE0LDcgKzM1MTQsNyBAQCBzdGF0aWMgdm9pZCBkd2MyX2dhZGdldF9oYW5k bGVfaW5jb21wbGV0ZV9pc29jX291dChzdHJ1Y3QgZHdjMl9oc290ZyAqaHNvdGcpCiAKIAkJCWdp bnRzdHMgPSBkd2MyX3JlYWRsKGhzb3RnLT5yZWdzICsgR0lOVFNUUyk7CiAJCQlpZiAoIShnaW50 c3RzICYgR0lOVFNUU19HT1VUTkFLRUZGKSkKLQkJCQlfX29ycjMyKGhzb3RnLT5yZWdzICsgRENU TCwgRENUTF9TR09VVE5BSyk7CisJCQkJZHdjMl9zZXRfYml0KGhzb3RnLT5yZWdzICsgRENUTCwg RENUTF9TR09VVE5BSyk7CiAJCX0KIAl9CiAKQEAgLTM1NzMsNyArMzU3Myw3IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBkd2MyX2hzb3RnX2lycShpbnQgaXJxLCB2b2lkICpwdykKIAkJZHdjMl9oc290 Z19kaXNjb25uZWN0KGhzb3RnKTsKIAogCQkvKiBSZXNldCBkZXZpY2UgYWRkcmVzcyB0byB6ZXJv ICovCi0JCV9fYmljMzIoaHNvdGctPnJlZ3MgKyBEQ0ZHLCBEQ0ZHX0RFVkFERFJfTUFTSyk7CisJ CWR3YzJfY2xlYXJfYml0KGhzb3RnLT5yZWdzICsgRENGRywgRENGR19ERVZBRERSX01BU0spOwog CiAJCWlmICh1c2Jfc3RhdHVzICYgR09UR0NUTF9CU0VTVkxEICYmIGNvbm5lY3RlZCkKIAkJCWR3 YzJfaHNvdGdfY29yZV9pbml0X2Rpc2Nvbm5lY3RlZChoc290ZywgdHJ1ZSk7CkBAIC0zNjg0LDcg KzM2ODQsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZHdjMl9oc290Z19pcnEoaW50IGlycSwgdm9p ZCAqcHcpCiAJaWYgKGdpbnRzdHMgJiBHSU5UU1RTX0dJTk5BS0VGRikgewogCQlkZXZfaW5mbyho c290Zy0+ZGV2LCAiR0lOTmFrRWZmIHRyaWdnZXJlZFxuIik7CiAKLQkJX19vcnIzMihoc290Zy0+ cmVncyArIERDVEwsIERDVExfQ0dOUElOTkFLKTsKKwkJZHdjMl9zZXRfYml0KGhzb3RnLT5yZWdz ICsgRENUTCwgRENUTF9DR05QSU5OQUspOwogCiAJCWR3YzJfaHNvdGdfZHVtcChoc290Zyk7CiAJ fQpAQCAtMzczOCw3ICszNzM4LDcgQEAgc3RhdGljIHZvaWQgZHdjMl9oc290Z19lcF9zdG9wX3hm cihzdHJ1Y3QgZHdjMl9oc290ZyAqaHNvdGcsCiAKIAlpZiAoaHNfZXAtPmRpcl9pbikgewogCQlp ZiAoaHNvdGctPmRlZGljYXRlZF9maWZvcyB8fCBoc19lcC0+cGVyaW9kaWMpIHsKLQkJCV9fb3Jy MzIoaHNvdGctPnJlZ3MgKyBlcGN0cmxfcmVnLCBEWEVQQ1RMX1NOQUspOworCQkJZHdjMl9zZXRf Yml0KGhzb3RnLT5yZWdzICsgZXBjdHJsX3JlZywgRFhFUENUTF9TTkFLKTsKIAkJCS8qIFdhaXQg Zm9yIE5hayBlZmZlY3QgKi8KIAkJCWlmIChkd2MyX2hzb3RnX3dhaXRfYml0X3NldChoc290Zywg ZXBpbnRfcmVnLAogCQkJCQkJICAgIERYRVBJTlRfSU5FUE5BS0VGRiwgMTAwKSkKQEAgLTM3NDYs NyArMzc0Niw3IEBAIHN0YXRpYyB2b2lkIGR3YzJfaHNvdGdfZXBfc3RvcF94ZnIoc3RydWN0IGR3 YzJfaHNvdGcgKmhzb3RnLAogCQkJCQkgIiVzOiB0aW1lb3V0IERJRVBJTlQuTkFLRUZGXG4iLAog CQkJCQkgX19mdW5jX18pOwogCQl9IGVsc2UgewotCQkJX19vcnIzMihoc290Zy0+cmVncyArIERD VEwsIERDVExfU0dOUElOTkFLKTsKKwkJCWR3YzJfc2V0X2JpdChoc290Zy0+cmVncyArIERDVEws IERDVExfU0dOUElOTkFLKTsKIAkJCS8qIFdhaXQgZm9yIE5hayBlZmZlY3QgKi8KIAkJCWlmIChk d2MyX2hzb3RnX3dhaXRfYml0X3NldChoc290ZywgR0lOVFNUUywKIAkJCQkJCSAgICBHSU5UU1RT X0dJTk5BS0VGRiwgMTAwKSkKQEAgLTM3NTYsNyArMzc1Niw3IEBAIHN0YXRpYyB2b2lkIGR3YzJf aHNvdGdfZXBfc3RvcF94ZnIoc3RydWN0IGR3YzJfaHNvdGcgKmhzb3RnLAogCQl9CiAJfSBlbHNl IHsKIAkJaWYgKCEoZHdjMl9yZWFkbChoc290Zy0+cmVncyArIEdJTlRTVFMpICYgR0lOVFNUU19H T1VUTkFLRUZGKSkKLQkJCV9fb3JyMzIoaHNvdGctPnJlZ3MgKyBEQ1RMLCBEQ1RMX1NHT1VUTkFL KTsKKwkJCWR3YzJfc2V0X2JpdChoc290Zy0+cmVncyArIERDVEwsIERDVExfU0dPVVROQUspOwog CiAJCS8qIFdhaXQgZm9yIGdsb2JhbCBuYWsgdG8gdGFrZSBlZmZlY3QgKi8KIAkJaWYgKGR3YzJf aHNvdGdfd2FpdF9iaXRfc2V0KGhzb3RnLCBHSU5UU1RTLApAQCAtMzc2Niw3ICszNzY2LDcgQEAg c3RhdGljIHZvaWQgZHdjMl9oc290Z19lcF9zdG9wX3hmcihzdHJ1Y3QgZHdjMl9oc290ZyAqaHNv dGcsCiAJfQogCiAJLyogRGlzYWJsZSBlcCAqLwotCV9fb3JyMzIoaHNvdGctPnJlZ3MgKyBlcGN0 cmxfcmVnLCBEWEVQQ1RMX0VQRElTIHwgRFhFUENUTF9TTkFLKTsKKwlkd2MyX3NldF9iaXQoaHNv dGctPnJlZ3MgKyBlcGN0cmxfcmVnLCBEWEVQQ1RMX0VQRElTIHwgRFhFUENUTF9TTkFLKTsKIAog CS8qIFdhaXQgZm9yIGVwIHRvIGJlIGRpc2FibGVkICovCiAJaWYgKGR3YzJfaHNvdGdfd2FpdF9i aXRfc2V0KGhzb3RnLCBlcGludF9yZWcsIERYRVBJTlRfRVBESVNCTEQsIDEwMCkpCkBAIC0zNzc0 LDcgKzM3NzQsNyBAQCBzdGF0aWMgdm9pZCBkd2MyX2hzb3RnX2VwX3N0b3BfeGZyKHN0cnVjdCBk d2MyX2hzb3RnICpoc290ZywKIAkJCSAiJXM6IHRpbWVvdXQgRE9FUENUTC5FUERpc2FibGVcbiIs IF9fZnVuY19fKTsKIAogCS8qIENsZWFyIEVQRElTQkxEIGludGVycnVwdCAqLwotCV9fb3JyMzIo aHNvdGctPnJlZ3MgKyBlcGludF9yZWcsIERYRVBJTlRfRVBESVNCTEQpOworCWR3YzJfc2V0X2Jp dChoc290Zy0+cmVncyArIGVwaW50X3JlZywgRFhFUElOVF9FUERJU0JMRCk7CiAKIAlpZiAoaHNf ZXAtPmRpcl9pbikgewogCQl1bnNpZ25lZCBzaG9ydCBmaWZvX2luZGV4OwpAQCAtMzc4OSwxMSAr Mzc4OSwxMSBAQCBzdGF0aWMgdm9pZCBkd2MyX2hzb3RnX2VwX3N0b3BfeGZyKHN0cnVjdCBkd2My X2hzb3RnICpoc290ZywKIAogCQkvKiBDbGVhciBHbG9iYWwgSW4gTlAgTkFLIGluIFNoYXJlZCBG SUZPIGZvciBub24gcGVyaW9kaWMgZXAgKi8KIAkJaWYgKCFoc290Zy0+ZGVkaWNhdGVkX2ZpZm9z ICYmICFoc19lcC0+cGVyaW9kaWMpCi0JCQlfX29ycjMyKGhzb3RnLT5yZWdzICsgRENUTCwgRENU TF9DR05QSU5OQUspOworCQkJZHdjMl9zZXRfYml0KGhzb3RnLT5yZWdzICsgRENUTCwgRENUTF9D R05QSU5OQUspOwogCiAJfSBlbHNlIHsKIAkJLyogUmVtb3ZlIGdsb2JhbCBOQUtzICovCi0JCV9f b3JyMzIoaHNvdGctPnJlZ3MgKyBEQ1RMLCBEQ1RMX0NHT1VUTkFLKTsKKwkJZHdjMl9zZXRfYml0 KGhzb3RnLT5yZWdzICsgRENUTCwgRENUTF9DR09VVE5BSyk7CiAJfQogfQogCkBAIC00MjE1LDcg KzQyMTUsNyBAQCBzdGF0aWMgdm9pZCBkd2MyX2hzb3RnX2luaXQoc3RydWN0IGR3YzJfaHNvdGcg Kmhzb3RnKQogCWR3YzJfd3JpdGVsKDAsIGhzb3RnLT5yZWdzICsgREFJTlRNU0spOwogCiAJLyog QmUgaW4gZGlzY29ubmVjdGVkIHN0YXRlIHVudGlsIGdhZGdldCBpcyByZWdpc3RlcmVkICovCi0J X19vcnIzMihoc290Zy0+cmVncyArIERDVEwsIERDVExfU0ZURElTQ09OKTsKKwlkd2MyX3NldF9i aXQoaHNvdGctPnJlZ3MgKyBEQ1RMLCBEQ1RMX1NGVERJU0NPTik7CiAKIAkvKiBzZXR1cCBmaWZv cyAqLwogCkBAIC00MjM3LDcgKzQyMzcsNyBAQCBzdGF0aWMgdm9pZCBkd2MyX2hzb3RnX2luaXQo c3RydWN0IGR3YzJfaHNvdGcgKmhzb3RnKQogCWR3YzJfd3JpdGVsKHVzYmNmZywgaHNvdGctPnJl Z3MgKyBHVVNCQ0ZHKTsKIAogCWlmICh1c2luZ19kbWEoaHNvdGcpKQotCQlfX29ycjMyKGhzb3Rn LT5yZWdzICsgR0FIQkNGRywgR0FIQkNGR19ETUFfRU4pOworCQlkd2MyX3NldF9iaXQoaHNvdGct PnJlZ3MgKyBHQUhCQ0ZHLCBHQUhCQ0ZHX0RNQV9FTik7CiB9CiAKIC8qKgo=