From: Dave Stevenson <dave.stevenson@raspberrypi.com>
To: Maxime Ripard <mripard@kernel.org>,
Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
dri-devel@lists.freedesktop.org
Cc: Dave Stevenson <dave.stevenson@raspberrypi.com>
Subject: [PATCH v2 03/31] drm/vc4: crtc: Force trigger of dlist update on margins change
Date: Fri, 21 Jun 2024 16:20:27 +0100 [thread overview]
Message-ID: <20240621152055.4180873-4-dave.stevenson@raspberrypi.com> (raw)
In-Reply-To: <20240621152055.4180873-1-dave.stevenson@raspberrypi.com>
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 | 15 +++++++++++----
drivers/gpu/drm/vc4/vc4_drv.h | 7 +------
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
index 8b5a7e5eb146..1d54176cf811 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -735,10 +735,17 @@ int vc4_crtc_atomic_check(struct drm_crtc *crtc,
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;
}
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 697e9b7c9d0e..717fd1140561 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -598,12 +598,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;
--
2.34.1
next prev parent reply other threads:[~2024-06-21 15:21 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-21 15:20 [PATCH v2 00/31] Preparatory patches for BCM2712 (Pi5) support Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 01/31] drm/vc4: plane: Keep fractional source coords inside state Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 02/31] drm/vc4: plane: Handle fractional coordinates using the phase field Dave Stevenson
2024-06-21 15:20 ` Dave Stevenson [this message]
2024-06-21 15:20 ` [PATCH v2 04/31] drm/vc4: hdmi: Avoid log spam for audio start failure Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 05/31] drm/vc4: plane: Add support for YUV444 formats Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 06/31] drm/vc4: hvs: Set AXI panic modes for the HVS Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 07/31] drm/vc4: hdmi: Increase audio MAI fifo dreq threshold Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 08/31] drm/vc4: hdmi: Warn if writing to an unknown HDMI register Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 09/31] drm/vc4: hvs: More logging for dlist generation Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 10/31] drm/vc4: hvs: Print error if we fail an allocation Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 11/31] drm/vc4: plane: Add more debugging for LBM allocation Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 12/31] drm/vc4: plane: Use return variable in atomic_check Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 13/31] drm/vc4: crtc: Move assigned_channel to a variable Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 14/31] drm/vc4: hvs: Don't write gamma luts on 2711 Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 15/31] drm/vc4: plane: YUV planes require vertical scaling to always be enabled Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 16/31] drm/vc4: hdmi: Avoid hang with debug registers when suspended Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 17/31] drm/vc4: hvs: Fix dlist debug not resetting the next entry pointer Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 18/31] drm/vc4: hvs: Remove incorrect limit from hvs_dlist debugfs function Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 19/31] drm/vc4: hvs: Remove ABORT_ON_EMPTY flag Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 20/31] drm/vc4: Introduce generation number enum Dave Stevenson
2024-10-07 11:59 ` [v2,20/31] " Marek Szyprowski
2024-10-07 18:13 ` Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 21/31] drm/vc4: Make v3d paths unavailable on any generation newer than vc4 Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 22/31] drm/vc4: hvs: Use switch statement to simplify vc4_hvs_get_fifo_from_output Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 23/31] drm/vc4: hvs: Create hw_init function Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 24/31] drm/vc4: hvs: Create cob_init function Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 25/31] drm/vc4: hvs: Rename hvs_regs list Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 26/31] drm/vc4: plane: Change ptr0_offset to an array Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 27/31] drm/vc4: hvs: Rework LBM alignment Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 28/31] drm/vc4: hvs: Change prototype of __vc4_hvs_alloc to pass registers Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 29/31] drm/vc4: plane: Move the buffer offset out of the vc4_plane_state Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 30/31] drm/vc4: hvs: Enable SCALER_CONTROL early in HVS init Dave Stevenson
2024-06-21 15:20 ` [PATCH v2 31/31] drm/vc4: hvs: Correct logic on stopping an HVS channel Dave Stevenson
2024-06-26 13:33 ` [PATCH v2 00/31] Preparatory patches for BCM2712 (Pi5) support Maxime Ripard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240621152055.4180873-4-dave.stevenson@raspberrypi.com \
--to=dave.stevenson@raspberrypi.com \
--cc=airlied@gmail.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel-list@raspberrypi.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.