mirror of https://github.com/xqemu/xqemu.git
Merge remote-tracking branch 'spice/spice.v68' into staging
# By Alon Levy # Via Gerd Hoffmann * spice/spice.v68: qxl: change rom size to 8192 qxl: stop using non revision 4 rom fields for revision < 4
This commit is contained in:
commit
a29a6b73c4
24
hw/qxl.c
24
hw/qxl.c
|
@ -80,9 +80,7 @@
|
||||||
|
|
||||||
#define QXL_MODE_EX(x_res, y_res) \
|
#define QXL_MODE_EX(x_res, y_res) \
|
||||||
QXL_MODE_16_32(x_res, y_res, 0), \
|
QXL_MODE_16_32(x_res, y_res, 0), \
|
||||||
QXL_MODE_16_32(y_res, x_res, 1), \
|
QXL_MODE_16_32(x_res, y_res, 1)
|
||||||
QXL_MODE_16_32(x_res, y_res, 2), \
|
|
||||||
QXL_MODE_16_32(y_res, x_res, 3)
|
|
||||||
|
|
||||||
static QXLMode qxl_modes[] = {
|
static QXLMode qxl_modes[] = {
|
||||||
QXL_MODE_EX(640, 480),
|
QXL_MODE_EX(640, 480),
|
||||||
|
@ -306,10 +304,13 @@ static inline uint32_t msb_mask(uint32_t val)
|
||||||
|
|
||||||
static ram_addr_t qxl_rom_size(void)
|
static ram_addr_t qxl_rom_size(void)
|
||||||
{
|
{
|
||||||
uint32_t rom_size = sizeof(QXLRom) + sizeof(QXLModes) + sizeof(qxl_modes);
|
uint32_t required_rom_size = sizeof(QXLRom) + sizeof(QXLModes) +
|
||||||
|
sizeof(qxl_modes);
|
||||||
|
uint32_t rom_size = 8192; /* two pages */
|
||||||
|
|
||||||
rom_size = MAX(rom_size, TARGET_PAGE_SIZE);
|
required_rom_size = MAX(required_rom_size, TARGET_PAGE_SIZE);
|
||||||
rom_size = msb_mask(rom_size * 2 - 1);
|
required_rom_size = msb_mask(required_rom_size * 2 - 1);
|
||||||
|
assert(required_rom_size <= rom_size);
|
||||||
return rom_size;
|
return rom_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -945,6 +946,12 @@ static void interface_set_client_capabilities(QXLInstance *sin,
|
||||||
{
|
{
|
||||||
PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
|
PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
|
||||||
|
|
||||||
|
if (qxl->revision < 4) {
|
||||||
|
trace_qxl_set_client_capabilities_unsupported_by_revision(qxl->id,
|
||||||
|
qxl->revision);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (runstate_check(RUN_STATE_INMIGRATE) ||
|
if (runstate_check(RUN_STATE_INMIGRATE) ||
|
||||||
runstate_check(RUN_STATE_POSTMIGRATE)) {
|
runstate_check(RUN_STATE_POSTMIGRATE)) {
|
||||||
return;
|
return;
|
||||||
|
@ -979,6 +986,11 @@ static int interface_client_monitors_config(QXLInstance *sin,
|
||||||
QXLRom *rom = memory_region_get_ram_ptr(&qxl->rom_bar);
|
QXLRom *rom = memory_region_get_ram_ptr(&qxl->rom_bar);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (qxl->revision < 4) {
|
||||||
|
trace_qxl_client_monitors_config_unsupported_by_device(qxl->id,
|
||||||
|
qxl->revision);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Older windows drivers set int_mask to 0 when their ISR is called,
|
* Older windows drivers set int_mask to 0 when their ISR is called,
|
||||||
* then later set it to ~0. So it doesn't relate to the actual interrupts
|
* then later set it to ~0. So it doesn't relate to the actual interrupts
|
||||||
|
|
|
@ -1029,8 +1029,10 @@ qxl_send_events_vm_stopped(int qid, uint32_t events) "%d %d"
|
||||||
qxl_set_guest_bug(int qid) "%d"
|
qxl_set_guest_bug(int qid) "%d"
|
||||||
qxl_interrupt_client_monitors_config(int qid, int num_heads, void *heads) "%d %d %p"
|
qxl_interrupt_client_monitors_config(int qid, int num_heads, void *heads) "%d %d %p"
|
||||||
qxl_client_monitors_config_unsupported_by_guest(int qid, uint32_t int_mask, void *client_monitors_config) "%d %X %p"
|
qxl_client_monitors_config_unsupported_by_guest(int qid, uint32_t int_mask, void *client_monitors_config) "%d %X %p"
|
||||||
|
qxl_client_monitors_config_unsupported_by_device(int qid, int revision) "%d revision=%d"
|
||||||
qxl_client_monitors_config_capped(int qid, int requested, int limit) "%d %d %d"
|
qxl_client_monitors_config_capped(int qid, int requested, int limit) "%d %d %d"
|
||||||
qxl_client_monitors_config_crc(int qid, unsigned size, uint32_t crc32) "%d %u %u"
|
qxl_client_monitors_config_crc(int qid, unsigned size, uint32_t crc32) "%d %u %u"
|
||||||
|
qxl_set_client_capabilities_unsupported_by_revision(int qid, int revision) "%d revision=%d"
|
||||||
|
|
||||||
# hw/qxl-render.c
|
# hw/qxl-render.c
|
||||||
qxl_render_blit_guest_primary_initialized(void) ""
|
qxl_render_blit_guest_primary_initialized(void) ""
|
||||||
|
|
Loading…
Reference in New Issue