]> git.proxmox.com Git - mirror_qemu.git/log
mirror_qemu.git
11 years agodtc: add submodule
Peter Crosthwaite [Thu, 18 Apr 2013 04:46:53 +0000 (14:46 +1000)]
dtc: add submodule

Add dtc submodule as a fallback for old distros.
Picking version 1.3.0. as this is the most recently tagged stable version.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoconfigure: Put cross compile flags in EXTRA_CFLAGS
Peter Crosthwaite [Thu, 18 Apr 2013 04:46:14 +0000 (14:46 +1000)]
configure: Put cross compile flags in EXTRA_CFLAGS

The cross compile CFLAGS are needed to properly build pixman (and any other
submodules). Only the EXTRA_CFLAGS set is passed to submodules not QEMU_CFLAGS,
so put the cross compile flags in EXTRA_CFLAGS instead.

Signed-off-by: Peter Crosthwaite peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agovirtio-net: cleanup: init and exit function.
KONRAD Frederic [Thu, 11 Apr 2013 14:30:02 +0000 (16:30 +0200)]
virtio-net: cleanup: init and exit function.

This remove old init and exit function as they are no longer needed.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1365690602-22729-8-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-net: cleanup: use QOM cast.
KONRAD Frederic [Thu, 11 Apr 2013 14:30:01 +0000 (16:30 +0200)]
virtio-net: cleanup: use QOM cast.

As the virtio-net-pci and virtio-net-s390 are switched to the new API,
we can use QOM casts.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1365690602-22729-7-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-net-ccw: switch to the new API.
KONRAD Frederic [Thu, 11 Apr 2013 14:30:00 +0000 (16:30 +0200)]
virtio-net-ccw: switch to the new API.

Here the virtio-net-ccw is modified for the new API. The device
virtio-net-ccw extends virtio-ccw-device as before. It creates and
connects a virtio-net-device during the init. The properties are not modified.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1365690602-22729-6-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-net-s390: switch to the new API.
KONRAD Frederic [Thu, 11 Apr 2013 14:29:59 +0000 (16:29 +0200)]
virtio-net-s390: switch to the new API.

Here the virtio-net-s390 is modified for the new API. The device
virtio-net-s390 extends virtio-s390-device as before. It creates and
connects a virtio-net-device during the init. The properties are not modified.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1365690602-22729-5-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-net-pci: switch to the new API.
KONRAD Frederic [Thu, 11 Apr 2013 14:29:58 +0000 (16:29 +0200)]
virtio-net-pci: switch to the new API.

Here the virtio-net-pci is modified for the new API. The device
virtio-net-pci extends virtio-pci. It creates and connects a
virtio-net-device during the init. The properties are not changed.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1365690602-22729-4-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-net: add the virtio-net device.
KONRAD Frederic [Thu, 11 Apr 2013 14:29:57 +0000 (16:29 +0200)]
virtio-net: add the virtio-net device.

Create virtio-net-device which extends virtio-device, so it can be connected on
virtio-bus.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1365690602-22729-3-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio: add two functions to VirtioDeviceClass.
KONRAD Frederic [Thu, 11 Apr 2013 14:29:56 +0000 (16:29 +0200)]
virtio: add two functions to VirtioDeviceClass.

Recent changes need two functions to VirtioDevice. This just add them
into VirtioDeviceClass.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1365690602-22729-2-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoFix warnings suppressors to honor --disable-werror
Markus Armbruster [Tue, 16 Apr 2013 11:51:06 +0000 (13:51 +0200)]
Fix warnings suppressors to honor --disable-werror

Replace

    #pragma GCC diagnostic ignored FOO
    [Troublesome code...]
    #pragma GCC diagnostic error FOO

by

    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored FOO
    [Troublesome code...]
    #pragma GCC diagnostic pop

Broken in commit 3f4349d, commit 092bb30, and commit c95e308.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Tested-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1366113066-1340-1-git-send-email-armbru@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agofw_cfg: add qtest test case
Anthony Liguori [Tue, 16 Apr 2013 14:45:21 +0000 (09:45 -0500)]
fw_cfg: add qtest test case

This validates some basic characteristics of fw_cfg.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1366123521-4330-8-git-send-email-aliguori@us.ibm.com

11 years agoi440fx-test: add test for PAM functionality
Anthony Liguori [Tue, 16 Apr 2013 14:45:20 +0000 (09:45 -0500)]
i440fx-test: add test for PAM functionality

This tests PAM settings for the i440fx.  This test does a lot of
byte MMIO which is fairly slow with qtest today.  But the test
does complete in under 2 seconds.

We don't fully emulate PAM largely because of limitations with
KVM so we #if 0 that part of the test case.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1366123521-4330-7-git-send-email-aliguori@us.ibm.com

11 years agoi440fx-test: add test to compare default register values
Anthony Liguori [Tue, 16 Apr 2013 14:45:19 +0000 (09:45 -0500)]
i440fx-test: add test to compare default register values

This test compares all of the default register values against the
spec.  It turns out we deviate in quite a few places.  These
places are really only visible to the BIOS though which is why
this hasn't created any problems.

The deviation actually happens in the core PCI layer so I suspect
it's not a simple fix if we really care to fix it.  For now, just
disable the affected checks.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1366123521-4330-6-git-send-email-aliguori@us.ibm.com

11 years agolibqos: add malloc support
Anthony Liguori [Tue, 16 Apr 2013 14:45:18 +0000 (09:45 -0500)]
libqos: add malloc support

This is a very simple allocator for the PC platform.  It should
be possible to add backends for other platforms.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1366123521-4330-5-git-send-email-aliguori@us.ibm.com

11 years agolibqos: add fw_cfg support
Anthony Liguori [Tue, 16 Apr 2013 14:45:17 +0000 (09:45 -0500)]
libqos: add fw_cfg support

fw_cfg is needed to get the top of memory which is necessary for
doing PCI allocation and allocating RAM for DMA.

Add a PC version of fw_cfg and enough abstraction to support other
platforms.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1366123521-4330-4-git-send-email-aliguori@us.ibm.com

11 years agoqtest: add libqos including PCI support
Anthony Liguori [Tue, 16 Apr 2013 14:45:16 +0000 (09:45 -0500)]
qtest: add libqos including PCI support

This includes basic PCI support for the PC platform.  Enough
abstraction should be present to support non-PC platforms too.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1366123521-4330-3-git-send-email-aliguori@us.ibm.com

11 years agoqtest: don't use system command to avoid double fork
Anthony Liguori [Tue, 16 Apr 2013 14:45:15 +0000 (09:45 -0500)]
qtest: don't use system command to avoid double fork

Currently we waitpid on the child process we spawn off that does
nothing more than system() another process.  While this does not
appear to be incorrect, it's wasteful and confusing so get rid of
it.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1366123521-4330-2-git-send-email-aliguori@us.ibm.com

11 years agomigration: reflect incoming failure to shell
Eric Blake [Tue, 16 Apr 2013 21:50:41 +0000 (15:50 -0600)]
migration: reflect incoming failure to shell

Management apps like libvirt don't know to pay attention to
stderr unless there is a non-zero exit status.

* migration.c (process_incoming_migration_co): Exit with non-zero
status on failure.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-id: 1366149041-626-1-git-send-email-eblake@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoqbus: remove wrong error messages
Alexey Kardashevskiy [Wed, 17 Apr 2013 07:49:00 +0000 (17:49 +1000)]
qbus: remove wrong error messages

The existing code shows the "Bus '%s' is full" message even if name
is specified and different from bus->name (i.e. match=0).

The patch excludes unnecessary error message.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Message-id: 1366184940-13516-1-git-send-email-aik@ozlabs.ru
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agochardev: remove the headers of Memory chardev driver
Lei Li [Wed, 17 Apr 2013 08:46:54 +0000 (16:46 +0800)]
chardev: remove the headers of Memory chardev driver

Memory chardev driver is no longer used, and Commit:
4bf0bb8014ac2ac61b1004f5d92b2a4594d48017 has droped
it but the headers, so clean it up.

Signed-off-by: Lei Li <lilei@linux.vnet.ibm.com>
Message-id: 1366188414-24214-1-git-send-email-lilei@linux.vnet.ibm.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'bonzini/migration-writev' into staging
Anthony Liguori [Wed, 17 Apr 2013 15:14:07 +0000 (10:14 -0500)]
Merge remote-tracking branch 'bonzini/migration-writev' into staging

# By Paolo Bonzini
# Via Paolo Bonzini
* bonzini/migration-writev:
  qemu-file: do not use stdio for qemu_fdopen
  iov: handle partial writes from sendmsg and recvmsg
  iov: reorganize iov_send_recv, part 3
  iov: reorganize iov_send_recv, part 2
  iov: reorganize iov_send_recv, part 1
  qemu-file: drop socket_put_buffer

Message-id: 1366192012-14872-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoqemu-file: do not use stdio for qemu_fdopen
Paolo Bonzini [Wed, 27 Mar 2013 16:36:32 +0000 (17:36 +0100)]
qemu-file: do not use stdio for qemu_fdopen

This uses system calls directly for Unix file descriptors, so that the
efficient writev_buffer can be used.  Pay attention to the possibility
of partial writes in writev.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agoiov: handle partial writes from sendmsg and recvmsg
Paolo Bonzini [Wed, 27 Mar 2013 16:36:31 +0000 (17:36 +0100)]
iov: handle partial writes from sendmsg and recvmsg

Partial writes can still happen in sendmsg and recvmsg, if a
signal is received in the middle of a write.  To handle this,
retry the operation with a new offset/bytes pair.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agoiov: reorganize iov_send_recv, part 3
Paolo Bonzini [Wed, 27 Mar 2013 16:36:30 +0000 (17:36 +0100)]
iov: reorganize iov_send_recv, part 3

"si" and "ei" are merged in a single variable.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agoiov: reorganize iov_send_recv, part 2
Paolo Bonzini [Wed, 27 Mar 2013 16:36:29 +0000 (17:36 +0100)]
iov: reorganize iov_send_recv, part 2

Do not touch the "bytes" argument anymore.  Instead, remember the
original length of the last iovec if we touch it, and restore it
afterwards.

This requires undoing the changes in opposite order.  The previous
algorithm didn't care.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agoiov: reorganize iov_send_recv, part 1
Paolo Bonzini [Wed, 27 Mar 2013 16:36:28 +0000 (17:36 +0100)]
iov: reorganize iov_send_recv, part 1

Once the initial part of the iov is dropped, it is not used anymore.
Modify iov/iovcnt directly instead of adjusting them with the "si"
variable.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agoqemu-file: drop socket_put_buffer
Paolo Bonzini [Wed, 27 Mar 2013 16:36:27 +0000 (17:36 +0100)]
qemu-file: drop socket_put_buffer

It is enough to implement one of socket_writev_buffer and
socket_put_buffer.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agoqom: do nothing on unparent of object without parent
Paolo Bonzini [Tue, 2 Apr 2013 13:50:00 +0000 (15:50 +0200)]
qom: do nothing on unparent of object without parent

Otherwise, device_unparent will fail to get a canonical path of
the object.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1364910600-3418-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoqdev: Fix device_add bus assumptions
Andreas Färber [Tue, 16 Apr 2013 01:50:21 +0000 (03:50 +0200)]
qdev: Fix device_add bus assumptions

Drop an unreachable fallback bus assignment to SysBus.

If no ,bus= is specified, only search busses recursively for bus type if
the DeviceClass has a bus_type specified. Handle resulting NULL cases.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Message-id: 1366077021-28882-1-git-send-email-afaerber@suse.de
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agorng random backend: check for -EAGAIN errors on read
Amit Shah [Tue, 16 Apr 2013 10:28:16 +0000 (15:58 +0530)]
rng random backend: check for -EAGAIN errors on read

Not handling EAGAIN triggers the assert

qemu/backends/rng-random.c:44:entropy_available: assertion failed: (len != -1)
Aborted (core dumped)

This happens when starting a guest with '-device virtio-rng-pci',
issuing a 'cat /dev/hwrng' in the guest, while also doing 'cat
/dev/random' on the host.

Reported-by: yunpingzheng <yunzheng@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Message-id: eacda84dfaf2d99cf6d250b678be4e4d6c2088fb.1366108096.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agomigration: initialize RAM to zero
Paolo Bonzini [Tue, 9 Apr 2013 15:43:43 +0000 (17:43 +0200)]
migration: initialize RAM to zero

Using qemu_memalign only leaves the RAM zero by chance, because libc
will usually use mmap to satisfy our huge requests.  But memory will
not be zero when using MALLOC_PERTURB_ with a nonzero value.  In the
case of incoming migration, this breaks a recently-introduced
invariant (commit f1c7279, migration: do not sent zero pages in
bulk stage, 2013-03-26).

To fix this, use mmap ourselves to get a well-aligned, always zero
block for the RAM.  Mmap-ed memory is easy to "trim" at the sides.

This also removes the need to do something special on valgrind
(see commit c2a8238a, Support running QEMU on Valgrind, 2011-10-31),
thus effectively reverts that patch.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1365522223-20153-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'kraxel/usb.80' into staging
Anthony Liguori [Tue, 16 Apr 2013 15:28:58 +0000 (10:28 -0500)]
Merge remote-tracking branch 'kraxel/usb.80' into staging

# By Gerd Hoffmann (6) and Hans de Goede (1)
# Via Gerd Hoffmann
* kraxel/usb.80:
  use libusb for usb-host
  xhci: fix address device
  xhci: use slotid as device address
  xhci: fix portsc writes
  xhci: add xhci_cap_write
  xhci: remove leftover debug printf
  usb-serial: Remove double call to qemu_chr_add_handlers( NULL )

Message-id: 1366107190-30853-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'spice/spice.v69' into staging
Anthony Liguori [Tue, 16 Apr 2013 15:28:51 +0000 (10:28 -0500)]
Merge remote-tracking branch 'spice/spice.v69' into staging

# By Hans de Goede (5) and others
# Via Gerd Hoffmann
* spice/spice.v69:
  spice-qemu-char: vmc_write: Don't write more bytes then we're asked too
  spice-qemu-char: Remove intermediate buffer
  spice-qemu-char: Add watch support
  spice-qemu-char: Remove #ifdef-ed code for old spice-server compat
  virtio-console: Remove any pending watches on close
  virtio-console: Also throttle when less was written then requested
  spice: (32 bit only) fix surface cmd tracking destruction
  qxl: add 2000x2000 and 2048x2048 video modes
  qxl: add 4k + 8k resolutions

Message-id: 1366106194-28826-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'kraxel/pixman.v11' into staging
Anthony Liguori [Tue, 16 Apr 2013 15:28:43 +0000 (10:28 -0500)]
Merge remote-tracking branch 'kraxel/pixman.v11' into staging

# By Gerd Hoffmann (22) and Igor Mitsyanko (2)
# Via Gerd Hoffmann
* kraxel/pixman.v11: (24 commits)
  qxl: register QemuConsole for secondary cards
  gtk: custom cursor support
  console: allow pinning displaychangelisteners to consoles
  console: add qemu_console_is_*
  xen: re-enable refresh interval reporting for xenfb
  console: gui timer fixes
  console: add GraphicHwOps
  console: make DisplayState private to console.c
  console: move gui_update+gui_setup_refresh from vl.c into console.c
  console: zap g_width + g_height
  console: simplify screendump
  console: give each QemuConsole its own DisplaySurface
  console: rename vga_hw_*, add QemuConsole param
  console: displaystate init revamp
  console: add trace events
  console: switch color_table_rgb to pixman_color_t
  console: use pixman for font rendering
  console: use pixman for fill+blit
  pixman: render vgafont glyphs into pixman images
  pixman: add qemu_pixman_color()
  ...

Message-id: 1366105178-26744-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'afaerber/qom-cpu' into staging
Anthony Liguori [Tue, 16 Apr 2013 15:28:36 +0000 (10:28 -0500)]
Merge remote-tracking branch 'afaerber/qom-cpu' into staging

# By Igor Mammedov (8) and others
# Via Andreas Färber
* afaerber/qom-cpu:
  target-cris: Override do_interrupt for pre-v32 CPU cores
  qdev: Set device's parent before calling realize() down inheritance chain
  cpu: Pass CPUState to *cpu_synchronize_post*()
  target-i386: Split out CPU creation and features parsing
  target-i386/cpu.c: Coding style fixes
  ioapic: Replace FROM_SYSBUS() with QOM type cast
  kvmvapic: Replace FROM_SYSBUS() with QOM type cast
  target-i386: Split APIC creation from initialization in x86_cpu_realizefn()
  target-i386: Consolidate error propagation in x86_cpu_realizefn()
  qdev: Add qdev property for bool type
  target-i386: Improve -cpu ? features output
  target-i386: Fix including "host" in -cpu ? output

11 years agouse libusb for usb-host
Gerd Hoffmann [Fri, 30 Nov 2012 15:02:11 +0000 (16:02 +0100)]
use libusb for usb-host

Reimplement usb-host on top of libusb.
Reasons to do this:

 (1) Largely rewritten from scratch, nice opportunity to kill historical
     cruft.
 (2) Offload usbfs handling to libusb.
 (3) Have a single portable code base instead of bsd + linux variants.
 (4) Bring usb-host support to any platform supported by libusbx.

For now this goes side-by-side to the existing code.  That is only to
simplify regression testing though, at the end of the day I want remove
the old code and support libusb exclusively.  Merge early in 1.5 cycle,
remove the old code after 1.5 release or something like this.

Thanks to qdev the old and new code can coexist nicely on linux.  Just
use "-device usb-host-linux" to use the old linux driver instead of the
libusb one (which takes over the "usb-host" name).

The bsd driver isn't qdev'ified so it isn't that easy for bsd.
I didn't bother making it runtime switchable, so you have to rebuild
qemu with --disable-libusb to get back the old code.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoxhci: fix address device
Gerd Hoffmann [Fri, 5 Apr 2013 13:18:52 +0000 (15:18 +0200)]
xhci: fix address device

Zero-initialize the set-address dummy USBPacket,
also add buffer to avoid sanity checks triggering.

https://bugzilla.redhat.com/show_bug.cgi?id=929019

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoxhci: use slotid as device address
Gerd Hoffmann [Thu, 21 Mar 2013 09:59:05 +0000 (10:59 +0100)]
xhci: use slotid as device address

Is good enougth for unique device addresses and avoids the need for any
state for device addressing.  Makes live migration support easier.  Also
makes device->slot lookups trivial.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoxhci: fix portsc writes
Gerd Hoffmann [Fri, 5 Apr 2013 12:55:28 +0000 (14:55 +0200)]
xhci: fix portsc writes

Check for port reset first and skip everything else then.
Add sanity checks for PLS updates.
Add PLC notification when entering PLS_U0 state.

This gets host-initiated port resume going on win8.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoxhci: add xhci_cap_write
Gerd Hoffmann [Fri, 5 Apr 2013 09:29:14 +0000 (11:29 +0200)]
xhci: add xhci_cap_write

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoxhci: remove leftover debug printf
Gerd Hoffmann [Fri, 5 Apr 2013 11:56:53 +0000 (13:56 +0200)]
xhci: remove leftover debug printf

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agousb-serial: Remove double call to qemu_chr_add_handlers( NULL )
Hans de Goede [Fri, 5 Apr 2013 09:30:25 +0000 (11:30 +0200)]
usb-serial: Remove double call to qemu_chr_add_handlers( NULL )

usb-serial has a qdev chardev property, and hw/qdev-properties-system.c
already contains:

static void release_chr(Object *obj, const char *name, void *opaque)
{
    DeviceState *dev = DEVICE(obj);
    Property *prop = opaque;
    CharDriverState **ptr = qdev_get_prop_ptr(dev, prop);
    CharDriverState *chr = *ptr;

    if (chr) {
        qemu_chr_add_handlers(chr, NULL, NULL, NULL, NULL);
        qemu_chr_fe_release(chr);
    }
}

So doing the qemu_chr_add_handlers(s->cs, NULL, NULL, NULL, NULL); from
the usb handle_destroy function too will lead to it being done twice.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agospice-qemu-char: vmc_write: Don't write more bytes then we're asked too
Hans de Goede [Fri, 5 Apr 2013 09:30:24 +0000 (11:30 +0200)]
spice-qemu-char: vmc_write: Don't write more bytes then we're asked too

This one took me eons to debug, but I've finally found it now, oh well.

The usage of the MIN macro in this line:
    last_out = MIN(len, qemu_chr_be_can_write(scd->chr));

Causes qemu_chr_be_can_write to be called *twice*, since the MIN macro
evaluates its arguments twice (bad MIN macro, bad!). And the result of
the call can change between the 2 calls since the guest may have consumed
some data from the virtio ringbuffer between the calls!

When this happens it is possible for qemu_chr_be_can_write to return less
then len in the call made for the comparision, and then to return more then
len in the actual call for the return-value of MIN, after which we will end
up writing len data + some extra garbage, not good.

This patch fixes this by only calling qemu_chr_be_can_write once.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agospice-qemu-char: Remove intermediate buffer
Alon Levy [Fri, 5 Apr 2013 09:30:23 +0000 (11:30 +0200)]
spice-qemu-char: Remove intermediate buffer

virtio-serial's buffer is valid when it calls us, and we don't
access it otherwise: vmc_read is only called in response to wakeup,
or else we set datalen=0 and throttle. Then vmc_read is called back,
we return 0 (not accessing the buffer) and set the timer to unthrottle.

Also make datalen int and not ssize_t (to fit spice_chr_write signature).

HdG: Update to apply to spice-qemu-char with new gio-channel based
flowcontrol support.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agospice-qemu-char: Add watch support
Hans de Goede [Fri, 5 Apr 2013 09:30:22 +0000 (11:30 +0200)]
spice-qemu-char: Add watch support

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agospice-qemu-char: Remove #ifdef-ed code for old spice-server compat
Hans de Goede [Fri, 5 Apr 2013 09:30:21 +0000 (11:30 +0200)]
spice-qemu-char: Remove #ifdef-ed code for old spice-server compat

We now require spice-server to be >= 0.12.0 so this is no longer needed.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agovirtio-console: Remove any pending watches on close
Hans de Goede [Fri, 5 Apr 2013 09:30:20 +0000 (11:30 +0200)]
virtio-console: Remove any pending watches on close

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agovirtio-console: Also throttle when less was written then requested
Hans de Goede [Fri, 5 Apr 2013 09:30:19 +0000 (11:30 +0200)]
virtio-console: Also throttle when less was written then requested

This is necessary so that we get properly woken up to write the rest.

This patch also changes the len argument to the have_data callback, to
avoid doing an unsigned signed comparison.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agospice: (32 bit only) fix surface cmd tracking destruction
Alon Levy [Wed, 13 Mar 2013 15:58:35 +0000 (17:58 +0200)]
spice: (32 bit only) fix surface cmd tracking destruction

No change for 64 bit arches, but for 32 bit previously we zeroed half
the surfaces cmd array, instead of all of it.

Signed-off-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoqxl: add 2000x2000 and 2048x2048 video modes
Gerd Hoffmann [Thu, 4 Apr 2013 08:15:34 +0000 (10:15 +0200)]
qxl: add 2000x2000 and 2048x2048 video modes

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agom25p80: Add debug message for no bdrv
Peter Crosthwaite [Tue, 16 Apr 2013 00:34:50 +0000 (10:34 +1000)]
m25p80: Add debug message for no bdrv

If there is no backing bdrv, let the debugging developer know about it.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agom25p80.c: Multiple debug verbosity levels
Peter Crosthwaite [Tue, 16 Apr 2013 00:34:11 +0000 (10:34 +1000)]
m25p80.c: Multiple debug verbosity levels

The debug printfs on every page program/read is extremely verbose. Add
a second level of debug for this.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agom25p80: Convert guest errors to LOG_GUEST_ERROR
Peter Crosthwaite [Tue, 16 Apr 2013 00:33:32 +0000 (10:33 +1000)]
m25p80: Convert guest errors to LOG_GUEST_ERROR

Some of the debug printfs in m25p80 are really guest errors.
Changed over to qemu_log_mask(LOG_GUEST_ERROR accordingly.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agom25p80: Fix debug messages.
Peter Crosthwaite [Tue, 16 Apr 2013 00:32:53 +0000 (10:32 +1000)]
m25p80: Fix debug messages.

Some dodgy casts were making a mess of these msgs.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agostream: Remove app argument hack
Peter Crosthwaite [Tue, 16 Apr 2013 00:28:35 +0000 (10:28 +1000)]
stream: Remove app argument hack

The uint32_t *app argument doesn't exist in real hardware. It was a hack in
xilinx_axidma/enet to fake the (secondary) control stream connection. Removed
the argument and added the second stream to axienet/dma.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axienet/dma: Implement rx path flow control
Peter Crosthwaite [Tue, 16 Apr 2013 00:27:55 +0000 (10:27 +1000)]
xilinx_axienet/dma: Implement rx path flow control

Implement flow control for the RX data path from xilinx_axienet->xilinx_axidma.
On short return from axidma, then ethernet sets up the notify callback to resume
transfer from where it left off.

This also allows the ethernet to track whether there is an in progress transaction
and return false from ethernet can_receive() as appropriate.

If the DMA backs up or is disabled it waits for enablement. When the rx stream IO
region is touched, the can_push() notify function is called if set.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agostream: Add flow control API
Peter Crosthwaite [Tue, 16 Apr 2013 00:27:16 +0000 (10:27 +1000)]
stream: Add flow control API

Add basic flow control to stream. A stream slave may return short, indicating
that it is not capable of accepting any more data at the present time. Polling
or a callback can be used via the can_push() function to determine when the
slave can receive again.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axidma: Fix rx/tx halted bit.
Peter Crosthwaite [Tue, 16 Apr 2013 00:26:37 +0000 (10:26 +1000)]
xilinx_axidma: Fix rx/tx halted bit.

If there is no DMA buffer descriptor, the DMA halts, not idles.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axidma: Create Proxy object for stream
Peter Crosthwaite [Tue, 16 Apr 2013 00:25:57 +0000 (10:25 +1000)]
xilinx_axidma: Create Proxy object for stream

Create a separate child object to proxy the stream slave connection. This is
setup for future work where a second stream slave connection is needed. The
new child object is created at qdev init time and is linked back to the parent
(the ethernet device itself) automatically.

Stream slave masters differentiate which slave connection they are connected to
by linking to the proxy object rather than the parent.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axienet: Create Proxy object for stream
Peter Crosthwaite [Tue, 16 Apr 2013 00:25:18 +0000 (10:25 +1000)]
xilinx_axienet: Create Proxy object for stream

Create a separate child object to proxy the stream slave connection. This is
setup for future work where a second stream slave connection is needed. The
new child object is created at qdev init time and is linked back to the parent
(the ethernet device itself) automatically.

Stream slave masters differentiate which slave connection they are connected to
by linking to the proxy object rather than the parent.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agopetalogix_ml605_mmu: Attach ethernet to machine
Peter Crosthwaite [Tue, 16 Apr 2013 00:24:39 +0000 (10:24 +1000)]
petalogix_ml605_mmu: Attach ethernet to machine

Explicitly make the ethernet a child of the machine. This is needed to set
and use links pre-realize. Also makes the ethernet initialization consistent
with its peer DMA.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agopetalogix_ml605_mmu: Fix machine node attachment
Peter Crosthwaite [Tue, 16 Apr 2013 00:23:59 +0000 (10:23 +1000)]
petalogix_ml605_mmu: Fix machine node attachment

Just attach devices straight to the root machine node, rather than the
"unattached node"

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axidma: converted init->realize
Peter Crosthwaite [Tue, 16 Apr 2013 00:23:20 +0000 (10:23 +1000)]
xilinx_axidma: converted init->realize

The prescribed transition from SysBusDevice::init to Device::realize. I'm going
with Andreas suggestion to move the sysbus foo to Object::init for early IRQ
visibility.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axidma: Register reset properly
Peter Crosthwaite [Tue, 16 Apr 2013 00:22:41 +0000 (10:22 +1000)]
xilinx_axidma: Register reset properly

Register the reset function as the Device::reset function rather than
explicitly call it from the sysbus::init.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axidma: Defined and use type cast macro
Peter Crosthwaite [Tue, 16 Apr 2013 00:22:02 +0000 (10:22 +1000)]
xilinx_axidma: Defined and use type cast macro

Standard QOM cast macro. Replaces usages of FROM_SYSBUS

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axidma: typedef XilinxAXIDMA struct
Peter Crosthwaite [Tue, 16 Apr 2013 00:21:23 +0000 (10:21 +1000)]
xilinx_axidma: typedef XilinxAXIDMA struct

Typedef xilinx_axidma's object state struct to shorten the repeated usages of
struct XilinxAXIDMA.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axienet: converted init->realize
Peter Crosthwaite [Tue, 16 Apr 2013 00:20:44 +0000 (10:20 +1000)]
xilinx_axienet: converted init->realize

The prescribed transition from SysBusDevice::init to Device::realize. Im going
with Andreas suggestion to move the sysbus foo to Object::init for early IRQ
visibility.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axienet: Register reset properly
Peter Crosthwaite [Tue, 16 Apr 2013 00:20:06 +0000 (10:20 +1000)]
xilinx_axienet: Register reset properly

Register the reset function and the Device::reset function rather than
explicitly call it from the sysbus::init.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axienet: Defined and use type cast macro
Peter Crosthwaite [Tue, 16 Apr 2013 00:19:27 +0000 (10:19 +1000)]
xilinx_axienet: Defined and use type cast macro

Standard QOM cast macro. Replaces usages of FROM_SYSBUS

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoxilinx_axienet: typedef XilinxAXIEnet struct
Peter Crosthwaite [Tue, 16 Apr 2013 00:18:47 +0000 (10:18 +1000)]
xilinx_axienet: typedef XilinxAXIEnet struct

Typedef xilinx_axienets object state struct to shorten the repeated usages of
struct XilinxAXIEnet.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
11 years agoqxl: register QemuConsole for secondary cards
Gerd Hoffmann [Tue, 19 Mar 2013 15:59:58 +0000 (16:59 +0100)]
qxl: register QemuConsole for secondary cards

Hook secondary qxl cards properly into the qemu console subsystem.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agogtk: custom cursor support
Gerd Hoffmann [Wed, 20 Mar 2013 08:11:41 +0000 (09:11 +0100)]
gtk: custom cursor support

Makes gtk ui play nicely with qxl (and vmware_svga)
as you can actually see your pointer now ;)

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: allow pinning displaychangelisteners to consoles
Gerd Hoffmann [Fri, 15 Mar 2013 14:45:54 +0000 (15:45 +0100)]
console: allow pinning displaychangelisteners to consoles

DisplayChangeListener gets a new QemuConsole field, which can be set to
non-NULL before registering.  This will pin the QemuConsole, so that
particular DisplayChangeListener will not follow console switches.

spice+gtk (which don't support text console input anyway) are switched
over to be pinned to console 0, which usually is the graphical display.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: add qemu_console_is_*
Gerd Hoffmann [Thu, 14 Mar 2013 13:27:08 +0000 (14:27 +0100)]
console: add qemu_console_is_*

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoxen: re-enable refresh interval reporting for xenfb
Gerd Hoffmann [Tue, 19 Mar 2013 14:01:02 +0000 (15:01 +0100)]
xen: re-enable refresh interval reporting for xenfb

xenfb informs the guest about the gui refresh interval so it can avoid
pointless work.  That logic was temporarely disabled for the
DisplayState reorganization.  Restore it now, with a proper interface
for it.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoqxl: add 4k + 8k resolutions
Gerd Hoffmann [Fri, 15 Mar 2013 10:53:47 +0000 (11:53 +0100)]
qxl: add 4k + 8k resolutions

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: gui timer fixes
Gerd Hoffmann [Thu, 14 Mar 2013 10:56:16 +0000 (11:56 +0100)]
console: gui timer fixes

Make gui update rate adaption code in gui_update() actually work.
Sprinkle in a tracepoint so you can see the code at work.  Remove
the update rate adaption code in vnc and make vnc simply use the
generic bits instead.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: add GraphicHwOps
Gerd Hoffmann [Wed, 13 Mar 2013 13:04:18 +0000 (14:04 +0100)]
console: add GraphicHwOps

Pass a single GraphicHwOps struct pointer to graphic_console_init,
instead of a bunch of function pointers.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: make DisplayState private to console.c
Gerd Hoffmann [Wed, 13 Mar 2013 11:25:25 +0000 (12:25 +0100)]
console: make DisplayState private to console.c

With gui_* being moved to console.c nobody outside console.c needs
access to DisplayState fields any more.  Make the struct private.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: move gui_update+gui_setup_refresh from vl.c into console.c
Gerd Hoffmann [Wed, 13 Mar 2013 11:17:13 +0000 (12:17 +0100)]
console: move gui_update+gui_setup_refresh from vl.c into console.c

Pure code motion, no functional changes.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: zap g_width + g_height
Gerd Hoffmann [Wed, 13 Mar 2013 09:14:52 +0000 (10:14 +0100)]
console: zap g_width + g_height

We have a surface per QemuConsole now, so there is no need to keep
track of the QemuConsole size any more as we can query the surface
size directly at any time.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: simplify screendump
Gerd Hoffmann [Tue, 12 Mar 2013 13:48:31 +0000 (14:48 +0100)]
console: simplify screendump

Screendumps are alot simpler as we can update non-active
QemuConsoles now.  So we only need to update the QemuConsole
we want write out, then dump the DisplaySurface content into
a ppm file.  Done.

No console switching needed.  No special support code in the
gfx card emulation needed.  Zap it all.  Also move ppm_save
out of the vga code and next to the qmp_screendump function.

For now screen dumping is limited to console #0 (like it used
to be), even though it is dead simple to extend it to other
consoles.  I wanna finish the console cleanup before setting
new qapi interfaces into stone.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: Igor Mitsyanko <i.mitsyanko@gmail.com>
11 years agoconsole: give each QemuConsole its own DisplaySurface
Gerd Hoffmann [Tue, 12 Mar 2013 13:39:22 +0000 (14:39 +0100)]
console: give each QemuConsole its own DisplaySurface

Go away from the global DisplaySurface, give one to each QemuConsole
instead.  With this patch applied it is possible to call
graphics_hw_* functions with qemu consoles which are not the current
foreground console.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: rename vga_hw_*, add QemuConsole param
Gerd Hoffmann [Tue, 12 Mar 2013 12:44:38 +0000 (13:44 +0100)]
console: rename vga_hw_*, add QemuConsole param

Add QemuConsole parameter to vga_hw_*, so the interface allows to update
non-active consoles (the actual code can't handle this yet, see next
patch).  Passing NULL is allowed and updates the active console, like
the functions do today.

While touching all vga_hw_* calls anyway rename that to the functions to
hardware-neutral graphics_hw_*

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: displaystate init revamp
Gerd Hoffmann [Thu, 7 Mar 2013 16:08:29 +0000 (17:08 +0100)]
console: displaystate init revamp

We have only one DisplayState, so there is no need for the "next"
linking, rip it.  Also consolidate all displaystate initialization
into init_displaystate().  This function is called by vl.c after
creating the devices (and thus all QemuConsoles) and before
initializing DisplayChangeListensers (aka gtk/sdl/vnc/spice ui).

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: add trace events
Gerd Hoffmann [Thu, 7 Mar 2013 15:04:52 +0000 (16:04 +0100)]
console: add trace events

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: switch color_table_rgb to pixman_color_t
Gerd Hoffmann [Fri, 8 Mar 2013 07:43:24 +0000 (08:43 +0100)]
console: switch color_table_rgb to pixman_color_t

Now that all text console rendering uses pixman we can easily
switch the color tables to use pixman_color_t directly.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: use pixman for font rendering
Gerd Hoffmann [Wed, 6 Mar 2013 14:44:10 +0000 (15:44 +0100)]
console: use pixman for font rendering

Zap homegrown font rendering code, use pixman calls instead.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoconsole: use pixman for fill+blit
Gerd Hoffmann [Wed, 6 Mar 2013 14:43:23 +0000 (15:43 +0100)]
console: use pixman for fill+blit

Zap homegrown pixel shuffeling code, use pixman calls instead.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agopixman: render vgafont glyphs into pixman images
Gerd Hoffmann [Thu, 7 Mar 2013 14:23:48 +0000 (15:23 +0100)]
pixman: render vgafont glyphs into pixman images

Add helper functions to create pixman mask images for glyphs
and to render these glyphs into a pixman image.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agopixman: add qemu_pixman_color()
Gerd Hoffmann [Wed, 6 Mar 2013 13:14:17 +0000 (14:14 +0100)]
pixman: add qemu_pixman_color()

Helper function to map qemu colors (32bit integer + matching PixelFormat)
into pixman_color_t.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agohw/vmware_vga.c: various vmware vga fixes.
Gerd Hoffmann [Mon, 25 Mar 2013 10:44:21 +0000 (11:44 +0100)]
hw/vmware_vga.c: various vmware vga fixes.

Hardcode depth to 32 bpp.  It effectively was that way before because
that is the default surface depth, this just makes it explicit in the
code.

Rename depth to new_depth to make it consistent with the new_width +
new_height names.  In theory we can make new_depth changeable (i.e.
allow the guest to fill in -- say -- 16 there).  In practice the guests
don't try, the X-Server refuses to start if you ask it to use 16bpp
depth (via DefaultDepth in the Screen section).

Always return the correct rmask+gmask+bmask values for the given
new_depth.

Fix mode setting to also verify at new_depth to make sure we have a
correct DisplaySurface, even if the current video mode happes to be
16bpp (set by vgabios via bochs vbe interface).  While being at it
switch over to use qemu_create_displaysurface_from, so the surface is
backed by guest-visible video memory and we save a memcpy.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agohw/vmware_vga.c: add tracepoints for mmio reads+writes
Gerd Hoffmann [Mon, 25 Mar 2013 08:53:35 +0000 (09:53 +0100)]
hw/vmware_vga.c: add tracepoints for mmio reads+writes

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agohw/vmware_vga.c: fix screen resize bug introduced after console revamp
Igor Mitsyanko [Tue, 19 Mar 2013 19:44:56 +0000 (23:44 +0400)]
hw/vmware_vga.c: fix screen resize bug introduced after console revamp

In vmsvga display update function, a pointer to DisplaySurface must be acquired
after a call to vmsvga_check_size since this function might replace current
DisplaySurface with a new one.

Signed-off-by: Igor Mitsyanko <i.mitsyanko@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agoexynos4210_fimd.c: fix display resize bug introduced after console revamp
Igor Mitsyanko [Tue, 19 Mar 2013 19:44:55 +0000 (23:44 +0400)]
exynos4210_fimd.c: fix display resize bug introduced after console revamp

In exynos4210 display update function, we were acquiring DisplaySurface
pointer before calling screen resize function, not paying attention that resize
procedure can replace current DisplaySurface with newly allocated one.
Right thing to do is to initialize DisplaySurface AFTER a call to resize function.

Signed-off-by: Igor Mitsyanko <i.mitsyanko@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
11 years agotarget-cris: Override do_interrupt for pre-v32 CPU cores
Andreas Färber [Mon, 18 Feb 2013 18:59:39 +0000 (19:59 +0100)]
target-cris: Override do_interrupt for pre-v32 CPU cores

Instead of forwarding from cris_cpu_do_interrupt() to do_interruptv10(),
override CPUClass::do_interrupt with crisv10_cpu_do_interrupt() in the
newly introduced class_init functions.

Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agoqdev: Set device's parent before calling realize() down inheritance chain
Igor Mammedov [Thu, 11 Apr 2013 14:51:56 +0000 (16:51 +0200)]
qdev: Set device's parent before calling realize() down inheritance chain

Currently device_set_realized() sets parent only after device was realized,
but qdev_device_add() sets it before device is realized.
Make behavior consistent and alter device_set_realized() to behave like
qdev_device_add().

It will allow to set link<> properties in realize() method in classes
inherited from DEVICE.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agocpu: Pass CPUState to *cpu_synchronize_post*()
Igor Mammedov [Thu, 11 Apr 2013 14:51:41 +0000 (16:51 +0200)]
cpu: Pass CPUState to *cpu_synchronize_post*()

... so it could be called without requiring CPUArchState.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agotarget-i386: Split out CPU creation and features parsing
Igor Mammedov [Thu, 11 Apr 2013 14:51:40 +0000 (16:51 +0200)]
target-i386: Split out CPU creation and features parsing

Move CPU creation and features parsing into a separate cpu_x86_create()
function, so that board would be able to set board-specific CPU
properties before CPU is realized.

Keep cpu_x86_init() for compatibility with the code that uses cpu_init()
and doesn't need to modify CPU properties.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
11 years agotarget-i386/cpu.c: Coding style fixes
Eduardo Habkost [Thu, 11 Apr 2013 20:07:23 +0000 (17:07 -0300)]
target-i386/cpu.c: Coding style fixes

 * Add braces to 'if' statements;
 * Remove last TAB character from the source.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
[AF: Changed whitespace]
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>