[PATCH v2 4/7] ASoC: sun4i-codec: Add playback only flag to quirks
Andre Przywara
andre.przywara at arm.com
Sun Oct 20 03:37:59 PDT 2024
On Sun, 20 Oct 2024 21:30:54 +1300
Ryan Walklin <ryan at testtoast.com> wrote:
> From: Marcus Cooper <codekipper at gmail.com>
>
> Some devices only have the playback side of the codec implemented
> so add a quirk to check for this.
If you respin, you could mention here that the capture is also
explicitly disabled in the dai_link member in the create_card() routine
later, to keep that comment from your email alive in the commit log.
But anyway:
> Signed-off-by: Marcus Cooper <codekipper at gmail.com>
> Signed-off-by: Ryan Walklin <ryan at testtoast.com>
Reviewed-by: Andre Przywara <andre.przywara at arm.com>
Cheers,
Andre
> ---
> sound/soc/sunxi/sun4i-codec.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
> index 37f5678b55291..312d2655c3f4e 100644
> --- a/sound/soc/sunxi/sun4i-codec.c
> +++ b/sound/soc/sunxi/sun4i-codec.c
> @@ -1571,6 +1571,7 @@ struct sun4i_codec_quirks {
> unsigned int reg_dac_txdata; /* TX FIFO offset for DMA config */
> unsigned int reg_adc_rxdata; /* RX FIFO offset for DMA config */
> bool has_reset;
> + bool playback_only;
> };
>
> static const struct sun4i_codec_quirks sun4i_codec_quirks = {
> @@ -1779,10 +1780,13 @@ static int sun4i_codec_probe(struct platform_device *pdev)
> scodec->playback_dma_data.maxburst = 8;
> scodec->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
>
> - /* DMA configuration for RX FIFO */
> - scodec->capture_dma_data.addr = res->start + quirks->reg_adc_rxdata;
> - scodec->capture_dma_data.maxburst = 8;
> - scodec->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
> + if (!quirks->playback_only) {
> + /* DMA configuration for RX FIFO */
> + scodec->capture_dma_data.addr = res->start +
> + quirks->reg_adc_rxdata;
> + scodec->capture_dma_data.maxburst = 8;
> + scodec->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
> + }
>
> ret = devm_snd_soc_register_component(&pdev->dev, quirks->codec,
> &sun4i_codec_dai, 1);
More information about the linux-arm-kernel
mailing list