drm/msm/sde: sde hw interrupt handling
Existing SDE HW interrupt was based on mdp/kms and is not
sufficient for supporting the SDE HW interrupt manipulation.
Changes are for enabling full SDE interrupt support and hiding
HAL interface implementation details from crtc/encoder.
Change-Id: I917a153d12bbb6b84758591ba69fe15181af7791
Signed-off-by: Ben Chan <bkchan@codeaurora.org>
diff --git a/drivers/gpu/drm/msm/sde/sde_plane.c b/drivers/gpu/drm/msm/sde/sde_plane.c
index 09db61b..993df81 100644
--- a/drivers/gpu/drm/msm/sde/sde_plane.c
+++ b/drivers/gpu/drm/msm/sde/sde_plane.c
@@ -676,7 +676,16 @@
enum drm_plane_type type;
priv = dev->dev_private;
- kms = to_sde_kms(to_mdp_kms(priv->kms));
+ if (!priv) {
+ DRM_ERROR("[%u]Private data is NULL\n", pipe);
+ goto exit;
+ }
+
+ if (!priv->kms) {
+ DRM_ERROR("[%u]Invalid KMS reference\n", pipe);
+ goto exit;
+ }
+ kms = to_sde_kms(priv->kms);
psde = kzalloc(sizeof(*psde), GFP_KERNEL);
if (!psde) {
@@ -739,6 +748,6 @@
pr_err("%s: Plane creation failed\n", __func__);
if (plane)
sde_plane_destroy(plane);
-
+exit:
return ERR_PTR(ret);
}