+void intel_display_init(DisplayState *ds);
#endif
diff --git a/hw/vga.c b/hw/vga.c
-index 90bd544..5048dea 100644
+index 90bd544..8ba57cb 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -161,6 +161,18 @@ static uint8_t expand4to8[16];
static void vga_dumb_update_retrace_info(VGAState *s)
{
(void) s;
+@@ -618,7 +630,7 @@ static void vbe_ioport_write_data(void *opaque, uint32_t addr, uint32_t val)
+ if ((val & VBE_DISPI_ENABLED) &&
+ !(s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED)) {
+ int h, shift_control;
+-
++
+ if (s->vram_gmfn != s->lfb_addr) {
+ set_vram_mapping(s, s->lfb_addr, s->lfb_end);
+ }
+@@ -1313,12 +1325,12 @@ static void vga_draw_text(VGAState *s, int full_update)
+ full_update = 1;
+ }
+
+- s->rgb_to_pixel =
++ s->rgb_to_pixel =
+ rgb_to_pixel_dup_table[get_depth_index(s->ds)];
+ full_update |= update_palette16(s);
+ palette = s->last_palette;
+ x_incr = cw * ds_get_bytes_per_pixel(s->ds);
+-
++
+ cursor_offset = ((s->cr[0x0e] << 8) | s->cr[0x0f]) - s->start_addr;
+ if (cursor_offset != s->cursor_offset ||
+ s->cr[0xa] != s->cursor_start ||
@@ -1596,15 +1608,12 @@ static void vga_draw_graphic(VGAState *s, int full_update)
}
depth = s->get_bpp(s);
+- if (s->line_offset != s->last_line_offset ||
+ guest_framebuffer = s->lfb_addr + (s->start_addr * 4);
- if (s->line_offset != s->last_line_offset ||
++ if (s->line_offset != s->last_line_offset ||
disp_width != s->last_width ||
height != s->last_height ||
s->last_depth != depth) {
if (is_graphic_console()) {
qemu_free_displaysurface(s->ds);
s->ds->surface = qemu_create_displaysurface_from(disp_width, height, depth,
-@@ -1633,6 +1642,8 @@ static void vga_draw_graphic(VGAState *s, int full_update)
+@@ -1633,7 +1642,7 @@ static void vga_draw_graphic(VGAState *s, int full_update)
dpy_setdata(s->ds);
}
+- s->rgb_to_pixel =
++ s->rgb_to_pixel =
+ rgb_to_pixel_dup_table[get_depth_index(s->ds)];
+
+ if (shift_control == 0) {
+@@ -1832,6 +1841,8 @@ static void vga_draw_blank(VGAState *s, int full_update)
+ /* Disable dirty bit tracking */
+ xc_hvm_track_dirty_vram(xc_handle, domid, 0, 0, NULL);
+
+ if (intel_output && is_buffer_shared(s->ds->surface))
+ return;
s->rgb_to_pixel =
rgb_to_pixel_dup_table[get_depth_index(s->ds)];
+ if (ds_get_bits_per_pixel(s->ds) == 8)
+@@ -2008,8 +2019,8 @@ static void vga_update_text(void *opaque, console_ch_t *chardata)
+ /* ugly hack for CGA 160x100x16 - explain me the logic */
+ height = 100;
+ } else {
+- height = s->cr[0x12] |
+- ((s->cr[0x07] & 0x02) << 7) |
++ height = s->cr[0x12] |
++ ((s->cr[0x07] & 0x02) << 7) |
+ ((s->cr[0x07] & 0x40) << 3);
+ height = (height + 1) / cheight;
+ }
+@@ -2304,7 +2315,7 @@ static int vga_load(QEMUFile *f, void *opaque, int version_id)
+ if (!s->vram_gmfn) {
+ xen_vga_populate_vram(VRAM_RESERVED_ADDRESS, s->vram_size);
+ s->vram_gmfn = VRAM_RESERVED_ADDRESS;
+- qemu_get_buffer(f, s->vram_ptr, s->vram_size);
++ qemu_get_buffer(f, s->vram_ptr, s->vram_size);
+ }
+ }
+
+@@ -2334,7 +2345,7 @@ static void vga_map(PCIDevice *pci_dev, int region_num,
+ s->vbe_regs[VBE_DISPI_INDEX_LFB_ADDRESS_L] = s->lfb_addr & 0xFFFF;
+ s->vbe_regs[VBE_DISPI_INDEX_VIDEO_MEMORY_64K] = s->vram_size >> 16;
+ #endif
+-
++
+ fprintf(stderr, "vga s->lfb_addr = %lx s->lfb_end = %lx \n", (unsigned long) s->lfb_addr,(unsigned long) s->lfb_end);
+ if (size != s->vram_size)
@@ -2473,8 +2484,6 @@ static void vga_bios_init(VGAState *s)
}
/* Allocate video memory in the GPFN space */
void xen_vga_populate_vram(uint64_t vram_addr, uint32_t vga_ram_size)
{
+@@ -2660,7 +2669,7 @@ int isa_vga_init(uint8_t *vga_ram_base,
+ s = qemu_mallocz(sizeof(VGAState));
+ if (!s)
+ return -1;
+-
++
+ if (vga_ram_size > 16*1024*1024) {
+ fprintf (stderr, "The stdvga/VBE device model has no use for more than 16 Megs of vram. Video ram set to 16M. \n");
+ vga_ram_size = 16*1024*1024;
+@@ -2820,7 +2829,7 @@ static void vga_screen_dump(void *opaque, const char *filename)
+ register_displaychangelistener(ds, &dcl);
+ ds->allocator = &default_allocator;
+ ds->surface = qemu_create_displaysurface(ds, w, h);
+-
++
+ s->ds = ds;
+ s->graphic_mode = -1;
+ vga_update_display(s);
diff --git a/intel.c b/intel.c
new file mode 100644
index 0000000..8a20756