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,