[haiku-commits] haiku: hrev48096 - in src/system/boot: platform/u-boot arch/arm

  • From: ithamar@xxxxxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 25 Oct 2014 23:50:02 +0200 (CEST)

hrev48096 adds 1 changeset to branch 'master'
old head: 1436138938ee1235cd61a348595efc87f197b50b
new head: 9c71c67140feacfa7b3c5b27bcfa1eda122ba590
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=9c71c67+%5E1436138

----------------------------------------------------------------------------

9c71c67: ARM: Fix OMAP3 framebuffer divider setting
  
  QEMU was crashing since when setting the DSS divider we were _clearing_
  the TV divider, and QEMU did not check for a divide by zero.
  
  This "fixes" the QEMU crash and gets us a working framebuffer on Beagle ;)

                          [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev48096
Commit:      9c71c67140feacfa7b3c5b27bcfa1eda122ba590
URL:         http://cgit.haiku-os.org/haiku/commit/?id=9c71c67
Author:      Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx>
Date:        Sat Oct 25 21:46:37 2014 UTC

----------------------------------------------------------------------------

2 files changed, 2 insertions(+), 6 deletions(-)
src/system/boot/arch/arm/arch_framebuffer_omap3.cpp | 2 +-
src/system/boot/platform/u-boot/video.cpp           | 6 +-----

----------------------------------------------------------------------------

diff --git a/src/system/boot/arch/arm/arch_framebuffer_omap3.cpp 
b/src/system/boot/arch/arm/arch_framebuffer_omap3.cpp
index 976cace..0fab14e 100644
--- a/src/system/boot/arch/arm/arch_framebuffer_omap3.cpp
+++ b/src/system/boot/arch/arm/arch_framebuffer_omap3.cpp
@@ -262,7 +262,7 @@ found:
        setreg(DISPC, DISPC_TIMING_V, m->dispc_timing_v);
 
        modreg(DISPC, DISPC_DIVISOR, 0xffff, m->dispc_divisor);
-       modaddr(CM_CLKSEL_DSS, 0xffff, m->dss_divisor);
+       modaddr(CM_CLKSEL_DSS, 0x3f, m->dss_divisor);
 
        // Tell hardware to update, and wait for it
        modreg(DISPC, DISPC_CONTROL,
diff --git a/src/system/boot/platform/u-boot/video.cpp 
b/src/system/boot/platform/u-boot/video.cpp
index 1faabe1..72f9416 100644
--- a/src/system/boot/platform/u-boot/video.cpp
+++ b/src/system/boot/platform/u-boot/video.cpp
@@ -110,11 +110,7 @@ platform_init_video(void)
                gFramebuffer = arch_get_fb_arm_920(0x88000000);
        #elif defined(BOARD_CPU_OMAP3)
                extern ArchFramebuffer *arch_get_fb_arm_omap3(addr_t base);
-               //FIXME: This is disabled because writing to CM_CLKSEL_DSS 
during the initialisation
-               //of the framebuffer driver on OMAP3 triggers a floating point 
exception
-               //(tested in qemu-linaro from git at commit 
ac0bfdb9c310276521e5b089d7f36c1f610ca60b)
-               //gFramebuffer = arch_get_fb_arm_omap3(FB_BASE);
-               gFramebuffer = NULL;
+               gFramebuffer = arch_get_fb_arm_omap3(FB_BASE);
        #elif defined(BOARD_CPU_PXA270)
                ArchFramebuffer *arch_get_fb_arm_pxa270(addr_t base);
                gFramebuffer = arch_get_fb_arm_pxa270(0xA3000000);


Other related posts: