home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 49
/
Amiga_Dream_49.iso
/
linux68k
/
geert-fbmem.diff
< prev
next >
Wrap
Internet Message Format
|
1997-12-23
|
3KB
Date: Tue, 23 Dec 1997 20:34:14 +0100 (CET)
From: Geert Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be>
To: "Ole J. R°tne" <olejr@online.no>
cc: linux-m68k@lists.linux-m68k.org
Subject: Re: L68K: Jingle 2.0.33 & X11
In-Reply-To: <2030.296T1506T10033892@online.no>
Sender: owner-linux-m68k@phil.uni-sb.de
On 23 Dec 1997, Ole J. R°tne wrote:
> Frank Neumann wrote something like:
> >I noticed something similar - I start X manually, but always get a message
> >like 'xf86MapVidMem: Unable to mmap framebuffer'. I already heard the same
> >problem from others.
>
> >Geert, this seems to be due to your 'mmio' patches in drivers/char/fbmem.c.
> >I don't know what exactly is wrong there, but it must be in these lines:
>
> >(function fb_mmap())
> >[..]
> > if (vma->vm_offset < fix.smem_len) {
> > /* frame buffer memory */
> > start = fix.smem_start;
> > len = fix.smem_len;
> > } else {
> > /* memory mapped io */
> > start = fix.mmio_start;
> > len = fix.mmio_len;
> > vma->vm_offset -= fix.smem_len;
>
> >Could you look into this? I get the above error message on clgen as well.
>
> The problem are in fb_mmap().. I removed this:
[...]
> And now X is working again.. Don't know what else is broken though..
> Hope this helps somewhat...
Yes, there were _two_ calls to fb->fb_get_fix(): one that did the old thing,
and one that did the new thing. The old thing should be removed:
--- m68k-2.0.33/drivers/char/fbmem.c.orig Mon Dec 22 22:09:20 1997
+++ m68k-2.0.33/drivers/char/fbmem.c Thu Dec 25 11:49:47 1997
@@ -260,18 +260,6 @@
/* Use no-cache mode, serialized */
pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE_S;
}
-
- fb->fb_get_fix(&fix, PROC_CONSOLE(), fbidx);
- if ((vma->vm_end - vma->vm_start + vma->vm_offset) > fix.smem_len)
- return -EINVAL;
- vma->vm_offset += (unsigned long)fix.smem_start;
- if (vma->vm_offset & ~PAGE_MASK)
- return -ENXIO;
- if (CPU_IS_040_OR_060) {
- pgprot_val(vma->vm_page_prot) &= _CACHEMASK040;
- /* Use write-through cache mode */
- pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE_S;
- }
if (remap_page_range(vma->vm_start, vma->vm_offset,
vma->vm_end - vma->vm_start, vma->vm_page_prot))
return -EAGAIN;
Greetings,
Geert
--
Geert Uytterhoeven Geert.Uytterhoeven@cs.kuleuven.ac.be
Wavelets, Linux/{m68k~Amiga,PPC~CHRP} http://www.cs.kuleuven.ac.be/~geert/
Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium