summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2021-08-24 11:51:18 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2021-10-05 13:51:12 +0200
commitb56b3e5b4b6c66ad02905c4b35a90de557c1dc19 (patch)
tree7ea113e5cb9dd635523236966e21d56741069572 /drivers
parent6269556397ed646e9fdcdefa855944fcff0f3608 (diff)
downloadbarebox-b56b3e5b4b6c66ad02905c4b35a90de557c1dc19.tar.gz
barebox-b56b3e5b4b6c66ad02905c4b35a90de557c1dc19.tar.xz
video: simplefb-client: populate video mode field
Video drivers should initialize fb_info->mode, so device parameters for mode and enable/disable can function as expected. This wasn't done in the simplefb driver so far, fix this. This also lets us drop some initialization of the fb_info, because it can be calculated from the mode. The very verbose mode info print can be dropped as well, because it's now available in devinfo. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20210824095119.15907-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/simplefb-client.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/video/simplefb-client.c b/drivers/video/simplefb-client.c
index 1f26ac5067..e1f241d4d8 100644
--- a/drivers/video/simplefb-client.c
+++ b/drivers/video/simplefb-client.c
@@ -30,6 +30,11 @@ struct simplefb_params {
struct simplefb_format *format;
};
+struct simplefb {
+ struct fb_info info;
+ struct fb_videomode mode;
+};
+
static int simplefb_parse_dt(struct device_d *dev,
struct simplefb_params *params)
{
@@ -80,6 +85,7 @@ static int simplefb_probe(struct device_d *dev)
{
int ret;
struct simplefb_params params;
+ struct simplefb *simplefb;
struct fb_info *info;
struct resource *mem;
@@ -96,17 +102,19 @@ static int simplefb_probe(struct device_d *dev)
return PTR_ERR(mem);
}
- info = xzalloc(sizeof(*info));
- dev->priv = info;
+ simplefb = xzalloc(sizeof(*simplefb));
+
+ simplefb->mode.name = params.format->name;
+ simplefb->mode.xres = params.width;
+ simplefb->mode.yres = params.height;
- info->xres = params.width;
- info->yres = params.height;
+ info = &simplefb->info;
+ info->mode = &simplefb->mode;
info->bits_per_pixel = params.format->bits_per_pixel;
info->red = params.format->red;
info->green = params.format->green;
info->blue = params.format->blue;
info->transp = params.format->transp;
- info->line_length = params.stride;
info->screen_base = (void *)mem->start;
info->screen_size = resource_size(mem);
@@ -116,10 +124,6 @@ static int simplefb_probe(struct device_d *dev)
dev_info(dev, "framebuffer at 0x%p, 0x%lx bytes\n",
info->screen_base, info->screen_size);
- dev_info(dev, "format=%s, mode=%dx%dx%d, linelength=%d\n",
- params.format->name,
- info->xres, info->yres,
- info->bits_per_pixel, info->line_length);
info->dev.parent = dev;
ret = register_framebuffer(info);