Hi,
> No, that's not right. Set-Config has only two stages, Setup and
> Status; there is no Data stage. The flow is:
>
> Host Device
> ----- Setup Packet ---> |
> ----- Data0 Packet ---> |== Setup stage
> <---- Ack Packet ------ |
>
> ----- In Packet ------> |
> <---- Data1 Packet ---- |== Status stage
> ----- Ack Packet -----> |
>
>
>> "ACK the Status stage of an OUT control transfer", is it referring to
>> the Third ACK packet? So UDC driver should ACK only after Data1 packet
>> is sent via the usb_ep_queue()?
>
> I meant the Data1 packet above. The UDC driver should not send this
> packet until the gadget driver tells it to (by calling usb_ep_queue).
> Until then, it should send NAK in respond to the In packet.
Is the Data1 packet above containing no data, such as this?
PID !PID CRC
I do not see the gadget driver calling usb_ep_queue() for sending the
Data1 packet. Please see the log below. Is there similar code in
net2280.c handle_stat0_irqs() that handles Set-Config?
g_file_storage gadget: ep0-setup, length 8:
00000000: 00 09 00 00 00 00 00 00
g_file_storage gadget: set configuration
after kagen2_ep_queue
kagen2_ep_queue 31 64 31
[kagen2_ep_queue] 43425355 899e1008
g_file_storage gadget: bulk-out, length 31:
00000000: 55 53 42 43 08 10 9e 89 00 00 00 00 00 00 0a 35
00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
g_file_storage gadget: SCSI command: SYNCHRONIZE CACHE; Dc=10, Dn=0;
Hc=10, Hn=0
g_file_storage gadget: ep0-setup, length 8:
00000000: 80 08 00 00 00 00 01 00
g_file_storage gadget: get configuration
ept0 in queue len 0x1, buffer 0xc1289800
ep0_complete
g_file_storage gadget: ep0-in, length 1:
00000000: 01
attention condition
Thanks,
victor
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html