Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/tc Add WSDISPLAYIO_GET_FBINFO support to most TURBOc...



details:   https://anonhg.NetBSD.org/src/rev/f5855f38435e
branches:  trunk
changeset: 1026766:f5855f38435e
user:      abs <abs%NetBSD.org@localhost>
date:      Mon Dec 06 16:00:07 2021 +0000

description:
Add WSDISPLAYIO_GET_FBINFO support to most TURBOchannel framebuffers

This adds WSDISPLAYIO_GET_FBINFO to cfb, mfb, sfb, tfb and xcfb
TURBOchannel framebuffers as used by pmax and alpha

It does not add support to px and pxg (they handle ioctls in common
code in stic.c and more careful wiring is required)

These changes allow an Xswfb X server to use the framebuffer
directly, albeit without any special acceleration

A subsequent change will re-enable X server building on pmax, and
also hopefully switch alpha from Xorg 1.10 to 1.20

diffstat:

 sys/dev/tc/cfb.c  |  9 +++++++--
 sys/dev/tc/mfb.c  |  9 +++++++--
 sys/dev/tc/sfb.c  |  9 +++++++--
 sys/dev/tc/tfb.c  |  9 +++++++--
 sys/dev/tc/xcfb.c |  9 +++++++--
 5 files changed, 35 insertions(+), 10 deletions(-)

diffs (150 lines):

diff -r d2da43ecd844 -r f5855f38435e sys/dev/tc/cfb.c
--- a/sys/dev/tc/cfb.c  Mon Dec 06 08:13:41 2021 +0000
+++ b/sys/dev/tc/cfb.c  Mon Dec 06 16:00:07 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cfb.c,v 1.65 2021/08/07 16:19:16 thorpej Exp $ */
+/* $NetBSD: cfb.c,v 1.66 2021/12/06 16:00:07 abs Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cfb.c,v 1.65 2021/08/07 16:19:16 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cfb.c,v 1.66 2021/12/06 16:00:07 abs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -363,6 +363,11 @@
                *(u_int *)data = WSDISPLAY_TYPE_CFB;
                return (0);
 
+       case WSDISPLAYIO_GET_FBINFO: {
+               struct wsdisplayio_fbinfo *fbi = data;
+               return wsdisplayio_get_fbinfo(sc->sc_ri, fbi);
+       }
+
        case WSDISPLAYIO_GINFO:
 #define        wsd_fbip ((struct wsdisplay_fbinfo *)data)
                wsd_fbip->height = ri->ri_height;
diff -r d2da43ecd844 -r f5855f38435e sys/dev/tc/mfb.c
--- a/sys/dev/tc/mfb.c  Mon Dec 06 08:13:41 2021 +0000
+++ b/sys/dev/tc/mfb.c  Mon Dec 06 16:00:07 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mfb.c,v 1.63 2021/08/07 16:19:16 thorpej Exp $ */
+/* $NetBSD: mfb.c,v 1.64 2021/12/06 16:00:07 abs Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mfb.c,v 1.63 2021/08/07 16:19:16 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mfb.c,v 1.64 2021/12/06 16:00:07 abs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -327,6 +327,11 @@
                *(u_int *)data = WSDISPLAY_TYPE_MFB;
                return (0);
 
+       case WSDISPLAYIO_GET_FBINFO: {
+               struct wsdisplayio_fbinfo *fbi = data;
+               return wsdisplayio_get_fbinfo(sc->sc_ri, fbi);
+       }
+
        case WSDISPLAYIO_GINFO:
 #define        wsd_fbip ((struct wsdisplay_fbinfo *)data)
                wsd_fbip->height = ri->ri_height;
diff -r d2da43ecd844 -r f5855f38435e sys/dev/tc/sfb.c
--- a/sys/dev/tc/sfb.c  Mon Dec 06 08:13:41 2021 +0000
+++ b/sys/dev/tc/sfb.c  Mon Dec 06 16:00:07 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: sfb.c,v 1.88 2021/08/07 16:19:16 thorpej Exp $ */
+/* $NetBSD: sfb.c,v 1.89 2021/12/06 16:00:07 abs Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sfb.c,v 1.88 2021/08/07 16:19:16 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sfb.c,v 1.89 2021/12/06 16:00:07 abs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -397,6 +397,11 @@
                *(u_int *)data = WSDISPLAY_TYPE_SFB;
                return (0);
 
+       case WSDISPLAYIO_GET_FBINFO: {
+               struct wsdisplayio_fbinfo *fbi = data;
+               return wsdisplayio_get_fbinfo(sc->sc_ri, fbi);
+       }
+
        case WSDISPLAYIO_GINFO:
 #define        wsd_fbip ((struct wsdisplay_fbinfo *)data)
                wsd_fbip->height = ri->ri_height;
diff -r d2da43ecd844 -r f5855f38435e sys/dev/tc/tfb.c
--- a/sys/dev/tc/tfb.c  Mon Dec 06 08:13:41 2021 +0000
+++ b/sys/dev/tc/tfb.c  Mon Dec 06 16:00:07 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: tfb.c,v 1.65 2021/08/07 16:19:16 thorpej Exp $ */
+/* $NetBSD: tfb.c,v 1.66 2021/12/06 16:00:07 abs Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tfb.c,v 1.65 2021/08/07 16:19:16 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tfb.c,v 1.66 2021/12/06 16:00:07 abs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -397,6 +397,11 @@
                *(u_int *)data = WSDISPLAY_TYPE_TX;
                return (0);
 
+       case WSDISPLAYIO_GET_FBINFO: {
+               struct wsdisplayio_fbinfo *fbi = data;
+               return wsdisplayio_get_fbinfo(sc->sc_ri, fbi);
+       }
+
        case WSDISPLAYIO_GINFO:
 #define        wsd_fbip ((struct wsdisplay_fbinfo *)data)
                wsd_fbip->height = ri->ri_height;
diff -r d2da43ecd844 -r f5855f38435e sys/dev/tc/xcfb.c
--- a/sys/dev/tc/xcfb.c Mon Dec 06 08:13:41 2021 +0000
+++ b/sys/dev/tc/xcfb.c Mon Dec 06 16:00:07 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: xcfb.c,v 1.59 2021/08/07 16:19:16 thorpej Exp $ */
+/* $NetBSD: xcfb.c,v 1.60 2021/12/06 16:00:07 abs Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xcfb.c,v 1.59 2021/08/07 16:19:16 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xcfb.c,v 1.60 2021/12/06 16:00:07 abs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -396,6 +396,11 @@
                *(u_int *)data = WSDISPLAY_TYPE_XCFB;
                return (0);
 
+       case WSDISPLAYIO_GET_FBINFO: {
+               struct wsdisplayio_fbinfo *fbi = data;
+               return wsdisplayio_get_fbinfo(sc->sc_ri, fbi);
+       }
+
        case WSDISPLAYIO_GINFO:
 #define        wsd_fbip ((struct wsdisplay_fbinfo *)data)
                wsd_fbip->height = ri->ri_height;



Home | Main Index | Thread Index | Old Index