]> xenbits.xen.org Git - xenclient/ioemu-pq.git/commitdiff
Force the linear mode while we call intel focus if the
authorJames Mckenzie <jamesmck@taoand.(none)>
Sat, 1 Aug 2009 23:22:50 +0000 (00:22 +0100)
committerJames Mckenzie <jamesmck@taoand.(none)>
Sat, 1 Aug 2009 23:22:50 +0000 (00:22 +0100)
guest_framebuffer is null.

master/intel

index 2b74a3a3aa109090b9c59d787d62b56ff845a7c0..20587f59f5d75424c67f4f34ed07b212064dbefe 100644 (file)
@@ -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 <time.h>
+ 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 <stdio.h>
 +#include <stdlib.h>
 +#include <stdint.h>
@@ -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();