Re: [PATCH 14/18] fbdev/simplefb: Do not use struct fb_info.apertures

2022-12-20 Thread Javier Martinez Canillas
On 12/19/22 17:05, Thomas Zimmermann wrote:
> Acquire ownership of the firmware scanout buffer by calling Linux'
> aperture helpers. Remove the use of struct fb_info.apertures and do
> not set FBINFO_MISC_FIRMWARE; both of which previously configured
> buffer ownership.
> 
> Signed-off-by: Thomas Zimmermann 
> ---

Reviewed-by: Javier Martinez Canillas 

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat



[PATCH 14/18] fbdev/simplefb: Do not use struct fb_info.apertures

2022-12-19 Thread Thomas Zimmermann
Acquire ownership of the firmware scanout buffer by calling Linux'
aperture helpers. Remove the use of struct fb_info.apertures and do
not set FBINFO_MISC_FIRMWARE; both of which previously configured
buffer ownership.

Signed-off-by: Thomas Zimmermann 
---
 drivers/video/fbdev/simplefb.c | 19 +++
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index e770b4a356b5..10d71879d340 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -12,6 +12,7 @@
  * Copyright (C) 1996 Paul Mackerras
  */
 
+#include 
 #include 
 #include 
 #include 
@@ -68,6 +69,8 @@ static int simplefb_setcolreg(u_int regno, u_int red, u_int 
green, u_int blue,
 
 struct simplefb_par {
u32 palette[PSEUDO_PALETTE_SIZE];
+   resource_size_t base;
+   resource_size_t size;
struct resource *mem;
 #if defined CONFIG_OF && defined CONFIG_COMMON_CLK
bool clks_enabled;
@@ -472,16 +475,11 @@ static int simplefb_probe(struct platform_device *pdev)
info->var.blue = params.format->blue;
info->var.transp = params.format->transp;
 
-   info->apertures = alloc_apertures(1);
-   if (!info->apertures) {
-   ret = -ENOMEM;
-   goto error_fb_release;
-   }
-   info->apertures->ranges[0].base = info->fix.smem_start;
-   info->apertures->ranges[0].size = info->fix.smem_len;
+   par->base = info->fix.smem_start;
+   par->size = info->fix.smem_len;
 
info->fbops = _ops;
-   info->flags = FBINFO_DEFAULT | FBINFO_MISC_FIRMWARE;
+   info->flags = FBINFO_DEFAULT;
info->screen_base = ioremap_wc(info->fix.smem_start,
   info->fix.smem_len);
if (!info->screen_base) {
@@ -511,6 +509,11 @@ static int simplefb_probe(struct platform_device *pdev)
if (mem != res)
par->mem = mem; /* release in clean-up handler */
 
+   ret = devm_aperture_acquire_for_platform_device(pdev, par->base, 
par->size);
+   if (ret) {
+   dev_err(>dev, "Unable to acquire aperture: %d\n", ret);
+   goto error_regulators;
+   }
ret = register_framebuffer(info);
if (ret < 0) {
dev_err(>dev, "Unable to register simplefb: %d\n", ret);
-- 
2.39.0