#
f1ae32a1 |
| 07-Mar-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: the big rename
Reorganize usb source files. Create a new hw/usb/ directory and move all usb source code to that place. Also make filenames a bit more descriptive. Host adapters are prefixed
usb: the big rename
Reorganize usb source files. Create a new hw/usb/ directory and move all usb source code to that place. Also make filenames a bit more descriptive. Host adapters are prefixed with "hch-" now, usb device emulations are prefixed with "dev-". Fixup paths Makefile and include paths to make it compile. No code changes.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
1b4b29a1 |
| 02-Mar-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add shortcut for control transfers
Add a more direct code path to submit control transfers. Instead of feeding three usb packets (setup, data, ack) to usb_handle_packet and have the do_token_*
usb: add shortcut for control transfers
Add a more direct code path to submit control transfers. Instead of feeding three usb packets (setup, data, ack) to usb_handle_packet and have the do_token_* functions in usb.c poke the control transfer parameters out of it just submit a single packet carrying the actual data with the control xfer parameters filled into USBPacket->parameters.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
7936e0f0 |
| 01-Mar-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add pipelining option to usb endpoints
With this patch applied USB drivers can enable pipelining per endpoint. With pipelining enabled the usb core will continue submitting packets even when th
usb: add pipelining option to usb endpoints
With this patch applied USB drivers can enable pipelining per endpoint. With pipelining enabled the usb core will continue submitting packets even when there are still async transfers in flight instead of passing them on one by one.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
eb9d4673 |
| 28-Feb-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: queue can have async packets
This can happen today in case the ->complete() callback queues up the next packet. Also we'll support pipelining soon, which allows to have multiple packets per qu
usb: queue can have async packets
This can happen today in case the ->complete() callback queues up the next packet. Also we'll support pipelining soon, which allows to have multiple packets per queue in flight (aka ASYNC) state.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
808aeb98 |
| 24-Feb-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add tracepoint for usb packet state changes.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
#
37f32f0f |
| 20-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add USBBusOps->wakeup_endpoint
Add usb bus op which is called whenever a usb endpoint becomes ready, so the host adapter emulation can react on that event.
Signed-off-by: Gerd Hoffmann <kraxel
usb: add USBBusOps->wakeup_endpoint
Add usb bus op which is called whenever a usb endpoint becomes ready, so the host adapter emulation can react on that event.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
7567b51f |
| 17-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: pass USBEndpoint to usb_wakeup
Devices must specify which endpoint has data to transfer now. The plan is to use the usb_wakeup() not only for remove wakeup support, but for "data ready" signali
usb: pass USBEndpoint to usb_wakeup
Devices must specify which endpoint has data to transfer now. The plan is to use the usb_wakeup() not only for remove wakeup support, but for "data ready" signaling in general, so we can move away from constant polling to event driven usb device emulation.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
db4be873 |
| 12-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: maintain async packet list per endpoint
Maintain a list of async packets per endpoint. With the current code the list will never receive more than a single item. I think you can guess what th
usb: maintain async packet list per endpoint
Maintain a list of async packets per endpoint. With the current code the list will never receive more than a single item. I think you can guess what the future plan is though ;)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
079d0b7f |
| 12-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: Set USBEndpoint in usb_packet_setup().
With the separation of the device lookup (via usb_find_device) and packet processing we can lookup device and endpoint before setting up the usb packet.
usb: Set USBEndpoint in usb_packet_setup().
With the separation of the device lookup (via usb_find_device) and packet processing we can lookup device and endpoint before setting up the usb packet. So we can initialize USBPacket->ep early and keep it valid for the whole lifecycle of the USBPacket. Also the devaddr and devep fields are not needed any more.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
63095ab5 |
| 12-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add USBEndpoint->{nr,pid}
Add a "nr" and "pid" fields to USBEndpoint so you can easily figure the endpoint number and direction of any given endpoint.
Signed-off-by: Gerd Hoffmann <kraxel@redh
usb: add USBEndpoint->{nr,pid}
Add a "nr" and "pid" fields to USBEndpoint so you can easily figure the endpoint number and direction of any given endpoint.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
f53c398a |
| 12-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: USBPacket: add status, rename owner -> ep
Add enum to track the status of USBPackets, use that instead of the owner pointer to figure whenever a usb packet is currently in flight or not. Add s
usb: USBPacket: add status, rename owner -> ep
Add enum to track the status of USBPackets, use that instead of the owner pointer to figure whenever a usb packet is currently in flight or not. Add some more packet status sanity checks. Also rename the USBEndpoint pointer from "owner" to "ep".
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
1977f93d |
| 11-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: fold usb_generic_handle_packet into usb_handle_packet
There is no reason to have a separate usb_generic_handle_packet function any more, fold it into usb_handle_packet(). Also call the do_toke
usb: fold usb_generic_handle_packet into usb_handle_packet
There is no reason to have a separate usb_generic_handle_packet function any more, fold it into usb_handle_packet(). Also call the do_token_* functions which handle control transfer emulation for control pipe packets only.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
7f74a56b |
| 11-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: kill handle_packet callback
All drivers except usb-hub use usb_generic_handle_packet. The only reason the usb hub has its own function is that it used to be called with packets which are inten
usb: kill handle_packet callback
All drivers except usb-hub use usb_generic_handle_packet. The only reason the usb hub has its own function is that it used to be called with packets which are intended for downstream devices. With the new, separate device lookup step this doesn't happen any more, so the need for a different handle_packet callback is gone.
So we can kill the handle_packet callback and just call usb_generic_handle_packet directly. The special hub handling in usb_handle_packet() can go away for the same reason.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
98861f51 |
| 10-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: handle dev == NULL in usb_handle_packet()
Allow passing in a NULL pointer, return USB_RET_NODEV in that case. Removes the burden to to a NULL pointer check from the callers.
Signed-off-by: Ger
usb: handle dev == NULL in usb_handle_packet()
Allow passing in a NULL pointer, return USB_RET_NODEV in that case. Removes the burden to to a NULL pointer check from the callers.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
73796fe6 |
| 10-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add usb_find_device()
Add usb_find_device(). This function will check whenever a device with a specific address is connected to the specified port. Usually this will just check state and addr
usb: add usb_find_device()
Add usb_find_device(). This function will check whenever a device with a specific address is connected to the specified port. Usually this will just check state and address of the device hooked up to the port, but in case of a hub it will ask the hub to check all hub ports for a matching device.
This patch doesn't put the code into use yet, see the following patches for details.
The master plan is to separate device lookup and packet processing. Right now the usb code simply walks all devices, calls usb_handle_packet() on each until one accepts the packet (by returning something different that USB_RET_NODEV). I want to have a device lookup first, then call usb_handle_packet() once, for the device which actually processes the packet.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
70fc20d4 |
| 06-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: kill usb_send_msg
No users left. Zap it.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
#
d28f4e2d |
| 06-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: kill USB_MSG_RESET
The USB subsystem pipes internal reset notifications through usb_handle_packet() with a special magic PID. This indirection is a pretty pointless excercise as it ends up bei
usb: kill USB_MSG_RESET
The USB subsystem pipes internal reset notifications through usb_handle_packet() with a special magic PID. This indirection is a pretty pointless excercise as it ends up being handled by usb_generic_handle_packet anyway.
Replace the USB_MSG_RESET with a usb_device_reset() function which can be called directly. Also rename the existing usb_reset() function to usb_port_reset() to avoid confusion.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
d1f8b536 |
| 06-Jan-2012 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: kill USB_MSG_{ATTACH,DETACH}
The USB subsystem pipes internal attach/detach notifications through usb_handle_packet() with a special magic PID. This indirection is a pretty pointless excercise
usb: kill USB_MSG_{ATTACH,DETACH}
The USB subsystem pipes internal attach/detach notifications through usb_handle_packet() with a special magic PID. This indirection is a pretty pointless excercise as it ends up being handled by usb_generic_handle_packet anyway. Remove it.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
62aed765 |
| 15-Dec-2011 |
Anthony Liguori <aliguori@us.ibm.com> |
usb: convert to QEMU Object Model
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
|
#
25d5de7d |
| 13-Dec-2011 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: link packets to endpoints not devices
Add USBEndpoint for the control endpoint to USBDevices. Link async packets to the USBEndpoint instead of the USBDevice.
Signed-off-by: Gerd Hoffmann <kra
usb: link packets to endpoints not devices
Add USBEndpoint for the control endpoint to USBDevices. Link async packets to the USBEndpoint instead of the USBDevice.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
f003397c |
| 31-Aug-2011 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add max_packet_size to USBEndpoint
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
#
5b6780d0 |
| 29-Aug-2011 |
Gerd Hoffmann <kraxel@redhat.com> |
usb/debug: add usb_ep_dump
Add function to dump endpoint data, for debugging purposes.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
#
82f02fe9 |
| 29-Aug-2011 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add ifnum to USBEndpoint
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
#
d8e17efd |
| 29-Aug-2011 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: add USBEndpoint
Start maintaining endpoint state at USBDevice level. Add USBEndpoint struct and some helper functions to deal with it. For now it contains the endpoint type only. Moved over
usb: add USBEndpoint
Start maintaining endpoint state at USBDevice level. Add USBEndpoint struct and some helper functions to deal with it. For now it contains the endpoint type only. Moved over some bits from usb-linux.c
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|
#
e0b8e72d |
| 15-Sep-2011 |
Gerd Hoffmann <kraxel@redhat.com> |
usb: fix port reset
commit 891fb2cd4592b6fe76106a69e0ca40efbf82726a removed the implicit detach before (re-)attaching in usb_attach(). Some usb host controllers used that behavior though to do a po
usb: fix port reset
commit 891fb2cd4592b6fe76106a69e0ca40efbf82726a removed the implicit detach before (re-)attaching in usb_attach(). Some usb host controllers used that behavior though to do a port reset by a detach+attach sequence.
This patch establishes old behavior by adding a new usb_reset() function for port resets and putting it into use, thereby also unifying port reset behavior of all host controllers. The patch also adds asserts to usb_attach() and usb_detach() to make sure the calls are symmetrical.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
show more ...
|