Deferred probes shouldn't cause error messages in the boot log, so
change the dev_err() to the more harmless dev_info().
Signed-off-by: Stefan Agner <[email protected]>
---
sound/soc/soc-core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index b29d0f65611e..ba9b09517c5f 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -903,8 +903,8 @@ static int soc_bind_dai_link(struct snd_soc_card *card,
for (i = 0; i < rtd->num_codecs; i++) {
codec_dais[i] = snd_soc_find_dai(&codecs[i]);
if (!codec_dais[i]) {
- dev_err(card->dev, "ASoC: CODEC DAI %s not registered\n",
- codecs[i].dai_name);
+ dev_info(card->dev, "ASoC: CODEC DAI %s not registered\n",
+ codecs[i].dai_name);
goto _err_defer;
}
snd_soc_rtdcom_add(rtd, codec_dais[i]->component);
--
2.20.1
The patch
ASoC: soc-core: remove error due to probe deferral
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
From 7c7e2d6a9ca3c74ba7ed4da2a75916b2f9ae38f0 Mon Sep 17 00:00:00 2001
From: Stefan Agner <[email protected]>
Date: Fri, 18 Jan 2019 10:55:04 +0100
Subject: [PATCH] ASoC: soc-core: remove error due to probe deferral
Deferred probes shouldn't cause error messages in the boot log, so
change the dev_err() to the more harmless dev_info().
Signed-off-by: Stefan Agner <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
---
sound/soc/soc-core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 0462b3ec977a..98bb05f6ed56 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -903,8 +903,8 @@ static int soc_bind_dai_link(struct snd_soc_card *card,
for (i = 0; i < rtd->num_codecs; i++) {
codec_dais[i] = snd_soc_find_dai(&codecs[i]);
if (!codec_dais[i]) {
- dev_err(card->dev, "ASoC: CODEC DAI %s not registered\n",
- codecs[i].dai_name);
+ dev_info(card->dev, "ASoC: CODEC DAI %s not registered\n",
+ codecs[i].dai_name);
goto _err_defer;
}
snd_soc_rtdcom_add(rtd, codec_dais[i]->component);
--
2.20.1
On Thu, Aug 08, 2019 at 02:36:55PM +0200, Stefan Agner wrote:
> From: Stefan Agner <[email protected]>
>
> Deferred probes shouldn't cause error messages in the boot log. Avoid
> printing with dev_err() in case EPROBE_DEFER is the return value.
No, they absolutely should tell the user why they are deferring so the
user has some information to go on when they're trying to figure out why
their device isn't instantiating.
On Thu, 08 Aug 2019 14:44:37 +0200,
Mark Brown wrote:
>
> On Thu, Aug 08, 2019 at 02:36:55PM +0200, Stefan Agner wrote:
> > From: Stefan Agner <[email protected]>
> >
> > Deferred probes shouldn't cause error messages in the boot log. Avoid
> > printing with dev_err() in case EPROBE_DEFER is the return value.
>
> No, they absolutely should tell the user why they are deferring so the
> user has some information to go on when they're trying to figure out why
> their device isn't instantiating.
But it's no real error that *must* be printed on the console, either.
Maybe downgrading the printk level?
thanks,
Takashi
On Thu, Aug 08, 2019 at 03:00:06PM +0200, Takashi Iwai wrote:
> Mark Brown wrote:
> > No, they absolutely should tell the user why they are deferring so the
> > user has some information to go on when they're trying to figure out why
> > their device isn't instantiating.
> But it's no real error that *must* be printed on the console, either.
> Maybe downgrading the printk level?
Yes, downgrading can be OK though it does bloat the code.
On Thu, 08 Aug 2019 15:02:17 +0200,
Mark Brown wrote:
>
> On Thu, Aug 08, 2019 at 03:00:06PM +0200, Takashi Iwai wrote:
> > Mark Brown wrote:
>
> > > No, they absolutely should tell the user why they are deferring so the
> > > user has some information to go on when they're trying to figure out why
> > > their device isn't instantiating.
>
> > But it's no real error that *must* be printed on the console, either.
> > Maybe downgrading the printk level?
>
> Yes, downgrading can be OK though it does bloat the code.
I guess we can use dev_printk() with the conditional level choice.
Takashi
On 2019-08-08 14:44, Mark Brown wrote:
> On Thu, Aug 08, 2019 at 02:36:55PM +0200, Stefan Agner wrote:
>> From: Stefan Agner <[email protected]>
>>
>> Deferred probes shouldn't cause error messages in the boot log. Avoid
>> printing with dev_err() in case EPROBE_DEFER is the return value.
>
> No, they absolutely should tell the user why they are deferring so the
> user has some information to go on when they're trying to figure out why
> their device isn't instantiating.
Hm, I see, if the driver defers and does not manage in the end, then the
messages are indeed helpful.
But can we lower severity, e.g. to dev_info? In my case it succeeds in
the end, just defers about 6 times. I have 3 links which then leads to
18 error messages which confuse users... From what I can see
soc_init_dai_link() would print dev_err in case there is an actual
error.
--
Stefan
On 2019-08-08 15:14, Takashi Iwai wrote:
> On Thu, 08 Aug 2019 15:02:17 +0200,
> Mark Brown wrote:
>>
>> On Thu, Aug 08, 2019 at 03:00:06PM +0200, Takashi Iwai wrote:
>> > Mark Brown wrote:
>>
>> > > No, they absolutely should tell the user why they are deferring so the
>> > > user has some information to go on when they're trying to figure out why
>> > > their device isn't instantiating.
>>
>> > But it's no real error that *must* be printed on the console, either.
>> > Maybe downgrading the printk level?
>>
>> Yes, downgrading can be OK though it does bloat the code.
>
> I guess we can use dev_printk() with the conditional level choice.
>
How about use dev_info always? We get a dev_err message from
soc_init_dai_link in error cases...
ret = soc_init_dai_link(card, dai_link);
if (ret && ret != -EPROBE_DEFER) {
dev_info(card->dev, "ASoC: failed to init link %s: %d\n",
dai_link->name, ret);
}
if (ret) {
soc_cleanup_platform(card);
mutex_unlock(&client_mutex);
return ret;
}
--
Stefan
On Thu, Aug 08, 2019 at 03:16:53PM +0200, Stefan Agner wrote:
> On 2019-08-08 15:14, Takashi Iwai wrote:
> > Mark Brown wrote:
> > I guess we can use dev_printk() with the conditional level choice.
> How about use dev_info always? We get a dev_err message from
> soc_init_dai_link in error cases...
> ret = soc_init_dai_link(card, dai_link);
> if (ret && ret != -EPROBE_DEFER) {
> dev_info(card->dev, "ASoC: failed to init link %s: %d\n",
> dai_link->name, ret);
> }
Well, if there's adequate error reporting in init_dai_link() it's a bit
different - we can just remove the print entirely regardless of what the
return code is. The point is to ensure that we don't just silently
fail. Unfortunately there's no prints in the probe deferral case there
so they need adding, that'll actually improve things though since we can
make it print the name of the thing it's mising which will be useful to
people trying to figure out what's going on (we used to do that but it
got lost in reshufflings).