[PATCH 1/4] ASoC: rockchip: i2s-tdm: Strip out direct CRU use
Heiko Stuebner
heiko at sntech.de
Sat Oct 16 08:50:22 PDT 2021
Am Samstag, 16. Oktober 2021, 12:53:50 CEST schrieb Nicolas Frattaroli:
> In cases where both rx and tx lrck are synced to the same source,
> the resets for rx and tx need to be triggered simultaneously,
> according to the downstream driver.
>
> As there is no reset API to atomically bulk (de)assert two resets
> at once, what the driver did was implement half a reset controller
> specific to Rockchip, which tried to write the registers for the
> resets within one write ideally or several writes within an irqsave
> section.
>
> This of course violates abstractions quite badly. The driver should
> not write to the CRU's registers directly.
>
> In practice, for the cases I tested the driver with, which is audio
> playback, replacing the synchronised asserts with just individual
> ones does not seem to make any difference.
>
> If it turns out that this breaks something in the future, it should
> be fixed through the specification and implementation of an atomic
> bulk reset API, not with a CRU hack.
>
> Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas at gmail.com>
Reviewed-by: Heiko Stuebner <heiko at sntech.de>
More information about the Linux-rockchip
mailing list