Hi,
my experience with USB, and I think that can be a similar problem, is
described here [1]
On the end of the topic is mentioned a patch that can solve the problem,
don't resolve on my issue thought.
On short, for what I understand, the USB 2.0 interface only accept 4
endpoints. Some device with a hub create more than 4, that can cause
problems on devices that are connected.
If you have more developments or more knowledge about this issue I will
appreciate an update.
Thanks.
[1] - http://e2e.ti.com/support/embedded/linux/f/354/t/197489.aspx?pi173278
Regards,
Aníbal
Em 20-06-2013 15:27, Manuel Mendez escreveu:
Adding committers to musb drivers from linux-davinci.git.
On 06/19/2013 04:17 PM, Manuel Mendez wrote:
Hi,
I am trying get am180x-evm + TI's kernel v3.3.0 to work with multiple
DLink USB wlans (carl9170). If I only have one carl9170 on the USB2.0
hub everything works correctly, if I plug in a second carl device it is
never allocated a phy because carl fails to initialize the device.
I have traced the error call chain to carl9170_usb_send_rx_irq_usb ->
usb_submit_urb -> musb_urb_enqueue -> musb_schedule.
It seems to me that musb_schedule fails to find an available endpoint
and so returns -ENOSPC.
Following is some printks of carl and musb transactions, for the first
(good) init, and then the second (failed) init.
I would appreciate some help getting to the bottom of this.
GOOD
====
usbcore: registered new interface driver carl9170
usb 2-1.7: driver API: 1.9.4 2011-08-15 [1-1]
usb 2-1.7: firmware API: 1.9.7 2012-12-15
usb 2-1.7: driver does not support all firmware features.
carl9170_usb_firmware_finish.1020
carl9170_usb_init_device.931
carl9170_usb_init_device.942
carl9170_usb_send_rx_irq_urb.482
carl9170_usb_send_rx_irq_urb.484
carl9170_usb_send_rx_irq_urb.488
carl9170_usb_send_rx_irq_urb.490
carl9170_usb_send_rx_irq_urb.494
carl9170_usb_send_rx_irq_urb.498
carl9170_usb_send_rx_irq_urb.502
carl9170_usb_send_rx_irq_urb.504
musb_urb_enqueue.2164
musb_urb_enqueue.2168
musb_urb_enqueue.2189
musb_urb_enqueue.2197
musb_urb_enqueue.2206
musb_schedule.1986
musb_schedule.2018 epnum:1 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc7812434, is_in:128
musb_schedule.2027 is_in:128, is_intr_sched:0, hw_ep:0xc7812434 ==
musb->intr_ep:0x (null):0
musb_schedule.2034 hw_ep:0xc7812434 == musb->bulk_ep:0xc7812434: 1
musb_schedule.2036 continue
musb_schedule.2018 epnum:2 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc781251c, is_in:128
musb_schedule.2027 is_in:128, is_intr_sched:0, hw_ep:0xc781251c ==
musb->intr_ep:0x (null):0
musb_schedule.2034 hw_ep:0xc781251c == musb->bulk_ep:0xc7812434: 0
musb_schedule.2040
musb_schedule.2042
musb_schedule.2048
musb_schedule.2050
musb_schedule.2053
musb_schedule.2075
musb_schedule.2078 best_diff:448, best_end:2
musb_schedule.2018 epnum:3 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc7812604, is_in:128
musb_schedule.2022 !NULL, continue
musb_schedule.2018 epnum:4 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc78126ec, is_in:128
musb_schedule.2027 is_in:128, is_intr_sched:0, hw_ep:0xc78126ec ==
musb->intr_ep:0x (null):0
musb_schedule.2034 hw_ep:0xc78126ec == musb->bulk_ep:0xc7812434: 0
musb_schedule.2040
musb_schedule.2042
musb_schedule.2048
musb_schedule.2050
musb_schedule.2053
musb_schedule.2075
musb_schedule.2078 best_diff:192, best_end:4
musb_schedule.2081 best_end:4 best_diff:192
musb_urb_enqueue.2348 returning 0
musb_urb_enqueue.2357
musb_urb_enqueue.2367 returning 0
carl9170_usb_send_rx_irq_urb.506
carl9170_usb_send_rx_irq_urb.512
carl9170_usb_send_rx_irq_urb.515
carl9170_usb_send_rx_irq_urb.517
carl9170_usb_init_device.944
carl9170_usb_init_device.948
BAD
===
usb 2-1.6: driver API: 1.9.4 2011-08-15 [1-1]
usb 2-1.6: firmware API: 1.9.7 2012-12-15
musb_urb_enqueue.2357
usb 2-1.6: driver does not support all firmware features.
carl9170_usb_firmware_finish.1020
musb_urb_enqueue.2367 returning 0
carl9170_usb_init_device.931
carl9170_usb_init_device.942
carl9170_usb_send_rx_irq_urb.482
carl9170_usb_send_rx_irq_urb.484
carl9170_usb_send_rx_irq_urb.488
carl9170_usb_send_rx_irq_urb.490
carl9170_usb_send_rx_irq_urb.494
carl9170_usb_send_rx_irq_urb.498
carl9170_usb_send_rx_irq_urb.502
carl9170_usb_send_rx_irq_urb.504
musb_urb_enqueue.2164
musb_urb_enqueue.2168
musb_urb_enqueue.2189
musb_urb_enqueue.2197
musb_urb_enqueue.2206
musb_schedule.1986
musb_schedule.2018 epnum:1 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc7812434, is_in:128
musb_schedule.2027 is_in:128, is_intr_sched:0, hw_ep:0xc7812434 ==
musb->intr_ep:0x (null):0
musb_schedule.2034 hw_ep:0xc7812434 == musb->bulk_ep:0xc7812434: 1
musb_schedule.2036 continue
musb_schedule.2018 epnum:2 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc781251c, is_in:128
musb_schedule.2022 !NULL, continue
musb_schedule.2018 epnum:3 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc7812604, is_in:128
musb_schedule.2022 !NULL, continue
musb_schedule.2018 epnum:4 musb->nr_endpoints:5
musb_schedule.2020 hw_ep:0xc78126ec, is_in:128
musb_schedule.2022 !NULL, continue
musb_schedule.2081 best_end:-1 best_diff:4096
musb_schedule.2103
musb_urb_enqueue.2348 returning -28
musb_urb_enqueue.2357
musb_urb_enqueue.2361
musb_urb_enqueue.2367 returning -28
carl9170_usb_send_rx_irq_urb.506
carl9170_usb_send_rx_irq_urb.508 returning -28
carl9170_usb_send_rx_irq_urb.510 returning -28
carl9170_usb_send_rx_irq_urb.512
carl9170_usb_send_rx_irq_urb.515
carl9170_usb_send_rx_irq_urb.517
carl9170_usb_init_device.944
carl9170_usb_init_device.982
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source