Module Name:    src
Committed By:   rin
Date:           Tue Jul 23 07:52:53 UTC 2019

Modified Files:
        src/sys/arch/mac68k/include: bus.h
        src/sys/arch/mac68k/obio: esp.c espvar.h

Log Message:
PR port-mac68k/24883

Style-only changes in preparation to import AV DMA code:

- G/C unused from esp_softc
- clean up headers:
    - prefer <sys/bus.h> over <machine/bus.h>
    - G/C unused
    - sort
- staticify private functions and variables
- stop using inline qualifier for functions called via function pointers
- use C99 initializer
- provide bus_space_vaddr(9) and use it, instead of using member of
  bus_handle_t directly
- use uint*_t:
    - u_char --> uint8_t
    - u_int*_t --> uint*_t
- use proper names from ncr53c9xreg.h instead of magic numbers
- and some KNF, and etc.

No functional changes intended.


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/mac68k/include/bus.h
cvs rdiff -u -r1.56 -r1.57 src/sys/arch/mac68k/obio/esp.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/mac68k/obio/espvar.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/arch/mac68k/include/bus.h
diff -u src/sys/arch/mac68k/include/bus.h:1.26 src/sys/arch/mac68k/include/bus.h:1.27
--- src/sys/arch/mac68k/include/bus.h:1.26	Mon Apr 28 20:23:27 2008
+++ src/sys/arch/mac68k/include/bus.h	Tue Jul 23 07:52:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: bus.h,v 1.26 2008/04/28 20:23:27 martin Exp $	*/
+/*	$NetBSD: bus.h,v 1.27 2019/07/23 07:52:53 rin Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -786,6 +786,13 @@ __MAC68K_copy_region_N(4)
 #define	BUS_SPACE_BARRIER_READ	0x01		/* force read barrier */
 #define	BUS_SPACE_BARRIER_WRITE	0x02		/* force write barrier */
 
+/*
+ *	void *bus_space_vaddr(bus_space_tag_t, bus_space_handle_t);
+ *
+ * Get the kernel virtual address for the mapped bus space.
+ */
+#define	bus_space_vaddr(t, h)	((void)(t), (void *)(h.base))
+
 #define BUS_SPACE_ALIGNED_POINTER(p, t) ALIGNED_POINTER(p, t)
 
 #include <m68k/bus_dma.h>

Index: src/sys/arch/mac68k/obio/esp.c
diff -u src/sys/arch/mac68k/obio/esp.c:1.56 src/sys/arch/mac68k/obio/esp.c:1.57
--- src/sys/arch/mac68k/obio/esp.c:1.56	Tue Jan  8 19:41:09 2019
+++ src/sys/arch/mac68k/obio/esp.c	Tue Jul 23 07:52:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: esp.c,v 1.56 2019/01/08 19:41:09 jdolecek Exp $	*/
+/*	$NetBSD: esp.c,v 1.57 2019/07/23 07:52:53 rin Exp $	*/
 
 /*
  * Copyright (c) 1997 Jason R. Thorpe.
@@ -77,38 +77,27 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esp.c,v 1.56 2019/01/08 19:41:09 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esp.c,v 1.57 2019/07/23 07:52:53 rin Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/errno.h>
-#include <sys/ioctl.h>
-#include <sys/device.h>
 #include <sys/buf.h>
-#include <sys/proc.h>
-#include <sys/queue.h>
-#include <sys/mutex.h>
+#include <sys/bus.h>
+#include <sys/device.h>
 
-#include <dev/scsipi/scsi_all.h>
-#include <dev/scsipi/scsipi_all.h>
 #include <dev/scsipi/scsiconf.h>
-#include <dev/scsipi/scsi_message.h>
-
-#include <machine/cpu.h>
-#include <machine/bus.h>
 
 #include <dev/ic/ncr53c9xreg.h>
 #include <dev/ic/ncr53c9xvar.h>
 
+#include <machine/cpu.h>
 #include <machine/viareg.h>
 
 #include <mac68k/obio/espvar.h>
 #include <mac68k/obio/obiovar.h>
 
-int	espmatch(device_t, cfdata_t, void *);
-void	espattach(device_t, device_t, void *);
+static int	espmatch(device_t, cfdata_t, void *);
+static void	espattach(device_t, device_t, void *);
 
 /* Linkup to the rest of the kernel */
 CFATTACH_DECL_NEW(esp, sizeof(struct esp_softc),
@@ -117,74 +106,74 @@ CFATTACH_DECL_NEW(esp, sizeof(struct esp
 /*
  * Functions and the switch for the MI code.
  */
-uint8_t	esp_read_reg(struct ncr53c9x_softc *, int);
-void	esp_write_reg(struct ncr53c9x_softc *, int, uint8_t);
-int	esp_dma_isintr(struct ncr53c9x_softc *);
-void	esp_dma_reset(struct ncr53c9x_softc *);
-int	esp_dma_intr(struct ncr53c9x_softc *);
-int	esp_dma_setup(struct ncr53c9x_softc *, uint8_t **, size_t *, int,
-	    size_t *);
-void	esp_dma_go(struct ncr53c9x_softc *);
-void	esp_dma_stop(struct ncr53c9x_softc *);
-int	esp_dma_isactive(struct ncr53c9x_softc *);
-void	esp_quick_write_reg(struct ncr53c9x_softc *, int, u_char);
-int	esp_quick_dma_intr(struct ncr53c9x_softc *);
-int	esp_quick_dma_setup(struct ncr53c9x_softc *, uint8_t **, size_t *, int,
-	     size_t *);
-void	esp_quick_dma_go(struct ncr53c9x_softc *);
-
-void	esp_intr(void *);
-void	esp_dualbus_intr(void *);
-static struct esp_softc		*esp0, *esp1;
+static uint8_t	esp_read_reg(struct ncr53c9x_softc *, int);
+static void	esp_write_reg(struct ncr53c9x_softc *, int, uint8_t);
+static int	esp_dma_isintr(struct ncr53c9x_softc *);
+static void	esp_dma_reset(struct ncr53c9x_softc *);
+static int	esp_dma_intr(struct ncr53c9x_softc *);
+static int	esp_dma_setup(struct ncr53c9x_softc *, uint8_t **, size_t *,
+			int, size_t *);
+static void	esp_dma_go(struct ncr53c9x_softc *);
+static void	esp_dma_stop(struct ncr53c9x_softc *);
+static int	esp_dma_isactive(struct ncr53c9x_softc *);
+static void	esp_quick_write_reg(struct ncr53c9x_softc *, int, uint8_t);
+static int	esp_quick_dma_intr(struct ncr53c9x_softc *);
+static int	esp_quick_dma_setup(struct ncr53c9x_softc *, uint8_t **,
+			size_t *, int, size_t *);
+static void	esp_quick_dma_go(struct ncr53c9x_softc *);
 
-static inline int esp_dafb_have_dreq(struct esp_softc *);
-static inline int esp_iosb_have_dreq(struct esp_softc *);
+static void	esp_intr(void *);
+static void	esp_dualbus_intr(void *);
+
+static int	esp_dafb_have_dreq(struct esp_softc *);
+static int	esp_iosb_have_dreq(struct esp_softc *);
 int (*esp_have_dreq)(struct esp_softc *);
 
-struct ncr53c9x_glue esp_glue = {
-	esp_read_reg,
-	esp_write_reg,
-	esp_dma_isintr,
-	esp_dma_reset,
-	esp_dma_intr,
-	esp_dma_setup,
-	esp_dma_go,
-	esp_dma_stop,
-	esp_dma_isactive,
-	NULL,			/* gl_clear_latched_intr */
+static struct esp_softc *esp0, *esp1;
+
+static struct ncr53c9x_glue esp_glue = {
+	.gl_read_reg = esp_read_reg,
+	.gl_write_reg = esp_write_reg,
+	.gl_dma_isintr = esp_dma_isintr,
+	.gl_dma_reset = esp_dma_reset,
+	.gl_dma_intr = esp_dma_intr,
+	.gl_dma_setup = esp_dma_setup,
+	.gl_dma_go = esp_dma_go,
+	.gl_dma_stop = esp_dma_stop,
+	.gl_dma_isactive = esp_dma_isactive,
+	.gl_clear_latched_intr = NULL,
 };
 
-int
+static int
 espmatch(device_t parent, cfdata_t cf, void *aux)
 {
 	struct obio_attach_args *oa = aux;
 
-	if (oa->oa_addr == 0 && mac68k_machine.scsi96) {
+	if (oa->oa_addr == 0 && mac68k_machine.scsi96)
 		return 1;
-	}
-	if (oa->oa_addr == 1 && mac68k_machine.scsi96_2) {
+	if (oa->oa_addr == 1 && mac68k_machine.scsi96_2)
 		return 1;
-	}
 	return 0;
 }
 
 /*
  * Attach this instance, and then all the sub-devices
  */
-void
+static void
 espattach(device_t parent, device_t self, void *aux)
 {
 	struct esp_softc	*esc = device_private(self);
 	struct ncr53c9x_softc	*sc = &esc->sc_ncr53c9x;
 	struct obio_attach_args *oa = aux;
-	int			quick = 0;
+	bus_addr_t		addr;
 	unsigned long		reg_offset;
+	int			quick = 0;
+	uint8_t			irq_mask;	/* mask for clearing IRQ */
 	extern vaddr_t		SCSIBase;
 
 	sc->sc_dev = self;
 
 	reg_offset = SCSIBase - IOBase;
-	esc->sc_tag = oa->oa_tag;
 
 	/*
 	 * For Wombat, Primus and Optimus motherboards, DREQ is
@@ -196,33 +185,34 @@ espattach(device_t parent, device_t self
 	 * a (12-bit) configuration register for DAFB's control of the
 	 * pseudo-DMA timing.  The default value is 0x1d1.
 	 */
-	esp_have_dreq = esp_dafb_have_dreq;
 	if (oa->oa_addr == 0) {
 		if (reg_offset == 0x10000) {
 			quick = 1;
 			esp_have_dreq = esp_iosb_have_dreq;
-		} else if (reg_offset == 0x18000) {
+		} else if (reg_offset == 0x18000)
 			quick = 0;
-		} else {
-			if (bus_space_map(esc->sc_tag, 0xf9800024,
-					  4, 0, &esc->sc_bsh)) {
-				aprint_error(": failed to map 4"
-				    " at 0xf9800024.\n");
-			} else {
-				quick = 1;
-				bus_space_write_4(esc->sc_tag,
-						  esc->sc_bsh, 0, 0x1d1);
-			}
+		else {
+			addr = 0xf9800024;
+			goto dafb_dreq;
 		}
 	} else {
-		if (bus_space_map(esc->sc_tag, 0xf9800028,
-				  4, 0, &esc->sc_bsh)) {
-			aprint_error(": failed to map 4 at 0xf9800028.\n");
-		} else {
+		bus_space_tag_t bst;
+		bus_space_handle_t bsh;
+
+		addr = 0xf9800028;
+
+dafb_dreq:	bst = oa->oa_tag;
+		if (bus_space_map(bst, addr, 4, 0, &bsh))
+			aprint_error(": failed to map 4 at 0x%lx.\n", addr);
+		else {
 			quick = 1;
-			bus_space_write_4(esc->sc_tag, esc->sc_bsh, 0, 0x1d1);
+			esp_have_dreq = esp_dafb_have_dreq;
+			esc->sc_dreqreg = (volatile uint32_t *)
+			    bus_space_vaddr(bst, bsh);
+			*esc->sc_dreqreg = 0x1d1;
 		}
 	}
+
 	if (quick) {
 		esp_glue.gl_write_reg = esp_quick_write_reg;
 		esp_glue.gl_dma_intr = esp_quick_dma_intr;
@@ -243,28 +233,25 @@ espattach(device_t parent, device_t self
 
 		esc->sc_reg = (volatile uint8_t *)SCSIBase;
 		via2_register_irq(VIA2_SCSIIRQ, esp_intr, esc);
-		esc->irq_mask = V2IF_SCSIIRQ;
+		irq_mask = V2IF_SCSIIRQ;
 		if (reg_offset == 0x10000) {
 			/* From the Q650 developer's note */
 			sc->sc_freq = 16500000;
-		} else {
+		} else
 			sc->sc_freq = 25000000;
-		}
 
-		if (esp_glue.gl_dma_go == esp_quick_dma_go) {
+		if (quick)
 			aprint_normal(" (quick)");
-		}
 	} else {
 		esp1 = esc;
 
 		esc->sc_reg = (volatile uint8_t *)SCSIBase + 0x402;
 		via2_register_irq(VIA2_SCSIIRQ, esp_dualbus_intr, NULL);
-		esc->irq_mask = 0;
+		irq_mask = 0;
 		sc->sc_freq = 25000000;
 
-		if (esp_glue.gl_dma_go == esp_quick_dma_go) {
+		if (quick)
 			printf(" (quick)");
-		}
 	}
 
 	aprint_normal(": address %p", esc->sc_reg);
@@ -313,10 +300,10 @@ espattach(device_t parent, device_t self
 	/*
 	 * Configure interrupts.
 	 */
-	if (esc->irq_mask) {
+	if (irq_mask) {
 		via2_reg(vPCR) = 0x22;
-		via2_reg(vIFR) = esc->irq_mask;
-		via2_reg(vIER) = 0x80 | esc->irq_mask;
+		via2_reg(vIFR) = irq_mask;
+		via2_reg(vIER) = 0x80 | irq_mask;
 	}
 
 	/*
@@ -331,7 +318,7 @@ espattach(device_t parent, device_t self
  * Glue functions.
  */
 
-uint8_t
+static uint8_t
 esp_read_reg(struct ncr53c9x_softc *sc, int reg)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -339,7 +326,7 @@ esp_read_reg(struct ncr53c9x_softc *sc, 
 	return esc->sc_reg[reg * 16];
 }
 
-void
+static void
 esp_write_reg(struct ncr53c9x_softc *sc, int reg, uint8_t val)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -351,12 +338,12 @@ esp_write_reg(struct ncr53c9x_softc *sc,
 	esc->sc_reg[reg * 16] = v;
 }
 
-void
+static void
 esp_dma_stop(struct ncr53c9x_softc *sc)
 {
 }
 
-int
+static int
 esp_dma_isactive(struct ncr53c9x_softc *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -364,15 +351,15 @@ esp_dma_isactive(struct ncr53c9x_softc *
 	return esc->sc_active;
 }
 
-int
+static int
 esp_dma_isintr(struct ncr53c9x_softc *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
 
-	return esc->sc_reg[NCR_STAT * 16] & 0x80;
+	return esc->sc_reg[NCR_STAT * 16] & NCRSTAT_INT;
 }
 
-void
+static void
 esp_dma_reset(struct ncr53c9x_softc *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -381,11 +368,11 @@ esp_dma_reset(struct ncr53c9x_softc *sc)
 	esc->sc_tc = 0;
 }
 
-int
+static int
 esp_dma_intr(struct ncr53c9x_softc *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
-	volatile u_char *cmdreg, *intrreg, *statreg, *fiforeg;
+	volatile uint8_t *cmdreg, *intrreg, *statreg, *fiforeg;
 	uint8_t	*p;
 	u_int	espphase, espstat, espintr;
 	int	cnt, s;
@@ -445,8 +432,8 @@ esp_dma_intr(struct ncr53c9x_softc *sc)
 		}
 	} while (esc->sc_active && (espintr & NCRINTR_BS));
 	sc->sc_phase = espphase;
-	sc->sc_espstat = (u_char)espstat;
-	sc->sc_espintr = (u_char)espintr;
+	sc->sc_espstat = (uint8_t)espstat;
+	sc->sc_espintr = (uint8_t)espintr;
 	*esc->sc_dmaaddr = p;
 	*esc->sc_dmalen = cnt;
 
@@ -457,7 +444,7 @@ esp_dma_intr(struct ncr53c9x_softc *sc)
 	return 0;
 }
 
-int
+static int
 esp_dma_setup(struct ncr53c9x_softc *sc, uint8_t **addr, size_t *len,
     int datain, size_t *dmasize)
 {
@@ -472,7 +459,7 @@ esp_dma_setup(struct ncr53c9x_softc *sc,
 	return 0;
 }
 
-void
+static void
 esp_dma_go(struct ncr53c9x_softc *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -485,8 +472,8 @@ esp_dma_go(struct ncr53c9x_softc *sc)
 	esc->sc_active = 1;
 }
 
-void
-esp_quick_write_reg(struct ncr53c9x_softc *sc, int reg, u_char val)
+static void
+esp_quick_write_reg(struct ncr53c9x_softc *sc, int reg, uint8_t val)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
 
@@ -497,7 +484,7 @@ esp_quick_write_reg(struct ncr53c9x_soft
 int mac68k_esp_debug=0;
 #endif
 
-int
+static int
 esp_quick_dma_intr(struct ncr53c9x_softc *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -558,7 +545,7 @@ esp_quick_dma_intr(struct ncr53c9x_softc
 	return 0;
 }
 
-int
+static int
 esp_quick_dma_setup(struct ncr53c9x_softc *sc, uint8_t **addr, size_t *len,
     int datain, size_t *dmasize)
 {
@@ -591,14 +578,14 @@ esp_quick_dma_setup(struct ncr53c9x_soft
 	return 0;
 }
 
-static inline int
+static int
 esp_dafb_have_dreq(struct esp_softc *esc)
 {
 
-	return *(volatile uint32_t *)(esc->sc_bsh.base) & 0x200;
+	return *esc->sc_dreqreg & 0x200;
 }
 
-static inline int
+static int
 esp_iosb_have_dreq(struct esp_softc *esc)
 {
 
@@ -617,7 +604,7 @@ static volatile int espspl = -1;
  * NCR chip with the DACK/ line.  This space appears to be mapped over
  * and over, every 4 bytes, but only the lower 16 bits are valid (but
  * reading the upper 16 bits will handshake DACK/ just fine, so if you
- * read *u_int16_t++ = *u_int16_t++ in a loop, you'll get
+ * read *uint16_t++ = *uint16_t++ in a loop, you'll get
  * <databyte><databyte>0xff0xff<databyte><databyte>0xff0xff...
  *
  * When you're attempting to read or write memory to this DACK/ed space,
@@ -640,7 +627,7 @@ static volatile int espspl = -1;
  *          This is done to allow serial interrupts to get in during
  *          scsi transfers.  This is ugly.
  */
-void
+static void
 esp_quick_dma_go(struct ncr53c9x_softc *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -878,7 +865,7 @@ gotintr:
 	espspl = -1;
 }
 
-void
+static void
 esp_intr(void *sc)
 {
 	struct esp_softc *esc = (struct esp_softc *)sc;
@@ -888,7 +875,7 @@ esp_intr(void *sc)
 	}
 }
 
-void
+static void
 esp_dualbus_intr(void *sc)
 {
 	if (esp0 && (esp0->sc_reg[NCR_STAT * 16] & 0x80)) {

Index: src/sys/arch/mac68k/obio/espvar.h
diff -u src/sys/arch/mac68k/obio/espvar.h:1.7 src/sys/arch/mac68k/obio/espvar.h:1.8
--- src/sys/arch/mac68k/obio/espvar.h:1.7	Sun Apr 13 04:55:52 2008
+++ src/sys/arch/mac68k/obio/espvar.h	Tue Jul 23 07:52:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: espvar.h,v 1.7 2008/04/13 04:55:52 tsutsui Exp $	*/
+/*	$NetBSD: espvar.h,v 1.8 2019/07/23 07:52:53 rin Exp $	*/
 
 /*
  * Copyright (c) 1997 Allen Briggs.
@@ -32,18 +32,15 @@
 
 struct esp_softc {
 	struct ncr53c9x_softc	sc_ncr53c9x;	/* glue to MI code */
-	bus_space_tag_t		sc_tag;
-	bus_space_handle_t	sc_bsh;
 
-	volatile uint8_t *sc_reg;		/* the registers */
-
-	uint8_t		irq_mask;		/* mask for clearing IRQ */
+	volatile uint8_t	*sc_reg;	/* the registers */
+	volatile uint32_t	*sc_dreqreg;	/* DREQ register for DAFB */
 
 	int		sc_active;		/* Pseudo-DMA state vars */
 	int		sc_datain;
 	size_t		sc_dmasize;
 	uint8_t		**sc_dmaaddr;
 	size_t		*sc_dmalen;
-	int		sc_tc;			/* only used in non-quick */
+	int		sc_tc;			/* used in PIO */
 	int		sc_pad;			/* only used in quick */
 };

Reply via email to