Messages in this thread Patch in this message | | | Date | Tue, 2 Nov 2021 10:13:00 +0100 | Subject | Re: [PATCH v2 1/2] drm/aperture: Move conflicting fbdev frame buffer removal to a helper | From | Thomas Zimmermann <> |
| |
Am 25.10.21 um 09:57 schrieb Javier Martinez Canillas: > The logic to remove the conflicting frame buffers for fbdev devices that > use a given memory range is only compiled if CONFIG_FB option is enabled. > > But having an ifdefery in drm_aperture_remove_conflicting_framebuffers() > makes the function harder to extend. Move the logic into its own helper. > > Suggested-by: Thomas Zimmermann <tzimmermann@suse.de> > Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
> --- > > (no changes since v1) > > drivers/gpu/drm/drm_aperture.c | 39 ++++++++++++++++++++++------------ > 1 file changed, 26 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/drm_aperture.c b/drivers/gpu/drm/drm_aperture.c > index 74bd4a76b253..1a8ed0c616d6 100644 > --- a/drivers/gpu/drm/drm_aperture.c > +++ b/drivers/gpu/drm/drm_aperture.c > @@ -273,6 +273,30 @@ static void drm_aperture_detach_drivers(resource_size_t base, resource_size_t si > mutex_unlock(&drm_apertures_lock); > } > > +static int drm_aperture_remove_conflicting_fbdev_framebuffers(resource_size_t base, > + resource_size_t size, bool primary, > + const struct drm_driver *req_driver) > +{ > +#if IS_REACHABLE(CONFIG_FB) > + struct apertures_struct *a; > + int ret; > + > + a = alloc_apertures(1); > + if (!a) > + return -ENOMEM; > + > + a->ranges[0].base = base; > + a->ranges[0].size = size; > + > + ret = remove_conflicting_framebuffers(a, req_driver->name, primary); > + kfree(a); > + > + if (ret) > + return ret; > +#endif > + return 0; > +} > + > /** > * drm_aperture_remove_conflicting_framebuffers - remove existing framebuffers in the given range > * @base: the aperture's base address in physical memory > @@ -289,23 +313,12 @@ static void drm_aperture_detach_drivers(resource_size_t base, resource_size_t si > int drm_aperture_remove_conflicting_framebuffers(resource_size_t base, resource_size_t size, > bool primary, const struct drm_driver *req_driver) > { > -#if IS_REACHABLE(CONFIG_FB) > - struct apertures_struct *a; > int ret; > > - a = alloc_apertures(1); > - if (!a) > - return -ENOMEM; > - > - a->ranges[0].base = base; > - a->ranges[0].size = size; > - > - ret = remove_conflicting_framebuffers(a, req_driver->name, primary); > - kfree(a); > - > + ret = drm_aperture_remove_conflicting_fbdev_framebuffers(base, size, primary, > + req_driver); > if (ret) > return ret; > -#endif > > drm_aperture_detach_drivers(base, size); > >
-- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Ivo Totev [unhandled content-type:application/pgp-signature]
| |