Module Name:    src
Committed By:   macallan
Date:           Mon Aug 19 10:57:32 UTC 2024

Modified Files:
        src/sys/dev/ic: sti.c stireg.h

Log Message:
add an ioctl() to read a device's graphics ID, mimic HP/UX's GCID
that way an xorg driver can identify which WSDISPLAY_TYPE_STI it's talking to
without having to setup its own STI


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/sys/dev/ic/sti.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/ic/stireg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/ic/sti.c
diff -u src/sys/dev/ic/sti.c:1.37 src/sys/dev/ic/sti.c:1.38
--- src/sys/dev/ic/sti.c:1.37	Wed Jul  3 13:08:36 2024
+++ src/sys/dev/ic/sti.c	Mon Aug 19 10:57:32 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: sti.c,v 1.37 2024/07/03 13:08:36 macallan Exp $	*/
+/*	$NetBSD: sti.c,v 1.38 2024/08/19 10:57:32 macallan Exp $	*/
 
 /*	$OpenBSD: sti.c,v 1.61 2009/09/05 14:09:35 miod Exp $	*/
 
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sti.c,v 1.37 2024/07/03 13:08:36 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sti.c,v 1.38 2024/08/19 10:57:32 macallan Exp $");
 
 #include "wsdisplay.h"
 
@@ -1073,6 +1073,7 @@ int
 sti_ioctl(void *v, void *vs, u_long cmd, void *data, int flag, struct lwp *l)
 {
 	struct sti_screen *scr = (struct sti_screen *)v;
+	struct sti_rom *rom = scr->scr_rom;
 	struct wsdisplay_fbinfo *wdf;
 	struct wsdisplay_cmap *cmapp;
 	u_int mode, idx, count;
@@ -1080,6 +1081,10 @@ sti_ioctl(void *v, void *vs, u_long cmd,
 
 	ret = 0;
 	switch (cmd) {
+	case GCID:
+		*(u_int *) data = rom->rom_dd.dd_grid[0];
+		break;
+
 	case WSDISPLAYIO_GMODE:
 		*(u_int *)data = scr->scr_wsmode;
 		break;
@@ -1117,6 +1122,7 @@ sti_ioctl(void *v, void *vs, u_long cmd,
 		*(u_int *)data = WSDISPLAY_TYPE_STI;
 		break;
 
+
 	case WSDISPLAYIO_GINFO:
 		wdf = (struct wsdisplay_fbinfo *)data;
 		wdf->height = scr->scr_cfg.scr_height;

Index: src/sys/dev/ic/stireg.h
diff -u src/sys/dev/ic/stireg.h:1.12 src/sys/dev/ic/stireg.h:1.13
--- src/sys/dev/ic/stireg.h:1.12	Tue Aug  6 07:26:56 2024
+++ src/sys/dev/ic/stireg.h	Mon Aug 19 10:57:32 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: stireg.h,v 1.12 2024/08/06 07:26:56 macallan Exp $	*/
+/*	$NetBSD: stireg.h,v 1.13 2024/08/19 10:57:32 macallan Exp $	*/
 
 /*	$OpenBSD: stireg.h,v 1.14 2015/04/05 23:25:57 miod Exp $	*/
 
@@ -747,4 +747,7 @@ STI_DEP(util);
 #define	NGLE_BUFF1_CMAP3	0x0c001e02
 #define	NGLE_ARTIST_CMAP0	0x00000102
 
+/* mimic HP/UX, this will return the device's graphics ID */
+#define	GCID	_IOR('G', 40, u_int)
+
 #endif /* _IC_STIREG_H_ */

Reply via email to