Hi,

>> >> Here are the last two setup data and CBW data received. the
>> >> get_next_command() is not called when CBW data is received. the
>> >> bulk_out_complete() wakes up the thread, however, get_next_command()
>> >> still sleeps. i do not see where req->length is checked in gadget
>> >> driver.
>> >>
>> >> g_file_storage gadget: ep0-setup, length 8:
>> >> 00000000: 00 09 01 00 00 00 00 00
>> >> g_file_storage gadget: set configuration
>> >> g_file_storage gadget: ep0-setup, length 8:
>> >> 00000000: a1 fe 00 00 00 00 01 00
>> >> g_file_storage gadget: get max LUN
>> >> g_file_storage gadget: ep0-in, length 1:
>> >> 00000000: 00
>> >> g_file_storage gadget: bulk-out, length 31:
>> >> 00000000: 55 53 42 43 a8 48 ed 86 24 00 00 00 80 00 06 12
>> >> 00000010: 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00
>> >> g_file_storage gadget: bulk_out_complete --> 0, 31/0
>> >
>> > file_storage uses bulk_out_intended_length.
>> >
>> > You're on your own, to be fair, using a really old kernel, you never
>> > posted your UDC driver for review, so you need to fix it all up by
>> > yourself.
>> >
>> > Read the code, add prints, look at other UDC drivers. g_file_storage is
>> > next to perfect and proven to work with many, many different setups.
>>
>> Here is my UDC driver code. I use a kthread to poll the hardware
>> register EP0 and EP1 interrupt. I removed the HW register access code.
>
> you should an interrupt handler to handle interrupts from your device.
> Also, there are way too many mistakes on your driver, run checkpatch.pl,
> compile it with sparse, don't hardcode addresses, don't reimplement a
> bunch of infrastructure the kernel already gives you  and check your
> list_head usage!

I have run checkpatch.pl and read the linux/usb/gadget.h. The Soc
interrupt controller has problem, so i use a kernel thread to read
from USB controller directly.

> don't reimplement a bunch of infrastructure the kernel already gives you
i don't understand this. please kindly show an example.

> Also, you shouldn't requeue the request yourself, gadget driver owns the
> request.
which request do i requeue? please kindly point that out. Thanks!

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

Reply via email to