mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
a34255b795
Removed upstreamed: bcm27xx/patches-5.15/950-0446-drm-vc4-Fix-timings-for-VEC-modes.patch[1] Manually rebased: patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch All other patches automatically rebased 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.75&id=2810061452f9b748b096ad023d318690ca519aa3 Build system: x86_64 Build-tested: bcm2711/RPi4B, mt7622/RT3200 Run-tested: bcm2711/RPi4B, mt7622/RT3200 Signed-off-by: John Audia <therealgraysky@proton.me>
59 lines
1.8 KiB
Diff
59 lines
1.8 KiB
Diff
From decd9119a1379d04b875747405b78427b36b8d88 Mon Sep 17 00:00:00 2001
|
|
From: 6by9 <6by9@users.noreply.github.com>
|
|
Date: Fri, 1 Apr 2022 11:31:38 +0100
|
|
Subject: [PATCH] drm/vc4: Force trigger of dlist update on margins
|
|
change (#4970)
|
|
|
|
When the margins are changed, the dlist needs to be regenerated
|
|
with the changed updated dest regions for each of the planes.
|
|
|
|
Setting the zpos_changed flag is sufficient to trigger that
|
|
without doing a full modeset, therefore set it should the
|
|
margins be changed.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
drivers/gpu/drm/vc4/vc4_crtc.c | 14 ++++++++++----
|
|
drivers/gpu/drm/vc4/vc4_drv.h | 7 +------
|
|
2 files changed, 11 insertions(+), 10 deletions(-)
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
|
|
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
|
|
@@ -712,10 +712,16 @@ static int vc4_crtc_atomic_check(struct
|
|
if (conn_state->crtc != crtc)
|
|
continue;
|
|
|
|
- vc4_state->margins.left = conn_state->tv.margins.left;
|
|
- vc4_state->margins.right = conn_state->tv.margins.right;
|
|
- vc4_state->margins.top = conn_state->tv.margins.top;
|
|
- vc4_state->margins.bottom = conn_state->tv.margins.bottom;
|
|
+ if (memcmp(&vc4_state->margins, &conn_state->tv.margins,
|
|
+ sizeof(vc4_state->margins))) {
|
|
+ memcpy(&vc4_state->margins, &conn_state->tv.margins,
|
|
+ sizeof(vc4_state->margins));
|
|
+
|
|
+ /* Need to force the dlist entries for all planes to be
|
|
+ * updated so that the dest rectangles are changed.
|
|
+ */
|
|
+ crtc_state->zpos_changed = true;
|
|
+ }
|
|
break;
|
|
}
|
|
|
|
--- a/drivers/gpu/drm/vc4/vc4_drv.h
|
|
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
|
|
@@ -589,12 +589,7 @@ struct vc4_crtc_state {
|
|
bool txp_armed;
|
|
unsigned int assigned_channel;
|
|
|
|
- struct {
|
|
- unsigned int left;
|
|
- unsigned int right;
|
|
- unsigned int top;
|
|
- unsigned int bottom;
|
|
- } margins;
|
|
+ struct drm_connector_tv_margins margins;
|
|
|
|
unsigned long hvs_load;
|
|
|