The vc4_hdmi_connector was only used to switch between drm_connector to
drm_encoder. However, we can now use vc4_hdmi to do the switch, so that
structure is redundant.

Reviewed-by: Eric Anholt <e...@anholt.net>
Tested-by: Chanwoo Choi <cw00.c...@samsung.com>
Tested-by: Hoegeun Kwon <hoegeun.k...@samsung.com>
Tested-by: Stefan Wahren <stefan.wah...@i2se.com>
Signed-off-by: Maxime Ripard <max...@cerno.tech>
---
 drivers/gpu/drm/vc4/vc4_hdmi.c | 19 ++++++++-----------
 drivers/gpu/drm/vc4/vc4_hdmi.h | 23 ++---------------------
 2 files changed, 10 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 912560d58448..5c5684f91b69 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -189,13 +189,10 @@ static const struct drm_connector_helper_funcs 
vc4_hdmi_connector_helper_funcs =
 static int vc4_hdmi_connector_init(struct drm_device *dev,
                                   struct vc4_hdmi *vc4_hdmi)
 {
-       struct vc4_hdmi_connector *hdmi_connector = &vc4_hdmi->connector;
-       struct drm_connector *connector = &hdmi_connector->base;
+       struct drm_connector *connector = &vc4_hdmi->connector;
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
        int ret;
 
-       hdmi_connector->encoder = encoder;
-
        drm_connector_init_with_ddc(dev, connector,
                                    &vc4_hdmi_connector_funcs,
                                    DRM_MODE_CONNECTOR_HDMIA,
@@ -284,7 +281,7 @@ static void vc4_hdmi_set_avi_infoframe(struct drm_encoder 
*encoder)
 {
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder);
-       struct drm_connector *connector = &vc4_hdmi->connector.base;
+       struct drm_connector *connector = &vc4_hdmi->connector;
        struct drm_connector_state *cstate = connector->state;
        struct drm_crtc *crtc = encoder->crtc;
        const struct drm_display_mode *mode = &crtc->state->adjusted_mode;
@@ -663,7 +660,7 @@ static int vc4_hdmi_audio_startup(struct snd_pcm_substream 
*substream,
 {
        struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai);
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
-       struct drm_connector *connector = &vc4_hdmi->connector.base;
+       struct drm_connector *connector = &vc4_hdmi->connector;
        int ret;
 
        if (vc4_hdmi->audio.substream && vc4_hdmi->audio.substream != substream)
@@ -837,7 +834,7 @@ static int vc4_hdmi_audio_eld_ctl_info(struct snd_kcontrol 
*kcontrol,
 {
        struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
        struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component);
-       struct drm_connector *connector = &vc4_hdmi->connector.base;
+       struct drm_connector *connector = &vc4_hdmi->connector;
 
        uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
        uinfo->count = sizeof(connector->eld);
@@ -850,7 +847,7 @@ static int vc4_hdmi_audio_eld_ctl_get(struct snd_kcontrol 
*kcontrol,
 {
        struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
        struct vc4_hdmi *vc4_hdmi = snd_component_to_hdmi(component);
-       struct drm_connector *connector = &vc4_hdmi->connector.base;
+       struct drm_connector *connector = &vc4_hdmi->connector;
 
        memcpy(ucontrol->value.bytes.data, connector->eld,
               sizeof(connector->eld));
@@ -1304,7 +1301,7 @@ static int vc4_hdmi_bind(struct device *dev, struct 
device *master, void *data)
        if (ret < 0)
                goto err_destroy_conn;
 
-       cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector.base);
+       cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
        cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);
 
        HDMI_WRITE(VC4_HDMI_CPU_MASK_SET, 0xffffffff);
@@ -1341,7 +1338,7 @@ static int vc4_hdmi_bind(struct device *dev, struct 
device *master, void *data)
 err_delete_cec_adap:
        cec_delete_adapter(vc4_hdmi->cec_adap);
 err_destroy_conn:
-       vc4_hdmi_connector_destroy(&vc4_hdmi->connector.base);
+       vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
 #endif
 err_destroy_encoder:
        drm_encoder_cleanup(encoder);
@@ -1381,7 +1378,7 @@ static void vc4_hdmi_unbind(struct device *dev, struct 
device *master,
        vc4_hdmi = dev_get_drvdata(dev);
 
        cec_unregister_adapter(vc4_hdmi->cec_adap);
-       vc4_hdmi_connector_destroy(&vc4_hdmi->connector.base);
+       vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
        drm_encoder_cleanup(&vc4_hdmi->encoder.base.base);
 
        clk_disable_unprepare(vc4_hdmi->hsm_clock);
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h
index d43462789450..674541493909 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.h
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h
@@ -21,23 +21,6 @@ to_vc4_hdmi_encoder(struct drm_encoder *encoder)
        return container_of(encoder, struct vc4_hdmi_encoder, base.base);
 }
 
-/* VC4 HDMI connector KMS struct */
-struct vc4_hdmi_connector {
-       struct drm_connector base;
-
-       /* Since the connector is attached to just the one encoder,
-        * this is the reference to it so we can do the best_encoder()
-        * hook.
-        */
-       struct drm_encoder *encoder;
-};
-
-static inline struct vc4_hdmi_connector *
-to_vc4_hdmi_connector(struct drm_connector *connector)
-{
-       return container_of(connector, struct vc4_hdmi_connector, base);
-}
-
 /* HDMI audio information */
 struct vc4_hdmi_audio {
        struct snd_soc_card card;
@@ -58,7 +41,7 @@ struct vc4_hdmi {
        struct platform_device *pdev;
 
        struct vc4_hdmi_encoder encoder;
-       struct vc4_hdmi_connector connector;
+       struct drm_connector connector;
 
        struct i2c_adapter *ddc;
        void __iomem *hdmicore_regs;
@@ -81,9 +64,7 @@ struct vc4_hdmi {
 static inline struct vc4_hdmi *
 connector_to_vc4_hdmi(struct drm_connector *connector)
 {
-       struct vc4_hdmi_connector *_connector = 
to_vc4_hdmi_connector(connector);
-
-       return container_of(_connector, struct vc4_hdmi, connector);
+       return container_of(connector, struct vc4_hdmi, connector);
 }
 
 static inline struct vc4_hdmi *
-- 
git-series 0.9.1

Reply via email to