From 6156f79976823a4340b419a4ce0989231711d1cf Mon Sep 17 00:00:00 2001 From: omame Date: Mon, 26 Sep 2022 15:29:41 +0200 Subject: [PATCH] samsung-j6primelte: "Fix" EINVAL on FBIOPUT_VSCREENINFO (MR 3466) This isn't really a fix, but the device's framebuffer has only one mode and it's enough to get Xorg up and running. [ci:skip-build]: already built successfully in CI --- .../testing/linux-samsung-j6primelte/APKBUILD | 6 ++- .../fix_framebuffer_invalid_argument.patch | 40 +++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 device/testing/linux-samsung-j6primelte/fix_framebuffer_invalid_argument.patch diff --git a/device/testing/linux-samsung-j6primelte/APKBUILD b/device/testing/linux-samsung-j6primelte/APKBUILD index bb4c6a645..7a41ec5c2 100644 --- a/device/testing/linux-samsung-j6primelte/APKBUILD +++ b/device/testing/linux-samsung-j6primelte/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: omame pkgname=linux-samsung-j6primelte pkgver=3.18.124 -pkgrel=3 +pkgrel=4 pkgdesc="Samsung Galaxy J6+ kernel (LineageOS 18.1)" arch="armv7" _carch="arm" @@ -28,7 +28,8 @@ source=" $pkgname-$_commit.tar.gz::https://github.com/samsung-msm8937-devs/$_repository/archive/$_commit.tar.gz $_config gcc10-extern_YYLOC_global_declaration.patch - samsung_defex_lsm_use_relative_path.patch" + samsung_defex_lsm_use_relative_path.patch + fix_framebuffer_invalid_argument.patch" builddir="$srcdir/$_repository-$_commit" _outdir="out" @@ -56,4 +57,5 @@ c321711852dfdbc1b36cb507c57e11fb72d3bef2f62d99b1ee84939eaf6b34bb8821a85afaaf0a24 8dcda81717d0464041dcb6c8d3786b1577ddd848e36bb0eccc17545b2a5d60e5dc42e3ece77d66aa9c51790417f1b7148273f919d490cfa4ed6b270df8aed5f6 config-samsung-j6primelte.armv7 2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb gcc10-extern_YYLOC_global_declaration.patch 1be8126e7a3e38827536eb5dc22fce6a713322a1e564abaac571a240844f13d8fde7f9e5d0b4c803c2a2f9fef9d2d35b3a57448a944270cc8f105112ee65acb9 samsung_defex_lsm_use_relative_path.patch +28de7c1a4c386b1db4c5660ee686992aae6fea5fb4740c3bf327157e1093e0521c255ebd07ea226c1b4248004a35ab5ed022317d8fdac4e053d0b361827e768b fix_framebuffer_invalid_argument.patch " diff --git a/device/testing/linux-samsung-j6primelte/fix_framebuffer_invalid_argument.patch b/device/testing/linux-samsung-j6primelte/fix_framebuffer_invalid_argument.patch new file mode 100644 index 000000000..ae7f8e30b --- /dev/null +++ b/device/testing/linux-samsung-j6primelte/fix_framebuffer_invalid_argument.patch @@ -0,0 +1,40 @@ +From: omame +Subject: [PATCH] samsung-j6primelte: "Fix" EINVAL on FBIOPUT_VSCREENINFO + +This isn't really a fix, but the device's framebuffer has only one mode and it's enough to get Xorg up and running. +--- + drivers/video/msm/mdss/mdss_fb.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c +index 9755534da948..5b7d900e36b9 100644 +--- a/drivers/video/msm/mdss/mdss_fb.c ++++ b/drivers/video/msm/mdss/mdss_fb.c +@@ -3995,13 +3995,13 @@ static int mdss_fb_check_var(struct fb_var_screeninfo *var, + if (var->yoffset > (var->yres_virtual - var->yres)) + return -EINVAL; + +- if (info->mode) { ++ /* if (info->mode) { + const struct fb_videomode *mode; + + mode = fb_match_mode(var, &info->modelist); + if (mode == NULL) + return -EINVAL; +- } else if (mfd->panel_info && !(var->activate & FB_ACTIVATE_TEST)) { ++ } else */ if (mfd->panel_info && !(var->activate & FB_ACTIVATE_TEST)) { + struct mdss_panel_info *panel_info; + int rc; + panel_info = kzalloc(sizeof(struct mdss_panel_info), +@@ -4148,7 +4148,7 @@ static int mdss_fb_set_par(struct fb_info *info) + + mode = fb_match_mode(var, &info->modelist); + if (!mode) +- return -EINVAL; ++ mode = info->mode; + + pr_debug("found mode: %s\n", mode->name); + +-- +2.37.3 +