home *** CD-ROM | disk | FTP | other *** search
/ Dream 49 / Amiga_Dream_49.iso / linux68k / geert-fbmem.diff < prev    next >
Internet Message Format  |  1997-12-23  |  3KB

  1. Date: Tue, 23 Dec 1997 20:34:14 +0100 (CET)
  2. From: Geert Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be>
  3. To: "Ole J. R°tne" <olejr@online.no>
  4. cc: linux-m68k@lists.linux-m68k.org
  5. Subject: Re: L68K: Jingle 2.0.33 & X11
  6. In-Reply-To: <2030.296T1506T10033892@online.no>
  7. Sender: owner-linux-m68k@phil.uni-sb.de
  8.  
  9. On 23 Dec 1997, Ole J. R°tne wrote:
  10. > Frank Neumann wrote something like:
  11. > >I noticed something similar - I start X manually, but always get a message
  12. > >like 'xf86MapVidMem: Unable to mmap framebuffer'. I already heard the same
  13. > >problem from others.
  14. > >Geert, this seems to be due to your 'mmio' patches in drivers/char/fbmem.c.
  15. > >I don't know what exactly is wrong there, but it must be in these lines:
  16. > >(function fb_mmap())
  17. > >[..]
  18. > >    if (vma->vm_offset < fix.smem_len) {
  19. > >        /* frame buffer memory */
  20. > >        start = fix.smem_start;
  21. > >        len = fix.smem_len;
  22. > >    } else {
  23. > >        /* memory mapped io */
  24. > >        start = fix.mmio_start;
  25. > >        len = fix.mmio_len;
  26. > >        vma->vm_offset -= fix.smem_len;
  27. > >Could you look into this? I get the above error message on clgen as well.
  28. > The problem are in fb_mmap().. I removed this:
  29.  
  30.     [...]
  31.  
  32. > And now X is working again.. Don't know what else is broken though..
  33. > Hope this helps somewhat...
  34.  
  35. Yes, there were _two_ calls to fb->fb_get_fix(): one that did the old thing,
  36. and one that did the new thing. The old thing should be removed:
  37.  
  38. --- m68k-2.0.33/drivers/char/fbmem.c.orig    Mon Dec 22 22:09:20 1997
  39. +++ m68k-2.0.33/drivers/char/fbmem.c    Thu Dec 25 11:49:47 1997
  40. @@ -260,18 +260,6 @@
  41.          /* Use no-cache mode, serialized */
  42.                  pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE_S;
  43.          }
  44. -
  45. -    fb->fb_get_fix(&fix, PROC_CONSOLE(), fbidx);
  46. -    if ((vma->vm_end - vma->vm_start + vma->vm_offset) > fix.smem_len)
  47. -        return -EINVAL;
  48. -    vma->vm_offset += (unsigned long)fix.smem_start;
  49. -    if (vma->vm_offset & ~PAGE_MASK)
  50. -        return -ENXIO;
  51. -    if (CPU_IS_040_OR_060) {
  52. -        pgprot_val(vma->vm_page_prot) &= _CACHEMASK040;
  53. -        /* Use write-through cache mode */
  54. -        pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE_S;
  55. -    }
  56.      if (remap_page_range(vma->vm_start, vma->vm_offset,
  57.                   vma->vm_end - vma->vm_start, vma->vm_page_prot))
  58.          return -EAGAIN;
  59.  
  60. Greetings,
  61.  
  62.                         Geert
  63.  
  64. --
  65. Geert Uytterhoeven                     Geert.Uytterhoeven@cs.kuleuven.ac.be
  66. Wavelets, Linux/{m68k~Amiga,PPC~CHRP}  http://www.cs.kuleuven.ac.be/~geert/
  67. Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium
  68.  
  69.