Module Name:    src
Committed By:   isaki
Date:           Sun Apr 21 05:11:22 UTC 2019

Modified Files:
        src/sys/arch/arm/xscale [isaki-audio2]: pxa2x0_ac97.c
        src/sys/arch/dreamcast/dev/g2 [isaki-audio2]: aica.c
        src/sys/arch/macppc/dev [isaki-audio2]: awacs.c snapper.c
        src/sys/arch/sgimips/mace [isaki-audio2]: mavb.c
        src/sys/arch/usermode/dev [isaki-audio2]: vaudio.c
        src/sys/arch/zaurus/dev [isaki-audio2]: wm8750_zaudio.c
        src/sys/dev/bluetooth [isaki-audio2]: btsco.c
        src/sys/dev/ic [isaki-audio2]: arcofi.c uda1341.c
        src/sys/dev/isa [isaki-audio2]: ess.c
        src/sys/dev/pci [isaki-audio2]: auacer.c auich.c auixpvar.h autri.c
            auvia.c cmpci.c eap.c emuxki.c esa.c esm.c eso.c fms.c gcscaudio.c
            neo.c sv.c yds.c
        src/sys/dev/sbus [isaki-audio2]: dbri.c

Log Message:
Use C99 style struct initializer to audio_format.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.15.2.1 src/sys/arch/arm/xscale/pxa2x0_ac97.c
cvs rdiff -u -r1.25 -r1.25.2.1 src/sys/arch/dreamcast/dev/g2/aica.c
cvs rdiff -u -r1.46 -r1.46.2.1 src/sys/arch/macppc/dev/awacs.c
cvs rdiff -u -r1.49 -r1.49.2.1 src/sys/arch/macppc/dev/snapper.c
cvs rdiff -u -r1.12 -r1.12.2.1 src/sys/arch/sgimips/mace/mavb.c
cvs rdiff -u -r1.4 -r1.4.32.1 src/sys/arch/usermode/dev/vaudio.c
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/arch/zaurus/dev/wm8750_zaudio.c
cvs rdiff -u -r1.38 -r1.38.2.1 src/sys/dev/bluetooth/btsco.c
cvs rdiff -u -r1.1 -r1.1.28.1 src/sys/dev/ic/arcofi.c
cvs rdiff -u -r1.1 -r1.1.56.1 src/sys/dev/ic/uda1341.c
cvs rdiff -u -r1.84 -r1.84.2.1 src/sys/dev/isa/ess.c
cvs rdiff -u -r1.36 -r1.36.2.1 src/sys/dev/pci/auacer.c
cvs rdiff -u -r1.154 -r1.154.2.1 src/sys/dev/pci/auich.c
cvs rdiff -u -r1.8 -r1.8.42.1 src/sys/dev/pci/auixpvar.h
cvs rdiff -u -r1.56 -r1.56.2.1 src/sys/dev/pci/autri.c
cvs rdiff -u -r1.82 -r1.82.2.1 src/sys/dev/pci/auvia.c
cvs rdiff -u -r1.53 -r1.53.2.1 src/sys/dev/pci/cmpci.c
cvs rdiff -u -r1.99 -r1.99.2.1 src/sys/dev/pci/eap.c
cvs rdiff -u -r1.67 -r1.67.2.1 src/sys/dev/pci/emuxki.c
cvs rdiff -u -r1.63 -r1.63.2.1 src/sys/dev/pci/esa.c
cvs rdiff -u -r1.61 -r1.61.2.1 src/sys/dev/pci/esm.c src/sys/dev/pci/yds.c
cvs rdiff -u -r1.69 -r1.69.2.1 src/sys/dev/pci/eso.c
cvs rdiff -u -r1.45 -r1.45.2.1 src/sys/dev/pci/fms.c
cvs rdiff -u -r1.16 -r1.16.2.1 src/sys/dev/pci/gcscaudio.c
cvs rdiff -u -r1.52 -r1.52.2.1 src/sys/dev/pci/neo.c
cvs rdiff -u -r1.54 -r1.54.2.1 src/sys/dev/pci/sv.c
cvs rdiff -u -r1.39 -r1.39.2.1 src/sys/dev/sbus/dbri.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/arm/xscale/pxa2x0_ac97.c
diff -u src/sys/arch/arm/xscale/pxa2x0_ac97.c:1.15 src/sys/arch/arm/xscale/pxa2x0_ac97.c:1.15.2.1
--- src/sys/arch/arm/xscale/pxa2x0_ac97.c:1.15	Sat Mar 16 12:09:56 2019
+++ src/sys/arch/arm/xscale/pxa2x0_ac97.c	Sun Apr 21 05:11:21 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pxa2x0_ac97.c,v 1.15 2019/03/16 12:09:56 isaki Exp $	*/
+/*	$NetBSD: pxa2x0_ac97.c,v 1.15.2.1 2019/04/21 05:11:21 isaki Exp $	*/
 
 /*
  * Copyright (c) 2003, 2005 Wasabi Systems, Inc.
@@ -184,8 +184,16 @@ struct audio_device acu_device = {
 };
 
 static const struct audio_format acu_formats[] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {4000, 48000}}
+	{
+		.mode		= AUMODE_PLAY | AUMODE_RECORD,
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE,
+		.validbits	= 16,
+		.precision	= 16,
+		.channels	= 2,
+		.channel_mask	= AUFMT_STEREO,
+		.frequency_type	= 0,
+		.frequency	= { 4000, 48000 },
+	},
 };
 #define	ACU_NFORMATS	(sizeof(acu_formats) / sizeof(struct audio_format))
 

Index: src/sys/arch/dreamcast/dev/g2/aica.c
diff -u src/sys/arch/dreamcast/dev/g2/aica.c:1.25 src/sys/arch/dreamcast/dev/g2/aica.c:1.25.2.1
--- src/sys/arch/dreamcast/dev/g2/aica.c:1.25	Sat Mar 16 12:09:56 2019
+++ src/sys/arch/dreamcast/dev/g2/aica.c	Sun Apr 21 05:11:21 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: aica.c,v 1.25 2019/03/16 12:09:56 isaki Exp $	*/
+/*	$NetBSD: aica.c,v 1.25.2.1 2019/04/21 05:11:21 isaki Exp $	*/
 
 /*
  * Copyright (c) 2003 SHIMIZU Ryo <r...@misakimix.org>
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aica.c,v 1.25 2019/03/16 12:09:56 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aica.c,v 1.25.2.1 2019/04/21 05:11:21 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -102,17 +102,23 @@ const struct {
 };
 
 #define AICA_NFORMATS	5
+#define AICA_FORMAT(enc, prec, ch, chmask) \
+	{ \
+		.mode		= AUMODE_PLAY, \
+		.encoding	= (enc), \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 1, 65536 }, \
+	}
 static const struct audio_format aica_formats[AICA_NFORMATS] = {
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_ADPCM, 4, 4,
-	 1, AUFMT_MONAURAL, 0, {1, 65536}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {1, 65536}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {1, 65536}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {1, 65536}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {1, 65536}},
+	AICA_FORMAT(AUDIO_ENCODING_ADPCM,       4, 1, AUFMT_MONAURAL),
+	AICA_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	AICA_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	AICA_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 1, AUFMT_MONAURAL),
+	AICA_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 2, AUFMT_STEREO),
 };
 
 int aica_match(device_t, cfdata_t, void *);

Index: src/sys/arch/macppc/dev/awacs.c
diff -u src/sys/arch/macppc/dev/awacs.c:1.46 src/sys/arch/macppc/dev/awacs.c:1.46.2.1
--- src/sys/arch/macppc/dev/awacs.c:1.46	Sat Mar 16 12:09:57 2019
+++ src/sys/arch/macppc/dev/awacs.c	Sun Apr 21 05:11:21 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: awacs.c,v 1.46 2019/03/16 12:09:57 isaki Exp $	*/
+/*	$NetBSD: awacs.c,v 1.46.2.1 2019/04/21 05:11:21 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2000 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: awacs.c,v 1.46 2019/03/16 12:09:57 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: awacs.c,v 1.46.2.1 2019/04/21 05:11:21 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/audioio.h>
@@ -189,13 +189,21 @@ struct audio_device awacs_device = {
 
 #define AWACS_NFORMATS		2
 #define AWACS_FORMATS_LE	0
+#define AWACS_FORMAT(enc) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= (enc), \
+		.validbits	= 16, \
+		.precision	= 16, \
+		.channels	= 2, \
+		.channel_mask	= AUFMT_STEREO, \
+		.frequency_type	= 8, \
+		.frequency	= \
+		    { 7350, 8820, 11025, 14700, 17640, 22050, 29400, 44100 }, \
+	}
 static const struct audio_format awacs_formats[AWACS_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 8, 
-	 {7350, 8820, 11025, 14700, 17640, 22050, 29400, 44100}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 16, 16,
-	 2, AUFMT_STEREO, 8, 
-	 {7350, 8820, 11025, 14700, 17640, 22050, 29400, 44100}},
+	AWACS_FORMAT(AUDIO_ENCODING_SLINEAR_LE),
+	AWACS_FORMAT(AUDIO_ENCODING_SLINEAR_BE),
 };
 
 /* register offset */

Index: src/sys/arch/macppc/dev/snapper.c
diff -u src/sys/arch/macppc/dev/snapper.c:1.49 src/sys/arch/macppc/dev/snapper.c:1.49.2.1
--- src/sys/arch/macppc/dev/snapper.c:1.49	Sat Mar 16 12:09:57 2019
+++ src/sys/arch/macppc/dev/snapper.c	Sun Apr 21 05:11:21 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: snapper.c,v 1.49 2019/03/16 12:09:57 isaki Exp $	*/
+/*	$NetBSD: snapper.c,v 1.49.2.1 2019/04/21 05:11:21 isaki Exp $	*/
 /*	Id: snapper.c,v 1.11 2002/10/31 17:42:13 tsubai Exp	*/
 /*	Id: i2s.c,v 1.12 2005/01/15 14:32:35 tsubai Exp		*/
 
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: snapper.c,v 1.49 2019/03/16 12:09:57 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: snapper.c,v 1.49.2.1 2019/04/21 05:11:21 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/audioio.h>
@@ -523,17 +523,34 @@ const uint8_t snapper_mixer_gain[178][3]
 };
 
 #define SNAPPER_NFORMATS	2
+#define SNAPPER_FORMAT(prec) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= AUDIO_ENCODING_SLINEAR_BE, \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= 2, \
+		.channel_mask	= AUFMT_STEREO, \
+		.frequency_type	= 3, \
+		.frequency	= { 32000, 44100, 48000 }, \
+	}
 static const struct audio_format snapper_formats[SNAPPER_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 16, 16,
-	 2, AUFMT_STEREO, 3, {32000, 44100, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 24, 24,
-	 2, AUFMT_STEREO, 3, {32000, 44100, 48000}},
+	SNAPPER_FORMAT(16),
+	SNAPPER_FORMAT(24),
 };
 
 #define TUMBLER_NFORMATS	1
 static const struct audio_format tumbler_formats[TUMBLER_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 16, 16,
-	 2, AUFMT_STEREO, 4, {32000, 44100, 48000, 96000}},
+	{
+		.mode		= AUMODE_PLAY | AUMODE_RECORD,
+		.encoding	= AUDIO_ENCODING_SLINEAR_BE,
+		.validbits	= 16,
+		.precision	= 16,
+		.channels	= 2,
+		.channel_mask	= AUFMT_STEREO,
+		.frequency_type	= 4,
+		.frequency	= { 32000, 44100, 48000, 96000 },
+	},
 };
 
 static bus_size_t amp_mute;

Index: src/sys/arch/sgimips/mace/mavb.c
diff -u src/sys/arch/sgimips/mace/mavb.c:1.12 src/sys/arch/sgimips/mace/mavb.c:1.12.2.1
--- src/sys/arch/sgimips/mace/mavb.c:1.12	Sat Mar 16 12:09:57 2019
+++ src/sys/arch/sgimips/mace/mavb.c	Sun Apr 21 05:11:21 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: mavb.c,v 1.12 2019/03/16 12:09:57 isaki Exp $ */
+/* $NetBSD: mavb.c,v 1.12.2.1 2019/04/21 05:11:21 isaki Exp $ */
 /* $OpenBSD: mavb.c,v 1.6 2005/04/15 13:05:14 mickey Exp $ */
 
 /*
@@ -109,11 +109,20 @@ const char *ad1843_input[] = {
 };
 
 #define MAVB_NFORMATS 2
+#define MAVB_FORMAT(ch, chmask) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= AUDIO_ENCODING_SLINEAR_BE, \
+		.validbits	= 16, \
+		.precision	= 16, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 8000, 48000 }, \
+	}
 static const struct audio_format mavb_formats[MAVB_NFORMATS] = {
-	{ NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 16, 16,
-	  1, AUFMT_MONAURAL, 0, { 8000, 48000 } },
-	{ NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 16, 16,
-	  2, AUFMT_STEREO, 0, { 8000, 48000 } },
+	MAVB_FORMAT(1, AUFMT_MONAURAL),
+	MAVB_FORMAT(2, AUFMT_STEREO),
 };
 
 struct mavb_softc {

Index: src/sys/arch/usermode/dev/vaudio.c
diff -u src/sys/arch/usermode/dev/vaudio.c:1.4 src/sys/arch/usermode/dev/vaudio.c:1.4.32.1
--- src/sys/arch/usermode/dev/vaudio.c:1.4	Wed Mar 26 08:29:41 2014
+++ src/sys/arch/usermode/dev/vaudio.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: vaudio.c,v 1.4 2014/03/26 08:29:41 christos Exp $ */
+/* $NetBSD: vaudio.c,v 1.4.32.1 2019/04/21 05:11:22 isaki Exp $ */
 
 /*-
  * Copyright (c) 2011 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vaudio.c,v 1.4 2014/03/26 08:29:41 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vaudio.c,v 1.4.32.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -42,8 +42,16 @@ __KERNEL_RCSID(0, "$NetBSD: vaudio.c,v 1
 #include <dev/auconv.h>
 
 static const struct audio_format vaudio_audio_formats[1] = {
-	{ NULL, AUMODE_PLAY|AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	  2, AUFMT_STEREO, 0, { 8000, 48000 } },
+	{
+		.mode		= AUMODE_PLAY | AUMODE_RECORD,
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE,
+		.validbits	= 16,
+		.precision	= 16,
+		.channels	= 2,
+		.channel_mask	= AUFMT_STEREO,
+		.frequency_type	= 0,
+		.frequency	= { 8000, 48000 },
+	},
 };
 
 struct vaudio_stream {

Index: src/sys/arch/zaurus/dev/wm8750_zaudio.c
diff -u src/sys/arch/zaurus/dev/wm8750_zaudio.c:1.2 src/sys/arch/zaurus/dev/wm8750_zaudio.c:1.2.4.1
--- src/sys/arch/zaurus/dev/wm8750_zaudio.c:1.2	Sat Jun 16 21:22:13 2018
+++ src/sys/arch/zaurus/dev/wm8750_zaudio.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: wm8750_zaudio.c,v 1.2 2018/06/16 21:22:13 thorpej Exp $	*/
+/*	$NetBSD: wm8750_zaudio.c,v 1.2.4.1 2019/04/21 05:11:22 isaki Exp $	*/
 /*	$OpenBSD: zaurus_audio.c,v 1.8 2005/08/18 13:23:02 robert Exp $	*/
 
 /*
@@ -51,7 +51,7 @@
 #include "opt_zaudio.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wm8750_zaudio.c,v 1.2 2018/06/16 21:22:13 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wm8750_zaudio.c,v 1.2.4.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -112,51 +112,22 @@ static struct audio_device wm8750_device
 	"wm"
 };
 
+#define WM8750_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 wm8750_formats[] = {
-	{
-		.driver_data	= NULL,
-		.mode		= AUMODE_PLAY | AUMODE_RECORD,
-		.encoding	= AUDIO_ENCODING_SLINEAR_LE,
-		.validbits	= 16,
-		.precision	= 16,
-		.channels	= 2,
-		.channel_mask	= AUFMT_STEREO,
-		.frequency_type	= 0,
-		.frequency	= { 4000, 48000 }
-	},
-	{
-		.driver_data	= NULL,
-		.mode		= AUMODE_PLAY | AUMODE_RECORD,
-		.encoding	= AUDIO_ENCODING_SLINEAR_LE,
-		.validbits	= 16,
-		.precision	= 16,
-		.channels	= 1,
-		.channel_mask	= AUFMT_MONAURAL,
-		.frequency_type	= 0,
-		.frequency	= { 4000, 48000 }
-	},
-	{
-		.driver_data	= NULL,
-		.mode		= AUMODE_PLAY | AUMODE_RECORD,
-		.encoding	= AUDIO_ENCODING_ULINEAR_LE,
-		.validbits	= 8,
-		.precision	= 8,
-		.channels	= 2,
-		.channel_mask	= AUFMT_STEREO,
-		.frequency_type	= 0,
-		.frequency	= { 4000, 48000 }
-	},
-	{
-		.driver_data	= NULL,
-		.mode		= AUMODE_PLAY | AUMODE_RECORD,
-		.encoding	= AUDIO_ENCODING_ULINEAR_LE,
-		.validbits	= 8,
-		.precision	= 8,
-		.channels	= 1,
-		.channel_mask	= AUFMT_MONAURAL,
-		.frequency_type	= 0,
-		.frequency	= { 4000, 48000 }
-	},
+	WM8750_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	WM8750_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	WM8750_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	WM8750_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 static const int wm8750_nformats = (int)__arraycount(wm8750_formats);
 

Index: src/sys/dev/bluetooth/btsco.c
diff -u src/sys/dev/bluetooth/btsco.c:1.38 src/sys/dev/bluetooth/btsco.c:1.38.2.1
--- src/sys/dev/bluetooth/btsco.c:1.38	Sat Mar 16 12:09:57 2019
+++ src/sys/dev/bluetooth/btsco.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: btsco.c,v 1.38 2019/03/16 12:09:57 isaki Exp $	*/
+/*	$NetBSD: btsco.c,v 1.38.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: btsco.c,v 1.38 2019/03/16 12:09:57 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: btsco.c,v 1.38.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/audioio.h>
@@ -198,15 +198,14 @@ static const struct audio_device btsco_d
 
 /* Voice_Setting == 0x0060: 8000Hz, mono, 16-bit, slinear_le */
 static const struct audio_format btsco_format = {
-	NULL,				/* driver_data */
-	(AUMODE_PLAY | AUMODE_RECORD),	/* mode */
-	AUDIO_ENCODING_SLINEAR_LE,	/* encoding */
-	16,				/* validbits */
-	16,				/* precision */
-	1,				/* channels */
-	AUFMT_MONAURAL,			/* channel_mask */
-	1,				/* frequency_type */
-	{ 8000 }			/* frequency */
+	.mode		= AUMODE_PLAY | AUMODE_RECORD,
+	.encoding	= AUDIO_ENCODING_SLINEAR_LE,
+	.validbits	= 16,
+	.precision	= 16,
+	.channels	= 1,
+	.channel_mask	= AUFMT_MONAURAL,
+	.frequency_type	= 1,
+	.frequency	= { 8000 },
 };
 
 /* bluetooth(9) glue for SCO */

Index: src/sys/dev/ic/arcofi.c
diff -u src/sys/dev/ic/arcofi.c:1.1 src/sys/dev/ic/arcofi.c:1.1.28.1
--- src/sys/dev/ic/arcofi.c:1.1	Sun Aug 24 08:17:44 2014
+++ src/sys/dev/ic/arcofi.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: arcofi.c,v 1.1 2014/08/24 08:17:44 tsutsui Exp $	*/
+/*	$NetBSD: arcofi.c,v 1.1.28.1 2019/04/21 05:11:22 isaki Exp $	*/
 /*	$OpenBSD: arcofi.c,v 1.6 2013/05/15 08:29:24 ratchov Exp $	*/
 
 /*
@@ -250,23 +250,31 @@ static const struct audio_hw_if arcofi_h
 	.get_locks	  = arcofi_get_locks,
 };
 
+#define ARCOFI_FORMAT(enc, prec) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= (enc), \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= 1, \
+		.channel_mask	= AUFMT_MONAURAL, \
+		.frequency_type	= 1, \
+		.frequency	= { 8000 }, \
+	}
 static const struct audio_format arcofi_formats[] = {
 	/*
 	 * 8-bit encodings:
 	 *  - u-Law and A-Law are native
 	 *  - linear are converted to 16-bit by auconv
 	 */
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULAW, 8, 8,
-	 1, AUFMT_MONAURAL, 1, {8000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ALAW, 8, 8,
-	 1, AUFMT_MONAURAL, 1, {8000}},
+	ARCOFI_FORMAT(AUDIO_ENCODING_ULAW,        8),
+	ARCOFI_FORMAT(AUDIO_ENCODING_ALAW,        8),
 	/*
 	 * 16-bit encodings:
 	 *  - slinear big-endian is native
 	 *  - unsigned or little-endian are converted by auconv
 	 */
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 16, 16,
-	 1, AUFMT_MONAURAL, 1, {8000}},
+	ARCOFI_FORMAT(AUDIO_ENCODING_SLINEAR_BE, 16),
 };
 #define ARCOFI_NFORMATS  __arraycount(arcofi_formats)
 

Index: src/sys/dev/ic/uda1341.c
diff -u src/sys/dev/ic/uda1341.c:1.1 src/sys/dev/ic/uda1341.c:1.1.56.1
--- src/sys/dev/ic/uda1341.c:1.1	Sat Jan 28 08:37:22 2012
+++ src/sys/dev/ic/uda1341.c	Sun Apr 21 05:11:22 2019
@@ -47,20 +47,23 @@
 #define DPRINTF(s) do {} while (/*CONSTCOND*/0)
 #endif
 
+#define UDA1341_FORMAT(enc, prec) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= (enc), \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= 2, \
+		.channel_mask	= AUFMT_STEREO, \
+		.frequency_type	= 0, \
+		.frequency	= { 8000, 48000 }, \
+	}
 const struct audio_format uda1341_formats[UDA1341_NFORMATS] =
 {
-	{NULL, AUMODE_PLAY|AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 8, 8, 2,
-	 AUFMT_STEREO, 0, {8000, 48000}
-	},
-	{NULL, AUMODE_PLAY|AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16, 2,
-	 AUFMT_STEREO, 0, {8000, 48000}
-	},
-	{NULL, AUMODE_PLAY|AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8, 2,
-	 AUFMT_STEREO, 0, {8000, 48000}
-	},
-	{NULL, AUMODE_PLAY|AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 16, 16, 2,
-	 AUFMT_STEREO, 0, {8000, 48000}
-	},
+	UDA1341_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8),
+	UDA1341_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16),
+	UDA1341_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8),
+	UDA1341_FORMAT(AUDIO_ENCODING_ULINEAR_LE, 16),
 };
 
 static void uda1341_update_sound_settings(struct uda1341_softc *sc);

Index: src/sys/dev/isa/ess.c
diff -u src/sys/dev/isa/ess.c:1.84 src/sys/dev/isa/ess.c:1.84.2.1
--- src/sys/dev/isa/ess.c:1.84	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/isa/ess.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ess.c,v 1.84 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: ess.c,v 1.84.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*
  * Copyright 1997
@@ -66,7 +66,7 @@
 */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ess.c,v 1.84 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ess.c,v 1.84.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -263,23 +263,26 @@ const struct audio_hw_if ess_1888_hw_if 
 };
 
 #define ESS_NFORMATS	8
+#define ESS_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	= { ESS_MINRATE, ESS_MAXRATE }, \
+	}
 static const struct audio_format ess_formats[ESS_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {ESS_MINRATE, ESS_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {ESS_MINRATE, ESS_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {ESS_MINRATE, ESS_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {ESS_MINRATE, ESS_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {ESS_MINRATE, ESS_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {ESS_MINRATE, ESS_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {ESS_MINRATE, ESS_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {ESS_MINRATE, ESS_MAXRATE}},
+	ESS_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	ESS_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_STEREO),
+	ESS_FORMAT(AUDIO_ENCODING_ULINEAR_LE, 16, 2, AUFMT_STEREO),
+	ESS_FORMAT(AUDIO_ENCODING_ULINEAR_LE, 16, 1, AUFMT_STEREO),
+	ESS_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	ESS_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_STEREO),
+	ESS_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 2, AUFMT_STEREO),
+	ESS_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 1, AUFMT_STEREO),
 };
 
 #ifdef AUDIO_DEBUG

Index: src/sys/dev/pci/auacer.c
diff -u src/sys/dev/pci/auacer.c:1.36 src/sys/dev/pci/auacer.c:1.36.2.1
--- src/sys/dev/pci/auacer.c:1.36	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/auacer.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: auacer.c,v 1.36 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: auacer.c,v 1.36.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2004, 2008 The NetBSD Foundation, Inc.
@@ -44,7 +44,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auacer.c,v 1.36 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auacer.c,v 1.36.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -211,13 +211,21 @@ static const struct audio_hw_if auacer_h
 
 #define AUACER_FORMATS_4CH	1
 #define AUACER_FORMATS_6CH	2
+#define AUACER_FORMAT(aumode, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE, \
+		.validbits	= 16, \
+		.precision	= 16, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 8000, 48000 }, \
+	}
 static const struct audio_format auacer_formats[AUACER_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 4, AUFMT_SURROUND4, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 6, AUFMT_DOLBY_5_1, 0, {8000, 48000}},
+	AUACER_FORMAT(AUMODE_PLAY | AUMODE_RECORD, 2, AUFMT_STEREO),
+	AUACER_FORMAT(AUMODE_PLAY                , 4, AUFMT_SURROUND4),
+	AUACER_FORMAT(AUMODE_PLAY                , 6, AUFMT_DOLBY_5_1),
 };
 
 static int	auacer_attach_codec(void *, struct ac97_codec_if *);

Index: src/sys/dev/pci/auich.c
diff -u src/sys/dev/pci/auich.c:1.154 src/sys/dev/pci/auich.c:1.154.2.1
--- src/sys/dev/pci/auich.c:1.154	Thu Apr 18 13:01:38 2019
+++ src/sys/dev/pci/auich.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: auich.c,v 1.154 2019/04/18 13:01:38 isaki Exp $	*/
+/*	$NetBSD: auich.c,v 1.154.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2004, 2005, 2008 The NetBSD Foundation, Inc.
@@ -111,7 +111,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.154 2019/04/18 13:01:38 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.154.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -329,24 +329,30 @@ static const struct audio_hw_if auich_hw
 #define AUICH_FORMATS_1CH	0
 #define AUICH_FORMATS_4CH	1
 #define AUICH_FORMATS_6CH	2
+#define AUICH_FORMAT(aumode, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE, \
+		.validbits	= 16, \
+		.precision	= 16, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 8000, 48000 }, \
+	}
 static const struct audio_format auich_audio_formats[AUICH_AUDIO_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 4, AUFMT_SURROUND4, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 6, AUFMT_DOLBY_5_1, 0, {8000, 48000}},
+	AUICH_FORMAT(AUMODE_PLAY | AUMODE_RECORD, 2, AUFMT_STEREO),
+	AUICH_FORMAT(AUMODE_PLAY                , 4, AUFMT_SURROUND4),
+	AUICH_FORMAT(AUMODE_PLAY                , 6, AUFMT_DOLBY_5_1),
 };
 
 #define AUICH_SPDIF_NFORMATS	1
 static const struct audio_format auich_spdif_formats[AUICH_SPDIF_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 1, {48000}},
+	AUICH_FORMAT(AUMODE_PLAY | AUMODE_RECORD, 2, AUFMT_STEREO),
 };
 
 static const struct audio_format auich_modem_formats[AUICH_MODEM_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {8000, 16000}},
+	AUICH_FORMAT(AUMODE_PLAY | AUMODE_RECORD, 1, AUFMT_MONAURAL),
 };
 
 #define PCI_ID_CODE0(v, p)	PCI_ID_CODE(PCI_VENDOR_##v, PCI_PRODUCT_##v##_##p)

Index: src/sys/dev/pci/auixpvar.h
diff -u src/sys/dev/pci/auixpvar.h:1.8 src/sys/dev/pci/auixpvar.h:1.8.42.1
--- src/sys/dev/pci/auixpvar.h:1.8	Sat Oct 27 17:18:28 2012
+++ src/sys/dev/pci/auixpvar.h	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: auixpvar.h,v 1.8 2012/10/27 17:18:28 chs Exp $*/
+/* $NetBSD: auixpvar.h,v 1.8.42.1 2019/04/21 05:11:22 isaki Exp $*/
 
 /*
  * Copyright (c) 2004, 2005 Reinoud Zandijk <rein...@netbsd.org>
@@ -50,13 +50,24 @@
 
 
 /* current AC'97 driver only supports SPDIF outputting channel 3&4 i.e. STEREO */
+#define AUIXP_FORMAT(aumode, prec, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE, \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 7000, 48000 }, \
+	}
 static const struct audio_format auixp_formats[AUIXP_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16, 2, AUFMT_STEREO, 0, {7000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 32, 32, 2, AUFMT_STEREO, 0, {7000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16, 4, AUFMT_SURROUND4, 0, {7000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 32, 32, 4, AUFMT_SURROUND4, 0, {7000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16, 6, AUFMT_DOLBY_5_1, 0, {7000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 32, 32, 6, AUFMT_DOLBY_5_1, 0, {7000, 48000}},
+	AUIXP_FORMAT(AUMODE_PLAY | AUMODE_RECORD, 16, 2, AUFMT_STEREO),
+	AUIXP_FORMAT(AUMODE_PLAY | AUMODE_RECORD, 32, 2, AUFMT_STEREO),
+	AUIXP_FORMAT(AUMODE_PLAY                , 16, 4, AUFMT_SURROUND4),
+	AUIXP_FORMAT(AUMODE_PLAY                , 32, 4, AUFMT_SURROUND4),
+	AUIXP_FORMAT(AUMODE_PLAY                , 16, 6, AUFMT_DOLBY_5_1),
+	AUIXP_FORMAT(AUMODE_PLAY                , 32, 6, AUFMT_DOLBY_5_1),
 };
 
 

Index: src/sys/dev/pci/autri.c
diff -u src/sys/dev/pci/autri.c:1.56 src/sys/dev/pci/autri.c:1.56.2.1
--- src/sys/dev/pci/autri.c:1.56	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/autri.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: autri.c,v 1.56 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: autri.c,v 1.56.2.1 2019/04/21 05:11:22 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 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: autri.c,v 1.56.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include "midi.h"
 
@@ -174,23 +174,26 @@ 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] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
+	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),
 };
 
 /*

Index: src/sys/dev/pci/auvia.c
diff -u src/sys/dev/pci/auvia.c:1.82 src/sys/dev/pci/auvia.c:1.82.2.1
--- src/sys/dev/pci/auvia.c:1.82	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/auvia.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: auvia.c,v 1.82 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: auvia.c,v 1.82.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2008 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auvia.c,v 1.82 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auvia.c,v 1.82.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -235,29 +235,51 @@ static const struct audio_hw_if auvia_hw
 #define AUVIA_FORMATS_6CH_16	3
 #define AUVIA_FORMATS_4CH_8	6
 #define AUVIA_FORMATS_6CH_8	7
+#define AUVIA_FORMAT_S16(aumode, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE, \
+		.validbits	= 16, \
+		.precision	= 16, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 4000, 48000 }, \
+	}
+#define AUVIA_FORMAT_U8(aumode, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_ULINEAR_LE, \
+		.validbits	= 8, \
+		.precision	= 8, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 4000, 48000 }, \
+	}
 static const struct audio_format auvia_formats[AUVIA_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 4, AUFMT_SURROUND4, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 6, AUFMT_DOLBY_5_1, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 4, AUFMT_SURROUND4, 0, {8000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 6, AUFMT_DOLBY_5_1, 0, {8000, 48000}},
+	AUVIA_FORMAT_S16(AUMODE_PLAY | AUMODE_RECORD, 1, AUFMT_MONAURAL),
+	AUVIA_FORMAT_S16(AUMODE_PLAY | AUMODE_RECORD, 2, AUFMT_STEREO),
+	AUVIA_FORMAT_S16(AUMODE_PLAY                , 4, AUFMT_SURROUND4),
+	AUVIA_FORMAT_S16(AUMODE_PLAY                , 6, AUFMT_DOLBY_5_1),
+	AUVIA_FORMAT_U8 (AUMODE_PLAY | AUMODE_RECORD, 1, AUFMT_MONAURAL),
+	AUVIA_FORMAT_U8 (AUMODE_PLAY | AUMODE_RECORD, 2, AUFMT_STEREO),
+	AUVIA_FORMAT_U8 (AUMODE_PLAY                , 4, AUFMT_SURROUND4),
+	AUVIA_FORMAT_U8 (AUMODE_PLAY                , 6, AUFMT_DOLBY_5_1),
 };
 
 #define	AUVIA_SPDIF_NFORMATS	1
 static const struct audio_format auvia_spdif_formats[AUVIA_SPDIF_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 1, {48000}},
+	{
+		.mode		= AUMODE_PLAY,
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE,
+		.validbits	= 16,
+		.precision	= 16,
+		.channels	= 2,
+		.channel_mask	= AUFMT_STEREO,
+		.frequency_type	= 1,
+		.frequency	= { 48000 },
+	},
 };
 
 

Index: src/sys/dev/pci/cmpci.c
diff -u src/sys/dev/pci/cmpci.c:1.53 src/sys/dev/pci/cmpci.c:1.53.2.1
--- src/sys/dev/pci/cmpci.c:1.53	Sat Mar 16 12:23:49 2019
+++ src/sys/dev/pci/cmpci.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cmpci.c,v 1.53 2019/03/16 12:23:49 isaki Exp $	*/
+/*	$NetBSD: cmpci.c,v 1.53.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*
  * Copyright (c) 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cmpci.c,v 1.53 2019/03/16 12:23:49 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cmpci.c,v 1.53.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #if defined(AUDIO_DEBUG) || defined(DEBUG)
 #define DPRINTF(x) if (cmpcidebug) printf x
@@ -170,15 +170,22 @@ static const struct audio_hw_if cmpci_hw
 };
 
 #define CMPCI_NFORMATS	4
+#define CMPCI_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	= { 5512, 48000 }, \
+	}
 static const struct audio_format cmpci_formats[CMPCI_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {5512, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {5512, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {5512, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {5512, 48000}},
+	CMPCI_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	CMPCI_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	CMPCI_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	CMPCI_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 

Index: src/sys/dev/pci/eap.c
diff -u src/sys/dev/pci/eap.c:1.99 src/sys/dev/pci/eap.c:1.99.2.1
--- src/sys/dev/pci/eap.c:1.99	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/eap.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: eap.c,v 1.99 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: eap.c,v 1.99.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 /*      $OpenBSD: eap.c,v 1.6 1999/10/05 19:24:42 csapuntz Exp $ */
 
 /*
@@ -51,7 +51,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: eap.c,v 1.99 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: eap.c,v 1.99.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include "midi.h"
 #include "joy_eap.h"
@@ -218,15 +218,22 @@ static struct audio_device eap_device = 
 };
 
 #define EAP_NFORMATS	4
+#define EAP_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 eap_formats[EAP_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
+	EAP_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	EAP_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	EAP_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	EAP_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 static int

Index: src/sys/dev/pci/emuxki.c
diff -u src/sys/dev/pci/emuxki.c:1.67 src/sys/dev/pci/emuxki.c:1.67.2.1
--- src/sys/dev/pci/emuxki.c:1.67	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/emuxki.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: emuxki.c,v 1.67 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: emuxki.c,v 1.67.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2007 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: emuxki.c,v 1.67 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: emuxki.c,v 1.67.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -214,15 +214,33 @@ static const int emuxki_recbuf_sz[] = {
 };
 
 #define EMUXKI_NFORMATS	4
+#define EMUXKI_FORMAT_S16(aumode, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE, \
+		.validbits	= 16, \
+		.precision	= 16, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 4000, 48000 }, \
+	}
+#define EMUXKI_FORMAT_U8(aumode, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_ULINEAR_LE, \
+		.validbits	= 8, \
+		.precision	= 8, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 4000, 48000 }, \
+	}
 static const struct audio_format emuxki_formats[EMUXKI_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
+	EMUXKI_FORMAT_S16(AUMODE_PLAY | AUMODE_RECORD, 2, AUFMT_STEREO),
+	EMUXKI_FORMAT_S16(AUMODE_PLAY | AUMODE_RECORD, 1, AUFMT_MONAURAL),
+	EMUXKI_FORMAT_U8 (AUMODE_PLAY                , 2, AUFMT_STEREO),
+	EMUXKI_FORMAT_U8 (AUMODE_PLAY                , 1, AUFMT_MONAURAL),
 };
 
 /*

Index: src/sys/dev/pci/esa.c
diff -u src/sys/dev/pci/esa.c:1.63 src/sys/dev/pci/esa.c:1.63.2.1
--- src/sys/dev/pci/esa.c:1.63	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/esa.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: esa.c,v 1.63 2019/03/16 12:09:58 isaki Exp $ */
+/* $NetBSD: esa.c,v 1.63.2.1 2019/04/21 05:11:22 isaki Exp $ */
 
 /*
  * Copyright (c) 2001-2008 Jared D. McNeill <jmcne...@invisible.ca>
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esa.c,v 1.63 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esa.c,v 1.63.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/types.h>
 #include <sys/errno.h>
@@ -184,15 +184,22 @@ static audio_encoding_t esa_encoding[ESA
 };
 
 #define ESA_NFORMATS	4
+#define ESA_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	= { ESA_MINRATE, ESA_MAXRATE }, \
+	}
 static const struct audio_format esa_formats[ESA_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {ESA_MINRATE, ESA_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {ESA_MINRATE, ESA_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {ESA_MINRATE, ESA_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {ESA_MINRATE, ESA_MAXRATE}},
+	ESA_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	ESA_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	ESA_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	ESA_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 static const struct audio_hw_if esa_hw_if = {

Index: src/sys/dev/pci/esm.c
diff -u src/sys/dev/pci/esm.c:1.61 src/sys/dev/pci/esm.c:1.61.2.1
--- src/sys/dev/pci/esm.c:1.61	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/esm.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*      $NetBSD: esm.c,v 1.61 2019/03/16 12:09:58 isaki Exp $      */
+/*      $NetBSD: esm.c,v 1.61.2.1 2019/04/21 05:11:22 isaki Exp $      */
 
 /*-
  * Copyright (c) 2002, 2003 Matt Fredette
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esm.c,v 1.61 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esm.c,v 1.61.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -204,15 +204,22 @@ static audio_encoding_t esm_encoding[MAE
 };
 
 #define ESM_NFORMATS	4
+#define ESM_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 esm_formats[ESM_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
+	ESM_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	ESM_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	ESM_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	ESM_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 static const struct esm_quirks esm_quirks[] = {
Index: src/sys/dev/pci/yds.c
diff -u src/sys/dev/pci/yds.c:1.61 src/sys/dev/pci/yds.c:1.61.2.1
--- src/sys/dev/pci/yds.c:1.61	Mon Apr  8 15:35:57 2019
+++ src/sys/dev/pci/yds.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: yds.c,v 1.61 2019/04/08 15:35:57 isaki Exp $	*/
+/*	$NetBSD: yds.c,v 1.61.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*
  * Copyright (c) 2000, 2001 Kazuki Sakamoto and Minoura Makoto.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: yds.c,v 1.61 2019/04/08 15:35:57 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: yds.c,v 1.61.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include "mpu.h"
 
@@ -267,15 +267,22 @@ static const struct {
 #define YDS_CAP_BITS	"\020\005P44\004LEGFLEX\003LEGSEL\002MCODE1E\001MCODE1"
 #endif
 
+#define YDS_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 yds_formats[] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {4000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {4000, 48000}},
+	YDS_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	YDS_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	YDS_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	YDS_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 #define	YDS_NFORMATS	(sizeof(yds_formats) / sizeof(struct audio_format))
 

Index: src/sys/dev/pci/eso.c
diff -u src/sys/dev/pci/eso.c:1.69 src/sys/dev/pci/eso.c:1.69.2.1
--- src/sys/dev/pci/eso.c:1.69	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/eso.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: eso.c,v 1.69 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: eso.c,v 1.69.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: eso.c,v 1.69 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: eso.c,v 1.69.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include "mpu.h"
 
@@ -180,23 +180,26 @@ static const char * const eso_rev2model[
 };
 
 #define ESO_NFORMATS	8
+#define ESO_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	= { ESO_MINRATE, ESO_MAXRATE }, \
+	}
 static const struct audio_format eso_formats[ESO_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {ESO_MINRATE, ESO_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {ESO_MINRATE, ESO_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {ESO_MINRATE, ESO_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {ESO_MINRATE, ESO_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {ESO_MINRATE, ESO_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {ESO_MINRATE, ESO_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {ESO_MINRATE, ESO_MAXRATE}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {ESO_MINRATE, ESO_MAXRATE}}
+	ESO_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	ESO_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	ESO_FORMAT(AUDIO_ENCODING_ULINEAR_LE, 16, 2, AUFMT_STEREO),
+	ESO_FORMAT(AUDIO_ENCODING_ULINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	ESO_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 2, AUFMT_STEREO),
+	ESO_FORMAT(AUDIO_ENCODING_SLINEAR_LE,  8, 1, AUFMT_MONAURAL),
+	ESO_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	ESO_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 

Index: src/sys/dev/pci/fms.c
diff -u src/sys/dev/pci/fms.c:1.45 src/sys/dev/pci/fms.c:1.45.2.1
--- src/sys/dev/pci/fms.c:1.45	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/fms.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: fms.c,v 1.45 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: fms.c,v 1.45.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2008 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fms.c,v 1.45 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fms.c,v 1.45.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include "mpu.h"
 
@@ -543,19 +543,23 @@ static struct {
 };
 
 #define FMS_NFORMATS	4
+#define FMS_FORMAT(enc, prec, ch, chmask) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= (enc), \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 11, \
+		.frequency	= { 5500, 8000, 9600, 11025, 16000, 19200, \
+		                    22050, 32000, 38400, 44100, 48000}, \
+	}
 static const struct audio_format fms_formats[FMS_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 11, {5500, 8000, 9600, 11025, 16000, 19200, 22050,
-			       32000, 38400, 44100, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 11, {5500, 8000, 9600, 11025, 16000, 19200, 22050,
-				 32000, 38400, 44100, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 11, {5500, 8000, 9600, 11025, 16000, 19200, 22050,
-			       32000, 38400, 44100, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 11, {5500, 8000, 9600, 11025, 16000, 19200, 22050,
-				 32000, 38400, 44100, 48000}},
+	FMS_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	FMS_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	FMS_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	FMS_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 static int

Index: src/sys/dev/pci/gcscaudio.c
diff -u src/sys/dev/pci/gcscaudio.c:1.16 src/sys/dev/pci/gcscaudio.c:1.16.2.1
--- src/sys/dev/pci/gcscaudio.c:1.16	Sun Dec  9 11:14:02 2018
+++ src/sys/dev/pci/gcscaudio.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: gcscaudio.c,v 1.16 2018/12/09 11:14:02 jdolecek Exp $	*/
+/*	$NetBSD: gcscaudio.c,v 1.16.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2008 SHIMIZU Ryo <r...@nerv.org>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gcscaudio.c,v 1.16 2018/12/09 11:14:02 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gcscaudio.c,v 1.16.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -215,20 +215,25 @@ static const struct audio_hw_if gcscaudi
 	.get_locks		= gcscaudio_get_locks,
 };
 
-static const struct audio_format gcscaudio_formats_2ch = {
-	NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	2, AUFMT_STEREO, 0, {8000, 48000}
-};
+#define GCSCAUDIO_FORMAT(aumode, ch, chmask) \
+	{ \
+		.mode		= (aumode), \
+		.encoding	= AUDIO_ENCODING_SLINEAR_LE, \
+		.validbits	= 16, \
+		.precision	= 16, \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 0, \
+		.frequency	= { 8000, 48000 }, \
+	}
+static const struct audio_format gcscaudio_formats_2ch =
+	GCSCAUDIO_FORMAT(AUMODE_PLAY | AUMODE_RECORD, 2, AUFMT_STEREO);
 
-static const struct audio_format gcscaudio_formats_4ch = {
-	NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	4, AUFMT_SURROUND4, 0, {8000, 48000}
-};
+static const struct audio_format gcscaudio_formats_4ch =
+	GCSCAUDIO_FORMAT(AUMODE_PLAY                , 4, AUFMT_SURROUND4);
 
-static const struct audio_format gcscaudio_formats_6ch = {
-	NULL, AUMODE_PLAY, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	6, AUFMT_DOLBY_5_1, 0, {8000, 48000}
-};
+static const struct audio_format gcscaudio_formats_6ch =
+	GCSCAUDIO_FORMAT(AUMODE_PLAY                , 6, AUFMT_DOLBY_5_1);
 
 static int
 gcscaudio_match(device_t parent, cfdata_t match, void *aux)

Index: src/sys/dev/pci/neo.c
diff -u src/sys/dev/pci/neo.c:1.52 src/sys/dev/pci/neo.c:1.52.2.1
--- src/sys/dev/pci/neo.c:1.52	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/neo.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: neo.c,v 1.52 2019/03/16 12:09:58 isaki Exp $	*/
+/*	$NetBSD: neo.c,v 1.52.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*
  * Copyright (c) 1999 Cameron Grant <gand...@vilnya.demon.co.uk>
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: neo.c,v 1.52 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: neo.c,v 1.52.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -229,15 +229,23 @@ static const int samplerates[9] = {
 };
 
 #define NEO_NFORMATS	4
+#define NEO_FORMAT(enc, prec, ch, chmask) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= (enc), \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 8, \
+		.frequency	= \
+		    { 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 }, \
+	}
 static const struct audio_format neo_formats[NEO_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 8, {8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 8, {8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 8, {8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 8, {8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000}},
+	NEO_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	NEO_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	NEO_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	NEO_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 /* -------------------------------------------------------------------- */

Index: src/sys/dev/pci/sv.c
diff -u src/sys/dev/pci/sv.c:1.54 src/sys/dev/pci/sv.c:1.54.2.1
--- src/sys/dev/pci/sv.c:1.54	Sat Mar 16 12:09:58 2019
+++ src/sys/dev/pci/sv.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*      $NetBSD: sv.c,v 1.54 2019/03/16 12:09:58 isaki Exp $ */
+/*      $NetBSD: sv.c,v 1.54.2.1 2019/04/21 05:11:22 isaki Exp $ */
 /*      $OpenBSD: sv.c,v 1.2 1998/07/13 01:50:15 csapuntz Exp $ */
 
 /*
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sv.c,v 1.54 2019/03/16 12:09:58 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sv.c,v 1.54.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -189,15 +189,22 @@ static const struct audio_hw_if sv_hw_if
 };
 
 #define SV_NFORMATS	4
+#define SV_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	= { 2000, 48000 }, \
+	}
 static const struct audio_format sv_formats[SV_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 2, AUFMT_STEREO, 0, {2000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_LE, 16, 16,
-	 1, AUFMT_MONAURAL, 0, {2000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 2, AUFMT_STEREO, 0, {2000, 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR_LE, 8, 8,
-	 1, AUFMT_MONAURAL, 0, {2000, 48000}},
+	SV_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 2, AUFMT_STEREO),
+	SV_FORMAT(AUDIO_ENCODING_SLINEAR_LE, 16, 1, AUFMT_MONAURAL),
+	SV_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 2, AUFMT_STEREO),
+	SV_FORMAT(AUDIO_ENCODING_ULINEAR_LE,  8, 1, AUFMT_MONAURAL),
 };
 
 

Index: src/sys/dev/sbus/dbri.c
diff -u src/sys/dev/sbus/dbri.c:1.39 src/sys/dev/sbus/dbri.c:1.39.2.1
--- src/sys/dev/sbus/dbri.c:1.39	Mon Sep  3 16:29:33 2018
+++ src/sys/dev/sbus/dbri.c	Sun Apr 21 05:11:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: dbri.c,v 1.39 2018/09/03 16:29:33 riastradh Exp $	*/
+/*	$NetBSD: dbri.c,v 1.39.2.1 2019/04/21 05:11:22 isaki Exp $	*/
 
 /*
  * Copyright (C) 1997 Rudolf Koenig (rfkoe...@immd4.informatik.uni-erlangen.de)
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.39 2018/09/03 16:29:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.39.2.1 2019/04/21 05:11:22 isaki Exp $");
 
 #include "audio.h"
 #if NAUDIO > 0
@@ -202,30 +202,30 @@ struct audio_hw_if dbri_hw_if = {
 CFATTACH_DECL_NEW(dbri, sizeof(struct dbri_softc),
     dbri_match_sbus, dbri_attach_sbus, NULL, NULL);
 
-#define DBRI_NFORMATS		4
-static const struct audio_format dbri_formats[DBRI_NFORMATS] = {
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_SLINEAR_BE, 16, 16,
-	 2, AUFMT_STEREO, 8, {8000, 9600, 11025, 16000, 22050, 32000, 44100, 
-	 48000}},
-/*	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULAW, 8, 8,
-	 2, AUFMT_STEREO, 8, {8000, 9600, 11025, 16000, 22050, 32000, 44100, 
-	 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ALAW, 8, 8,
-	 2, AUFMT_STEREO, 8, {8000, 9600, 11025, 16000, 22050, 32000, 44100, 
-	 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR, 8, 8,
-	 2, AUFMT_STEREO, 8, {8000, 9600, 11025, 16000, 22050, 32000, 44100, 
-	 48000}},*/
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULAW, 8, 8,
-	 1, AUFMT_MONAURAL, 8, {8000, 9600, 11025, 16000, 22050, 32000, 44100, 
-	 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ALAW, 8, 8,
-	 1, AUFMT_MONAURAL, 8, {8000, 9600, 11025, 16000, 22050, 32000, 44100, 
-	 48000}},
-	{NULL, AUMODE_PLAY | AUMODE_RECORD, AUDIO_ENCODING_ULINEAR, 8, 8,
-	 1, AUFMT_MONAURAL, 8, {8000, 9600, 11025, 16000, 22050, 32000, 44100, 
-	 48000}},
+#define DBRI_FORMAT(enc, prec, ch, chmask) \
+	{ \
+		.mode		= AUMODE_PLAY | AUMODE_RECORD, \
+		.encoding	= (enc), \
+		.validbits	= (prec), \
+		.precision	= (prec), \
+		.channels	= (ch), \
+		.channel_mask	= (chmask), \
+		.frequency_type	= 8, \
+		.frequency	= \
+		    { 8000, 9600, 11025, 16000, 22050, 32000, 44100, 48000 },\
+	}
+static const struct audio_format dbri_formats[] = {
+	DBRI_FORMAT(AUDIO_ENCODING_SLINEAR_BE, 16, 2, AUFMT_STEREO),
+/*
+	DBRI_FORMAT(AUDIO_ENCODING_ULAW,        8, 2, AUFMT_STEREO),
+	DBRI_FORMAT(AUDIO_ENCODING_ALAW,        8, 2, AUFMT_STEREO),
+	DBRI_FORMAT(AUDIO_ENCODING_ULINEAR,     8, 2, AUFMT_STEREO),
+*/
+	DBRI_FORMAT(AUDIO_ENCODING_ULAW,        8, 1, AUFMT_MONAURAL),
+	DBRI_FORMAT(AUDIO_ENCODING_ALAW,        8, 1, AUFMT_MONAURAL),
+	DBRI_FORMAT(AUDIO_ENCODING_ULINEAR,     8, 1, AUFMT_MONAURAL),
 };
+#define DBRI_NFORMATS	__arraycount(dbri_formats)
 
 enum {
 	DBRI_OUTPUT_CLASS,

Reply via email to