lkml.org 
[lkml]   [2023]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v4 08/45] drm/connector: hdmi: Create an HDMI sub-state
    The next features we will need to share across drivers will need to
    store some parameters for drivers to use, such as the selected output
    format.

    Let's create a new connector sub-state dedicated to HDMI controllers,
    that will eventually store everything we need.

    Signed-off-by: Maxime Ripard <mripard@kernel.org>
    ---
    drivers/gpu/drm/drm_atomic_state_helper.c | 35 +++++++++++++++++++++++++++++++
    include/drm/drm_atomic_state_helper.h | 4 ++++
    include/drm/drm_connector.h | 7 +++++++
    3 files changed, 46 insertions(+)

    diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c
    index 784e63d70a42..29cb64e9cf28 100644
    --- a/drivers/gpu/drm/drm_atomic_state_helper.c
    +++ b/drivers/gpu/drm/drm_atomic_state_helper.c
    @@ -556,6 +556,22 @@ void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector)
    }
    EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);

    +/**
    + * __drm_atomic_helper_connector_hdmi_reset() - Initializes all HDMI @drm_connector_state resources
    + * @connector: DRM connector
    + * @new_state: connector state to reset
    + *
    + * Initializes all HDMI resources from a @drm_connector_state without
    + * actually allocating it. This is useful for HDMI drivers, in
    + * combination with __drm_atomic_helper_connector_reset() or
    + * drm_atomic_helper_connector_reset().
    + */
    +void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector,
    + struct drm_connector_state *new_state)
    +{
    +}
    +EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset);
    +
    /**
    * drm_atomic_helper_connector_tv_check - Validate an analog TV connector state
    * @connector: DRM Connector
    @@ -605,6 +621,25 @@ int drm_atomic_helper_connector_tv_check(struct drm_connector *connector,
    }
    EXPORT_SYMBOL(drm_atomic_helper_connector_tv_check);

    +/**
    + * drm_atomic_helper_connector_hdmi_check() - Helper to check HDMI connector atomic state
    + * @connector: DRM Connector
    + * @state: the DRM State object
    + *
    + * Provides a default connector state check handler for HDMI connectors.
    + * Checks that a desired connector update is valid, and updates various
    + * fields of derived state.
    + *
    + * RETURNS:
    + * Zero on success, or an errno code otherwise.
    + */
    +int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector,
    + struct drm_atomic_state *state)
    +{
    + return 0;
    +}
    +EXPORT_SYMBOL(drm_atomic_helper_connector_hdmi_check);
    +
    /**
    * __drm_atomic_helper_connector_duplicate_state - copy atomic connector state
    * @connector: connector object
    diff --git a/include/drm/drm_atomic_state_helper.h b/include/drm/drm_atomic_state_helper.h
    index b9740edb2658..d59d2b3aef9a 100644
    --- a/include/drm/drm_atomic_state_helper.h
    +++ b/include/drm/drm_atomic_state_helper.h
    @@ -71,7 +71,11 @@ void __drm_atomic_helper_connector_state_reset(struct drm_connector_state *conn_
    void __drm_atomic_helper_connector_reset(struct drm_connector *connector,
    struct drm_connector_state *conn_state);
    void drm_atomic_helper_connector_reset(struct drm_connector *connector);
    +void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector,
    + struct drm_connector_state *new_state);
    void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector);
    +int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector,
    + struct drm_atomic_state *state);
    int drm_atomic_helper_connector_tv_check(struct drm_connector *connector,
    struct drm_atomic_state *state);
    void drm_atomic_helper_connector_tv_margins_reset(struct drm_connector *connector);
    diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
    index 4491c4c2fb6e..000a2a156619 100644
    --- a/include/drm/drm_connector.h
    +++ b/include/drm/drm_connector.h
    @@ -1031,6 +1031,13 @@ struct drm_connector_state {
    * DRM blob property for HDR output metadata
    */
    struct drm_property_blob *hdr_output_metadata;
    +
    + /**
    + * @hdmi: HDMI-related variable and properties. Filled by
    + * @drm_atomic_helper_connector_hdmi_check().
    + */
    + struct {
    + } hdmi;
    };

    /**
    --
    2.41.0

    \
     
     \ /
      Last update: 2023-11-28 11:25    [W:6.598 / U:0.572 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site