Re: musb: communication issue with more than 12 FTDI ports

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Felipe,

On 10/14/2015 11:25 AM, Felipe Balbi wrote:

Hi,

Bin Liu <b-liu@xxxxxx> writes:
On 10/14/2015 10:56 AM, Felipe Balbi wrote:

Hi,

Bin Liu <b-liu@xxxxxx> writes:
Hi,

On 10/13/2015 01:22 PM, Felipe Balbi wrote:
Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx> writes:
On Mon, Oct 12, 2015 at 11:34 AM, Yegor Yefremov
<yegorslists@xxxxxxxxxxxxxx> wrote:
We have a problem, when using more than 12 FTDI ports. Kernels tried:
3.18.1, 4.2.3 and 4.3-rc5. SoC am335x 600MHz

Below the USB topology:

# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M
       |__ Port 1: Dev 2, If 0, Class=, Driver=hub/4p, 480M
           |__ Port 1: Dev 9, If 0, Class=, Driver=hub/4p, 480M
               |__ Port 1: Dev 10, If 0, Class=, Driver=ftdi_sio, 12M
               |__ Port 2: Dev 11, If 0, Class=, Driver=ftdi_sio, 480M
               |__ Port 2: Dev 11, If 1, Class=, Driver=ftdi_sio, 480M
               |__ Port 2: Dev 11, If 2, Class=, Driver=ftdi_sio, 480M
               |__ Port 2: Dev 11, If 3, Class=, Driver=ftdi_sio, 480M
               |__ Port 3: Dev 12, If 0, Class=, Driver=ftdi_sio, 480M
               |__ Port 3: Dev 12, If 1, Class=, Driver=ftdi_sio, 480M
               |__ Port 3: Dev 12, If 2, Class=, Driver=ftdi_sio, 480M
               |__ Port 3: Dev 12, If 3, Class=, Driver=ftdi_sio, 480M
           |__ Port 2: Dev 4, If 0, Class=, Driver=ftdi_sio, 480M
           |__ Port 2: Dev 4, If 1, Class=, Driver=ftdi_sio, 480M
           |__ Port 2: Dev 4, If 2, Class=, Driver=ftdi_sio, 480M
           |__ Port 2: Dev 4, If 3, Class=, Driver=ftdi_sio, 480M
           |__ Port 3: Dev 7, If 0, Class=, Driver=ftdi_sio, 480M
           |__ Port 3: Dev 7, If 1, Class=, Driver=ftdi_sio, 480M
           |__ Port 3: Dev 7, If 2, Class=, Driver=ftdi_sio, 480M
           |__ Port 3: Dev 7, If 3, Class=, Driver=ftdi_sio, 480M

How many EPs does each FTDI device require? at least one INT EP, right?
If I read it right, the topology above has 2 hubs, and 16 high-speed
FTDI and 1 full-speed FTDI. So it requires at least 18 high-speed INT
EPs. MUSB driver only has 11 high-speed EPs for mode-4 which is the EP
configuration used by default. I am wondering how those devices got
enumerated properly.

dynamic EP allocation, but that has its own limitations.

MUSB does not support dynamic EP allocation for INT/ISOCH.

I remember isoc doesn't, not sure about int. Do you remember where that
part of the code is off the top of your head ?


The MUSB EP allocation is in musb_schedule() in musb_host.c.

It does not have specific policy for INT/ISOCH, but the issue is that for periodic EP, it got allocated during device enumeration but freed only when the device is disconnected. So practically there is no dynamic EP allocation for INT/ISOCH.

Regards,
-Bin.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux