linux-xiaomi-lavender: add patch to fix framebuffer on X11 (MR 1142)
Signed-off-by: Danct12 <danct12@disroot.org> [ci:skip-build]
This commit is contained in:
parent
9f6c41c832
commit
7282dcdcbb
@ -0,0 +1,118 @@
|
|||||||
|
From fe5131b250c373d152b7e73895f17846d1f1e6bd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ion Agorria <ion@agorria.com>
|
||||||
|
Date: Thu, 24 Jan 2019 18:52:58 +0100
|
||||||
|
Subject: [PATCH] mdss: update fb mode at mdss_panelinfo_to_fb_var to fix Xorg
|
||||||
|
|
||||||
|
When mdss_panelinfo_to_fb_var is called at
|
||||||
|
screen unblank it updates the values in fb_info->var,
|
||||||
|
meanwhile the fb_info->mode and modelist remain with old
|
||||||
|
values set at registering the fb causing mismatch when
|
||||||
|
Xorg attempts to set mode.
|
||||||
|
---
|
||||||
|
drivers/video/fbdev/msm/mdss_fb.c | 25 ++++++++++++++++------
|
||||||
|
drivers/video/fbdev/msm/mdss_fb.h | 3 +--
|
||||||
|
drivers/video/fbdev/msm/mdss_mdp_overlay.c | 2 +-
|
||||||
|
3 files changed, 20 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c
|
||||||
|
index 3e632076639d..2d2b37bffa5d 100644
|
||||||
|
--- a/drivers/video/fbdev/msm/mdss_fb.c
|
||||||
|
+++ b/drivers/video/fbdev/msm/mdss_fb.c
|
||||||
|
@@ -2339,7 +2339,7 @@ static void mdss_panel_validate_debugfs_info(struct msm_fb_data_type *mfd)
|
||||||
|
if (is_panel_split(mfd) && pdata->next)
|
||||||
|
mdss_fb_validate_split(pdata->panel_info.xres,
|
||||||
|
pdata->next->panel_info.xres, mfd);
|
||||||
|
- mdss_panelinfo_to_fb_var(panel_info, var);
|
||||||
|
+ mdss_panelinfo_to_fb_var(mfd);
|
||||||
|
if (mdss_fb_send_panel_event(mfd, MDSS_EVENT_CHECK_PARAMS,
|
||||||
|
panel_info))
|
||||||
|
pr_err("Failed to send panel event CHECK_PARAMS\n");
|
||||||
|
@@ -2452,7 +2452,7 @@ static int mdss_fb_blank_unblank(struct msm_fb_data_type *mfd)
|
||||||
|
* programmed in the controller.
|
||||||
|
* Update this info in the upstream structs.
|
||||||
|
*/
|
||||||
|
- mdss_panelinfo_to_fb_var(panel_info, var);
|
||||||
|
+ mdss_panelinfo_to_fb_var(mfd);
|
||||||
|
|
||||||
|
/* Start the work thread to signal idle time */
|
||||||
|
if (mfd->idle_time)
|
||||||
|
@@ -3196,7 +3196,7 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
- mdss_panelinfo_to_fb_var(panel_info, var);
|
||||||
|
+ mdss_panelinfo_to_fb_var(mfd);
|
||||||
|
|
||||||
|
fix->type = panel_info->is_3d_panel;
|
||||||
|
if (mfd->mdp.fb_stride)
|
||||||
|
@@ -3900,7 +3900,7 @@ static void mdss_fb_update_resolution(struct msm_fb_data_type *mfd,
|
||||||
|
}
|
||||||
|
var->xres_virtual = var->xres;
|
||||||
|
var->yres_virtual = pinfo->yres * mfd->fb_page;
|
||||||
|
- mdss_panelinfo_to_fb_var(pinfo, var);
|
||||||
|
+ mdss_panelinfo_to_fb_var(mfd);
|
||||||
|
}
|
||||||
|
|
||||||
|
int mdss_fb_atomic_commit(struct fb_info *info,
|
||||||
|
@@ -4149,9 +4149,14 @@ static void mdss_fb_var_to_panelinfo(struct fb_var_screeninfo *var,
|
||||||
|
pinfo->lcdc.v_polarity = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void mdss_panelinfo_to_fb_var(struct mdss_panel_info *pinfo,
|
||||||
|
- struct fb_var_screeninfo *var)
|
||||||
|
+void mdss_panelinfo_to_fb_var(struct msm_fb_data_type *mfd)
|
||||||
|
{
|
||||||
|
+ if (!mfd)
|
||||||
|
+ return -EINVAL;
|
||||||
|
+
|
||||||
|
+ struct mdss_panel_info *pinfo = mfd->panel_info;
|
||||||
|
+ struct fb_info *fbi = mfd->fbi;
|
||||||
|
+ struct fb_var_screeninfo *var = &fbi->var;
|
||||||
|
u32 frame_rate;
|
||||||
|
|
||||||
|
var->xres = mdss_fb_get_panel_xres(pinfo);
|
||||||
|
@@ -4185,7 +4190,13 @@ void mdss_panelinfo_to_fb_var(struct mdss_panel_info *pinfo,
|
||||||
|
if (pinfo->physical_height)
|
||||||
|
var->height = pinfo->physical_height;
|
||||||
|
|
||||||
|
- pr_debug("ScreenInfo: res=%dx%d [%d, %d] [%d, %d]\n",
|
||||||
|
+ //Hack to update current fbi->mode according to fbi->var when var is updated from panel info
|
||||||
|
+ if (fbi->mode) {
|
||||||
|
+ printk("Updating mdss fb mode from fb var\n");
|
||||||
|
+ fb_var_to_videomode(fbi->mode, var);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ printk("ScreenInfo: res=%dx%d [%d, %d] [%d, %d]\n",
|
||||||
|
var->xres, var->yres, var->left_margin,
|
||||||
|
var->right_margin, var->upper_margin,
|
||||||
|
var->lower_margin);
|
||||||
|
diff --git a/drivers/video/fbdev/msm/mdss_fb.h b/drivers/video/fbdev/msm/mdss_fb.h
|
||||||
|
index c6e8d37d7bc8..bbd17e1c72e2 100644
|
||||||
|
--- a/drivers/video/fbdev/msm/mdss_fb.h
|
||||||
|
+++ b/drivers/video/fbdev/msm/mdss_fb.h
|
||||||
|
@@ -484,8 +484,7 @@ int mdss_fb_async_position_update(struct fb_info *info,
|
||||||
|
|
||||||
|
u32 mdss_fb_get_mode_switch(struct msm_fb_data_type *mfd);
|
||||||
|
void mdss_fb_report_panel_dead(struct msm_fb_data_type *mfd);
|
||||||
|
-void mdss_panelinfo_to_fb_var(struct mdss_panel_info *pinfo,
|
||||||
|
- struct fb_var_screeninfo *var);
|
||||||
|
+void mdss_panelinfo_to_fb_var(struct msm_fb_data_type *mfd);
|
||||||
|
void mdss_fb_calc_fps(struct msm_fb_data_type *mfd);
|
||||||
|
void mdss_fb_idle_pc(struct msm_fb_data_type *mfd);
|
||||||
|
#endif /* MDSS_FB_H */
|
||||||
|
diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
|
||||||
|
index 81218319d58b..cee8a8e5e449 100644
|
||||||
|
--- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c
|
||||||
|
+++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
|
||||||
|
@@ -3534,7 +3534,7 @@ int mdss_mdp_dfps_update_params(struct msm_fb_data_type *mfd,
|
||||||
|
* data, so any further call to get the screen
|
||||||
|
* info has the updated timings.
|
||||||
|
*/
|
||||||
|
- mdss_panelinfo_to_fb_var(&pdata->panel_info, var);
|
||||||
|
+ mdss_panelinfo_to_fb_var(mfd);
|
||||||
|
|
||||||
|
MDSS_XLOG(dfps);
|
||||||
|
mutex_unlock(&mdp5_data->dfps_lock);
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
@ -2,11 +2,12 @@
|
|||||||
# Kernel config based on: arch/arm64/configs/lavender-perf_defconfig
|
# Kernel config based on: arch/arm64/configs/lavender-perf_defconfig
|
||||||
# Original defconfig was: arch/arm64/configs/sdm660-perf_defconfig
|
# Original defconfig was: arch/arm64/configs/sdm660-perf_defconfig
|
||||||
# Contributor: Alexey Min <alexey.min@gmail.com>
|
# Contributor: Alexey Min <alexey.min@gmail.com>
|
||||||
|
# Contributor: Danct12 <danct12@disroot.org>
|
||||||
# Maintainer: Alexey Min <alexey.min@gmail.com>
|
# Maintainer: Alexey Min <alexey.min@gmail.com>
|
||||||
|
|
||||||
pkgname=linux-xiaomi-lavender
|
pkgname=linux-xiaomi-lavender
|
||||||
pkgver=4.4.156
|
pkgver=4.4.156
|
||||||
pkgrel=0
|
pkgrel=1
|
||||||
pkgdesc="Xiaomi Redmi Note 7 kernel fork"
|
pkgdesc="Xiaomi Redmi Note 7 kernel fork"
|
||||||
arch="aarch64"
|
arch="aarch64"
|
||||||
_carch="arm64"
|
_carch="arm64"
|
||||||
@ -35,6 +36,7 @@ source="
|
|||||||
0003-Add-config-option-to-fix-bootloader-cmdline-args.patch
|
0003-Add-config-option-to-fix-bootloader-cmdline-args.patch
|
||||||
0004-Reduce-battery-spam-in-dmesg.patch
|
0004-Reduce-battery-spam-in-dmesg.patch
|
||||||
0005-Adds-and-sets-BGRA-as-default.patch
|
0005-Adds-and-sets-BGRA-as-default.patch
|
||||||
|
0006-mdss-panel-to-fb-var.patch
|
||||||
"
|
"
|
||||||
|
|
||||||
builddir="$srcdir/$_repository-$_commit"
|
builddir="$srcdir/$_repository-$_commit"
|
||||||
@ -64,4 +66,5 @@ sha512sums="797586ac2757c9b27a5f8fc1c1ff460d959b32de322ff00509d1b3b060dbcc909a15
|
|||||||
a8713d22404a5e2c0d2add3deb4cb033e972bd1983e10f1557d4de640c1329af50be2bfd92dc3cf76df711a6b4a422b920da76c2d6c4435e3624c85f7d07ae52 0002-Fix-TRACE_INCLUDE_PATH-paths.patch
|
a8713d22404a5e2c0d2add3deb4cb033e972bd1983e10f1557d4de640c1329af50be2bfd92dc3cf76df711a6b4a422b920da76c2d6c4435e3624c85f7d07ae52 0002-Fix-TRACE_INCLUDE_PATH-paths.patch
|
||||||
9ce867c4254b537ef5d2485780c26b72da8a3a8767ba71557f3b48d6c550e0e14c8c3e575b31bf65d2878f08a8a4926e48a1c2f1be534bf80a7a57f58313b0fd 0003-Add-config-option-to-fix-bootloader-cmdline-args.patch
|
9ce867c4254b537ef5d2485780c26b72da8a3a8767ba71557f3b48d6c550e0e14c8c3e575b31bf65d2878f08a8a4926e48a1c2f1be534bf80a7a57f58313b0fd 0003-Add-config-option-to-fix-bootloader-cmdline-args.patch
|
||||||
066ac4b77388fd2001df227db216da9f435e06d29ce1be59d8a8923613f3390e154cb5b6cb7785614a3a4b12c01d9f1b84dfd09b884dede3fa6d0e5b1ddb9045 0004-Reduce-battery-spam-in-dmesg.patch
|
066ac4b77388fd2001df227db216da9f435e06d29ce1be59d8a8923613f3390e154cb5b6cb7785614a3a4b12c01d9f1b84dfd09b884dede3fa6d0e5b1ddb9045 0004-Reduce-battery-spam-in-dmesg.patch
|
||||||
f2a97a9500b6155a11f2341a8fd4b083ceb25a17d656c7975e34b9f3d8bacb495ae687f823db5fd07ddee27b2d95021f193bfadb5274185334255cda12bc85ce 0005-Adds-and-sets-BGRA-as-default.patch"
|
f2a97a9500b6155a11f2341a8fd4b083ceb25a17d656c7975e34b9f3d8bacb495ae687f823db5fd07ddee27b2d95021f193bfadb5274185334255cda12bc85ce 0005-Adds-and-sets-BGRA-as-default.patch
|
||||||
|
d5b868c64b8ebddcf74cb3aa478f30f0897af1e14e4fc42d977921104a6c568cc0bf36fc8a3b0f538cd3ca2ebf59244fdf23186a903259e5acc14d1c4ef4ccc3 0006-mdss-panel-to-fb-var.patch"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user