Re: 2.6 kernel freezes when running Xfbdev

From: Milan Plzik <milan.plzik_at_gmail.com>
Date: Sat, 23 Dec 2006 13:59:31 +0100

  Hello,

  I think I have partial work around for this problem, and also
confirmation, that the issue is caused by framebuffer access and
improper caching handling. I modified drivers/video/fbmem.c, function
fbmem_mmap, to don't use write combining on framebuffer and disable
caching completely [1]. After this, I was able to run Xfbdev for at
least an hour without any apparent problems - everything seems to work.

  I tried to find the code which takes care about write combining (as
far as I understand, it should be somewhere in arch/arm/mm), but have
not found any such code yet.

        Milan Plzik

[1] Exact modification to fbmem.c:

--- fbmem.c.old 2006-12-23 11:46:15.000000000 +0100
+++ fbmem.c 2006-12-23 11:46:32.000000000 +0100
@@ -1206,7 +1206,7 @@
 #elif defined(__hppa__)
        pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE;
 #elif defined(__arm__) || defined(__sh__) || defined(__m32r__)
- vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
+ vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 #elif defined(__ia64__)
        if (efi_range_is_wc(vma->vm_start, vma->vm_end - vma->vm_start))
                vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
Received on Sat Dec 23 2006 - 08:00:11 EST

This archive was generated by hypermail 2.2.0 : Sat Dec 23 2006 - 08:01:29 EST