summaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-6.1/950-0010-drm-vc4-Refactor-mode-checking-logic.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-6.1/950-0010-drm-vc4-Refactor-mode-checking-logic.patch')
-rw-r--r--target/linux/bcm27xx/patches-6.1/950-0010-drm-vc4-Refactor-mode-checking-logic.patch82
1 files changed, 0 insertions, 82 deletions
diff --git a/target/linux/bcm27xx/patches-6.1/950-0010-drm-vc4-Refactor-mode-checking-logic.patch b/target/linux/bcm27xx/patches-6.1/950-0010-drm-vc4-Refactor-mode-checking-logic.patch
deleted file mode 100644
index ca67a9c4cd..0000000000
--- a/target/linux/bcm27xx/patches-6.1/950-0010-drm-vc4-Refactor-mode-checking-logic.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 3246c9abe5f4358cc5c60b8621485faa9883d06b Mon Sep 17 00:00:00 2001
-From: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
-Date: Thu, 15 Jul 2021 01:08:05 +0200
-Subject: [PATCH] drm/vc4: Refactor mode checking logic
-
-Replace drm_encoder_helper_funcs::atomic_check with
-drm_connector_helper_funcs::atomic_check - the former is not called
-during drm_mode_obj_set_property_ioctl(). Set crtc_state->mode_changed
-if TV norm changes even without explicit mode change. This makes things
-like "xrandr --output Composite-1 --set mode PAL-M" work properly.
-
-Signed-off-by: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
----
- drivers/gpu/drm/vc4/vc4_vec.c | 42 ++++++++++++++++++++++-------------
- 1 file changed, 26 insertions(+), 16 deletions(-)
-
---- a/drivers/gpu/drm/vc4/vc4_vec.c
-+++ b/drivers/gpu/drm/vc4/vc4_vec.c
-@@ -392,6 +392,31 @@ static void vc4_vec_connector_reset(stru
- connector->state->tv.mode = vc4_vec_get_default_mode(connector);
- }
-
-+static int vc4_vec_connector_atomic_check(struct drm_connector *conn,
-+ struct drm_atomic_state *state)
-+{
-+ struct drm_connector_state *old_state =
-+ drm_atomic_get_old_connector_state(state, conn);
-+ struct drm_connector_state *new_state =
-+ drm_atomic_get_new_connector_state(state, conn);
-+
-+ const struct vc4_vec_tv_mode *vec_mode =
-+ &vc4_vec_tv_modes[new_state->tv.mode];
-+
-+ if (new_state->crtc) {
-+ struct drm_crtc_state *crtc_state =
-+ drm_atomic_get_new_crtc_state(state, new_state->crtc);
-+
-+ if (!drm_mode_equal(vec_mode->mode, &crtc_state->mode))
-+ return -EINVAL;
-+
-+ if (old_state->tv.mode != new_state->tv.mode)
-+ crtc_state->mode_changed = true;
-+ }
-+
-+ return 0;
-+}
-+
- static const struct drm_connector_funcs vc4_vec_connector_funcs = {
- .detect = vc4_vec_connector_detect,
- .fill_modes = drm_helper_probe_single_connector_modes,
-@@ -402,6 +427,7 @@ static const struct drm_connector_funcs
-
- static const struct drm_connector_helper_funcs vc4_vec_connector_helper_funcs = {
- .get_modes = vc4_vec_connector_get_modes,
-+ .atomic_check = vc4_vec_connector_atomic_check,
- };
-
- static int vc4_vec_connector_init(struct drm_device *dev, struct vc4_vec *vec)
-@@ -550,23 +576,7 @@ err_dev_exit:
- drm_dev_exit(idx);
- }
-
--static int vc4_vec_encoder_atomic_check(struct drm_encoder *encoder,
-- struct drm_crtc_state *crtc_state,
-- struct drm_connector_state *conn_state)
--{
-- const struct vc4_vec_tv_mode *vec_mode;
--
-- vec_mode = &vc4_vec_tv_modes[conn_state->tv.mode];
--
-- if (conn_state->crtc &&
-- !drm_mode_equal(vec_mode->mode, &crtc_state->adjusted_mode))
-- return -EINVAL;
--
-- return 0;
--}
--
- static const struct drm_encoder_helper_funcs vc4_vec_encoder_helper_funcs = {
-- .atomic_check = vc4_vec_encoder_atomic_check,
- .atomic_disable = vc4_vec_encoder_disable,
- .atomic_enable = vc4_vec_encoder_enable,
- };