From 28b9c8bfeb13748abcb850884e538d4a5ca3d5ce Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sun, 25 Oct 2020 21:00:50 -0400 Subject: 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 --- firmware/drivers/audio/rocker_codec.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'firmware/drivers') diff --git a/firmware/drivers/audio/rocker_codec.c b/firmware/drivers/audio/rocker_codec.c index abe13be285..4beda4b572 100644 --- a/firmware/drivers/audio/rocker_codec.c +++ b/firmware/drivers/audio/rocker_codec.c @@ -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) -- cgit v1.2.3