samsung-i9505: fix argb video settings in kernel (#1005)
The RGB values were not calculated correctly. This patch was send to me by cascaro and works great. All credits goes to him. This also fixes the issue of Weston not automatically recognizing the good pixman type without setting it in the deviceinfo file.
This commit is contained in:
parent
fd7b2bb9ba
commit
b62a89e63e
2 changed files with 94 additions and 1 deletions
91
device/linux-samsung-i9505/03-fix-video-argb-setting.patch
Normal file
91
device/linux-samsung-i9505/03-fix-video-argb-setting.patch
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
From 79f928baf4e7b0fa8f36276b2f877da2d46a50d0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
|
||||||
|
Date: Mon, 11 Dec 2017 11:00:24 -0200
|
||||||
|
Subject: [PATCH] fix video argb setting
|
||||||
|
|
||||||
|
---
|
||||||
|
drivers/video/msm/msm_fb.c | 34 +++++++++++++++++-----------------
|
||||||
|
1 file changed, 17 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/video/msm/msm_fb.c b/drivers/video/msm/msm_fb.c
|
||||||
|
index 251a5cbb753d..dcd9262a88f4 100644
|
||||||
|
--- a/drivers/video/msm/msm_fb.c
|
||||||
|
+++ b/drivers/video/msm/msm_fb.c
|
||||||
|
@@ -1342,16 +1342,16 @@ static int msm_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;
|
||||||
|
@@ -1361,16 +1361,16 @@ static int msm_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;
|
||||||
|
@@ -2260,15 +2260,15 @@ static int msm_fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
|
||||||
|
/* 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;
|
||||||
|
@@ -2365,7 +2365,7 @@ static int msm_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.14.1
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
pkgname="linux-samsung-i9505"
|
pkgname="linux-samsung-i9505"
|
||||||
pkgver=3.4.112
|
pkgver=3.4.112
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="Samsung Galaxy S4 International kernel fork"
|
pkgdesc="Samsung Galaxy S4 International kernel fork"
|
||||||
arch="armhf"
|
arch="armhf"
|
||||||
_carch="arm"
|
_carch="arm"
|
||||||
|
@ -26,6 +26,7 @@ source="
|
||||||
patch_lifebook_detect.patch
|
patch_lifebook_detect.patch
|
||||||
patch_fsp_detect.patch
|
patch_fsp_detect.patch
|
||||||
02_gpu-msm-fix-gcc5-compile.patch
|
02_gpu-msm-fix-gcc5-compile.patch
|
||||||
|
03-fix-video-argb-setting.patch
|
||||||
gpu_msm2_fix_compile.patch
|
gpu_msm2_fix_compile.patch
|
||||||
"
|
"
|
||||||
builddir="$srcdir/${_repository}-${_commit}"
|
builddir="$srcdir/${_repository}-${_commit}"
|
||||||
|
@ -86,4 +87,5 @@ ea1d3b5a234fa565e3c1a792de48f4fc4e6023d281d303c8e319c7ef28edc5739ab0e4dea0139a41
|
||||||
36418ec3d31d1d6d9915afcf3d38d4549aeeb49c3825414b51b67db7a1ab6482f22d2723da3b258b671956809949278a51f6507df9b0052aec0bd0c59f56919a patch_lifebook_detect.patch
|
36418ec3d31d1d6d9915afcf3d38d4549aeeb49c3825414b51b67db7a1ab6482f22d2723da3b258b671956809949278a51f6507df9b0052aec0bd0c59f56919a patch_lifebook_detect.patch
|
||||||
9da951bb0391564f33bdb0a97c339997eda7b15ec2f160da8af237cc87c233b8c3dcdc1a12759e04d69d075ae9b0afaf726101ef356e788d7f4606a03db2e248 patch_fsp_detect.patch
|
9da951bb0391564f33bdb0a97c339997eda7b15ec2f160da8af237cc87c233b8c3dcdc1a12759e04d69d075ae9b0afaf726101ef356e788d7f4606a03db2e248 patch_fsp_detect.patch
|
||||||
7be03a9e78b7ac330a54b1f00509caa0621a95c0c55901878ad757f9dd69cc05ba2c8b5ea987063ae1224f92c4d090d515fa5d369e7755181a4871b0d0f82881 02_gpu-msm-fix-gcc5-compile.patch
|
7be03a9e78b7ac330a54b1f00509caa0621a95c0c55901878ad757f9dd69cc05ba2c8b5ea987063ae1224f92c4d090d515fa5d369e7755181a4871b0d0f82881 02_gpu-msm-fix-gcc5-compile.patch
|
||||||
|
e3083c260ed9c4fc0d83f43106700b6173876dbfae072f6e6696ac6785a4dc17771fbcb3e21601e04ed29a11bf0f7a2a09ad549375e0c34cea245c7f2e2bcbbd 03-fix-video-argb-setting.patch
|
||||||
8ab0ed40315a22b046e6250df7ad0f7834ed011598c85d34500b6fc047f1c830b998f9fa3b1d5150d98ba34f3924cd62576e0e7d3d62fcc9832319eafc533c96 gpu_msm2_fix_compile.patch"
|
8ab0ed40315a22b046e6250df7ad0f7834ed011598c85d34500b6fc047f1c830b998f9fa3b1d5150d98ba34f3924cd62576e0e7d3d62fcc9832319eafc533c96 gpu_msm2_fix_compile.patch"
|
||||||
|
|
Loading…
Reference in a new issue