[Letux-kernel] OMAP5+TWL6040: CONFIG_CPU_IDLE=y breaks (non AESS) audio

H. Nikolaus Schaller hns at goldelico.com
Mon Oct 29 19:12:17 CET 2018


Hi all,
because it may be lost in a more general discussion on the pyra mailing list, I have
reworded and resent this mail with a more specific subject.

> Am 29.10.2018 um 13:50 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> 
>> Am 29.10.2018 um 12:44 schrieb Michael Mrozek <EvilDragon at openpandora.org>:
>> 
>> Hi,
>> 
>> With some kernel version, speaker output stopped completely, but Nikolaus is
>> currently looking into what changed with each kernel version and when exactly it
>> stopped working to get this to work again, at least.
> 
> Ok, here is the result:
> 
> letux-4.16-rc3	is the last version where audio works fine
> letux-4.16-rc4	makes the play command hang after some random time (ca. 1 .. 8 seconds)
> 		and audio sounds fluttering like a damaged capstan
> 
> In letux-4.17 and later there is no sound from the handsfree speakers any more,
> but headsets work. At least sometimes.

I have tried to find diffs for twl6040 or generally sound/ or mcpdm driver or
device tree changes. But there aren't any.

What I did find is a diff in the letux_defconfig:

> -# CONFIG_CPU_IDLE is not set
> +CONFIG_CPU_IDLE=y
> +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
> +# CONFIG_CPU_IDLE_GOV_LADDER is not set
> +CONFIG_CPU_IDLE_GOV_MENU=y
> +CONFIG_DT_IDLE_STATES=y
> +
> +#
> +# ARM CPU Idle Drivers
> +#
> +CONFIG_ARM_CPUIDLE=y
> 
> +CONFIG_VIDEOBUF2_V4L2=m

Reverting this in 4.19 in letux_defconfig makes audio work again!

If I now look at the commit message where it was introduced into letux-4.16-rc4:

	http://git.goldelico.com/?p=letux-kernel.git;a=commit;h=77a30a6c6d8d100022dbbcf5ed777ad581d7892a

it says:

	CPU idle support was not enabled, so lets enable it.
	That reduces the idle current seen by around 10mA.

(where the 10mA refers to the GTA04 board.)

BTW: omap2plus_defconfig also sets this config (but because the omap5evm has no handsfree speaker
connection I assume nobody else than Pyra users can notice such audio problems).

So we face this situation:
* CONFIG_CPU_IDLE=y reduces idle current of OMAP3 by 10mA (important for power saving! also for Pyra)
* CONFIG_CPU_IDLE=y breaks audio on OMAP5 + twl6040 (but not on Pandaboard ES OMAP4 + twl6040)

What fix is needed to make mainline (does not include AESS) OMAP5+TWL6040 work
in combination with CONFIG_CPU_IDLE=y?

BR and thanks,
Nikolaus



More information about the Letux-kernel mailing list