samsung-j1mini3g: fix X11 and framebuffer colors (!753)
[ci:skip-build]: already built successfully in CI
This commit is contained in:
parent
b1db5f1a53
commit
1a1a703fe9
4 changed files with 46 additions and 3 deletions
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
pkgname="linux-samsung-j1mini3g"
|
pkgname="linux-samsung-j1mini3g"
|
||||||
pkgver=3.10.106
|
pkgver=3.10.106
|
||||||
pkgrel=0
|
pkgrel=1
|
||||||
pkgdesc="Samsung Galaxy J1 mini kernel fork"
|
pkgdesc="Samsung Galaxy J1 mini kernel fork"
|
||||||
arch="armv7"
|
arch="armv7"
|
||||||
_carch="arm"
|
_carch="arm"
|
||||||
|
@ -27,6 +27,8 @@ source="
|
||||||
gcc7-give-up-on-ilog2-const-optimizations.patch
|
gcc7-give-up-on-ilog2-const-optimizations.patch
|
||||||
gcc8-fix-put-user.patch
|
gcc8-fix-put-user.patch
|
||||||
fix-dts.patch
|
fix-dts.patch
|
||||||
|
sprdfb-fix-swapped-colors.patch
|
||||||
|
sprdfb-check-for-buffering.patch
|
||||||
"
|
"
|
||||||
builddir="$srcdir/${_repository}-${_commit}"
|
builddir="$srcdir/${_repository}-${_commit}"
|
||||||
|
|
||||||
|
@ -69,7 +71,9 @@ package() {
|
||||||
}
|
}
|
||||||
|
|
||||||
sha512sums="f1686df6ee6e1f24c6460295c830b67b2146ab5b34ead2291fa92c3f83ba12884db875b0c6e31ff305ff64a82636648ee237c13f09c99e158449457285352388 linux-samsung-j1mini3g-6a377f7c43a84b578df39300dcce9fb9cb387a21.tar.gz
|
sha512sums="f1686df6ee6e1f24c6460295c830b67b2146ab5b34ead2291fa92c3f83ba12884db875b0c6e31ff305ff64a82636648ee237c13f09c99e158449457285352388 linux-samsung-j1mini3g-6a377f7c43a84b578df39300dcce9fb9cb387a21.tar.gz
|
||||||
6828c7c82b11f98bfc185b50c186922ca555026a2c648cfd460a5262f879e278f32aa467b8bdfdca2827d7f0c8fc9342a859b105fa76ea9345ff640b2064cd26 config-samsung-j1mini3g.armhf
|
6828c7c82b11f98bfc185b50c186922ca555026a2c648cfd460a5262f879e278f32aa467b8bdfdca2827d7f0c8fc9342a859b105fa76ea9345ff640b2064cd26 config-samsung-j1mini3g.armv7
|
||||||
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
|
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
|
||||||
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
|
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
|
||||||
a4c04f8f0bd70ab8090faf08fe17592fe275a6be6d5a052f3dc3405062b8d11f08aba637d2ca5cecefcfecf64738a1e1704042ef747ecbef845579dba9b43b5d fix-dts.patch"
|
a4c04f8f0bd70ab8090faf08fe17592fe275a6be6d5a052f3dc3405062b8d11f08aba637d2ca5cecefcfecf64738a1e1704042ef747ecbef845579dba9b43b5d fix-dts.patch
|
||||||
|
6836001b24508d413a059f19b0c6f6f547037f68886c22159ad51be91d1a089e3d1d9ed79c3c62724648df7f810cd81d96a83f4a34368b373524b649e5539656 sprdfb-fix-swapped-colors.patch
|
||||||
|
e33ed12de874c1c8bc9231aea3b0389b18ee0ff804e39c0f47d9cbf657ea19015370d6114846c2d142fbdb88f472f0e65811c53b9b335feb8ae2f30dffdf4846 sprdfb-check-for-buffering.patch"
|
||||||
|
|
24
device/linux-samsung-j1mini3g/sprdfb-check-for-buffering.patch
Executable file
24
device/linux-samsung-j1mini3g/sprdfb-check-for-buffering.patch
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
sprdfb_check_var() has two problems:
|
||||||
|
I) it is not buffering-aware, which all Spreadtrum devices use;
|
||||||
|
II) it checks values that are already in yres_virtual, not those that we
|
||||||
|
are trying to overwrite.
|
||||||
|
Those problems stop X11 and charging-sdl from working properly.
|
||||||
|
X11 error:
|
||||||
|
(EE) FBDEV(0): FBIOPUT_VSCREENINFO: Invalid argument
|
||||||
|
This patch fixes first problem, however, the correct way is fixing
|
||||||
|
the second one, as this might have less side effects.
|
||||||
|
|
||||||
|
diff --git a/drivers/video/sprdfb/sprdfb_main.c b/drivers/video/sprdfb/sprdfb_main.c
|
||||||
|
index 43876285..751616a1 100644
|
||||||
|
--- a/drivers/video/sprdfb/sprdfb_main.c
|
||||||
|
+++ b/drivers/video/sprdfb/sprdfb_main.c
|
||||||
|
@@ -531,7 +531,8 @@ static int sprdfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fb)
|
||||||
|
if ((var->xres != fb->var.xres) ||
|
||||||
|
(var->yres != fb->var.yres) ||
|
||||||
|
(var->xres_virtual != fb->var.xres_virtual) ||
|
||||||
|
- (var->yres_virtual != fb->var.yres_virtual) ||
|
||||||
|
+ // (var->yres_virtual != fb->var.yres_virtual) ||
|
||||||
|
+ (fb->var.yres_virtual % var->yres_virtual != 0) ||
|
||||||
|
(var->xoffset != fb->var.xoffset) ||
|
||||||
|
#ifndef BIT_PER_PIXEL_SURPPORT
|
||||||
|
(var->bits_per_pixel != fb->var.bits_per_pixel) ||
|
15
device/linux-samsung-j1mini3g/sprdfb-fix-swapped-colors.patch
Executable file
15
device/linux-samsung-j1mini3g/sprdfb-fix-swapped-colors.patch
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
By default, color channels on Spreadtrum devices are swapped. This patch makes kernel use BGR565, which has normal color channels.
|
||||||
|
|
||||||
|
diff --git a/drivers/video/sprdfb/sprdfb_main.c b/drivers/video/sprdfb/sprdfb_main.c
|
||||||
|
index 3e6c70d..80fceb9 100644
|
||||||
|
--- a/drivers/video/sprdfb/sprdfb_main.c
|
||||||
|
+++ b/drivers/video/sprdfb/sprdfb_main.c
|
||||||
|
@@ -51,7 +51,7 @@ enum{
|
||||||
|
SPRD_IN_DATA_TYPE_LIMIT
|
||||||
|
};
|
||||||
|
|
||||||
|
-#define SPRDFB_IN_DATA_TYPE SPRD_IN_DATA_TYPE_ABGR888
|
||||||
|
+#define SPRDFB_IN_DATA_TYPE SPRD_IN_DATA_TYPE_BGR565
|
||||||
|
|
||||||
|
#ifdef CONFIG_FB_TRIPLE_FRAMEBUFFER
|
||||||
|
#define FRAMEBUFFER_NR (3)
|
Loading…
Reference in a new issue