main/linux-postmarketos-allwinner: fix display framerate on pinephone (MR 1661)

This patches from the megi solves the issue of the MIPI-DSI panels
framerate being at 2/3rd of actual or expected rate.

[ci:skip-build]: already built successfully in CI
This commit is contained in:
Bhushan Shah 2020-10-29 18:21:44 +05:30 committed by clayton craft
parent 4247902156
commit 5efdbd13fa
No known key found for this signature in database
GPG key ID: 23A30DA6D406B355
3 changed files with 79 additions and 2 deletions

View file

@ -0,0 +1,36 @@
From 29533cb13f24e26e7ddbc044597a3020437352e2 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Thu, 29 Oct 2020 01:13:49 +0100
Subject: [PATCH 1/2] drm/sun4i: Fix mipi-dsi panel framerate being 2/3 of the
expected value
This happens on Pinephone and on Pinetab. Both use MIPI-DSI panels.
On Pinephone framerate is 36.6 instead of expected 55.
On Pinetab the similar 2/3 ratio holds.
Myabe there's a bug in BSP and dclk_div should really be 6 instead of 4.
Signed-off-by: Ondrej Jirman <megous@megous.com>
---
drivers/gpu/drm/sun4i/sun4i_tcon.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index ab06f5e1fc952..1c56b4fb9ac89 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -398,8 +398,8 @@ static void sun4i_tcon0_mode_set_cpu(struct sun4i_tcon *tcon,
u32 block_space, start_delay;
u32 tcon_div;
- tcon->dclk_min_div = SUN6I_DSI_TCON_DIV;
- tcon->dclk_max_div = SUN6I_DSI_TCON_DIV;
+ tcon->dclk_min_div = 6;
+ tcon->dclk_max_div = 6;
sun4i_tcon0_mode_set_common(tcon, mode);
--
2.29.1

View file

@ -0,0 +1,37 @@
From e8be2e4affb906af7137437ac62fb3912609c11e Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Thu, 29 Oct 2020 04:55:40 +0100
Subject: [PATCH 2/2] drm: panel: st7703: Fix xbd599 timings to make refresh
rate exactly 60.006Hz
Signed-off-by: Ondrej Jirman <megous@megous.com>
---
drivers/gpu/drm/panel/panel-sitronix-st7703.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
index 4287aabb9007a..070ef2baef6f2 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -334,14 +334,14 @@ static int xbd599_init_sequence(struct st7703 *ctx)
static const struct drm_display_mode xbd599_mode = {
.hdisplay = 720,
- .hsync_start = 720 + 40,
- .hsync_end = 720 + 40 + 40,
- .htotal = 720 + 40 + 40 + 40,
+ .hsync_start = 720 + 30,
+ .hsync_end = 720 + 30 + 28,
+ .htotal = 720 + 30 + 28 + 30,
.vdisplay = 1440,
.vsync_start = 1440 + 18,
.vsync_end = 1440 + 18 + 10,
.vtotal = 1440 + 18 + 10 + 17,
- .clock = 69000,
+ .clock = 72000,
.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
.width_mm = 68,
.height_mm = 136,
--
2.29.1

View file

@ -6,7 +6,7 @@ _flavor=postmarketos-allwinner
_config="config-$_flavor.$CARCH"
pkgname=linux-$_flavor
pkgver=5.9.1_git20201019
pkgrel=2
pkgrel=3
_tag="orange-pi-5.9-20201019-1553"
pkgdesc="Kernel fork with Pine64 patches (megi's tree, slightly patched)"
arch="aarch64"
@ -37,6 +37,8 @@ source="$pkgname-$_tag.tar.gz::https://github.com/megous/linux/archive/$_tag.tar
0009-dts-pinephone-remove-bt-firmware-suffix.patch
0010-usb-musb-avoid-the-hang-in-musb_pm_runtime_check_ses.patch
0011-media-i2c-ov5640-implement-autofocus.patch
0012-drm-sun4i-Fix-mipi-dsi-panel-framerate-being-2-3-of-.patch
0013-drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-.patch
"
subpackages="$pkgname-dev"
builddir="$srcdir/linux-$_tag"
@ -89,4 +91,6 @@ ab72dffc08e56c7ee96f87b30454f38eed6c4deb041f4cc562bdbf358a66821a698517ba9b095e32
5bb1352b0bf35ff72eb9729248162faa37b0f1fe28c5cf9bd39b54148ff7750ca53d5934d6a128002a7a190180ef8e626733f260db722831ac35e3a5c1b25661 0008-pinetab-bluetooth.patch
a392e7b04dc411986b90adf8774ce8f4b77617993e7ca068ea202aa3c925d0ec3bdbd4c395505696816dce6284955bf96901d75833a9b6ca9df544386b07ff65 0009-dts-pinephone-remove-bt-firmware-suffix.patch
f222b41c7900609210795c062b6d9f2fd79c9989f9a604d1d67f10e915b3fc18fcfc712f364b343b506461ff717ac9de2b5ec0edd5d69b2c73f9a5461ab4a919 0010-usb-musb-avoid-the-hang-in-musb_pm_runtime_check_ses.patch
69d7f6e2123d78910930302a4628c8af5c9baeee4e88873f15334c13dc8ed53425f1aa47c16b1a0ad8525ac396576d0dd5cdd962d645f1273837229ad817f3f3 0011-media-i2c-ov5640-implement-autofocus.patch"
69d7f6e2123d78910930302a4628c8af5c9baeee4e88873f15334c13dc8ed53425f1aa47c16b1a0ad8525ac396576d0dd5cdd962d645f1273837229ad817f3f3 0011-media-i2c-ov5640-implement-autofocus.patch
65210b347455e91cf85fce043ca031ee139500da89bcef05a7c97326705b14a1c59ef1277282fee5507998a6408e4c3b945126cbbf648a3ce69d3c68a995aae2 0012-drm-sun4i-Fix-mipi-dsi-panel-framerate-being-2-3-of-.patch
669cf3aaf1c101a924808185bda51f735fadad9e6f5c0485e368347312a36427f7b53430bb08798b8ceb1a661a3ca4a36dd1787cb074a3b40bbb6af02dd32618 0013-drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-.patch"