Module Name:    src
Committed By:   isaki
Date:           Sat Sep  2 15:40:31 UTC 2017

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

Log Message:
- Finally MI audio supports 4bit precision format without null_filter hack!
- Fix reusing play/rec argument as local variables.  It is in/out parameter.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/x68k/dev/vs.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/x68k/dev/vs.c
diff -u src/sys/arch/x68k/dev/vs.c:1.47 src/sys/arch/x68k/dev/vs.c:1.48
--- src/sys/arch/x68k/dev/vs.c:1.47	Sat Sep  2 12:52:55 2017
+++ src/sys/arch/x68k/dev/vs.c	Sat Sep  2 15:40:31 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: vs.c,v 1.47 2017/09/02 12:52:55 isaki Exp $	*/
+/*	$NetBSD: vs.c,v 1.48 2017/09/02 15:40:31 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.47 2017/09/02 12:52:55 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vs.c,v 1.48 2017/09/02 15:40:31 isaki Exp $");
 
 #include "audio.h"
 #include "vs.h"
@@ -160,8 +160,6 @@ struct {
 
 #define NUM_RATE	(sizeof(vs_l2r)/sizeof(vs_l2r[0]))
 
-extern stream_filter_factory_t null_filter;
-
 static int
 vs_match(device_t parent, cfdata_t cf, void *aux)
 {
@@ -365,6 +363,7 @@ vs_set_params(void *hdl, int setmode, in
 	stream_filter_list_t *pfil, stream_filter_list_t *rfil)
 {
 	struct vs_softc *sc;
+	audio_params_t hw;
 	stream_filter_factory_t *pconv;
 	stream_filter_factory_t *rconv;
 	int rate;
@@ -405,18 +404,18 @@ vs_set_params(void *hdl, int setmode, in
 	/* pfil and rfil are independent even if !AUDIO_PROP_INDEPENDENT */
 
 	if ((setmode & AUMODE_PLAY) != 0) {
-		pfil->append(pfil, null_filter, play);
-		play->encoding = AUDIO_ENCODING_ADPCM;
-		play->validbits = 4;
-		play->precision = 4;
-		pfil->append(pfil, pconv, play);
+		hw = *play;
+		hw.encoding = AUDIO_ENCODING_ADPCM;
+		hw.precision = 4;
+		hw.validbits = 4;
+		pfil->prepend(pfil, pconv, &hw);
 	}
 	if ((setmode & AUMODE_RECORD) != 0) {
-		rfil->append(rfil, null_filter, rec);
-		rec->encoding = AUDIO_ENCODING_ADPCM;
-		rec->validbits = 4;
-		rec->precision = 4;
-		rfil->append(rfil, rconv, rec);
+		hw = *rec;
+		hw.encoding = AUDIO_ENCODING_ADPCM;
+		hw.precision = 4;
+		hw.validbits = 4;
+		rfil->prepend(rfil, rconv, &hw);
 	}
 
 	DPRINTF(1, ("accepted\n"));

Reply via email to