[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