diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/audio/wm8975.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/firmware/drivers/audio/wm8975.c b/firmware/drivers/audio/wm8975.c index 3fcb01e728..45fa3ffdd6 100644 --- a/firmware/drivers/audio/wm8975.c +++ b/firmware/drivers/audio/wm8975.c | |||
@@ -319,6 +319,22 @@ void audiohw_set_recvol(int left, int right, int type) | |||
319 | 319 | ||
320 | void audiohw_set_monitor(bool enable) | 320 | void audiohw_set_monitor(bool enable) |
321 | { | 321 | { |
322 | (void)enable; | 322 | if (enable) { |
323 | // set volume to 0 dB | ||
324 | wm8975_regs[LOUTMIX1] &= ~LOUTMIX1_LI2LOVOL_MASK; | ||
325 | wm8975_regs[LOUTMIX1] |= LOUTMIX1_LI2LOVOL(2); | ||
326 | wm8975_regs[ROUTMIX2] &= ~ROUTMIX2_RI2ROVOL_MASK; | ||
327 | wm8975_regs[ROUTMIX2] |= ROUTMIX2_RI2ROVOL(2); | ||
328 | // set mux to line input | ||
329 | wm8975_write_and(LOUTMIX1, ~7); | ||
330 | wm8975_write_and(ROUTMIX1, ~7); | ||
331 | // enable bypass | ||
332 | wm8975_write_or(LOUTMIX1, LOUTMIX1_LI2LO); | ||
333 | wm8975_write_or(ROUTMIX2, ROUTMIX2_RI2RO); | ||
334 | } else { | ||
335 | // disable bypass | ||
336 | wm8975_write_and(LOUTMIX1, ~LOUTMIX1_LI2LO); | ||
337 | wm8975_write_and(ROUTMIX2, ~ROUTMIX2_RI2RO); | ||
338 | } | ||
323 | } | 339 | } |
324 | #endif /* HAVE_RECORDING */ | 340 | #endif /* HAVE_RECORDING */ |