[Letux-kernel] AESS / Audio Driver for Pyra
H. Nikolaus Schaller
hns at goldelico.com
Mon Oct 29 15:42:49 CET 2018
Hi all,
> 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,
>>
>> AESS / Audio is one of the biggest remaining issues we have on the Pyra.
>> Everything else seems to work good enough for a start now, but missing audio on
>> a gaming handheld is a bit annoying :)
>>
>> 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 stop 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 ffind 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
Could CPU_IDLE break the twl6040 audio subsystem? No idea. Therefore, I tried to remove it from 4.19.
And ... it makes audio work!
So we have a simple fix for 4.19. Although no explanation. And no idea how to make it work with CONFIG_CPU_IDLE=y.
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 speakers
I assume nobody can notice such audio problems).
So we face this situation:
* CONFIG_CPU_IDLE=y reduces idle current of OMAP3 by 10mA (important ower saving!)
* CONFIG_CPU_IDLE=y breaks audio on OMAP5 + twl6040 (but not on OMAP4 + twl6040)
Which config can we use that works for both, GTA04 and Pyra?
BR,
Nikolaus
More information about the Letux-kernel
mailing list