From 576e136d9d6d473ce6a7ffc7abadc75e1a218418 Mon Sep 17 00:00:00 2001 From: Zhai Edwin Date: Sat, 15 Jan 2011 16:32:15 +0800 Subject: qemu: Upgrade from 0.12.4 to 0.13.0 Patch status: -- Removed -- arm-cp15-fix.patch arm_timer-fix-oneshot-mode.patch arm_timer-reload-timer-when-enabled.patch cursor-shadow-fix.patch -- They are already in upstream or some new changes make them useless. -- Added -- parallel_make.patch: Fix "make -j(>=6)" failure wacom-tablet-fix.patch: Fix seg fault of usb tablet. port92_fix.patch: Fix boot failure on ppc due to port 0x92 conflict. Signed-off-by: Zhai Edwin --- .../qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch (limited to 'meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch') diff --git a/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch new file mode 100644 index 000000000..5bdbaf393 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu-0.13.0/qemu-vmware-vga-depth.patch @@ -0,0 +1,115 @@ +# fix VMware VGA driver depth calculation error, which may cause segmentation fault +# +# ktian1, 06/29/2010 +Index: qemu-0.13.0/console.h +=================================================================== +--- qemu-0.13.0.orig/console.h 2011-01-17 16:41:58.000000000 +0800 ++++ qemu-0.13.0/console.h 2011-01-17 16:48:00.000000000 +0800 +@@ -171,6 +171,12 @@ + void (*free_displaysurface)(DisplaySurface *surface); + }; + ++struct DisplayPostCallback { ++ void (*postcall) (void *); ++ void *parm; ++ struct DisplayPostCallback *next; ++}; ++ + struct DisplayState { + struct DisplaySurface *surface; + void *opaque; +@@ -178,6 +184,7 @@ + + struct DisplayAllocator* allocator; + struct DisplayChangeListener* listeners; ++ struct DisplayPostCallback* postcalls; + + void (*mouse_set)(int x, int y, int on); + void (*cursor_define)(QEMUCursor *cursor); +@@ -229,6 +236,12 @@ + ds->listeners = dcl; + } + ++static inline void register_displaypostcallback(DisplayState *ds, DisplayPostCallback *dpc) ++{ ++ dpc->next = ds->postcalls; ++ ds->postcalls = dpc; ++} ++ + static inline void dpy_update(DisplayState *s, int x, int y, int w, int h) + { + struct DisplayChangeListener *dcl = s->listeners; +Index: qemu-0.13.0/hw/vmware_vga.c +=================================================================== +--- qemu-0.13.0.orig/hw/vmware_vga.c 2011-01-17 16:42:36.000000000 +0800 ++++ qemu-0.13.0/hw/vmware_vga.c 2011-01-17 16:48:00.000000000 +0800 +@@ -957,8 +957,9 @@ + } + } + +-static void vmsvga_reset(struct vmsvga_state_s *s) ++static void vmsvga_reset(void *parm) + { ++ struct vmsvga_state_s *s = (struct vmsvga_state_s *)parm; + s->index = 0; + s->enable = 0; + s->config = 0; +@@ -1163,6 +1164,8 @@ + + static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) + { ++ DisplayPostCallback *dpc; ++ + s->scratch_size = SVGA_SCRATCH_SIZE; + s->scratch = qemu_malloc(s->scratch_size * 4); + +@@ -1190,7 +1193,10 @@ + + rom_add_vga(VGABIOS_FILENAME); + +- vmsvga_reset(s); ++ dpc = qemu_mallocz(sizeof(DisplayPostCallback)); ++ dpc->postcall = vmsvga_reset; ++ dpc->parm = s; ++ register_displaypostcallback(s->vga.ds, dpc); + } + + static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num, +Index: qemu-0.13.0/qemu-common.h +=================================================================== +--- qemu-0.13.0.orig/qemu-common.h 2011-01-17 16:41:58.000000000 +0800 ++++ qemu-0.13.0/qemu-common.h 2011-01-17 16:48:00.000000000 +0800 +@@ -205,6 +205,7 @@ + typedef struct DisplayChangeListener DisplayChangeListener; + typedef struct DisplaySurface DisplaySurface; + typedef struct DisplayAllocator DisplayAllocator; ++typedef struct DisplayPostCallback DisplayPostCallback; + typedef struct PixelFormat PixelFormat; + typedef struct TextConsole TextConsole; + typedef TextConsole QEMUConsole; +Index: qemu-0.13.0/vl.c +=================================================================== +--- qemu-0.13.0.orig/vl.c 2011-01-17 16:42:36.000000000 +0800 ++++ qemu-0.13.0/vl.c 2011-01-17 16:48:00.000000000 +0800 +@@ -1814,6 +1814,7 @@ + char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */ + DisplayState *ds; + DisplayChangeListener *dcl; ++ DisplayPostCallback *dpc; + int cyls, heads, secs, translation; + QemuOpts *hda_opts = NULL, *opts; + int optind; +@@ -2960,6 +2961,13 @@ + } + dpy_resize(ds); + ++ dpc = ds->postcalls; ++ while (dpc != NULL) { ++ if (dpc->postcall != NULL) ++ dpc->postcall(dpc->parm); ++ dpc = dpc->next; ++ } ++ + dcl = ds->listeners; + while (dcl != NULL) { + if (dcl->dpy_refresh != NULL) { -- cgit v1.2.3