The devm_platform_ioremap_resource() helper replaces few lines of a boilerplate code with a single line, making code to look cleaner a tad.
Signed-off-by: Dmitry Osipenko digetx@gmail.com --- drivers/gpu/drm/tegra/dc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index 7c70fd31a4c2..257163dda301 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -2503,7 +2503,6 @@ static int tegra_dc_couple(struct tegra_dc *dc)
static int tegra_dc_probe(struct platform_device *pdev) { - struct resource *regs; struct tegra_dc *dc; int err;
@@ -2560,8 +2559,7 @@ static int tegra_dc_probe(struct platform_device *pdev) tegra_powergate_power_off(dc->powergate); }
- regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); - dc->regs = devm_ioremap_resource(&pdev->dev, regs); + dc->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(dc->regs)) return PTR_ERR(dc->regs);
Runtime PM and RGB output need to be released when host1x client registration fails. The releasing is missed in the code, let's correct it.
Signed-off-by: Dmitry Osipenko digetx@gmail.com --- drivers/gpu/drm/tegra/dc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index 257163dda301..56d933e81797 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -2586,10 +2586,16 @@ static int tegra_dc_probe(struct platform_device *pdev) if (err < 0) { dev_err(&pdev->dev, "failed to register host1x client: %d\n", err); - return err; + goto disable_pm; }
return 0; + +disable_pm: + pm_runtime_disable(&pdev->dev); + tegra_dc_rgb_remove(dc); + + return err; }
static int tegra_dc_remove(struct platform_device *pdev)
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; }
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",
return err; }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
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",
return err; }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 :)
dri-devel@lists.freedesktop.org