Greg, Felipe, On 30/06/16 13:45, Roger Quadros wrote: > On 30/06/16 13:32, Felipe Balbi wrote: >> >> Hi, >> >> Roger Quadros <rogerq@xxxxxx> writes: >>>>>> here's the big pull request for gadget API and related UDC drivers. >>>>>> >>>>>> Nothing really scary lately. Patches have been in linux-next for a while >>>>>> without outstanding reports. >>>>>> >>>>>> Let me know if you want any changes, but things seem to be calming >>>>>> down. I have, however, a few patches pending in my linux-usb inbox but I >>>>>> won't have time to really work on them in time for current merge window, >>>>>> so I decided to cut my tree short and send you a pull request. >>>>>> >>>>>> Anyway, here's the good stuff >>>>>> >>>>>> The following changes since commit 33688abb2802ff3a230bd2441f765477b94cc89e: >>>>>> >>>>>> Linux 4.7-rc4 (2016-06-19 21:30:02 -0700) >>>>>> >>>>>> are available in the git repository at: >>>>>> >>>>>> git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git tags/usb-for-v4.8 >>>>> >>>>> I got a merge issue in drivers/usb/dwc3/host.c that I had to fix up by >>>>> hand. Can you verify I got the merge correct? It builds for me here :) >>>> >>>> looks okay and still passes my tests. Then again, Intel's SoCs don't use >>>> dwc3/host.c, Roger or Bin, can you test AM437x with greg/usb-next to >>>> make sure it still works for you guys? >>>> >>> Unfortunately USB host is broken for TI platforms on greg/usb-next. >>> Works fine on balbi/next though. >> >> got some logs to aid debugging there? Tracepoints? dmesg? Anything which >> could hint at the problem? >> > xhci driver hasn't been loaded so > >> lsusb > unable to initialize libusb: -99 > > cheers, > -roger > The following patch fixes it for me. Looks like we lost all changes related to commit 9522def40065 ("usb: dwc3: core: cleanup IRQ resources") in host.c during the merge. diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c index 67f90d7..f6533c6 100644 --- a/drivers/usb/dwc3/host.c +++ b/drivers/usb/dwc3/host.c @@ -23,7 +23,48 @@ int dwc3_host_init(struct dwc3 *dwc) { struct property_entry props[2]; struct platform_device *xhci; - int ret; + 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) + 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; + dwc->xhci_resources[1].name = res->name; xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); if (!xhci) {
Attachment:
signature.asc
Description: OpenPGP digital signature