Module Name:    src
Committed By:   christos
Date:           Mon Mar  5 02:41:19 UTC 2018

Modified Files:
        src/sys/arch/amiga/dev: grf_et.c

Log Message:
use an inline function for the "4 reads"


To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/amiga/dev/grf_et.c

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

Modified files:

Index: src/sys/arch/amiga/dev/grf_et.c
diff -u src/sys/arch/amiga/dev/grf_et.c:1.34 src/sys/arch/amiga/dev/grf_et.c:1.35
--- src/sys/arch/amiga/dev/grf_et.c:1.34	Sun Mar  4 17:28:18 2018
+++ src/sys/arch/amiga/dev/grf_et.c	Sun Mar  4 21:41:19 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: grf_et.c,v 1.34 2018/03/04 22:28:18 mrg Exp $ */
+/*	$NetBSD: grf_et.c,v 1.35 2018/03/05 02:41:19 christos Exp $ */
 
 /*
  * Copyright (c) 1997 Klaus Burkert
@@ -37,7 +37,7 @@
 #include "opt_amigacons.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: grf_et.c,v 1.34 2018/03/04 22:28:18 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: grf_et.c,v 1.35 2018/03/05 02:41:19 christos Exp $");
 
 #include "grfet.h"
 #include "ite.h"
@@ -1586,6 +1586,11 @@ et_getControllerType(struct grf_softc *g
 	return ((*mem == 0xff) ? ETW32 : ET4000);
 }
 
+/* We MUST do 4 HW reads to switch into command mode */
+static inline int vgar4HDR(volatile unsigned char *ba)
+{
+	return vgar(ba, HDR) + vgar(ba, HDR) + vgar(ba, HDR) + vgar(ba, HDR);
+}
 
 static int
 et_getDACType(struct grf_softc *gp)
@@ -1598,11 +1603,8 @@ et_getDACType(struct grf_softc *gp)
 
 	/* check for Sierra SC 15025 */
 
-	/* We MUST do 4 HW reads to switch into command mode */
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
+	vgar4HDR(ba);
+	vgaw(ba, VDAC_COMMAND, 0x10); /* set ERPF */
 	vgaw(ba, VDAC_COMMAND, 0x10); /* set ERPF */
 
 	vgaw(ba, VDAC_XINDEX, 9);
@@ -1614,17 +1616,11 @@ et_getDACType(struct grf_softc *gp)
 	vgaw(ba, VDAC_XINDEX, 12);
 	check.cc[3] = vgar(ba, VDAC_XDATA);
 
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
+	vgar4HDR(ba);
 	vgaw(ba, VDAC_COMMAND, 0x00); /* clear ERPF */
 
 	if (check.tt == 0x533ab141) {
-		vgar(ba, HDR);
-		vgar(ba, HDR);
-		vgar(ba, HDR);
-		vgar(ba, HDR);
+		vgar4HDR(ba);
 		vgaw(ba, VDAC_COMMAND, 0x10); /* set ERPF */
 
 		/* switch to 8 bits per color */
@@ -1633,10 +1629,7 @@ et_getDACType(struct grf_softc *gp)
 		/* do not shift color values */
 		etcmap_shift = 0;
 
-		vgar(ba, HDR);
-		vgar(ba, HDR);
-		vgar(ba, HDR);
-		vgar(ba, HDR);
+		vgar4HDR(ba);
 		vgaw(ba, VDAC_COMMAND, 0x00); /* clear ERPF */
 
 		vgaw(ba, VDAC_MASK, 0xff);
@@ -1645,10 +1638,7 @@ et_getDACType(struct grf_softc *gp)
 
 	/* check for MUSIC DAC */
 
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
+	vgar4HDR(ba);
 	vgaw(ba, VDAC_COMMAND, 0x02);	/* set some strange MUSIC mode (???) */
 
 	vgaw(ba, VDAC_XINDEX, 0x01);
@@ -1661,16 +1651,10 @@ et_getDACType(struct grf_softc *gp)
 	}
 
 	/* check for AT&T ATT20c491 DAC (crest) */
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
+	vgar4HDR(ba);
 	vgaw(ba, HDR, 0xff);
 	vgaw(ba, VDAC_MASK, 0x01);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
+	vgar4HDR(ba);
 	if (vgar(ba, HDR) == 0xff) {
 		/* do not shift color values */
 		etcmap_shift = 0;
@@ -1680,10 +1664,7 @@ et_getDACType(struct grf_softc *gp)
 	}
 
 	/* restore PowerUp settings (crest) */
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
-	vgar(ba, HDR);
+	vgar4HDR(ba);
 	vgaw(ba, HDR, 0x00);
 
 	/*

Reply via email to