Re: Applied "ASoC: rt5514-spi: Check the validity of drvdata pointer on resume" to the asoc tree

From: Brian Norris
Date: Wed Jan 24 2018 - 12:07:57 EST


Hi Marc and Mark,

Mark already noticed this was no longer needed, but I just wanted to
note things for the record, since Marc seemed curious.

On Wed, Jan 24, 2018 at 7:36 AM, Mark Brown <broonie@xxxxxxxxxx> wrote:
...
>
> From 509bf3a7d43ab173abc354df2a859229ede043c0 Mon Sep 17 00:00:00 2001
> From: Marc Zyngier <marc.zyngier@xxxxxxx>
> Date: Wed, 24 Jan 2018 14:50:00 +0000
> Subject: [PATCH] ASoC: rt5514-spi: Check the validity of drvdata pointer on
> resume
>
> The rt5514-spi driver seem to assume the validity of the drvdata pointer
> on resume, which it may not be populated, leading to a not-so-nice crash.

This part was fixed with this:

346cccf88319 ASoC: rt5514: Add the sanity check for the driver_data in
the resume function

which is in 4.15-rc6

> This stems from the fact that rt5514_spi_pcm_probe() is never called on
> my system (a kevin Chromebook). No idea why, but if it can happen, it
> is worth fixing.

I believe the rk3399_gru_sound driver currently does not set up the
DAI links properly at the moment. This patch is still waiting, to fix
that:

https://patchwork.kernel.org/patch/10067725/
[PATCH] ASoC: rockchip: Use dummy_dai for rt5514 dsp dailinkgi

Brian

> Fixes: e9c50aa6bd39 ("ASoC: rt5514-spi: check irq status to schedule data copy in resume function")
> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> ---
> sound/soc/codecs/rt5514-spi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/soc/codecs/rt5514-spi.c b/sound/soc/codecs/rt5514-spi.c
> index 2df91db765ac..9255afcf2c3a 100644
> --- a/sound/soc/codecs/rt5514-spi.c
> +++ b/sound/soc/codecs/rt5514-spi.c
> @@ -482,7 +482,7 @@ static int __maybe_unused rt5514_resume(struct device *dev)
> if (device_may_wakeup(dev))
> disable_irq_wake(irq);
>
> - if (rt5514_dsp->substream) {
> + if (rt5514_dsp && rt5514_dsp->substream) {
> rt5514_spi_burst_read(RT5514_IRQ_CTRL, (u8 *)&buf, sizeof(buf));
> if (buf[0] & RT5514_IRQ_STATUS_BIT)
> rt5514_schedule_copy(rt5514_dsp);
> --
> 2.15.1
>