@@ -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;
}
@@ -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);