Re: [PATCH 00/21] ASoC: sun4i-i2s: Number of fixes and TDM Support

From: Chen-Yu Tsai
Date: Tue Aug 27 2019 - 04:20:40 EST


Hi everyone,

On Tue, Aug 20, 2019 at 3:25 AM Maxime Ripard <mripard@xxxxxxxxxx> wrote:
>
> From: Maxime Ripard <maxime.ripard@xxxxxxxxxxx>
>
> Hi,
>
> This series aims at fixing a number of issues in the current i2s driver,
> mostly related to the i2s master support and the A83t support. It also uses
> that occasion to cleanup a few things and simplify the driver. Finally, it
> builds on those fixes and cleanups to introduce TDM and DSP formats support.
>
> Let me know what you think,
> Maxime
>
> Marcus Cooper (1):
> ASoC: sun4i-i2s: Fix the MCLK and BCLK dividers on newer SoCs
>
> Maxime Ripard (20):
> ASoC: sun4i-i2s: Register regmap and PCM before our component
> ASoC: sun4i-i2s: Switch to devm for PCM register
> ASoC: sun4i-i2s: Replace call to params_channels by local variable
> ASoC: sun4i-i2s: Move the channel configuration to a callback
> ASoC: sun4i-i2s: Move the format configuration to a callback
> ASoC: sun4i-i2s: Rework MCLK divider calculation
> ASoC: sun4i-i2s: Don't use the oversample to calculate BCLK
> ASoC: sun4i-i2s: Use module clock as BCLK parent on newer SoCs
> ASoC: sun4i-i2s: RX and TX counter registers are swapped
> ASoC: sun4i-i2s: Use the actual format width instead of an hardcoded one
> ASoC: sun4i-i2s: Fix LRCK and BCLK polarity offsets on newer SoCs
> ASoC: sun4i-i2s: Fix the LRCK polarity
> ASoC: sun4i-i2s: Fix WSS and SR fields for the A83t
> ASoC: sun4i-i2s: Fix MCLK Enable bit offset on A83t
> ASoC: sun4i-i2s: Fix the LRCK period on A83t
> ASoC: sun4i-i2s: Remove duplicated quirks structure

Unfortunately the patches that "fix" support on the A83T actually break it.
The confusion stems from the user manual not actually documenting the I2S
controller. Instead it documents the TDM controller, which is very similar
or the same as the I2S controller in the H3. The I2S controller that we
actually support in this driver is not the TDM controller, but three other
I2S controllers that are only mentioned in the memory map. Support for this
was done by referencing the BSP kernel, which has separate driver instances
for each controller instance, both I2S and TDM.

Now to remedy this I could send reverts for all the "A83t" patches, and
fixes for all the others that affect the A83t quirks. However the fixes
tags existing in the tree would be wrong and confusing. That might be a
pain for the stable kernel maintainers.

Any suggestions on how to proceed?

Regards
ChenYu

> ASoC: sun4i-i2s: Pass the channels number as an argument
> ASoC: sun4i-i2s: Support more channels
> ASoC: sun4i-i2s: Add support for TDM slots
> ASoC: sun4i-i2s: Add support for DSP formats
>
> sound/soc/sunxi/sun4i-i2s.c | 660 ++++++++++++++++++++-----------------
> 1 file changed, 372 insertions(+), 288 deletions(-)
>
> base-commit: d45331b00ddb179e291766617259261c112db872
> --
> git-series 0.9.1