~ubuntu-branches/ubuntu/trusty/qemu/trusty

« back to all changes in this revision

Viewing changes to hw/display/qxl.c

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2013-10-22 22:47:07 UTC
  • mfrom: (1.8.3) (10.1.42 sid)
  • Revision ID: package-import@ubuntu.com-20131022224707-1lya34fw3k3f24tv
Tags: 1.6.0+dfsg-2ubuntu1
* Merge 1.6.0~rc0+dfsg-2exp from debian experimental.  Remaining changes:
  - debian/control
    * update maintainer
    * remove libiscsi, usb-redir, vde, vnc-jpeg, and libssh2-1-dev
      from build-deps
    * enable rbd
    * add qemu-system and qemu-common B/R to qemu-keymaps
    * add D:udev, R:qemu, R:qemu-common and B:qemu-common to
      qemu-system-common
    * qemu-system-arm, qemu-system-ppc, qemu-system-sparc:
      - add qemu-kvm to Provides
      - add qemu-common, qemu-kvm, kvm to B/R
      - remove openbios-sparc from qemu-system-sparc D
      - drop openbios-ppc and openhackware Depends to Suggests (for now)
    * qemu-system-x86:
      - add qemu-common to Breaks/Replaces.
      - add cpu-checker to Recommends.
    * qemu-user: add B/R:qemu-kvm
    * qemu-kvm:
      - add armhf armel powerpc sparc to Architecture
      - C/R/P: qemu-kvm-spice
    * add qemu-common package
    * drop qemu-slof which is not packaged in ubuntu
  - add qemu-system-common.links for tap ifup/down scripts and OVMF link.
  - qemu-system-x86.links:
    * remove pxe rom links which are in kvm-ipxe
    * add symlink for kvm.1 manpage
  - debian/rules
    * add kvm-spice symlink to qemu-kvm
    * call dh_installmodules for qemu-system-x86
    * update dh_installinit to install upstart script
    * run dh_installman (Closes: #709241) (cherrypicked from 1.5.0+dfsg-2)
  - Add qemu-utils.links for kvm-* symlinks.
  - Add qemu-system-x86.qemu-kvm.upstart and .default
  - Add qemu-system-x86.modprobe to set nesting=1
  - Add qemu-system-common.preinst to add kvm group
  - qemu-system-common.postinst: remove bad group acl if there, then have
    udev relabel /dev/kvm.
  - New linaro patches from qemu-linaro rebasing branch
  - Dropped patches:
    * xen-simplify-xen_enabled.patch
    * sparc-linux-user-fix-missing-symbols-in-.rel-.rela.plt-sections.patch
    * main_loop-do-not-set-nonblocking-if-xen_enabled.patch
    * xen_machine_pv-do-not-create-a-dummy-CPU-in-machine-.patch
    * virtio-rng-fix-crash
  - Kept patches:
    * expose_vms_qemu64cpu.patch - updated
    * linaro arm patches from qemu-linaro rebasing branch
  - New patches:
    * fix-pci-add: change CONFIG variable in ifdef to make sure that
      pci_add is defined.
* Add linaro patches
* Add experimental mach-virt patches for arm virtualization.
* qemu-system-common.install: add debian/tmp/usr/lib to install the
  qemu-bridge-helper

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#include "qemu-common.h"
24
24
#include "qemu/timer.h"
25
25
#include "qemu/queue.h"
 
26
#include "qemu/atomic.h"
26
27
#include "monitor/monitor.h"
27
28
#include "sysemu/sysemu.h"
28
29
#include "trace.h"
387
388
    d->ram->int_pending = cpu_to_le32(0);
388
389
    d->ram->int_mask    = cpu_to_le32(0);
389
390
    d->ram->update_surface = 0;
 
391
    d->ram->monitors_config = 0;
390
392
    SPICE_RING_INIT(&d->ram->cmd_ring);
391
393
    SPICE_RING_INIT(&d->ram->cursor_ring);
392
394
    SPICE_RING_INIT(&d->ram->release_ring);
1725
1727
        trace_qxl_send_events_vm_stopped(d->id, events);
1726
1728
        return;
1727
1729
    }
1728
 
    old_pending = __sync_fetch_and_or(&d->ram->int_pending, le_events);
 
1730
    old_pending = atomic_fetch_or(&d->ram->int_pending, le_events);
1729
1731
    if ((old_pending & le_events) == le_events) {
1730
1732
        return;
1731
1733
    }
1980
1982
    pci_set_byte(&config[PCI_INTERRUPT_PIN], 1);
1981
1983
 
1982
1984
    qxl->rom_size = qxl_rom_size();
1983
 
    memory_region_init_ram(&qxl->rom_bar, "qxl.vrom", qxl->rom_size);
 
1985
    memory_region_init_ram(&qxl->rom_bar, OBJECT(qxl), "qxl.vrom",
 
1986
                           qxl->rom_size);
1984
1987
    vmstate_register_ram(&qxl->rom_bar, &qxl->pci.qdev);
1985
1988
    init_qxl_rom(qxl);
1986
1989
    init_qxl_ram(qxl);
1987
1990
 
1988
1991
    qxl->guest_surfaces.cmds = g_new0(QXLPHYSICAL, qxl->ssd.num_surfaces);
1989
 
    memory_region_init_ram(&qxl->vram_bar, "qxl.vram", qxl->vram_size);
 
1992
    memory_region_init_ram(&qxl->vram_bar, OBJECT(qxl), "qxl.vram",
 
1993
                           qxl->vram_size);
1990
1994
    vmstate_register_ram(&qxl->vram_bar, &qxl->pci.qdev);
1991
 
    memory_region_init_alias(&qxl->vram32_bar, "qxl.vram32", &qxl->vram_bar,
1992
 
                             0, qxl->vram32_size);
 
1995
    memory_region_init_alias(&qxl->vram32_bar, OBJECT(qxl), "qxl.vram32",
 
1996
                             &qxl->vram_bar, 0, qxl->vram32_size);
1993
1997
 
1994
 
    memory_region_init_io(&qxl->io_bar, &qxl_io_ops, qxl,
 
1998
    memory_region_init_io(&qxl->io_bar, OBJECT(qxl), &qxl_io_ops, qxl,
1995
1999
                          "qxl-ioports", io_size);
1996
2000
    if (qxl->id == 0) {
1997
2001
        vga_dirty_log_start(&qxl->vga);
2066
2070
    qxl->id = 0;
2067
2071
    qxl_init_ramsize(qxl);
2068
2072
    vga->vram_size_mb = qxl->vga.vram_size >> 20;
2069
 
    vga_common_init(vga);
2070
 
    vga_init(vga, pci_address_space(dev), pci_address_space_io(dev), false);
2071
 
    portio_list_init(qxl_vga_port_list, qxl_vga_portio_list, vga, "vga");
 
2073
    vga_common_init(vga, OBJECT(dev));
 
2074
    vga_init(vga, OBJECT(dev),
 
2075
             pci_address_space(dev), pci_address_space_io(dev), false);
 
2076
    portio_list_init(qxl_vga_port_list, OBJECT(dev), qxl_vga_portio_list,
 
2077
                     vga, "vga");
2072
2078
    portio_list_add(qxl_vga_port_list, pci_address_space_io(dev), 0x3b0);
2073
2079
 
2074
2080
    vga->con = graphic_console_init(DEVICE(dev), &qxl_ops, qxl);
2092
2098
 
2093
2099
    qxl->id = device_id++;
2094
2100
    qxl_init_ramsize(qxl);
2095
 
    memory_region_init_ram(&qxl->vga.vram, "qxl.vgavram", qxl->vga.vram_size);
 
2101
    memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), "qxl.vgavram",
 
2102
                           qxl->vga.vram_size);
2096
2103
    vmstate_register_ram(&qxl->vga.vram, &qxl->pci.qdev);
2097
2104
    qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram);
2098
2105
    qxl->vga.con = graphic_console_init(DEVICE(dev), &qxl_ops, qxl);
2316
2323
    k->vendor_id = REDHAT_PCI_VENDOR_ID;
2317
2324
    k->device_id = QXL_DEVICE_ID_STABLE;
2318
2325
    k->class_id = PCI_CLASS_DISPLAY_VGA;
 
2326
    set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories);
2319
2327
    dc->desc = "Spice QXL GPU (primary, vga compatible)";
2320
2328
    dc->reset = qxl_reset_handler;
2321
2329
    dc->vmsd = &qxl_vmstate;
2338
2346
    k->vendor_id = REDHAT_PCI_VENDOR_ID;
2339
2347
    k->device_id = QXL_DEVICE_ID_STABLE;
2340
2348
    k->class_id = PCI_CLASS_DISPLAY_OTHER;
 
2349
    set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories);
2341
2350
    dc->desc = "Spice QXL GPU (secondary)";
2342
2351
    dc->reset = qxl_reset_handler;
2343
2352
    dc->vmsd = &qxl_vmstate;