Module Name:    src
Committed By:   isaki
Date:           Sat Apr 27 13:44:32 UTC 2019

Modified Files:
        src/sys/dev/pci [isaki-audio2]: autri.c

Log Message:
More adapt to audio2.
- Shrink autri_formats[].  HW actually supports frequencies other
  than 48kHz but they may include (ignorable) rounding error in
  thier calculation.  So accept only 48kHz.  It's enough.
- Remove obsoleted and empty methods.


To generate a diff of this commit:
cvs rdiff -u -r1.56.2.2 -r1.56.2.3 src/sys/dev/pci/autri.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/dev/pci/autri.c
diff -u src/sys/dev/pci/autri.c:1.56.2.2 src/sys/dev/pci/autri.c:1.56.2.3
--- src/sys/dev/pci/autri.c:1.56.2.2	Sat Apr 27 13:25:33 2019
+++ src/sys/dev/pci/autri.c	Sat Apr 27 13:44:32 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: autri.c,v 1.56.2.2 2019/04/27 13:25:33 isaki Exp $	*/
+/*	$NetBSD: autri.c,v 1.56.2.3 2019/04/27 13:44:32 isaki Exp $	*/
 
 /*
  * Copyright (c) 2001 SOMEYA Yoshihiko and KUROSAWA Takahiro.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: autri.c,v 1.56.2.2 2019/04/27 13:25:33 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: autri.c,v 1.56.2.3 2019/04/27 13:44:32 isaki Exp $");
 
 #include "midi.h"
 
@@ -127,8 +127,6 @@ static int	autri_mixer_set_port(void *, 
 static int	autri_mixer_get_port(void *, mixer_ctrl_t *);
 static void*	autri_malloc(void *, int, size_t);
 static void	autri_free(void *, void *, size_t);
-static size_t	autri_round_buffersize(void *, int, size_t);
-static paddr_t autri_mappage(void *, void *, off_t, int);
 static int	autri_get_props(void *);
 static int	autri_query_devinfo(void *, mixer_devinfo_t *);
 static void	autri_get_locks(void *, kmutex_t **, kmutex_t **);
@@ -146,8 +144,6 @@ static const struct audio_hw_if autri_hw
 	.query_devinfo		= autri_query_devinfo,
 	.allocm			= autri_malloc,
 	.freem			= autri_free,
-	.round_buffersize	= autri_round_buffersize,
-	.mappage		= autri_mappage,
 	.get_props		= autri_get_props,
 	.trigger_output		= autri_trigger_output,
 	.trigger_input		= autri_trigger_input,
@@ -171,28 +167,23 @@ static const struct midi_hw_if autri_mid
 };
 #endif
 
-#define AUTRI_NFORMATS	8
-#define AUTRI_FORMAT(enc, prec, ch, chmask) \
-	{ \
-		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
-		.encoding	= (enc), \
-		.validbits	= (prec), \
-		.precision	= (prec), \
-		.channels	= (ch), \
-		.channel_mask	= (chmask), \
-		.frequency_type	= 0, \
-		.frequency	= { 4000, 48000 }, \
-	}
-static const struct audio_format autri_formats[AUTRI_NFORMATS] = {
-	AUTRI_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
-	AUTRI_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
-	AUTRI_FORMAT(AUDIO_ENCODING_ULINEAR_LE, 16, 2, AUFMT_STEREO),
-	AUTRI_FORMAT(AUDIO_ENCODING_ULINEAR_LE, 16, 1, AUFMT_MONAURAL),
-	AUTRI_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
-	AUTRI_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
-	AUTRI_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 2, AUFMT_STEREO),
-	AUTRI_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 1, AUFMT_MONAURAL),
+/*
+ * The hardware actually supports frequencies other than 48kHz.  But
+ * 48kHz is the basis frequency of this hardware and it's enough.
+ */
+static const struct audio_format autri_formats[] = {
+	{
+		.mode		= AUMODE_PLAY | AUMODE_RECORD,
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE,
+		.validbits	= 16,
+		.precision	= 16,
+		.channels	= 2,
+		.channel_mask	= AUFMT_STEREO,
+		.frequency_type	= 1,
+		.frequency	= { 48000 },
+	},
 };
+#define AUTRI_NFORMATS __arraycount(autri_formats)
 
 /*
  * register set/clear bit
@@ -1067,30 +1058,6 @@ autri_find_dma(struct autri_softc *sc, v
 	return p;
 }
 
-static size_t
-autri_round_buffersize(void *addr, int direction, size_t size)
-{
-
-	return size;
-}
-
-static paddr_t
-autri_mappage(void *addr, void *mem, off_t off, int prot)
-{
-	struct autri_softc *sc;
-	struct autri_dma *p;
-
-	if (off < 0)
-		return -1;
-	sc = addr;
-	p = autri_find_dma(sc, mem);
-	if (!p)
-		return -1;
-
-	return bus_dmamem_mmap(sc->sc_dmatag, p->segs, p->nsegs,
-	    off, prot, BUS_DMA_WAITOK);
-}
-
 static int
 autri_get_props(void *addr)
 {

Reply via email to