Hi,
On Wed, May 15, 2019 at 03:58:40PM +0300, Georgii Staroselskii wrote:
This commit fixes the same issue as bf14da7 but for another codepath. The issue can be triggered by having Speaker in codec audio routing.
Mentionning what "the issue" is in the commit log would be great.
&codec { allwinner,pa-gpios = <&r_pio 0 11 GPIO_ACTIVE_HIGH>; /* PL11 */ allwinner,audio-routing = "Speaker", "LINEOUT";
status = "okay";
}
Signed-off-by: Georgii Staroselskii georgii.staroselskii@emlid.com
sound/soc/sunxi/sun4i-codec.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index 15d08e3..e0099519 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -1329,6 +1329,15 @@ static int sun4i_codec_spk_event(struct snd_soc_dapm_widget *w, gpiod_set_value_cansleep(scodec->gpio_pa, !!SND_SOC_DAPM_EVENT_ON(event));
- if (SND_SOC_DAPM_EVENT_ON(event)) {
/*
* Need a delay to have the amplifier up. 700ms seems the best
* compromise between the time to let the amplifier up and the
* time not to feel this delay while playing a sound.
*/
msleep(700);
- }
Since this is an external amplifier, I guess they would have different warm-up time depending on the exact part being used?
If so, we should use a property and set it on a per-board basis.
Maxime
-- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com