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,
if (ret) return ret;req_driver);
-#endif
drm_aperture_detach_drivers(base, size);