Module Name:    src
Committed By:   isaki
Date:           Sat Feb  6 09:27:35 UTC 2021

Modified Files:
        src/sys/arch/x68k/dev: vs.c vsvar.h

Log Message:
Remove sc_active flag.  sc_[pr]intr can be used instead of it.


To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/sys/arch/x68k/dev/vs.c
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/x68k/dev/vsvar.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/x68k/dev/vs.c
diff -u src/sys/arch/x68k/dev/vs.c:1.52 src/sys/arch/x68k/dev/vs.c:1.53
--- src/sys/arch/x68k/dev/vs.c:1.52	Sat Jun  8 08:02:37 2019
+++ src/sys/arch/x68k/dev/vs.c	Sat Feb  6 09:27:35 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vs.c,v 1.52 2019/06/08 08:02:37 isaki Exp $	*/
+/*	$NetBSD: vs.c,v 1.53 2021/02/06 09:27:35 isaki Exp $	*/
 
 /*
  * Copyright (c) 2001 Tetsuya Isaki. All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vs.c,v 1.52 2019/06/08 08:02:37 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vs.c,v 1.53 2021/02/06 09:27:35 isaki Exp $");
 
 #include "audio.h"
 #include "vs.h"
@@ -72,8 +72,6 @@ static int  vs_dmaintr(void *);
 static int  vs_dmaerrintr(void *);
 
 /* MI audio layer interface */
-static int  vs_open(void *, int);
-static void vs_close(void *);
 static int  vs_query_format(void *, audio_format_query_t *);
 static int  vs_set_format(void *, int,
 	const audio_params_t *, const audio_params_t *,
@@ -108,8 +106,6 @@ CFATTACH_DECL_NEW(vs, sizeof(struct vs_s
 static int vs_attached;
 
 static const struct audio_hw_if vs_hw_if = {
-	.open			= vs_open,
-	.close			= vs_close,
 	.query_format		= vs_query_format,
 	.set_format		= vs_set_format,
 	.commit_settings	= vs_commit_settings,
@@ -220,7 +216,6 @@ vs_attach(device_t parent, device_t self
 	sc->sc_addr = (void *) ia->ia_addr;
 	sc->sc_dmas = NULL;
 	sc->sc_prev_vd = NULL;
-	sc->sc_active = 0;
 	mutex_init(&sc->sc_lock, MUTEX_DEFAULT, IPL_NONE);
 	mutex_init(&sc->sc_intr_lock, MUTEX_DEFAULT, IPL_VM);
 
@@ -286,27 +281,6 @@ vs_dmaerrintr(void *hdl)
  */
 
 static int
-vs_open(void *hdl, int flags)
-{
-	struct vs_softc *sc;
-
-	DPRINTF(1, ("vs_open: flags=%d\n", flags));
-	sc = hdl;
-	sc->sc_pintr = NULL;
-	sc->sc_rintr = NULL;
-	sc->sc_active = 0;
-
-	return 0;
-}
-
-static void
-vs_close(void *hdl)
-{
-
-	DPRINTF(1, ("vs_close\n"));
-}
-
-static int
 vs_query_format(void *hdl, audio_format_query_t *afp)
 {
 
@@ -398,9 +372,6 @@ vs_start_output(void *hdl, void *block, 
 	DPRINTF(2, ("%s: block=%p blksize=%d\n", __func__, block, blksize));
 	sc = hdl;
 
-	sc->sc_pintr = intr;
-	sc->sc_parg  = arg;
-
 	/* Find DMA buffer. */
 	for (vd = sc->sc_dmas; vd != NULL; vd = vd->vd_next) {
 		if (KVADDR(vd) <= block && block < KVADDR_END(vd)
@@ -424,11 +395,13 @@ vs_start_output(void *hdl, void *block, 
 	dmac_start_xfer_offset(chan->ch_softc, sc->sc_current.xfer,
 	    (int)block - (int)KVADDR(vd), blksize);
 
-	if (sc->sc_active == 0) {
+	if (sc->sc_pintr == NULL) {
+		sc->sc_pintr = intr;
+		sc->sc_parg  = arg;
+
 		vs_set_panout(sc, VS_PANOUT_LR);
 		bus_space_write_1(sc->sc_iot, sc->sc_ioh,
 			MSM6258_CMD, MSM6258_CMD_PLAY_START);
-		sc->sc_active = 1;
 	}
 
 	return 0;
@@ -445,9 +418,6 @@ vs_start_input(void *hdl, void *block, i
 	DPRINTF(2, ("%s: block=%p blksize=%d\n", __func__, block, blksize));
 	sc = hdl;
 
-	sc->sc_rintr = intr;
-	sc->sc_rarg  = arg;
-
 	/* Find DMA buffer. */
 	for (vd = sc->sc_dmas; vd != NULL; vd = vd->vd_next) {
 		if (KVADDR(vd) <= block && block < KVADDR_END(vd)
@@ -471,10 +441,12 @@ vs_start_input(void *hdl, void *block, i
 	dmac_start_xfer_offset(chan->ch_softc, sc->sc_current.xfer,
 	    (int)block - (int)KVADDR(vd), blksize);
 
-	if (sc->sc_active == 0) {
+	if (sc->sc_rintr == NULL) {
+		sc->sc_rintr = intr;
+		sc->sc_rarg  = arg;
+
 		bus_space_write_1(sc->sc_iot, sc->sc_ioh,
 			MSM6258_CMD, MSM6258_CMD_REC_START);
-		sc->sc_active = 1;
 	}
 
 	return 0;
@@ -487,13 +459,12 @@ vs_halt_output(void *hdl)
 
 	DPRINTF(1, ("vs_halt_output\n"));
 	sc = hdl;
-	if (sc->sc_active) {
-		/* stop ADPCM play */
-		dmac_abort_xfer(sc->sc_dma_ch->ch_softc, sc->sc_current.xfer);
-		bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			MSM6258_CMD, MSM6258_CMD_STOP);
-		sc->sc_active = 0;
-	}
+
+	/* stop ADPCM play */
+	dmac_abort_xfer(sc->sc_dma_ch->ch_softc, sc->sc_current.xfer);
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
+	    MSM6258_CMD, MSM6258_CMD_STOP);
+	sc->sc_pintr = NULL;
 
 	return 0;
 }
@@ -505,13 +476,12 @@ vs_halt_input(void *hdl)
 
 	DPRINTF(1, ("vs_halt_input\n"));
 	sc = hdl;
-	if (sc->sc_active) {
-		/* stop ADPCM recoding */
-		dmac_abort_xfer(sc->sc_dma_ch->ch_softc, sc->sc_current.xfer);
-		bus_space_write_1(sc->sc_iot, sc->sc_ioh,
-			MSM6258_CMD, MSM6258_CMD_STOP);
-		sc->sc_active = 0;
-	}
+
+	/* stop ADPCM recoding */
+	dmac_abort_xfer(sc->sc_dma_ch->ch_softc, sc->sc_current.xfer);
+	bus_space_write_1(sc->sc_iot, sc->sc_ioh,
+	    MSM6258_CMD, MSM6258_CMD_STOP);
+	sc->sc_rintr = NULL;
 
 	return 0;
 }

Index: src/sys/arch/x68k/dev/vsvar.h
diff -u src/sys/arch/x68k/dev/vsvar.h:1.17 src/sys/arch/x68k/dev/vsvar.h:1.18
--- src/sys/arch/x68k/dev/vsvar.h:1.17	Wed May  8 13:40:17 2019
+++ src/sys/arch/x68k/dev/vsvar.h	Sat Feb  6 09:27:35 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vsvar.h,v 1.17 2019/05/08 13:40:17 isaki Exp $	*/
+/*	$NetBSD: vsvar.h,v 1.18 2021/02/06 09:27:35 isaki Exp $	*/
 
 /*
  * Copyright (c) 2001 Tetsuya Isaki. All rights reserved.
@@ -98,7 +98,6 @@ struct vs_softc {
 		struct dmac_dma_xfer *xfer;
 		int rate;
 	} sc_current;
-	int sc_active;
 
 	const struct audio_hw_if *sc_hw_if;
 

Reply via email to