Commit 2571f8f5 authored by Anthony Liguori's avatar Anthony Liguori
Browse files

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

# By Gerd Hoffmann
# Via Gerd Hoffmann
* spice/spice.v74:
  qxl: compile only once
  qxl: simplify page dirtying
  qxl: simplify qxl_rom_size
  qxl: define qxl operating on 4k pages

Message-id: 1379583534-7831-1-git-send-email-kraxel@redhat.com
parents ce63e9c2 521e759c
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -31,5 +31,4 @@ obj-$(CONFIG_TCX) += tcx.o

obj-$(CONFIG_VGA) += vga.o

common-obj-$(CONFIG_QXL) += qxl-logger.o qxl-render.o
obj-$(CONFIG_QXL) += qxl.o
common-obj-$(CONFIG_QXL) += qxl.o qxl-logger.o qxl-render.o
+5 −7
Original line number Diff line number Diff line
@@ -313,9 +313,7 @@ static ram_addr_t qxl_rom_size(void)
                                 sizeof(qxl_modes);
    uint32_t rom_size = 8192; /* two pages */

    required_rom_size = MAX(required_rom_size, TARGET_PAGE_SIZE);
    required_rom_size = msb_mask(required_rom_size * 2 - 1);
    assert(required_rom_size <= rom_size);
    QEMU_BUILD_BUG_ON(required_rom_size > rom_size);
    return rom_size;
}

@@ -364,7 +362,7 @@ static void init_qxl_rom(PCIQXLDevice *d)
    num_pages          = d->vga.vram_size;
    num_pages         -= ram_header_size;
    num_pages         -= surface0_area_size;
    num_pages          = num_pages / TARGET_PAGE_SIZE;
    num_pages          = num_pages / QXL_PAGE_SIZE;

    rom->draw_area_offset   = cpu_to_le32(0);
    rom->surface0_area_size = cpu_to_le32(surface0_area_size);
@@ -416,9 +414,8 @@ static void qxl_ram_set_dirty(PCIQXLDevice *qxl, void *ptr)
    intptr_t offset;

    offset = ptr - base;
    offset &= ~(TARGET_PAGE_SIZE-1);
    assert(offset < qxl->vga.vram_size);
    qxl_set_dirty(&qxl->vga.vram, offset, offset + TARGET_PAGE_SIZE);
    qxl_set_dirty(&qxl->vga.vram, offset, offset + 3);
}

/* can be called from spice server thread context */
@@ -528,7 +525,8 @@ static void interface_get_init_info(QXLInstance *sin, QXLDevInitInfo *info)
    info->num_memslots = NUM_MEMSLOTS;
    info->num_memslots_groups = NUM_MEMSLOTS_GROUPS;
    info->internal_groupslot_id = 0;
    info->qxl_ram_size = le32_to_cpu(qxl->shadow_rom.num_pages) << TARGET_PAGE_BITS;
    info->qxl_ram_size =
        le32_to_cpu(qxl->shadow_rom.num_pages) << QXL_PAGE_BITS;
    info->n_surfaces = qxl->ssd.num_surfaces;
}

+3 −0
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@ enum qxl_mode {

#define QXL_NUM_DIRTY_RECTS 64

#define QXL_PAGE_BITS 12
#define QXL_PAGE_SIZE (1 << QXL_PAGE_BITS);

typedef struct PCIQXLDevice {
    PCIDevice          pci;
    SimpleSpiceDisplay ssd;