History | View | Annotate | Download (37.2 kB)
Merge branch pci into master
Merge master and pci branch, resolve build breakage in hw/esp.cintroduced by f90c2bcd.
Conflicts: hw/esp.c
uhci: initialize expire_time when loading v1 vmstate
$subject says all: when loading old (v1) vmstate which doesn't containexpire_time initialize it with a reasonable default (current time).
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
pci: convert PCIUnregisterFunc to void
Not a single driver has any possibility of failure on theirexit function, let's keep it that way.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
usb: Convert usb_packet_{map, unmap} to universal DMA helpers
The USB UHCI and EHCI drivers were converted some time ago to use thepci_dma_*() helper functions. However, this conversion was not completebecause in some places both these drivers do DMA via the usb_packet_map()...
uhci: fix uhci_async_cancel_all
We update the QTAILQ in the loop, thus we must use the SAFE versionto make sure we don't touch the queue struct after freeing it.
https://bugzilla.novell.com/show_bug.cgi?id=766310
uhci: fix bandwidth management
uhci_process_frame() can be invoked multiple times per frame, soaccounting usb bandwith in a local variable doesn't fly, use a variablein UHCIState instead. Also check the limit more frequently.
uhci: use bottom half
Schedule bottom half on completion of async packets instead of callinguhci_process_frame directly. This way we run uhci_process_frame onlyonce in case multiple packets finish in a row. Also check wheneverthere is bandwidth left before scheduling uhci_process_frame....
uhci: make bandwidth tunable
Add a property for the uhci bandwidth. Can be used to make uhciemulation run faster than real hardware.
uhci: zap uhci_pre_save
Cancel transactions before saving vmstate is pretty pointless and justcauses disruptions. We need to cancel them before loading vmstate,but in that case uhci_reset() handles it already and no special actionis needed.
uhci: fix irq routing
The multifunction ich9 ehci controller with uhci companions uses adifferent interrupt pin for each function. The three uhci devicesget pins A, B and C, whereas ehci uses pin D. This way the guestcan assign different IRQ lines to each controller....
usb-uhci: update irq line on reset
uhci_reset() clears irq mask and irq status registers, but doesn'tupdate the irq line. Which may result in suspious IRQs after uhcireset. Fix it.
usb-uhci: stop queue filling when we find a in-flight td
Not only QHs can form rings, but TDs too. With the newqueuing/pipelining support we are following TD chains andcan actually walk in circles. An assert() prevents us fromentering an endless loop then....
usb-uhci: queuing fix
When we queue up usb packets we may happen to find a already queuedpacket, which also might be finished at that point already. We don'twant continue processing the packet at this point though, so letsjust signal back we've found a in-flight packet when in queuing mode....
usb: the big rename
Reorganize usb source files. Create a new hw/usb/ directory and moveall usb source code to that place. Also make filenames a bit moredescriptive. Host adapters are prefixed with "hch-" now, usb deviceemulations are prefixed with "dev-". Fixup paths Makefile and include...
usb: zap hw/ush-{ohic,uhci}.h + init wrappers
Remove the uhci and ohci init wrappers, which all wrapped apci_create_simple() one-liner. Switch callsites to callpci_create_simple directly. Remove the header files wherethe wrappers where declared.
uhci: pass addr to uhci_async_alloc
Also do async->td initialization in uhci_async_alloc now.Prepares for adding tracepoints.
It should also free all queues.
uhci: cancel on schedule stop.
Cancel any in-flight transaction when the guest stops the uhci schedule.
uhci: tracing support
Zap DPRINTF, add tracepoints instead.
uhci: use enum for uhci_handle_td return codes
Step #1 (separate for better bisectability): replace numbers with names.
uhci: renumber uhci_handle_td return codes
Step #2 (separate for better bisectability): renumber so the silly '-1'goes away. Pick a range which doesn't overlap the old values.
uhci: new uhci_handle_td return code for tds still in flight
uhci: alloc can't fail, drop check.