diff --git a/device/testing/linux-sony-yuga/APKBUILD b/device/testing/linux-sony-yuga/APKBUILD index 996949fdc..f6ef1da51 100644 --- a/device/testing/linux-sony-yuga/APKBUILD +++ b/device/testing/linux-sony-yuga/APKBUILD @@ -6,7 +6,7 @@ pkgname=linux-sony-yuga pkgver=3.4.0 -pkgrel=13 +pkgrel=14 pkgdesc="Sony Xperia Z kernel fork" arch="armv7" _carch="arm" @@ -40,6 +40,7 @@ source=" kgsl_iommu_sync_lock.patch 02_reduce_lzo_compression.patch proc_fdinfo.patch + fix-video-argb-setting.patch " builddir="$srcdir/$_repository-$_commit" _outdir="out" @@ -72,4 +73,5 @@ f7e31cfe422696922aec52002e56c58103183966edee3bb8e1995d33f8d37b07c32280a8ecc21387 448bad436377a22c93ac401b9aecb504fe8e84b9511a3dd28f3cc125f3725cc1168ef03dee9f8f1085a9fbb7910b9e75cd25a382ccce626b427c8e27f7c17ffc kgsl_iommu_sync_lock.patch ef5b912c26fea4ab882592bdf7487942c64b123de8d25d08d976f29743f311742ee2f773bf2d110ddb5095f254dbb0bd4487c5cfce77311929082599199e7ebd 02_reduce_lzo_compression.patch 93f7870b2063d4ddb1f35dc4de4b213d83e0f54f59511b3050e880763f2374b3816ac0c879de76fe8a0b61d62c1753c5dda7326961164a8fcbfc8a9232309569 proc_fdinfo.patch +375434953b582eb2911a976abe03f86822f469f4fa2463d880b83a35f2209e3dfb0b6bb931f2330df831ee2122da4e73e927499e94ed61fa1bd188778a8c17b7 fix-video-argb-setting.patch " diff --git a/device/testing/linux-sony-yuga/fix-video-argb-setting.patch b/device/testing/linux-sony-yuga/fix-video-argb-setting.patch new file mode 100644 index 000000000..fa0781467 --- /dev/null +++ b/device/testing/linux-sony-yuga/fix-video-argb-setting.patch @@ -0,0 +1,79 @@ +diff --git a/drivers/video/msm/msm_fb.c b/drivers/video/msm/msm_fb.c +index 448cf1d2839..2b9e9675da5 100644 +--- a/drivers/video/msm/msm_fb.c ++++ b/drivers/video/msm/msm_fb.c +@@ -1459,16 +1459,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; +@@ -1478,16 +1478,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; +@@ -2357,15 +2357,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; +@@ -2462,7 +2462,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;