From: Maxime Ripard Date: Thu, 9 Feb 2017 16:39:18 +0000 (+0100) Subject: drm/sun4i: Grab reserved memory region X-Git-Tag: v5.15~11060^2~8^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=596afb6f051382aa0cb067e4d6b3080e51531ddc;p=platform%2Fkernel%2Flinux-starfive.git drm/sun4i: Grab reserved memory region Allow to provide an optional memory region to allocate from for our DRM driver. Signed-off-by: Maxime Ripard --- diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c index 1de15cd..767bbad 100644 --- a/drivers/gpu/drm/sun4i/sun4i_drv.c +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c @@ -12,6 +12,7 @@ #include #include +#include #include #include @@ -101,10 +102,16 @@ static int sun4i_drv_bind(struct device *dev) } drm->dev_private = drv; + ret = of_reserved_mem_device_init(dev); + if (ret && ret != -ENODEV) { + dev_err(drm->dev, "Couldn't claim our memory region\n"); + goto free_drm; + } + /* drm_vblank_init calls kcalloc, which can fail */ ret = drm_vblank_init(drm, 1); if (ret) - goto free_drm; + goto free_mem_region; drm_mode_config_init(drm); @@ -142,6 +149,8 @@ finish_poll: cleanup_mode_config: drm_mode_config_cleanup(drm); drm_vblank_cleanup(drm); +free_mem_region: + of_reserved_mem_device_release(dev); free_drm: drm_dev_unref(drm); return ret; @@ -156,6 +165,7 @@ static void sun4i_drv_unbind(struct device *dev) sun4i_framebuffer_free(drm); drm_mode_config_cleanup(drm); drm_vblank_cleanup(drm); + of_reserved_mem_device_release(dev); drm_dev_unref(drm); }