874a309eed
Fixes the problem described in #211
91 lines
2.7 KiB
Diff
91 lines
2.7 KiB
Diff
From a23d549c51e38ad9fc481859326a786bc00baad8 Mon Sep 17 00:00:00 2001
|
|
From: Federico Amedeo Izzo <federico.izzo42@gmail.com>
|
|
Date: Fri, 22 Mar 2019 19:37:07 +0100
|
|
Subject: [PATCH] fix video argb setting
|
|
|
|
---
|
|
drivers/video/msm/mdss/mdss_fb.c | 34 ++++++++++++++++----------------
|
|
1 file changed, 17 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c
|
|
index 835f6fc9687..a598cbd72dc 100644
|
|
--- a/drivers/video/msm/mdss/mdss_fb.c
|
|
+++ b/drivers/video/msm/mdss/mdss_fb.c
|
|
@@ -1767,16 +1767,16 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd)
|
|
fix->xpanstep = 1;
|
|
fix->ypanstep = 1;
|
|
var->vmode = FB_VMODE_NONINTERLACED;
|
|
- var->blue.offset = 0;
|
|
- var->green.offset = 8;
|
|
- var->red.offset = 16;
|
|
+ var->blue.offset = 24;
|
|
+ var->green.offset = 16;
|
|
+ var->red.offset = 8;
|
|
var->blue.length = 8;
|
|
var->green.length = 8;
|
|
var->red.length = 8;
|
|
var->blue.msb_right = 0;
|
|
var->green.msb_right = 0;
|
|
var->red.msb_right = 0;
|
|
- var->transp.offset = 24;
|
|
+ var->transp.offset = 0;
|
|
var->transp.length = 8;
|
|
bpp = 4;
|
|
break;
|
|
@@ -1786,16 +1786,16 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd)
|
|
fix->xpanstep = 1;
|
|
fix->ypanstep = 1;
|
|
var->vmode = FB_VMODE_NONINTERLACED;
|
|
- var->blue.offset = 8;
|
|
- var->green.offset = 16;
|
|
- var->red.offset = 24;
|
|
+ var->blue.offset = 16;
|
|
+ var->green.offset = 8;
|
|
+ var->red.offset = 0;
|
|
var->blue.length = 8;
|
|
var->green.length = 8;
|
|
var->red.length = 8;
|
|
var->blue.msb_right = 0;
|
|
var->green.msb_right = 0;
|
|
var->red.msb_right = 0;
|
|
- var->transp.offset = 0;
|
|
+ var->transp.offset = 24;
|
|
var->transp.length = 8;
|
|
bpp = 4;
|
|
break;
|
|
@@ -2723,15 +2723,15 @@ static int mdss_fb_check_var(struct fb_var_screeninfo *var,
|
|
/* Figure out if the user meant RGBA or ARGB
|
|
and verify the position of the RGB components */
|
|
|
|
- if (var->transp.offset == 24) {
|
|
- if ((var->blue.offset != 0) ||
|
|
- (var->green.offset != 8) ||
|
|
- (var->red.offset != 16))
|
|
- return -EINVAL;
|
|
- } else if (var->transp.offset == 0) {
|
|
- if ((var->blue.offset != 8) ||
|
|
+ if (var->transp.offset == 0) {
|
|
+ if ((var->blue.offset != 24) ||
|
|
(var->green.offset != 16) ||
|
|
- (var->red.offset != 24))
|
|
+ (var->red.offset != 8))
|
|
+ return -EINVAL;
|
|
+ } else if (var->transp.offset == 24) {
|
|
+ if ((var->blue.offset != 16) ||
|
|
+ (var->green.offset != 8) ||
|
|
+ (var->red.offset != 0))
|
|
return -EINVAL;
|
|
} else
|
|
return -EINVAL;
|
|
@@ -2821,7 +2821,7 @@ static int mdss_fb_set_par(struct fb_info *info)
|
|
break;
|
|
|
|
case 32:
|
|
- if (var->transp.offset == 24)
|
|
+ if (var->transp.offset == 0)
|
|
mfd->fb_imgType = MDP_ARGB_8888;
|
|
else
|
|
mfd->fb_imgType = MDP_RGBA_8888;
|
|
--
|
|
2.21.0
|
|
|