diff options
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/pci/azalia.c | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/sys/dev/pci/azalia.c b/sys/dev/pci/azalia.c index c7f11db97da..57282ace881 100644 --- a/sys/dev/pci/azalia.c +++ b/sys/dev/pci/azalia.c @@ -1,4 +1,4 @@ -/* $OpenBSD: azalia.c,v 1.202 2012/10/19 15:20:42 deraadt Exp $ */ +/* $OpenBSD: azalia.c,v 1.203 2013/02/09 21:02:17 miod Exp $ */ /* $NetBSD: azalia.c,v 1.20 2006/05/07 08:31:44 kent Exp $ */ /*- @@ -4325,36 +4325,45 @@ azalia_params2fmt(const audio_params_t *param, uint16_t *fmt) break; } - if (param->sample_rate == 384000) { - printf("%s: invalid sample_rate: %u\n", __func__, + switch (param->sample_rate) { + default: + case 384000: + printf("%s: invalid sample_rate: %lu\n", __func__, param->sample_rate); return EINVAL; - } else if (param->sample_rate == 192000) { + case 192000: ret |= HDA_SD_FMT_BASE_48 | HDA_SD_FMT_MULT_X4 | HDA_SD_FMT_DIV_BY1; - } else if (param->sample_rate == 176400) { + break; + case 176400: ret |= HDA_SD_FMT_BASE_44 | HDA_SD_FMT_MULT_X4 | HDA_SD_FMT_DIV_BY1; - } else if (param->sample_rate == 96000) { + break; + case 96000: ret |= HDA_SD_FMT_BASE_48 | HDA_SD_FMT_MULT_X2 | HDA_SD_FMT_DIV_BY1; - } else if (param->sample_rate == 88200) { + break; + case 88200: ret |= HDA_SD_FMT_BASE_44 | HDA_SD_FMT_MULT_X2 | HDA_SD_FMT_DIV_BY1; - } else if (param->sample_rate == 48000) { + break; + case 48000: ret |= HDA_SD_FMT_BASE_48 | HDA_SD_FMT_MULT_X1 | HDA_SD_FMT_DIV_BY1; - } else if (param->sample_rate == 44100) { + break; + case 44100: ret |= HDA_SD_FMT_BASE_44 | HDA_SD_FMT_MULT_X1 | HDA_SD_FMT_DIV_BY1; - } else if (param->sample_rate == 32000) { + break; + case 32000: ret |= HDA_SD_FMT_BASE_48 | HDA_SD_FMT_MULT_X2 | HDA_SD_FMT_DIV_BY3; - } else if (param->sample_rate == 22050) { + break; + case 22050: ret |= HDA_SD_FMT_BASE_44 | HDA_SD_FMT_MULT_X1 | HDA_SD_FMT_DIV_BY2; - } else if (param->sample_rate == 16000) { + break; + case 16000: ret |= HDA_SD_FMT_BASE_48 | HDA_SD_FMT_MULT_X1 | HDA_SD_FMT_DIV_BY3; - } else if (param->sample_rate == 11025) { + break; + case 11025: ret |= HDA_SD_FMT_BASE_44 | HDA_SD_FMT_MULT_X1 | HDA_SD_FMT_DIV_BY4; - } else if (param->sample_rate == 8000) { + break; + case 8000: ret |= HDA_SD_FMT_BASE_48 | HDA_SD_FMT_MULT_X1 | HDA_SD_FMT_DIV_BY6; - } else { - printf("%s: invalid sample_rate: %u\n", __func__, - param->sample_rate); - return EINVAL; + break; } *fmt = ret; return 0; |