summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c')
-rw-r--r--drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
index 4587d5e60a72..5592fddb2529 100644
--- a/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
+++ b/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
@@ -441,9 +441,8 @@ static int ipu_drm_bind(struct device *dev, struct device *master, void *data)
struct ipu_crtc *ipu_crtc;
int ret;
- ipu_crtc = devm_kzalloc(dev, sizeof(*ipu_crtc), GFP_KERNEL);
- if (!ipu_crtc)
- return -ENOMEM;
+ ipu_crtc = dev_get_drvdata(dev);
+ memset(ipu_crtc, 0, sizeof(*ipu_crtc));
ipu_crtc->dev = dev;
@@ -455,8 +454,6 @@ static int ipu_drm_bind(struct device *dev, struct device *master, void *data)
drm->mode_config.helper_private = &ipuv3_drm_mode_config_helpers;
drm->mode_config.allow_fb_modifiers = true;
- dev_set_drvdata(dev, ipu_crtc);
-
return 0;
}
@@ -479,6 +476,7 @@ static const struct component_ops ipu_crtc_ops = {
static int ipu_drm_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
+ struct ipu_crtc *ipu_crtc;
int ret;
if (!dev->platform_data)
@@ -488,6 +486,12 @@ static int ipu_drm_probe(struct platform_device *pdev)
if (ret)
return ret;
+ ipu_crtc = devm_kzalloc(dev, sizeof(*ipu_crtc), GFP_KERNEL);
+ if (!ipu_crtc)
+ return -ENOMEM;
+
+ dev_set_drvdata(dev, ipu_crtc);
+
return component_add(dev, &ipu_crtc_ops);
}