diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-17 15:02:39 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2022-05-17 15:11:23 +0200 |
commit | d5c4f24b2af991df2ec24df1a3f906049370f59f (patch) | |
tree | 640c4a349a2fce2b7dbee7ed0115726bd5d9c245 /target/linux/bcm27xx/patches-5.10/950-0644-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch | |
parent | 99ad84b6d9727a63f99a16e0b8386747262e3433 (diff) | |
download | upstream-d5c4f24b2af991df2ec24df1a3f906049370f59f.tar.gz upstream-d5c4f24b2af991df2ec24df1a3f906049370f59f.tar.bz2 upstream-d5c4f24b2af991df2ec24df1a3f906049370f59f.zip |
bcm27xx: remove linux 5.10 compatibility
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0644-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0644-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0644-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch b/target/linux/bcm27xx/patches-5.10/950-0644-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch deleted file mode 100644 index 3b8a0c097d..0000000000 --- a/target/linux/bcm27xx/patches-5.10/950-0644-drm-vc4-crtc-Rework-the-encoder-retrieval-code-again.patch +++ /dev/null @@ -1,96 +0,0 @@ -From f1712f12335eb07211fe2869e8daee521f558ae1 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard <maxime@cerno.tech> -Date: Mon, 21 Jun 2021 16:07:22 +0200 -Subject: [PATCH] drm/vc4: crtc: Rework the encoder retrieval code - (again) - -It turns out the encoder retrieval code, in addition to being -unnecessarily complicated, has a bug when only the planes and crtcs are -affected by a given atomic commit. - -Indeed, in such a case, either drm_atomic_get_old_connector_state or -drm_atomic_get_new_connector_state will return NULL and thus our encoder -retrieval code will not match on anything. - -We can however simplify the code by using drm_for_each_encoder_mask, the -drm_crtc_state storing the encoders a given CRTC is connected to -directly and without relying on any other state. - -Signed-off-by: Maxime Ripard <maxime@cerno.tech> ---- - drivers/gpu/drm/vc4/vc4_crtc.c | 30 +++++++++--------------------- - drivers/gpu/drm/vc4/vc4_drv.h | 4 +--- - 2 files changed, 10 insertions(+), 24 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_crtc.c -+++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -280,26 +280,14 @@ static u32 vc4_crtc_get_fifo_full_level_ - * same CRTC. - */ - struct drm_encoder *vc4_get_crtc_encoder(struct drm_crtc *crtc, -- struct drm_atomic_state *state, -- struct drm_connector_state *(*get_state)(struct drm_atomic_state *state, -- struct drm_connector *connector)) -+ struct drm_crtc_state *state) - { -- struct drm_connector *connector; -- struct drm_connector_list_iter conn_iter; -+ struct drm_encoder *encoder; - -- drm_connector_list_iter_begin(crtc->dev, &conn_iter); -- drm_for_each_connector_iter(connector, &conn_iter) { -- struct drm_connector_state *conn_state = get_state(state, connector); -- -- if (!conn_state) -- continue; -- -- if (conn_state->crtc == crtc) { -- drm_connector_list_iter_end(&conn_iter); -- return connector->encoder; -- } -- } -- drm_connector_list_iter_end(&conn_iter); -+ WARN_ON(hweight32(state->encoder_mask) > 1); -+ -+ drm_for_each_encoder_mask(encoder, crtc->dev, state->encoder_mask) -+ return encoder; - - return NULL; - } -@@ -534,8 +522,7 @@ static void vc4_crtc_atomic_disable(stru - struct drm_crtc_state *old_state = drm_atomic_get_old_crtc_state(state, - crtc); - struct vc4_crtc_state *old_vc4_state = to_vc4_crtc_state(old_state); -- struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, -- drm_atomic_get_old_connector_state); -+ struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, old_state); - struct drm_device *dev = crtc->dev; - - require_hvs_enabled(dev); -@@ -562,10 +549,11 @@ static void vc4_crtc_atomic_disable(stru - static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, - struct drm_atomic_state *state) - { -+ struct drm_crtc_state *new_state = drm_atomic_get_new_crtc_state(state, -+ crtc); - struct drm_device *dev = crtc->dev; - struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); -- struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, -- drm_atomic_get_new_connector_state); -+ struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, new_state); - struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); - - require_hvs_enabled(dev); ---- a/drivers/gpu/drm/vc4/vc4_drv.h -+++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -523,9 +523,7 @@ vc4_crtc_to_vc4_pv_data(const struct vc4 - } - - struct drm_encoder *vc4_get_crtc_encoder(struct drm_crtc *crtc, -- struct drm_atomic_state *state, -- struct drm_connector_state *(*get_state)(struct drm_atomic_state *state, -- struct drm_connector *connector)); -+ struct drm_crtc_state *state); - - struct vc4_crtc_state { - struct drm_crtc_state base; |