[U-Boot] Question: issues for usb keyboard work with OHCI HCD

Bo Shen
2013-05-14T01:23:00Z

Hi Marek,

On 5/13/2013 23:12, Marek Vasut wrote:
> Dear Bo Shen,
>
>> Hi All,
>>
>> On 5/6/2013 11:01, Bo Shen wrote:
>>> Hi Marek,
>>>
>>> On 5/3/2013 21:40, Marek Vasut wrote:
>>>> Dear Bo Shen,
>>>>
>>>>> Hi All,
>>>>>
>>>>> Now, I test usb host support with Atmel boards, for example,
>>>>>
>>>>> at91sam9x5ek board.
>>>>>
>>>>> When test OHCI USB host with usb keyboard. I meet the following
>>>>>
>>>>> issue.
>>>>> --->8---
>>>>> U-Boot 2013.04-dirty (May 03 2013 - 11:00:34)
>>>>>
>>>>> CPU: AT91SAM9G35
>>>>> Crystal frequency: 12 MHz
>>>>> CPU clock : 400 MHz
>>>>> Master clock : 133.333 MHz
>>>>> DRAM: 128 MiB
>>>>> WARNING: Caches not enabled
>>>>> NAND: 256 MiB
>>>>> MMC: mci: 0
>>>>> In: serial
>>>>> Out: serial
>>>>> Err: serial
>>>>> Net: macb0
>>>>> Hit any key to stop autoboot: 0
>>>>> U-Boot> usb start
>>>>> (Re)start USB...
>>>>> USB0: scanning bus 0 for devices... 2 USB Device(s) found
>>>>>
>>>>> scanning usb for storage devices... 0 Storage Device(s) found
>>>>>
>>>>> U-Boot> setenv stdin usbkbd
>>>>> U-Boot> ERROR: sohci_submit_job: ENOMEM
>>>>> ERROR: sohci_submit_job failed
>>>>> ... ...
>>>>> (repeat to print these two error line)
>>>>
>>>> So the USB subsystem is leaking memory? Or do you only have too small
>>>> MALLOC
>>>> area?
>>>
>>> I am not sure whether USB subsystem is leaking memory. I am digging it.
>>>
>>> This issue is not relative with MALLOC area.
>>> This issue come out when all ptd[i].usb_dev (the maximum value of i is
>>> 64) is not NULL. Each time to call td_alloc, it will check whether
>>> ptd[i].usb_dev is NULL (i from 0 to 63), if not find one of
>>> ptd[i].usb_dev is NULL, then report ENOMEM.
>>
>> All clue for this issue?
>
> I assume you mean the TDs are all used up then? Are they not free'd ?

Yes, that's true, all TDs are used. Nowhere free them, so I use
urb_free_priv() to free urb in sohci_return_job() instead of
td_submit_job(), then it works well.

> Best regards,
> Marek Vasut

Best Regards,
Bo Shen