From 81df8d28f80f8c2e560efd123602d4727d356fc2 Mon Sep 17 00:00:00 2001 From: James Mckenzie Date: Sun, 2 Aug 2009 00:22:50 +0100 Subject: [PATCH] Force the linear mode while we call intel focus if the guest_framebuffer is null. --- master/intel | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/master/intel b/master/intel index 2b74a3a..20587f5 100644 --- a/master/intel +++ b/master/intel @@ -32,6 +32,30 @@ index 97214c0..8c9b09b 100644 +int intel_leave(void); +void intel_display_init(DisplayState *ds); #endif +diff --git a/dom0_driver.c b/dom0_driver.c +index a0fa64e..c8b376e 100644 +--- a/dom0_driver.c ++++ b/dom0_driver.c +@@ -43,6 +43,7 @@ + #include + + extern int vga_passthrough; ++extern int intel; + + static void dom0_driver_state_change(const char *path, void *opaque); + static void dom0_driver_command(const char *path, void *opaque); +@@ -698,6 +699,11 @@ void dom0_driver_init(const char *position) + driver.enter = dom0_driver_unblank; + driver.leave = dom0_driver_blank; + } ++ else if (intel) ++ { ++ driver.enter = intel_enter; ++ driver.leave = intel_leave; ++ } + else + { + driver.enter = dom0_driver_dummy_enter_leave; diff --git a/hw/vga.c b/hw/vga.c index 90bd544..a2b8744 100644 --- a/hw/vga.c @@ -191,10 +215,10 @@ index 90bd544..a2b8744 100644 vga_update_display(s); diff --git a/intel.c b/intel.c new file mode 100644 -index 0000000..eb0b9c0 +index 0000000..c071866 --- /dev/null +++ b/intel.c -@@ -0,0 +1,448 @@ +@@ -0,0 +1,453 @@ +#include +#include +#include @@ -541,6 +565,11 @@ index 0000000..eb0b9c0 + IntelPitch = intel_get_reg(REG_DR_DSPASTRIDE); + IntelX = ((intel_get_reg(REG_DE_PIPEASRC) >> 16) & 0xfff) + 1; + IntelY = (intel_get_reg(REG_DE_PIPEASRC) & 0xfff) + 1; ++ ++ if (!guest_framebuffer) ++ intel_force_linear(0); ++ memset((uint8_t *)(intel_mem + intel_get_reg(REG_DR_DSPASURF)), 0, ++ IntelX * IntelY * 4); + } + vga_hw_invalidate(); + vga_hw_update(); -- 2.39.5