rocker: Disable mute-on-pause, due to a platform kernel bug.

In short, the display fading back in after a pause resuming interferes
with the audio codec, causing BadThings(tm) that cannot be recovered from

This really is just avoiding a known trigger; there's no guarantee this
condition won't occur under random circumstances during normal use,
and there's no good way to work around this from within rockbox.

I suspect the underlying problem is that both the display control and
codec control share an i2c bus, but the kernel drivers implementing them
isn't using proper linux bus access/locking.

Change-Id: Id4f56f9cb269ed74aac2f041146b3630cef09030
This commit is contained in:
Solomon Peachy 2020-10-25 21:00:50 -04:00
parent bde72efa30
commit 28b9c8bfeb
2 changed files with 9 additions and 2 deletions

View File

@ -71,7 +71,11 @@ void audiohw_preinit(void)
{
alsa_controls_init();
hw_open();
#if defined(AUDIOHW_MUTE_ON_PAUSE) || defined (AUDIOHW_NEEDS_INITIAL_UNMUTE)
audiohw_mute(true); /* Start muted to avoid the POP */
#else
audiohw_mute(false);
#endif
}
void audiohw_postinit(void)

View File

@ -2,9 +2,12 @@
#define __ROCKER_CODEC__
#define AUDIOHW_CAPS 0
AUDIOHW_SETTING(VOLUME, "dB", 1, 5, -102*10, 0, -30*10)
AUDIOHW_SETTING(VOLUME, "dB", 1, 5, -115*10, 0, -30*10)
#endif
#define AUDIOHW_MUTE_ON_PAUSE
//#define AUDIOHW_MUTE_ON_PAUSE
//#define AUDIOHW_NEEDS_INITIAL_UNMUTE
/* Note: Due to Kernel bug, we can't use MUTE_ON_PAUSE with backlight fading */
void audiohw_mute(int mute);