lkml.org 
[lkml]   [2020]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 71/89] drm/vc4: hdmi: Remove vc4_hdmi_connector
    Date
    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.

    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    ---
    drivers/gpu/drm/vc4/vc4_hdmi.c | 17 +++++++----------
    drivers/gpu/drm/vc4/vc4_hdmi.h | 23 ++---------------------
    2 files changed, 9 insertions(+), 31 deletions(-)

    diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
    index 8049a5ba291f..bbe7b0b3e017 100644
    --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
    +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
    @@ -188,13 +188,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,
    @@ -292,7 +289,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;
    @@ -659,7 +656,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)
    @@ -833,7 +830,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);
    @@ -846,7 +843,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));
    @@ -1335,7 +1332,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:
    vc4_hdmi_encoder_destroy(encoder);
    @@ -1359,7 +1356,7 @@ static void vc4_hdmi_unbind(struct device *dev, struct device *master,
    struct vc4_hdmi *vc4_hdmi = snd_soc_card_get_drvdata(card);

    cec_unregister_adapter(vc4_hdmi->cec_adap);
    - vc4_hdmi_connector_destroy(&vc4_hdmi->connector.base);
    + vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
    vc4_hdmi_encoder_destroy(&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 749a807cd1f3..88794136d2e4 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;
    @@ -56,7 +39,7 @@ struct vc4_hdmi {
    struct platform_device *pdev;

    struct vc4_hdmi_encoder encoder;
    - struct vc4_hdmi_connector connector;
    + struct drm_connector connector;

    struct vc4_hdmi_audio audio;

    @@ -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
    \
     
     \ /
      Last update: 2020-02-24 10:12    [W:4.433 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site