summaryrefslogtreecommitdiff
path: root/firmware/drivers/audio/wm8975.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/audio/wm8975.c')
-rw-r--r--firmware/drivers/audio/wm8975.c18
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
320void audiohw_set_monitor(bool enable) 320void 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 */