Statistics
| Branch: | Revision:

root / hw / qxl.c @ fa2ddcb4

History | View | Annotate | Download (76 kB)

# Date Author Comment
cd6dcc71 09/17/2012 06:21 pm Anthony Liguori

Merge remote-tracking branch 'spice/spice.v60' into staging

  • spice/spice.v60:
    hw/qxl: support client monitor configuration via device
    qxl: add trace-event for QXL_IO_LOG
    hw/qxl: tracing fixes
    qxl: better cleanup for surface destroy
    qxl: Ignore set_client_capabilities pre/post migrate...
a639ab04 09/13/2012 08:31 am Alon Levy

hw/qxl: support client monitor configuration via device

Until now we used only the agent to change the monitor count and each
monitor resolution. This patch introduces the qemu part of using the
device as the mediator instead of the agent via virtio-serial....

917ae08c 09/13/2012 08:31 am Alon Levy

hw/qxl: tracing fixes

Add two new trace events:
qxl_send_events(int qid, uint32_t events) "%d %d"
qxl_set_guest_bug(int qid) "%d"

Change qxl_io_unexpected_vga_mode parameters to be equivalent to those
of qxl_io_write for easier grouping under a single systemtap probe....

1a1bc085 09/13/2012 08:31 am Alon Levy

qxl: add trace-event for QXL_IO_LOG

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

ccc2960d 09/12/2012 09:09 am Dunrong Huang

qxl: dont update invalid area

This patch fixes the following error:

$ ~/usr/bin/qemu-system-x86_64 enable-kvm -m 1024 -spice port=5900,disable-ticketing -vga qxl -cdrom ~/Images/linuxmint-13-mate-dvd-32bit.iso
(/home/mathslinux/usr/bin/qemu-system-x86_64:10068): SpiceWorker-CRITICAL **: red_worker.c:4599:red_update_area: condition `area
>left >= 0 && area->top >= 0 && area->left < area->right && area->top < area->bottom' failed...

ab902981 09/12/2012 09:09 am Hans de Goede

qxl: Ignore set_client_capabilities pre/post migrate

The recent introduction of set_client_capabilities has broken
(seamless) migration by trying to call qxl_send_events pre (seamless
incoming) and post (*) migration, triggering the following assert:
qxl_send_events: Assertion `qemu_spice_display_is_running(&d->ssd)' failed....

753b8b0d 09/12/2012 09:09 am Uri Lublin

qxl: better cleanup for surface destroy

Add back a call to qxl_spice_destroy_surface_wait_complete() in qxl_spice_destroy_surface_wait(),
that was removed by commit c480bb7da465186b84d8427e068ef7502e47ffbf

It is needed to complete surface-removal cleanup, for non async....

b1af98ba 09/12/2012 09:09 am Gerd Hoffmann

spice: switch to queue for vga mode updates

Signed-off-by: Gerd Hoffmann <>

bd8f2f5d 09/12/2012 12:15 am Jan Kiszka

VGA: Flush coalesced MMIO on related MMIO/PIO accesses

In preparation of stopping to flush coalesced MMIO unconditionally on
vmexits, mark VGA MMIO and PIO regions as synchronous /wrt coalesced
MMIO and flush the buffer explicitly on PIO accesses that do not use...

69fc2553 09/10/2012 04:32 pm Aurelien Jarno

Merge branch 'spice.v59' of git://anongit.freedesktop.org/spice/qemu

  • 'spice.v59' of git://anongit.freedesktop.org/spice/qemu:
    Remove #ifdef QXL_COMMAND_FLAG_COMPAT_16BPP
    qxl: Add set_client_capabilities() interface to QXLInterface
    spice: make number of surfaces runtime-configurable....
d7098135 09/05/2012 09:48 pm Luiz Capitulino

console: vga_hw_screen_dump_ptr: take Error argument

All devices that register a screen dump callback via
graphic_console_init() are updated.

The new argument is not used in this commit. Error handling will
be added to each device individually later.

This change is a preparation to convert the screendump command...

d663174d 09/05/2012 09:48 pm Luiz Capitulino

vga: ppm_save(): add error handling

Signed-off-by: Luiz Capitulino <>

ddd8fdc7 09/05/2012 06:11 pm Gerd Hoffmann

spice: make number of surfaces runtime-configurable.

Signed-off-by: Gerd Hoffmann <>

c10018d6 09/05/2012 06:11 pm Søren Sandmann Pedersen

qxl: Add set_client_capabilities() interface to QXLInterface

This new interface lets spice server inform the guest whether

(a) a client is connected
(b) what capabilities the client has

There is a fixed number (464) of bits reserved for capabilities, and...

265db734 09/05/2012 06:11 pm Søren Sandmann Pedersen

Remove #ifdef QXL_COMMAND_FLAG_COMPAT_16BPP

We require spice >= 0.8 now, so this flag is always present.

Signed-off-by: Soren Sandmann <>
Signed-off-by: Gerd Hoffmann <>

71d388d4 09/05/2012 06:11 pm Yonit Halperin

spice: notify on vm state change only via spice_server_vm_start/stop

QXLWorker->start/stop are deprecated since spice-server 0.11.2

Signed-off-by: Yonit Halperin <>
Signed-off-by: Gerd Hoffmann <>

511b13e2 09/05/2012 06:11 pm Alon Levy

qxl/update_area_io: guest_bug on invalid parameters

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

36839d35 09/05/2012 06:11 pm Alon Levy

qxl: disallow unknown revisions

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

020af1c4 09/05/2012 06:11 pm Alon Levy

qxl: add QXL_IO_MONITORS_CONFIG_ASYNC

Revision bumped to 4 for new IO support, enabled for spice-server >=
0.11.1. New io enabled if revision is 4. Revision can be set to 4.

[ kraxel: 3 continues to be the default revision. Once we have a new
stable spice-server release and the qemu patches to enable...

9e56edcf 06/22/2012 11:49 am Gerd Hoffmann

vga: raise default vgamem size

Old size: 8 MB (traditional upstream qemu value).
New size: 16 MB (traditional qemu-kvm value).

Also adds compat properties so old machine types
keep the old default values.

Signed-off-by: Gerd Hoffmann <>

13d1fd44 06/22/2012 11:49 am Alon Levy

qxl: add vgamem_size_mb and vgamem_size

In preperation for supporting a larger framebuffer for multiple monitors
on a single card, add a property to qxl vgamem_size_mb, and corresponding
byte sized vgamem_size, and use instead of VGA_RAM_SIZE.

[ kraxel: simplify property handling, add sanity checks ]...

0a530548 06/22/2012 11:46 am Alon Levy

hw/qxl: s/qxl_guest_bug/qxl_set_guest_bug/

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

0f7bfd81 06/22/2012 11:46 am Alon Levy

qxl: stop dirty loging when not in vga mode

Tested with linux guest. Not sure how to check actual performance affect
of this. Checked with the previously send traceevent that the kvm ioctl
to start/stop dirty logging is being called.
(KVM_SET_USER_MEMORY_REGION)....

087e6a42 06/22/2012 11:46 am Alon Levy

hw/qxl: ignore guest from guestbug until reset

soft_reset is called from any of: * QXL_IO_RESET * vga io * pci reset handler

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

a5f68c22 06/22/2012 11:46 am Alon Levy

qxl: reset current_async on qxl_soft_reset

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

4a1e244e 06/22/2012 11:46 am Gerd Hoffmann

vga: make vram size configurable

Zap the global VGA_RAM_SIZE #define, make the vga ram size configurable
for standard vga and vmware vga. cirrus and qxl are left with a fixed
size (and private VGA_RAM_SIZE #define) for now.

qxl needs some non-trivial adjustments in the mode list handling deal...

3f6297b9 05/14/2012 11:22 am Uri Lublin

qxl: set size of PCI IO BAR correctly (16) for revision 2

Also move it up into switch(qxl->revision) block

Signed-off-by: Uri Lublin <>
Signed-off-by: Gerd Hoffmann <>

4b635c59 05/03/2012 11:45 am Alon Levy

hw/qxl.c: qxl_phys2virt: replace panics with guest_bug

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

fae2afb1 05/03/2012 11:45 am Alon Levy

qxl: check for NULL return from qxl_phys2virt

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

47eddfbf 05/03/2012 11:45 am Alon Levy

qxl: replace panic with guest bug in qxl_track_command

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

2fce7edf 05/03/2012 11:45 am Alon Levy

qxl: fix > 80 chars line

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

0b81c478 05/03/2012 11:45 am Alon Levy

qxl: don't abort on guest trigerrable ring indices mismatch

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

75fe0d7b 05/03/2012 11:45 am Alon Levy

qxl: cleanup s/__FUNCTION__/__func__/

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

baeae407 05/03/2012 11:45 am Alon Levy

qxl: interface_notify_update: remove guest trigerrable abort

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

e954ea28 05/03/2012 11:45 am Alon Levy

qxl: qxl_add_memslot: remove guest trigerrable panics

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

4763e2ca 05/03/2012 11:45 am Alon Levy

qxl: ioport_write: remove guest trigerrable abort

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

ddf9f4b7 05/03/2012 11:45 am Alon Levy

qxl: don't assert on guest create_guest_primary

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

5f8daf2e 04/20/2012 03:14 pm Stefan Weil

qxl: Add missing GCC_FMT_ATTR and fix format specifier

val is an uint64_t, therefore %d was not correct.

Signed-off-by: Stefan Weil <>
Acked-by: Gerd Hoffmann <>
Signed-off-by: Stefan Hajnoczi <>

79ce3567 04/18/2012 01:21 pm Alon Levy

qxl: set default values of vram*_size_mb to -1

The addition of those values caused a regression where not specifying
any value for the vram bar size would result in a 4096 byte surface
area. This is ok for the windows driver but causes the X driver to be...

aa3db423 03/19/2012 02:12 pm Alon Levy

qxl: init_pipe_signaling: exit on failure

If pipe creation fails, exit, don't log and continue. Fix indentation at
the same time.

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

c480bb7d 03/19/2012 02:12 pm Alon Levy

qxl: switch qxl.c to trace-events

dprint is still used for qxl_init_common one time prints.

also switched parts of spice-display.c over, mainly all the callbacks to
spice server.

All qxl device trace events start with the qxl device id.

Signed-off-by: Alon Levy <>...

5dba0d45 03/19/2012 02:12 pm Peter Maydell

hw/qxl.c: Fix compilation failures on 32 bit hosts

Fix compilation failures on 32 bit hosts (cast from pointer to
integer of different size; %ld expects 'long int' not uint64_t).

Reported-by: Steve Langasek <>
Signed-off-by: Peter Maydell <>...

6f2b175a 02/28/2012 06:20 pm Gerd Hoffmann

qxl: add optinal 64bit vram bar

This patch adds an 64bit pci bar for vram. It is turned off by default.
It can be enabled by setting the size of the 64bit bar to be larger than
the 32bit bar. Both 32bit and 64bit bar refer to the same memory. Only
the first part of the memory is available via 32bit bar....

2e1a98c9 02/27/2012 10:46 am Alon Levy

qxl: introduce QXLCookie

Will be used in the next patch.

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

81fb6f15 02/27/2012 10:46 am Alon Levy

qxl: make qxl_render_update async

RHBZ# 747011

Removes the last user of QXL_SYNC when using update drivers that use the
_ASYNC io ports.

The last user is qxl_render_update, it is called both by qxl_hw_update
which is the vga_hw_update_ptr passed to graphic_console_init, and by...

bb5a8cd5 02/27/2012 10:46 am Alon Levy

qxl: fix spice+sdl no cursor regression

regression introduced by 075360945860ad9bdd491921954b383bf762b0e5,

v2: lock around qemu_spice_cursor_refresh_unlocked

Reported-by: Fabiano Fidêncio <>
Signed-off-by: Alon Levy <>...

4295e15a 02/27/2012 10:46 am Alon Levy

qxl: require spice >= 0.8.2

drop all ifdefs on SPICE_INTERFACE_QXL_MINOR >= 1 as a result,
any check for SPICE_SERVER_VERSION that is now always satisfied,
and SPICE_INTERFACE_CORE_MINOR >= 3 tests, because
0.8.2 has SPICE_INTERFACE_QXL_MINOR 1 and
SPICE_INTERFACE_CORE_MINOR 3....

45efb161 02/24/2012 09:36 pm Gerd Hoffmann

optimize screendump for the common non-switch case

switch console only if needed, also pass down whenever the console was
switched or not because a displaysurface redraw is only needed in case
the console was switched.

Signed-off-by: Gerd Hoffmann <>...

80105bbf 02/21/2012 11:36 am Gerd Hoffmann

qxl: drop vram bar minimum size

There is no reason to require a minimum size of 16 MB for the vram.
Lower the limit to 4096 (one page). Make it disapper completely would
break guests.

a974192c 02/21/2012 11:36 am Gerd Hoffmann

qxl: move ram size init to new function

Factor memory bar sizing bits out to a separate function.

Signed-off-by: Gerd Hoffmann <>

017438ee 02/21/2012 11:36 am Gerd Hoffmann

qxl: add user-friendly bar size properties

Add two properties to specify bar sizes in megabytes instead of bytes,
which is alot more user-friendly.

Signed-off-by: Gerd Hoffmann <>

f4a8a424 02/21/2012 11:36 am Gerd Hoffmann

qxl: fix warnings on 32bit

Signed-off-by: Gerd Hoffmann <>

e25139b3 02/21/2012 11:36 am Yonit Halperin

qxl: set only off-screen surfaces dirty instead of the whole vram

We used to assure the guest surfaces were saved before migration by
setting the whole vram dirty. This patch sets dirty only the areas
that are actually used in the vram.

Signed-off-by: Yonit Halperin <>...

2aa9e85c 02/21/2012 11:36 am Yonit Halperin

qxl: make sure primary surface is saved on migration also in compat mode

RHBZ #790083

Signed-off-by: Yonit Halperin <>
Signed-off-by: Gerd Hoffmann <>

83f7d43a 02/15/2012 05:39 pm Andreas Färber

qom: Unify type registration

Replace device_init() with generalized type_init().

While at it, unify naming convention: type_init([$prefix_]register_types)
Also, type_init() is a function, so add preceding blank line where
necessary and don't put a semicolon after the closing brace....

39bffca2 02/03/2012 06:41 pm Anthony Liguori

qdev: register all types natively through QEMU Object Model

This was done in a mostly automated fashion. I did it in three steps and then
rebased it into a single step which avoids repeatedly touching every file in
the tree.

The first step was a sed-based addition of the parent type to the subclass...

40021f08 01/27/2012 06:50 pm Anthony Liguori

pci: convert to QEMU Object Model

Signed-off-by: Anthony Liguori <>

e855761c 01/27/2012 06:50 pm Anthony Liguori

qdev: prepare source tree for code conversion

These are various small stylistic changes which help make things more
consistent such that the automated conversion script can be simpler.

It's not necessary to agree or disagree with these style changes because all...

fd4aa979 01/25/2012 08:32 pm Blue Swirl

memory: change dirty setting APIs to take a size

Instead of each target knowing or guessing the guest page size,
just pass the desired size of dirtied memory area.

Signed-off-by: Blue Swirl <>

6b7332eb 01/17/2012 05:30 pm Markus Armbruster

qxl: Slot sanity check in qxl_phys2virt() is off by one, fix

Spotted by Coverity.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Gerd Hoffmann <>

c5705a77 01/04/2012 01:34 pm Avi Kivity

vmstate, memory: decouple vmstate from memory API

Currently creating a memory region automatically registers it for
live migration. This differs from other state (which is enumerated
in a VMStateDescription structure) and ties the live migration code
into the memory core....

f67ab77a 11/07/2011 06:57 pm Gerd Hoffmann

qxl: fix vga port initialization.

Commit 0a039dc70096b768d3810afa50ba1d214768aaf4 broke vga modes for
qxl-vga by loosing vga_ioport_read windup. qxl needs to hook into
vga port writes only and used to realize that by letting vga_init() do
the work for both reads and writes, then overwrite the write function....

54825d2e 11/01/2011 02:24 pm Alon Levy

qxl: create slots on post_load in vga state

RHBZ 740547

If we migrate when the device is in vga state the guest
still believes the slots are created, and will cause operations
that reference the slots, causing a "panic: virtual address out of range"
on the first of them. Easy to see by migrating in vga mode with...

78e60ba5 10/25/2011 03:00 pm Gerd Hoffmann

qxl: factor out properties

Signed-off-by: Gerd Hoffmann <>

30f6da66 10/25/2011 03:00 pm Yonit Halperin

qxl: fix guest cursor tracking

(1) If the guest cursor command is empty, don't reload it after migration.
(2) Cleaning the guest cursor when it is released by
the spice server. In addition, explicitly reset the
cursor in spice upon destroying the primary surface...

9f0f352d 10/25/2011 03:00 pm Alon Levy

qxl: reset update_surface

update init_qxl_ram to reset update_surface to 0. This fixes one case
of breakage when installing an old driver in a vm that had a new driver
installed. The newer driver would know about surface creation and would
change update_surface to !=0, then a reset would happen, all surfaces...

691f5c7b 10/25/2011 03:00 pm Jan Kiszka

qxl: Convert to QEMU thread API

Use QEMU thread API instead of pthread directly. We still need to get
rid of pthread_yield, though, to drop pthread.h inclusion.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Gerd Hoffmann <>

4ec8d307 10/25/2011 03:00 pm Jan Kiszka

qxl: Drop phread_yield on OOM

This was only a best-effort attempt, by far not guaranteed to have an
effect. Drop it so that also no direct pthread usage remain in the
device model.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Gerd Hoffmann <>

0a039dc7 10/11/2011 04:57 pm Richard Henderson

vga: Convert to isa_register_portio_list

[jan: fix cut'n'paste errors]
[avi: adjust pci variants not to use isa functions]

Signed-off-by: Richard Henderson <>
Signed-off-by: Jan Kiszka <>
Signed-off-by: Avi Kivity <>

1dfb4dd9 09/15/2011 10:39 pm Luiz Capitulino

Replace the VMSTOP macros with a proper state type

Today, when notifying a VM state change with vm_state_notify(),
we pass a VMSTOP macro as the 'reason' argument. This is not ideal
because the VMSTOP macros tell why qemu stopped and not exactly
what the current VM state is....

a680f7e7 09/07/2011 10:20 am Peter Maydell

hw/qxl: Fix format string errors

Fix format string errors causing compile failure on 32 bit hosts
when spice is enabled.

Signed-off-by: Peter Maydell <>
Signed-off-by: Gerd Hoffmann <>

efbf2950 09/07/2011 10:20 am Yonit Halperin

qxl: send interrupt after migration in case ram->int_pending != 0, RHBZ #732949

if qxl_send_events was called from spice server context, and then
migration had completed before a call to pipe_read, the target
guest qxl driver didn't get the interrupt. In addition,...

40010aea 09/07/2011 10:20 am Yonit Halperin

qxl: s/qxl_set_irq/qxl_update_irq/

Signed-off-by: Yonit Halperin <>
Signed-off-by: Gerd Hoffmann <>

12d4536f 09/02/2011 06:34 pm Anthony Liguori

main: force enabling of I/O thread

Enabling the I/O thread by default seems like an important part of declaring
1.0. Besides allowing true SMP support with KVM, the I/O thread means that the
TCG VCPU doesn't have to multiplex itself with the I/O dispatch routines which...

be20f9e9 08/22/2011 06:47 pm Avi Kivity

vga: drop get_system_memory() from vga devices and derivatives

Instead, use the bus accessors, or get the address space directly
from the board constructor.

Signed-off-by: Avi Kivity <>
Signed-off-by: Anthony Liguori <>

7267c094 08/21/2011 07:01 am Anthony Liguori

Use glib memory allocation and free functions

qemu_malloc/qemu_free no longer exist after this commit.

Signed-off-by: Anthony Liguori <>

c5f3dabb 08/10/2011 06:27 pm Alon Levy

qxl: unbreak after memory API conversion

Break is only noticable with newer spice-server library (0.8.2 release
or 0.9.0 and newer on master branch).

ioport_write's val was changed from uint32_t to uint64_t, this
broke two printfs. Use PRId64 instead of %d....

be48e995 08/10/2011 06:27 pm Yonit Halperin

qxl: allowing the command rings to be not empty when spice worker is stopped RHBZ #728984

same as 8927cfbba232e28304734f7afd463c1b84134031, but for qxl_check_state, that was
triggered by qxl_pre_load (which calls qxl_hard_reset, which calls qxl_soft_reset),...

e824b2cc 08/08/2011 06:22 pm Avi Kivity

pci: rename pci_register_bar_region() to pci_register_bar()

Reviewed-by: Richard Henderson <>
Reviewed-by: Anthony Liguori <>
Signed-off-by: Avi Kivity <>
Signed-off-by: Anthony Liguori <>

b1950430 08/08/2011 06:15 pm Avi Kivity

vga: convert vga and its derivatives to the memory API

Convert all vga memory to the memory API. Note we need to fall back to
get_system_memory(), since the various buses don't pass the vga window
as a memory region.

We no longer need to sync the dirty bitmap of the cirrus mapped memory...

3e16b9c5 08/03/2011 01:03 pm Alon Levy

qxl: add QXL_IO_FLUSH_{SURFACES,RELEASE} for guest S3&S4 support

Add two new IOs.
QXL_IO_FLUSH_SURFACES - equivalent to update area for all surfaces, used
to reduce vmexits from NumSurfaces to 1 on guest S3, S4 and resolution change (windows
driver implementation is such that this is done on each of those occasions)....

9197a7c8 08/03/2011 01:03 pm Gerd Hoffmann

qxl: bump pci rev

Inform guest drivers about the new features I/O commands we have
now (async commands, S3 support) if building with newer spice, i.e.
if SPICE_INTERFACE_QXL_MINOR >= 1.

sneaked in some 81+ column line spliting.

Signed-off-by: Gerd Hoffmann <>...

5ff4e36c 08/03/2011 01:03 pm Alon Levy

qxl: async io support using new spice api

Some of the QXL port i/o commands are waiting for the spice server to
complete certain actions. Add async versions for these commands, so we
don't block the vcpu while the spice server processses the command.
Instead the qxl device will raise an IRQ when done....

5c59d118 08/01/2011 01:43 pm Gerd Hoffmann

spice: add worker wrapper functions.

Add wrapper functions for all spice worker calls.

Signed-off-by: Gerd Hoffmann <>

a963f876 08/01/2011 01:43 pm Gerd Hoffmann

spice: add qemu_spice_display_init_common

Factor out SimpleSpiceDisplay initialization into
qemu_spice_display_init_common() and call it from
both qxl.c (for vga mode) and spice-display.c

Signed-off-by: Gerd Hoffmann <>

aee32bf3 08/01/2011 01:43 pm Gerd Hoffmann

spice/qxl: move worker wrappers

Move the wrapper functions which are used by qxl only to qxl.c.
Rename them from qemu_spice_* to qxl_spice_*. Also pass in a
qxl state pointer instead of a SimpleSpiceDisplay pointer.

Signed-off-by: Gerd Hoffmann <>

14898cf6 08/01/2011 01:43 pm Gerd Hoffmann

qxl: fix surface tracking & locking

Surface tracking needs proper locking since it is used from vcpu and spice
worker threads, add it. Also reset the surface counter when zapping all
surfaces.

Signed-off-by: Gerd Hoffmann <>

8b92e298 08/01/2011 01:43 pm Alon Levy

qxl: add io_port_to_string

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

2bce0400 08/01/2011 01:43 pm Gerd Hoffmann

qxl: error handling fixes and cleanups.

Add qxl_guest_bug() function which is supposed to be called in case
sanity checks of guest requests fail. It raises an error IRQ and
logs a message in case guest debugging is enabled.

Make PANIC_ON() abort instead of exit. That macro should be used...

7635392c 08/01/2011 01:43 pm Alon Levy

qxl: make qxl_guest_bug take variable arguments

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

e21a298a 08/01/2011 01:43 pm Alon Levy

qxl: only disallow specific io's in vga mode

Since the driver is still in operation even after moving to UNDEFINED, i.e.
by destroying primary in any way.

Signed-off-by: Alon Levy <>
Signed-off-by: Gerd Hoffmann <>

8927cfbb 07/20/2011 11:08 am Yonit Halperin

qxl: upon reset, if spice worker is stopped, the command rings can be not empty

Spice worker does no longer process commands when it is stopped.
Otherwise, it might crash during migration when attempting to process
commands while the guest is not completely loaded....

638f4e47 07/04/2011 04:35 pm Gerd Hoffmann

qxl: device id fixup

Move device ID to PCIDeviceInfo.
Remove support for the unused unstable device ID.

Signed-off-by: Gerd Hoffmann <>

5b77870c 07/04/2011 04:35 pm Alon Levy

qxl: interface_get_command: fix reported mode

report correct mode when in undefined mode.
introduces qxl_mode_to_string(), and uses it in other places too.

Signed-off-by: Gerd Hoffmann <>

6ebebb55 07/04/2011 04:35 pm Alon Levy

qxl: add dev id to guest prints

Signed-off-by: Gerd Hoffmann <>

868379ce 07/04/2011 04:35 pm Yonit Halperin

qxl: make sure primary surface is saved on migration

Signed-off-by: Gerd Hoffmann <>

81144d1a 07/04/2011 04:35 pm Gerd Hoffmann

qxl: put QXL_IO_UPDATE_IRQ into vgamode whitelist

Signed-off-by: Gerd Hoffmann <>

a3d14054 07/04/2011 04:35 pm Alon Levy

qxl: allow QXL_IO_LOG also in vga

The driver may change us to vga mode and still issue a QXL_IO_LOG,
which we can easily support.

Signed-off-by: Gerd Hoffmann <>

befeac45 06/15/2011 06:27 pm Michael S. Tsirkin

Merge remote-tracking branch 'origin/master' into pci

Conflicts:
hw/virtio-pci.c

96c05abc 06/12/2011 10:33 am Isaku Yamahata

hw/qxl.c: convert to PCIDeviceInfo to initialize ids

use PCIDeviceInfo to initialize ids.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>