aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sound/isa/ess.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/sound/isa/ess.c')
-rw-r--r--sys/dev/sound/isa/ess.c50
1 files changed, 27 insertions, 23 deletions
diff --git a/sys/dev/sound/isa/ess.c b/sys/dev/sound/isa/ess.c
index 4e5977788ab7..5fd95297df79 100644
--- a/sys/dev/sound/isa/ess.c
+++ b/sys/dev/sound/isa/ess.c
@@ -29,6 +29,10 @@
* SUCH DAMAGE.
*/
+#ifdef HAVE_KERNEL_OPTION_HEADERS
+#include "opt_snd.h"
+#endif
+
#include <dev/sound/pcm/sound.h>
#include <dev/sound/isa/sb.h>
@@ -50,28 +54,28 @@ SND_DECLARE_FILE("$FreeBSD$");
#define ESS18XX_NEWSPEED
static u_int32_t ess_pfmt[] = {
- AFMT_U8,
- AFMT_STEREO | AFMT_U8,
- AFMT_S8,
- AFMT_STEREO | AFMT_S8,
- AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE,
- AFMT_U16_LE,
- AFMT_STEREO | AFMT_U16_LE,
+ SND_FORMAT(AFMT_U8, 1, 0),
+ SND_FORMAT(AFMT_U8, 2, 0),
+ SND_FORMAT(AFMT_S8, 1, 0),
+ SND_FORMAT(AFMT_S8, 2, 0),
+ SND_FORMAT(AFMT_S16_LE, 1, 0),
+ SND_FORMAT(AFMT_S16_LE, 2, 0),
+ SND_FORMAT(AFMT_U16_LE, 1, 0),
+ SND_FORMAT(AFMT_U16_LE, 2, 0),
0
};
static struct pcmchan_caps ess_playcaps = {6000, 48000, ess_pfmt, 0};
static u_int32_t ess_rfmt[] = {
- AFMT_U8,
- AFMT_STEREO | AFMT_U8,
- AFMT_S8,
- AFMT_STEREO | AFMT_S8,
- AFMT_S16_LE,
- AFMT_STEREO | AFMT_S16_LE,
- AFMT_U16_LE,
- AFMT_STEREO | AFMT_U16_LE,
+ SND_FORMAT(AFMT_U8, 1, 0),
+ SND_FORMAT(AFMT_U8, 2, 0),
+ SND_FORMAT(AFMT_S8, 1, 0),
+ SND_FORMAT(AFMT_S8, 2, 0),
+ SND_FORMAT(AFMT_S16_LE, 1, 0),
+ SND_FORMAT(AFMT_S16_LE, 2, 0),
+ SND_FORMAT(AFMT_U16_LE, 1, 0),
+ SND_FORMAT(AFMT_U16_LE, 2, 0),
0
};
@@ -458,7 +462,7 @@ ess_setupch(struct ess_info *sc, int ch, int dir, int spd, u_int32_t fmt, int le
{
int play = (dir == PCMDIR_PLAY)? 1 : 0;
int b16 = (fmt & AFMT_16BIT)? 1 : 0;
- int stereo = (fmt & AFMT_STEREO)? 1 : 0;
+ int stereo = (AFMT_CHANNEL(fmt) > 1)? 1 : 0;
int unsign = (fmt == AFMT_U8 || fmt == AFMT_U16_LE)? 1 : 0;
u_int8_t spdval, fmtval;
@@ -583,7 +587,7 @@ esschan_setformat(kobj_t obj, void *data, u_int32_t format)
return 0;
}
-static int
+static u_int32_t
esschan_setspeed(kobj_t obj, void *data, u_int32_t speed)
{
struct ess_chinfo *ch = data;
@@ -597,7 +601,7 @@ esschan_setspeed(kobj_t obj, void *data, u_int32_t speed)
return ch->spd;
}
-static int
+static u_int32_t
esschan_setblocksize(kobj_t obj, void *data, u_int32_t blocksize)
{
struct ess_chinfo *ch = data;
@@ -630,7 +634,7 @@ esschan_trigger(kobj_t obj, void *data, int go)
return 0;
}
-static int
+static u_int32_t
esschan_getptr(kobj_t obj, void *data)
{
struct ess_chinfo *ch = data;
@@ -654,7 +658,7 @@ static kobj_method_t esschan_methods[] = {
KOBJMETHOD(channel_trigger, esschan_trigger),
KOBJMETHOD(channel_getptr, esschan_getptr),
KOBJMETHOD(channel_getcaps, esschan_getcaps),
- { 0, 0 }
+ KOBJMETHOD_END
};
CHANNEL_DECLARE(esschan);
@@ -741,7 +745,7 @@ essmix_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
return left | (right << 8);
}
-static int
+static u_int32_t
essmix_setrecsrc(struct snd_mixer *m, u_int32_t src)
{
struct ess_info *sc = mix_getdevinfo(m);
@@ -776,7 +780,7 @@ static kobj_method_t essmixer_methods[] = {
KOBJMETHOD(mixer_init, essmix_init),
KOBJMETHOD(mixer_set, essmix_set),
KOBJMETHOD(mixer_setrecsrc, essmix_setrecsrc),
- { 0, 0 }
+ KOBJMETHOD_END
};
MIXER_DECLARE(essmixer);