Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sparc64/dev support WSDISPLAYIO_GET_FBINFO



details:   https://anonhg.NetBSD.org/src/rev/96d3aac01c3a
branches:  trunk
changeset: 349092:96d3aac01c3a
user:      macallan <macallan%NetBSD.org@localhost>
date:      Wed Nov 23 21:18:12 2016 +0000

description:
support WSDISPLAYIO_GET_FBINFO
also, use _PREFETCHABLE for rasops

diffstat:

 sys/arch/sparc64/dev/gfb.c |  17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diffs (52 lines):

diff -r c9c4e91fb302 -r 96d3aac01c3a sys/arch/sparc64/dev/gfb.c
--- a/sys/arch/sparc64/dev/gfb.c        Wed Nov 23 21:14:23 2016 +0000
+++ b/sys/arch/sparc64/dev/gfb.c        Wed Nov 23 21:18:12 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: gfb.c,v 1.8 2016/07/07 06:55:38 msaitoh Exp $  */
+/*     $NetBSD: gfb.c,v 1.9 2016/11/23 21:18:12 macallan Exp $ */
 
 /*
  * Copyright (c) 2009 Michael Lorenz
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gfb.c,v 1.8 2016/07/07 06:55:38 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gfb.c,v 1.9 2016/11/23 21:18:12 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -162,7 +162,8 @@
        sc->sc_mode = WSDISPLAYIO_MODE_EMUL;
 
        if (bus_space_map(sc->sc_memt, ma->ma_reg[6].ur_paddr,
-           sc->sc_fblen, BUS_SPACE_MAP_LINEAR, &sc->sc_fbh)) {
+           sc->sc_fblen, BUS_SPACE_MAP_LINEAR | BUS_SPACE_MAP_PREFETCHABLE,
+           &sc->sc_fbh)) {
                printf(": failed to map the framebuffer\n");
                return;
        }
@@ -303,6 +304,11 @@
                                }
                        }
                        return 0;
+               case WSDISPLAYIO_GET_FBINFO:
+                       {
+                               struct wsdisplayio_fbinfo *fbi = data;
+                               return wsdisplayio_get_fbinfo(&ms->scr_ri, fbi);
+                       }
        }
        return EPASSTHROUGH;
 }
@@ -316,6 +322,11 @@
 
        /* 'regular' framebuffer mmap()ing */
        if (offset < sc->sc_fblen) {
+               /*
+                * XXX
+                * BUS_SPACE_MAP_PREFETCHABLE produces artifacts with X, but
+                * not with the console code, so don't set it here
+                */
                pa = bus_space_mmap(sc->sc_memt, sc->sc_fb_paddr + offset, 0,
                    prot, BUS_SPACE_MAP_LINEAR);
                return pa;



Home | Main Index | Thread Index | Old Index