drm/vc4: hdmi: Simplify the connector state retrieval
authorMaxime Ripard <maxime@cerno.tech>
Thu, 27 Jan 2022 11:14:04 +0000 (12:14 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 2 Feb 2022 09:44:05 +0000 (10:44 +0100)
When we have the entire DRM state, retrieving the connector state only
requires the drm_connector pointer. Fortunately for us, we have
allocated it as a part of the vc4_hdmi structure, so we can retrieve get
a pointer by simply accessing our field in that structure.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220127111404.221882-1-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_hdmi.c

index e3121eb..aef0e78 100644 (file)
@@ -1018,30 +1018,15 @@ static void vc4_hdmi_recenter_fifo(struct vc4_hdmi *vc4_hdmi)
                  "VC4_HDMI_FIFO_CTL_RECENTER_DONE");
 }
 
-static struct drm_connector_state *
-vc4_hdmi_encoder_get_connector_state(struct drm_encoder *encoder,
-                                    struct drm_atomic_state *state)
-{
-       struct drm_connector_state *conn_state;
-       struct drm_connector *connector;
-       unsigned int i;
-
-       for_each_new_connector_in_state(state, connector, conn_state, i) {
-               if (conn_state->best_encoder == encoder)
-                       return conn_state;
-       }
-
-       return NULL;
-}
-
 static void vc4_hdmi_encoder_pre_crtc_configure(struct drm_encoder *encoder,
                                                struct drm_atomic_state *state)
 {
+       struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
+       struct drm_connector *connector = &vc4_hdmi->connector;
        struct drm_connector_state *conn_state =
-               vc4_hdmi_encoder_get_connector_state(encoder, state);
+               drm_atomic_get_new_connector_state(state, connector);
        struct vc4_hdmi_connector_state *vc4_conn_state =
                conn_state_to_vc4_hdmi_conn_state(conn_state);
-       struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode;
        unsigned long pixel_rate = vc4_conn_state->pixel_rate;
        unsigned long bvb_rate, hsm_rate;