From: Andre Heider <a.heider@gmail.com>
To: barebox@lists.infradead.org
Subject: [PATCH v2 1/6] fb: add a line_length value to struct fb_info
Date: Tue, 5 Nov 2013 00:00:59 +0100 [thread overview]
Message-ID: <1383606064-30494-2-git-send-email-a.heider@gmail.com> (raw)
In-Reply-To: <1383606064-30494-1-git-send-email-a.heider@gmail.com>
Add support for framebuffers with noncontiguous horizontal lines.
Video drivers can set this value if the hardware requires it.
In case a driver does not set it, the current value of
xres * (bpp / 8) is used instead.
Signed-off-by: Andre Heider <a.heider@gmail.com>
---
drivers/video/fb.c | 11 +++++++++--
include/fb.h | 1 +
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/video/fb.c b/drivers/video/fb.c
index 420e4e3..0159994 100644
--- a/drivers/video/fb.c
+++ b/drivers/video/fb.c
@@ -72,12 +72,16 @@ static int fb_setup_mode(struct device_d *dev, struct param_d *param,
info->xres = info->mode->xres;
info->yres = info->mode->yres;
+ info->line_length = 0;
ret = info->fbops->fb_activate_var(info);
+ if (!info->line_length)
+ info->line_length = info->xres * (info->bits_per_pixel >> 3);
+
if (!ret) {
dev->resource[0].start = (resource_size_t)info->screen_base;
- info->cdev.size = info->xres * info->yres * (info->bits_per_pixel >> 3);
+ info->cdev.size = info->line_length * info->yres;
dev->resource[0].end = dev->resource[0].start + info->cdev.size - 1;
dev_param_set_generic(dev, param, val);
} else
@@ -122,9 +126,12 @@ int register_framebuffer(struct fb_info *info)
dev = &info->dev;
+ if (!info->line_length)
+ info->line_length = info->xres * (info->bits_per_pixel >> 3);
+
info->cdev.ops = &fb_ops;
info->cdev.name = asprintf("fb%d", id);
- info->cdev.size = info->xres * info->yres * (info->bits_per_pixel >> 3);
+ info->cdev.size = info->line_length * info->yres;
info->cdev.dev = dev;
info->cdev.priv = info;
dev->resource = xzalloc(sizeof(struct resource));
diff --git a/include/fb.h b/include/fb.h
index df4ba8e..cf9ffa0 100644
--- a/include/fb.h
+++ b/include/fb.h
@@ -94,6 +94,7 @@ struct fb_info {
u32 xres; /* visible resolution */
u32 yres;
u32 bits_per_pixel; /* guess what */
+ u32 line_length; /* length of a line in bytes */
u32 grayscale; /* != 0 Graylevels instead of colors */
--
1.8.3.2
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2013-11-04 23:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-04 23:00 [PATCH v2 0/6] BCM2835 / simple framebuffer support Andre Heider
2013-11-04 23:00 ` Andre Heider [this message]
2013-11-05 0:06 ` [PATCH v2 1/6] fb: add a line_length value to struct fb_info Alexander Aring
2013-11-05 8:00 ` Sascha Hauer
2013-11-05 8:17 ` Alexander Aring
2013-11-05 8:48 ` Andre Heider
2013-11-05 8:58 ` Alexander Aring
2013-11-04 23:01 ` [PATCH v2 2/6] gui: convert graphic utils to respect line_length Andre Heider
2013-11-04 23:01 ` [PATCH v2 3/6] gui: convert the bmp renderer " Andre Heider
2013-11-04 23:01 ` [PATCH v2 4/6] ARM: bcm2835: add missing mbox overscan response field Andre Heider
2013-11-04 23:01 ` [PATCH v2 5/6] video: add a BCM2835 framebuffer driver Andre Heider
2013-11-04 23:01 ` [PATCH v2 6/6] video: set up the kernel's simple " Andre Heider
2013-11-06 9:46 ` [PATCH v2 0/6] BCM2835 / simple framebuffer support Sascha Hauer
2013-11-06 10:04 ` Alexander Aring
2013-11-06 10:02 ` Sascha Hauer
2013-11-06 10:18 ` Alexander Aring
2013-11-06 17:40 ` Andre Heider
2013-11-12 12:14 ` Andre Heider
2013-11-12 14:19 ` Sascha Hauer
2013-11-14 11:44 ` Andre Heider
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1383606064-30494-2-git-send-email-a.heider@gmail.com \
--to=a.heider@gmail.com \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.