Hi, John Youn <John.Youn@xxxxxxxxxxxx> writes: > On 10/31/2016 3:51 AM, Felipe Balbi wrote: >> Cleanup only, no functional changes. >> >> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> >> --- >> drivers/usb/dwc3/host.c | 68 +++++++++++++++++++++++++------------------------ >> 1 file changed, 35 insertions(+), 33 deletions(-) >> >> diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c >> index f6533c68fed1..ed824647ead8 100644 >> --- a/drivers/usb/dwc3/host.c >> +++ b/drivers/usb/dwc3/host.c >> @@ -19,48 +19,50 @@ >> >> #include "core.h" >> >> +static int dwc3_host_get_irq(struct dwc3 *dwc) >> +{ >> + struct platform_device *dwc3_pdev = to_platform_device(dwc->dev); >> + int irq; >> + >> + irq = platform_get_irq_byname(dwc3_pdev, "host"); >> + if (irq > 0) >> + goto out; >> + >> + if (irq == -EPROBE_DEFER) >> + goto out; >> + >> + irq = platform_get_irq_byname(dwc3_pdev, "dwc_usb3"); >> + if (irq > 0) >> + goto out; >> + >> + if (irq == -EPROBE_DEFER) >> + goto out; >> + >> + irq = platform_get_irq(dwc3_pdev, 0); >> + if (irq > 0) >> + goto out; >> + >> + if (irq != -EPROBE_DEFER) >> + dev_err(dwc->dev, "missing host IRQ\n"); >> + >> + if (!irq) >> + irq = -EINVAL; >> + >> +out: >> + return irq; >> +} >> + >> int dwc3_host_init(struct dwc3 *dwc) >> { >> struct property_entry props[2]; >> struct platform_device *xhci; >> int ret, irq; >> struct resource *res; >> - struct platform_device *dwc3_pdev = to_platform_device(dwc->dev); >> >> - irq = platform_get_irq_byname(dwc3_pdev, "host"); >> - if (irq == -EPROBE_DEFER) >> + irq = dwc3_host_get_irq(dwc); >> + if (irq < 0) >> return irq; >> >> - if (irq <= 0) { >> - irq = platform_get_irq_byname(dwc3_pdev, "dwc_usb3"); >> - if (irq == -EPROBE_DEFER) >> - return irq; >> - >> - if (irq <= 0) { >> - irq = platform_get_irq(dwc3_pdev, 0); >> - if (irq <= 0) { >> - if (irq != -EPROBE_DEFER) { >> - dev_err(dwc->dev, >> - "missing host IRQ\n"); >> - } >> - if (!irq) >> - irq = -EINVAL; >> - return irq; >> - } else { >> - res = platform_get_resource(dwc3_pdev, >> - IORESOURCE_IRQ, 0); >> - } >> - } else { >> - res = platform_get_resource_byname(dwc3_pdev, >> - IORESOURCE_IRQ, >> - "dwc_usb3"); >> - } >> - >> - } else { >> - res = platform_get_resource_byname(dwc3_pdev, IORESOURCE_IRQ, >> - "host"); >> - } >> - >> dwc->xhci_resources[1].start = irq; >> dwc->xhci_resources[1].end = irq; >> dwc->xhci_resources[1].flags = res->flags; > > Similar to patch 51. > > Lost the initialization of 'res' and then used uninitialized > here. completely missed that and GCC didn't tell me about it :-) Thanks, here's another version 8<------------------------------------------------------------------------------ From 7a1e5968b7d42ff4524c9841bb139f499ce7cae6 Mon Sep 17 00:00:00 2001 From: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> Date: Mon, 3 Oct 2016 12:31:48 +0300 Subject: [PATCH] usb: dwc3: host: extract dwc3_host_get_irq() Cleanup only, no functional changes. Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> --- drivers/usb/dwc3/host.c | 73 ++++++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 31 deletions(-) diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c index f6533c68fed1..c39b826c17ba 100644 --- a/drivers/usb/dwc3/host.c +++ b/drivers/usb/dwc3/host.c @@ -19,47 +19,58 @@ #include "core.h" +static int dwc3_host_get_irq(struct dwc3 *dwc) +{ + struct platform_device *dwc3_pdev = to_platform_device(dwc->dev); + int irq; + + irq = platform_get_irq_byname(dwc3_pdev, "host"); + if (irq > 0) + goto out; + + if (irq == -EPROBE_DEFER) + goto out; + + irq = platform_get_irq_byname(dwc3_pdev, "dwc_usb3"); + if (irq > 0) + goto out; + + if (irq == -EPROBE_DEFER) + goto out; + + irq = platform_get_irq(dwc3_pdev, 0); + if (irq > 0) + goto out; + + if (irq != -EPROBE_DEFER) + dev_err(dwc->dev, "missing host IRQ\n"); + + if (!irq) + irq = -EINVAL; + +out: + return irq; +} + int dwc3_host_init(struct dwc3 *dwc) { struct property_entry props[2]; struct platform_device *xhci; int ret, irq; struct resource *res; - struct platform_device *dwc3_pdev = to_platform_device(dwc->dev); - irq = platform_get_irq_byname(dwc3_pdev, "host"); - if (irq == -EPROBE_DEFER) + irq = dwc3_host_get_irq(dwc); + if (irq < 0) return irq; - if (irq <= 0) { - irq = platform_get_irq_byname(dwc3_pdev, "dwc_usb3"); - if (irq == -EPROBE_DEFER) - return irq; - - if (irq <= 0) { - irq = platform_get_irq(dwc3_pdev, 0); - if (irq <= 0) { - if (irq != -EPROBE_DEFER) { - dev_err(dwc->dev, - "missing host IRQ\n"); - } - if (!irq) - irq = -EINVAL; - return irq; - } else { - res = platform_get_resource(dwc3_pdev, - IORESOURCE_IRQ, 0); - } - } else { - res = platform_get_resource_byname(dwc3_pdev, - IORESOURCE_IRQ, - "dwc_usb3"); - } - - } else { + res = platform_get_resource_byname(dwc3_pdev, IORESOURCE_IRQ, "host"); + if (!res) res = platform_get_resource_byname(dwc3_pdev, IORESOURCE_IRQ, - "host"); - } + "dwc_usb3"); + if (!res) + res = platform_get_resource(dwc3_pdev, IORESOURCE_IRQ, 0); + if (!res) + return -ENOMEM; dwc->xhci_resources[1].start = irq; dwc->xhci_resources[1].end = irq; -- 2.10.1 -- balbi
Attachment:
signature.asc
Description: PGP signature