]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm: renesas: shmobile: Improve error handling
authorGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 15 Sep 2023 08:53:31 +0000 (10:53 +0200)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 16 Oct 2023 09:47:45 +0000 (11:47 +0200)
Prepare for DT conversion, where panel probe can be deferred, by
streamlining error propagation and handling:
  - Use dev_err_probe() to avoid printing error messages in case of
    probe deferral,
  - Propagate errors where needed.

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/6dfac76e5b1c7dda3f96801ce83845a4235e2ccd.1694767209.git.geert+renesas@glider.be
drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c
drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c

index 9c3d8b3cf57d5eb65792de4192037a778df62bfe..399fedd42271cb495ea30b95be2f70290630aa30 100644 (file)
@@ -253,7 +253,8 @@ static int shmob_drm_probe(struct platform_device *pdev)
 
        ret = shmob_drm_modeset_init(sdev);
        if (ret < 0) {
-               dev_err(&pdev->dev, "failed to initialize mode setting\n");
+               dev_err_probe(&pdev->dev, ret,
+                             "failed to initialize mode setting\n");
                goto err_free_drm_dev;
        }
 
index 3051318ddc7999bc1d8a763aebe24bf70f0ffcde..1a62e7f8a8a9e6dfa494dca0216d356ffd52e2d8 100644 (file)
@@ -157,9 +157,17 @@ int shmob_drm_modeset_init(struct shmob_drm_device *sdev)
        if (ret)
                return ret;
 
-       shmob_drm_crtc_create(sdev);
-       shmob_drm_encoder_create(sdev);
-       shmob_drm_connector_create(sdev, &sdev->encoder);
+       ret = shmob_drm_crtc_create(sdev);
+       if (ret < 0)
+               return ret;
+
+       ret = shmob_drm_encoder_create(sdev);
+       if (ret < 0)
+               return ret;
+
+       ret = shmob_drm_connector_create(sdev, &sdev->encoder);
+       if (ret < 0)
+               return ret;
 
        drm_kms_helper_poll_init(sdev->ddev);