On Mon, Nov 23, 2015 at 12:48:14PM +0100, Philipp Zabel wrote:
Am Freitag, den 20.11.2015, 16:14 +0800 schrieb Liu Ying:
To avoid memory leakage, we need to cleanup ipu planes in ipu_drm_unbind().
Signed-off-by: Liu Ying Ying.Liu@freescale.com
This patch applies to the imx-drm/fixes branch of Philipp Zabel's open git.
drivers/gpu/drm/imx/ipuv3-crtc.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c index 59f44df..467905c 100644 --- a/drivers/gpu/drm/imx/ipuv3-crtc.c +++ b/drivers/gpu/drm/imx/ipuv3-crtc.c @@ -446,6 +446,11 @@ static void ipu_drm_unbind(struct device *dev, struct device *master, imx_drm_remove_crtc(ipu_crtc->imx_crtc);
ipu_plane_put_resources(ipu_crtc->plane[0]);
- if (ipu_crtc->plane[1])
ipu_plane_cleanup(ipu_crtc->plane[1]);
- ipu_plane_cleanup(ipu_crtc->plane[0]);
- ipu_put_resources(ipu_crtc);
}
Shouldn't this already be handled by the DRM core calling the plane->destroy callbacks from drm_mode_config_cleanup (called by imx_drm_driver_unload shortly after component_unbind_all)?
I take drm_mode_config_cleanup() as the final goal keeper. The component ->unbind() may clean things up by itself other than rely on the master's behaviour. Otherwise, we even don't need to call ipu_plane_put_resources() here.
Regards, Liu Ying
regards Philipp