Greg, Felipe,

On 30/06/16 13:45, Roger Quadros wrote:
> On 30/06/16 13:32, Felipe Balbi wrote:
>>
>> Hi,
>>
>> Roger Quadros <rog...@ti.com> 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

Reply via email to