Message ID | 20200227181522.2711142-32-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm managed resources, v3 | expand |
Hi Daniel, Le jeu., févr. 27, 2020 at 19:15, Daniel Vetter <daniel.vetter@ffwll.ch> a écrit : > Allows us to drop the drm_driver.release callback. > > This is made possible by a preceeding patch which added a drmm_ > cleanup action to drm_mode_config_init(), hence all we need to do to > ensure that drm_mode_config_cleanup() is run on final drm_device > cleanup is check the new error code for _init(). > > v2: Explain why this cleanup is possible (Laurent). > > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > Cc: Paul Cercueil <paul@crapouillou.net> Reviewed-by: Paul Cercueil <paul@crapouillou.net> Cheers, -Paul > --- > drivers/gpu/drm/ingenic/ingenic-drm.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/ingenic/ingenic-drm.c > b/drivers/gpu/drm/ingenic/ingenic-drm.c > index 192aaa4421a3..f5689521428e 100644 > --- a/drivers/gpu/drm/ingenic/ingenic-drm.c > +++ b/drivers/gpu/drm/ingenic/ingenic-drm.c > @@ -489,11 +489,6 @@ static irqreturn_t ingenic_drm_irq_handler(int > irq, void *arg) > return IRQ_HANDLED; > } > > -static void ingenic_drm_release(struct drm_device *drm) > -{ > - drm_mode_config_cleanup(drm); > -} > - > static int ingenic_drm_enable_vblank(struct drm_crtc *crtc) > { > struct ingenic_drm *priv = drm_crtc_get_priv(crtc); > @@ -537,7 +532,6 @@ static struct drm_driver ingenic_drm_driver_data > = { > .gem_prime_mmap = drm_gem_cma_prime_mmap, > > .irq_handler = ingenic_drm_irq_handler, > - .release = ingenic_drm_release, > }; > > static const struct drm_plane_funcs ingenic_drm_primary_plane_funcs > = { > @@ -638,7 +632,10 @@ static int ingenic_drm_probe(struct > platform_device *pdev) > } > drmm_add_final_kfree(drm, priv); > > - drm_mode_config_init(drm); > + ret = drm_mode_config_init(drm); > + if (ret) > + return ret; > + > drm->mode_config.min_width = 0; > drm->mode_config.min_height = 0; > drm->mode_config.max_width = soc_info->max_width; > -- > 2.24.1 >
diff --git a/drivers/gpu/drm/ingenic/ingenic-drm.c b/drivers/gpu/drm/ingenic/ingenic-drm.c index 192aaa4421a3..f5689521428e 100644 --- a/drivers/gpu/drm/ingenic/ingenic-drm.c +++ b/drivers/gpu/drm/ingenic/ingenic-drm.c @@ -489,11 +489,6 @@ static irqreturn_t ingenic_drm_irq_handler(int irq, void *arg) return IRQ_HANDLED; } -static void ingenic_drm_release(struct drm_device *drm) -{ - drm_mode_config_cleanup(drm); -} - static int ingenic_drm_enable_vblank(struct drm_crtc *crtc) { struct ingenic_drm *priv = drm_crtc_get_priv(crtc); @@ -537,7 +532,6 @@ static struct drm_driver ingenic_drm_driver_data = { .gem_prime_mmap = drm_gem_cma_prime_mmap, .irq_handler = ingenic_drm_irq_handler, - .release = ingenic_drm_release, }; static const struct drm_plane_funcs ingenic_drm_primary_plane_funcs = { @@ -638,7 +632,10 @@ static int ingenic_drm_probe(struct platform_device *pdev) } drmm_add_final_kfree(drm, priv); - drm_mode_config_init(drm); + ret = drm_mode_config_init(drm); + if (ret) + return ret; + drm->mode_config.min_width = 0; drm->mode_config.min_height = 0; drm->mode_config.max_width = soc_info->max_width;
Allows us to drop the drm_driver.release callback. This is made possible by a preceeding patch which added a drmm_ cleanup action to drm_mode_config_init(), hence all we need to do to ensure that drm_mode_config_cleanup() is run on final drm_device cleanup is check the new error code for _init(). v2: Explain why this cleanup is possible (Laurent). Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Paul Cercueil <paul@crapouillou.net> --- drivers/gpu/drm/ingenic/ingenic-drm.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-)