From: Jon Ringle <[email protected]>
Signed-off-by: Jon Ringle <[email protected]>
---
drivers/video/da8xx-fb.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index e030e17..233f65f 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -243,6 +243,20 @@ static struct fb_videomode known_lcd_panels[] = {
.sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
.flag = 0,
},
+ [3] = {
+ /* Densitron 84-0023-001T */
+ .name = "Densitron_84-0023-001T",
+ .xres = 320,
+ .yres = 240,
+ .pixclock = KHZ2PICOS(6400),
+ .left_margin = 0,
+ .right_margin = 0,
+ .upper_margin = 0,
+ .lower_margin = 0,
+ .hsync_len = 30,
+ .vsync_len = 3,
+ .sync = 0,
+ },
};
static bool da8xx_fb_is_raster_enabled(void)
--
1.8.5.4
From: Jon Ringle <[email protected]>
The casting to (u16 *) on info->pseudo_palette is wrong and causes the
display to show a blue (garbage) vertical line on every other pixel column
Signed-off-by: Jon Ringle <[email protected]>
---
drivers/video/da8xx-fb.c | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 233f65f..c17f901 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -678,15 +678,7 @@ static int fb_setcolreg(unsigned regno, unsigned red, unsigned green,
(green << info->var.green.offset) |
(blue << info->var.blue.offset);
- switch (info->var.bits_per_pixel) {
- case 16:
- ((u16 *) (info->pseudo_palette))[regno] = v;
- break;
- case 24:
- case 32:
- ((u32 *) (info->pseudo_palette))[regno] = v;
- break;
- }
+ ((u32 *) (info->pseudo_palette))[regno] = v;
if (palette[0] != 0x4000) {
update_hw = 1;
palette[0] = 0x4000;
--
1.8.5.4
On 01/04/14 15:39, [email protected] wrote:
> From: Jon Ringle <[email protected]>
>
> The casting to (u16 *) on info->pseudo_palette is wrong and causes the
> display to show a blue (garbage) vertical line on every other pixel column
>
> Signed-off-by: Jon Ringle <[email protected]>
> ---
> drivers/video/da8xx-fb.c | 10 +---------
> 1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> index 233f65f..c17f901 100644
> --- a/drivers/video/da8xx-fb.c
> +++ b/drivers/video/da8xx-fb.c
> @@ -678,15 +678,7 @@ static int fb_setcolreg(unsigned regno, unsigned red, unsigned green,
> (green << info->var.green.offset) |
> (blue << info->var.blue.offset);
>
> - switch (info->var.bits_per_pixel) {
> - case 16:
> - ((u16 *) (info->pseudo_palette))[regno] = v;
> - break;
> - case 24:
> - case 32:
> - ((u32 *) (info->pseudo_palette))[regno] = v;
> - break;
> - }
> + ((u32 *) (info->pseudo_palette))[regno] = v;
> if (palette[0] != 0x4000) {
> update_hw = 1;
> palette[0] = 0x4000;
>
Thanks.
I wonder why the pseudo_palette in fb.h is 'void *' in the first place.
It seems to be cast to 'u32 *' everywhere...
Tomi
Hi Tomi,
On Fri, Apr 4, 2014 at 12:49 PM, Tomi Valkeinen <[email protected]> wrote:
> I wonder why the pseudo_palette in fb.h is 'void *' in the first place.
> It seems to be cast to 'u32 *' everywhere...
Historically, this was driver-specific. Many drivers stored u16 pixel values.
I guess it can be changed to u32 now, dropping all casts.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds