[haiku-development] Re: Anyone seen this - Vesa delay

  • From: Stephan Assmus <superstippi@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 11 Jul 2008 17:18:01 +0200

Axel Dörfler wrote:
> Stephan Assmus <superstippi@xxxxxx> wrote:
> > Thanks for the info so far. I have searched a bit in the VESA driver 
> > and 
> > the platform boot code, but I don't find the place where the write 
> > combining mode is specified/setup for the original framebuffer area.
> 
> The original frame buffer is setup earlier in the kernel (debug/ 
> frame_buffer_console.cpp IIRC).
> Only the remapping that happens in the VESA driver is of interest, though.

Would this work and be a clean solution?


Index: vesa.cpp
===================================================================
--- vesa.cpp    (revision 26340)
+++ vesa.cpp    (working copy)
@@ -13,6 +13,7 @@
 #include <frame_buffer_console.h>
 #include <util/kernel_cpp.h>
 #include <arch/x86/vm86.h>
+#include <vm.h>
 
 #include "driver.h"
 #include "utility.h"
@@ -210,6 +211,9 @@
        }
        delete_area(info.shared_info->frame_buffer_area);
 
+       // Turn on write combining for the area
+       vm_set_area_memory_type(newFBArea, modeInfo.physical_base, B_MTR_WC);
+
        // Update shared frame buffer information
        info.shared_info->frame_buffer_area = newFBArea;
        info.shared_info->frame_buffer = (uint8 *)frameBuffer;
Index: Jamfile
===================================================================
--- Jamfile     (revision 26340)
+++ Jamfile     (working copy)
@@ -2,6 +2,7 @@
 
 UsePrivateHeaders kernel graphics [ FDirName graphics common ] ;
 UsePrivateHeaders kernel graphics [ FDirName graphics vesa ] ;
+UsePrivateKernelHeaders ;
 
 KernelAddon vesa :
        device.cpp


---
Best regards,
-Stephan

Other related posts: