diff mbox series

[v1,3/3] drm/tegra: dc: Silence RGB output deferred-probe error

Message ID 20200308223809.23549-3-digetx@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v1,1/3] drm/tegra: dc: Use devm_platform_ioremap_resource | expand

Commit Message

Dmitry Osipenko March 8, 2020, 10:38 p.m. UTC
Driver fails to probe with -EPROBE_DEFER if display output isn't ready
yet. This produces a bit noisy error message in KMSG during kernel's boot
up on Tegra20 and Tegra30 because RGB output tends to be probed earlier
than a corresponding voltage regulator driver.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/gpu/drm/tegra/dc.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Thierry Reding March 12, 2020, 9:33 a.m. UTC | #1
On Mon, Mar 09, 2020 at 01:38:09AM +0300, Dmitry Osipenko wrote:
> Driver fails to probe with -EPROBE_DEFER if display output isn't ready
> yet. This produces a bit noisy error message in KMSG during kernel's boot
> up on Tegra20 and Tegra30 because RGB output tends to be probed earlier
> than a corresponding voltage regulator driver.
> 
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
>  drivers/gpu/drm/tegra/dc.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
> index 56d933e81797..d7f2c4654b6b 100644
> --- a/drivers/gpu/drm/tegra/dc.c
> +++ b/drivers/gpu/drm/tegra/dc.c
> @@ -2571,7 +2571,11 @@ static int tegra_dc_probe(struct platform_device *pdev)
>  
>  	err = tegra_dc_rgb_probe(dc);
>  	if (err < 0 && err != -ENODEV) {
> -		dev_err(&pdev->dev, "failed to probe RGB output: %d\n", err);
> +		if (err == -EPROBE_DEFER)
> +			dev_dbg(&pdev->dev, "RGB output probe deferred\n");
> +		else
> +			dev_err(&pdev->dev, "failed to probe RGB output: %d\n",
> +				err);
>  		return err;
>  	}

I'd prefer if we had just a single message and only differentiate on the
kernel message level, something more along these lines:

	if (err < 0 && err != -ENODEV) {
		const char *level = KERN_ERR;

		if (err == -EPROBE_DEFER)
			level = KERN_DEBUG;

		dev_printk(level, dc->dev, "failed to probe RGB output: %d\n",
			   err);
		return err;
	}

Do you mind if I squash that into your patch?

Thierry
Dmitry Osipenko March 12, 2020, 2:03 p.m. UTC | #2
12.03.2020 12:33, Thierry Reding пишет:
> On Mon, Mar 09, 2020 at 01:38:09AM +0300, Dmitry Osipenko wrote:
>> Driver fails to probe with -EPROBE_DEFER if display output isn't ready
>> yet. This produces a bit noisy error message in KMSG during kernel's boot
>> up on Tegra20 and Tegra30 because RGB output tends to be probed earlier
>> than a corresponding voltage regulator driver.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>  drivers/gpu/drm/tegra/dc.c | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
>> index 56d933e81797..d7f2c4654b6b 100644
>> --- a/drivers/gpu/drm/tegra/dc.c
>> +++ b/drivers/gpu/drm/tegra/dc.c
>> @@ -2571,7 +2571,11 @@ static int tegra_dc_probe(struct platform_device *pdev)
>>  
>>  	err = tegra_dc_rgb_probe(dc);
>>  	if (err < 0 && err != -ENODEV) {
>> -		dev_err(&pdev->dev, "failed to probe RGB output: %d\n", err);
>> +		if (err == -EPROBE_DEFER)
>> +			dev_dbg(&pdev->dev, "RGB output probe deferred\n");
>> +		else
>> +			dev_err(&pdev->dev, "failed to probe RGB output: %d\n",
>> +				err);
>>  		return err;
>>  	}
> 
> I'd prefer if we had just a single message and only differentiate on the
> kernel message level, something more along these lines:
> 
> 	if (err < 0 && err != -ENODEV) {
> 		const char *level = KERN_ERR;
> 
> 		if (err == -EPROBE_DEFER)
> 			level = KERN_DEBUG;
> 
> 		dev_printk(level, dc->dev, "failed to probe RGB output: %d\n",
> 			   err);
> 		return err;
> 	}
> 
> Do you mind if I squash that into your patch?

I don't mind, thanks :)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 56d933e81797..d7f2c4654b6b 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -2571,7 +2571,11 @@  static int tegra_dc_probe(struct platform_device *pdev)
 
 	err = tegra_dc_rgb_probe(dc);
 	if (err < 0 && err != -ENODEV) {
-		dev_err(&pdev->dev, "failed to probe RGB output: %d\n", err);
+		if (err == -EPROBE_DEFER)
+			dev_dbg(&pdev->dev, "RGB output probe deferred\n");
+		else
+			dev_err(&pdev->dev, "failed to probe RGB output: %d\n",
+				err);
 		return err;
 	}