mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Add kernel 5.15 for RPI4 support
This commit is contained in:
parent
e961d478cd
commit
df88a19bbd
638 changed files with 239907 additions and 0 deletions
|
@ -0,0 +1,90 @@
|
|||
From f64d1bbe8a773f87ae1f4f68948b6935b64c8d75 Mon Sep 17 00:00:00 2001
|
||||
From: kFYatek <4499762+kFYatek@users.noreply.github.com>
|
||||
Date: Wed, 23 Jun 2021 01:11:26 +0200
|
||||
Subject: [PATCH 467/634] drm/vc4: Fix timings for interlaced modes
|
||||
|
||||
Increase the number of post-sync blanking lines on odd fields instead of
|
||||
decreasing it on even fields. This makes the total number of lines
|
||||
properly match the modelines.
|
||||
|
||||
Additionally fix the value of PV_VCONTROL_ODD_DELAY, which did not take
|
||||
pixels_per_clock into account, causing some displays to invert the
|
||||
fields when driven by bcm2711.
|
||||
|
||||
Signed-off-by: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
|
||||
---
|
||||
drivers/gpu/drm/vc4/vc4_crtc.c | 7 ++++---
|
||||
drivers/gpu/drm/vc4/vc4_hdmi.c | 12 ++++++------
|
||||
2 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
|
||||
index 5653476e8dcb..e21119f32552 100644
|
||||
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
|
||||
@@ -344,7 +344,8 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode
|
||||
PV_HORZB_HACTIVE));
|
||||
|
||||
CRTC_WRITE(PV_VERTA,
|
||||
- VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end,
|
||||
+ VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end +
|
||||
+ interlace,
|
||||
PV_VERTA_VBP) |
|
||||
VC4_SET_FIELD(mode->crtc_vsync_end - mode->crtc_vsync_start,
|
||||
PV_VERTA_VSYNC));
|
||||
@@ -356,7 +357,7 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode
|
||||
if (interlace) {
|
||||
CRTC_WRITE(PV_VERTA_EVEN,
|
||||
VC4_SET_FIELD(mode->crtc_vtotal -
|
||||
- mode->crtc_vsync_end - 1,
|
||||
+ mode->crtc_vsync_end,
|
||||
PV_VERTA_VBP) |
|
||||
VC4_SET_FIELD(mode->crtc_vsync_end -
|
||||
mode->crtc_vsync_start,
|
||||
@@ -376,7 +377,7 @@ static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encode
|
||||
PV_VCONTROL_CONTINUOUS |
|
||||
(is_dsi ? PV_VCONTROL_DSI : 0) |
|
||||
PV_VCONTROL_INTERLACE |
|
||||
- VC4_SET_FIELD(mode->htotal * pixel_rep / 2,
|
||||
+ VC4_SET_FIELD(mode->htotal * pixel_rep / (2 * ppc),
|
||||
PV_VCONTROL_ODD_DELAY));
|
||||
CRTC_WRITE(PV_VSYNCD_EVEN, 0);
|
||||
} else {
|
||||
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
index efffe21d2e73..502d5bea5f61 100644
|
||||
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
||||
@@ -840,12 +840,12 @@ static void vc4_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi,
|
||||
VC4_HDMI_VERTA_VFP) |
|
||||
VC4_SET_FIELD(mode->crtc_vdisplay, VC4_HDMI_VERTA_VAL));
|
||||
u32 vertb = (VC4_SET_FIELD(0, VC4_HDMI_VERTB_VSPO) |
|
||||
- VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end,
|
||||
+ VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end +
|
||||
+ interlaced,
|
||||
VC4_HDMI_VERTB_VBP));
|
||||
u32 vertb_even = (VC4_SET_FIELD(0, VC4_HDMI_VERTB_VSPO) |
|
||||
VC4_SET_FIELD(mode->crtc_vtotal -
|
||||
- mode->crtc_vsync_end -
|
||||
- interlaced,
|
||||
+ mode->crtc_vsync_end,
|
||||
VC4_HDMI_VERTB_VBP));
|
||||
unsigned long flags;
|
||||
|
||||
@@ -891,12 +891,12 @@ static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi,
|
||||
VC5_HDMI_VERTA_VFP) |
|
||||
VC4_SET_FIELD(mode->crtc_vdisplay, VC5_HDMI_VERTA_VAL));
|
||||
u32 vertb = (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) |
|
||||
- VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end,
|
||||
+ VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end +
|
||||
+ interlaced,
|
||||
VC4_HDMI_VERTB_VBP));
|
||||
u32 vertb_even = (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) |
|
||||
VC4_SET_FIELD(mode->crtc_vtotal -
|
||||
- mode->crtc_vsync_end -
|
||||
- interlaced,
|
||||
+ mode->crtc_vsync_end,
|
||||
VC4_HDMI_VERTB_VBP));
|
||||
unsigned long flags;
|
||||
unsigned char gcp;
|
||||
--
|
||||
2.33.1
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue