aboutsummaryrefslogtreecommitdiff
path: root/hw
AgeCommit message (Collapse)Author
2012-02-10usb: fold usb_generic_handle_packet into usb_handle_packetGerd Hoffmann
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>
2012-02-10usb: kill handle_packet callbackGerd Hoffmann
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>
2012-02-10usb-xhci: switch to usb_find_device()Gerd Hoffmann
Switch over xHCI to use the new usb_find_device() function for device lookup. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb-musb: switch to usb_find_device()Gerd Hoffmann
Switch over musb to use the new usb_find_device() function for device lookup. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb-ohci: switch to usb_find_device()Gerd Hoffmann
Switch over OHCI to use the new usb_find_device() function for device lookup. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb-ehci: switch to usb_find_device()Gerd Hoffmann
Switch over EHCI to use the new usb_find_device() function for device lookup. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb-uhci: switch to usb_find_device()Gerd Hoffmann
Switch over UHCI to use the new usb_find_device() function for device lookup. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb: handle dev == NULL in usb_handle_packet()Gerd Hoffmann
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>
2012-02-10usb-hub: implement find_deviceGerd Hoffmann
Implement the find_device callback for the usb hub. It'll loop over all ports, calling usb_find_device for all enabled ports until it finds a matching device. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb: add usb_find_device()Gerd Hoffmann
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>
2012-02-10usb: kill usb_send_msgGerd Hoffmann
No users left. Zap it. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb: kill USB_MSG_RESETGerd Hoffmann
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>
2012-02-10usb: kill USB_MSG_{ATTACH,DETACH}Gerd Hoffmann
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>
2012-02-10usb-ehci: Clear the portstatus powner bit on device disconnectHans de Goede
According to the EHCI spec port ownership should revert to the EHCI controller on device disconnect. This fixes the problem of a port getting stuck on USB 1 when using redirection and plugging in a USB 2 device after a USB 1 device has been redirected. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-10usb-uhci: implement bandwidth managementGerd Hoffmann
The OS is allowed to make the UHCI Controller run in circles. That is usually done to serve multiple connected USB devices in a robin-round fashion, so the available USB bandwidth is evenly distributed between devices. The uhci emulation handles this in a very poor way though. When it figures it runs in circles it stops processing unconditionally, so it usually processes at most a single transfer desriptor per queue, even if there are multiple transfer descriptors are queued up. This patch makes uhci act in a more sophisticated way. It keeps track of successful processed transfer descriptors and transfered bytes. Then it will stop processing when there is nothing to do (no transfer descriptor was completed the last round) or when the transfered data reaches the usb bandwidth limit. Result is that the usb-storage devices connected to uhci are ten times faster, mkfs.vfat time for a 64M stick goes down from five seconds to a half second. Reason for this is that we are now processing up to 20 transfer descriptors (with 64 bytes each) per frame instead of a single one. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-09ARM devboards: Set arm_sysctl properties before init, not afterPeter Maydell
The ARM devboard models (vexpress-a9, realview, versatilepb, etc) were accidentally trying to set one of the arm_sysctl properties after device init. This has now become a fatal error; set the property before device init where it should be done instead. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-02-08Merge remote-tracking branch 'bonzini/qdev-props-for-anthony' into stagingAnthony Liguori
* bonzini/qdev-props-for-anthony: (25 commits) qdev: remove unused fields from PropertyInfo qdev: initialize properties via QOM qdev: inline qdev_prop_set into qdev_prop_set_ptr qdev: access properties via QOM qdev: fix off-by-one qdev: let QOM free properties qdev: remove parse/print methods for pointer properties qdev: make the non-legacy pci address property accept an integer qdev: remove parse/print methods for mac properties qdev: remove print/parse methods from LostTickPolicy properties qdev: remove parse method for string properties qdev: allow reusing get/set for legacy property qdev: remove direct calls to print/parse qom: add property get/set wrappers for links qom: fix canonical paths vs. interfaces qom: use object_resolve_path_type for links qom: add object_resolve_path_type qom: fix off-by-one qom: add property get/set wrappers for C types qom: add QObject-based property get/set wrappers ...
2012-02-08Merge remote-tracking branch 'aneesh/for-upstream' into stagingAnthony Liguori
* aneesh/for-upstream: hw/9pfs: Remove O_NOATIME flag from 9pfs open() calls in readonly mode hw/9pfs: Update MAINTAINERS file fsdev: Fix parameter parsing for proxy helper hw/9pfs: Fix crash when mounting with synthfs hw/9pfs: Preserve S_ISGID hw/9pfs: Add new security model mapped-file.
2012-02-07Restore consistent formattingmalc
Signed-off-by: malc <av1474@comtv.ru>
2012-02-07qdev: remove unused fields from PropertyInfoPaolo Bonzini
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: initialize properties via QOMPaolo Bonzini
Similarly, use the object properties also to set the default values of the qdev properties. This requires reordering registration and initialization. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: inline qdev_prop_set into qdev_prop_set_ptrPaolo Bonzini
qdev_prop_set is not needed anymore except for hacks, simplify it and inline it. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: access properties via QOMPaolo Bonzini
Do not poke anymore in the struct when accessing qdev properties. Instead, ask the object to set the right value. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: fix off-by-onePaolo Bonzini
Integer properties did not work. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: let QOM free propertiesPaolo Bonzini
Drop the special free callback. Instead, register a "regular" release method in the non-legacy property. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: remove parse/print methods for pointer propertiesPaolo Bonzini
Pointer properties (except for PROP_PTR of course) should not need a legacy counterpart. In the future, relative paths will ensure that QEMU will support the same syntax as now for drives etc.. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: make the non-legacy pci address property accept an integerPaolo Bonzini
PCI addresses are set with qdev_prop_uint32. Thus we make the QOM property accept a device and function encoded in an 8-bit integer, instead of the magic dd.f hex string. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: remove parse/print methods for mac propertiesPaolo Bonzini
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: remove print/parse methods from LostTickPolicy propertiesPaolo Bonzini
Also generalize the code so that we can have more enum properties in the future. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: remove parse method for string propertiesPaolo Bonzini
We need the print method to put double quotes, but parsing is not special. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: allow reusing get/set for legacy propertyPaolo Bonzini
In some cases, a legacy property does need a special print method but not a special parse method. In this case, we can reuse the get/set from the static (non-legacy) property. If neither parse nor print is needed, though, do not register the legacy property at all. The previous patch ensures that the right fallback will be used. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-07qdev: remove direct calls to print/parsePaolo Bonzini
There's no need to call into ->parse and ->print manually. The QOM legacy properties do that for us. Furthermore, in some cases legacy and static properties have exactly the same behavior, and we could drop the legacy properties right away. Add an appropriate fallback to prepare for this. Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-02-06s390x: fix qom-ification fall-outAnthony Liguori
Tested-by: Andreas Faerber <afaerber@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-06KVM: Fix breakages of QOM conversionJan Kiszka
KVM APIC and PIC require instance sizes. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-04vga: improve documentationBlue Swirl
Add links to chipset docs and FreeVGA site. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2012-02-04vga: use constants from vga.hBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2012-02-04vga.h: remove unused stuff and reformatBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2012-02-04Add vga.h unmodified from LinuxBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2012-02-04vga: move Cirrus VGA template to its own fileBlue Swirl
Standard VGA does not use vga_draw_cursor_line_* functions. Move the template to cirrus_vga_template.h. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2012-02-04memory: change dirty getting API to take a sizeBlue Swirl
Instead of each device knowing or guessing the guest page size, just pass the desired size of dirtied memory area. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2012-02-03container: make a decendent of ObjectAnthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- v1 -> v2 - Add license (Paolo)
2012-02-03info qdm: do not require a parent_bus to be setAnthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-03qdev: implement cleanup logic in finalizeAnthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-03qom: move properties from qdev to objectAnthony Liguori
This is mostly code movement although not entirely. This makes properties part of the Object base class which means that we can now start using Object in a meaningful way outside of qdev. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-03qdev: nuke qdev_init_chardev()Anthony Liguori
I'm sure the intentions were good here, but there's no reason this should be in qdev. Move it to qemu-char where it belongs. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-03qdev: split out UI portions into a new functionAnthony Liguori
qdev-monitor.c deals with the -device, device_add, and info qdm/qtree interfaces. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-03qdev: refactor away qdev_create_from_infoAnthony Liguori
Note that the FIXME gets fixed in series 4/4. We need to convert BusState to QOM before we can make parent_bus a link. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-03qdev: split out common init to instance_initAnthony Liguori
This gets us closer to being able to object_new() a qdev type and have a functioning object verses having to call qdev_create(). Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-02-03qdev: remove baked in notion of aliases (v2)Anthony Liguori
Limit them to the device_add functionality. Device aliases were a hack based on the fact that virtio was modeled the wrong way. The mechanism for aliasing is very limited in that only one alias can exist for any device. We have to support it for the purposes of compatibility but we only need to support it in device_add so restrict it to that piece of code. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> --- v1 -> v2 - Use a table for aliases (Paolo)
2012-02-03qdev: kill off DeviceInfoAnthony Liguori
It is no longer used in the tree since everything is done natively through QEMU Object Model. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>