mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 14:14:24 +08:00
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. Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com> Reviewed-by: Sui Jingfeng <sui.jingfeng@linux.dev> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240527-kms-hdmi-connector-state-v15-3-c5af16c3aae2@kernel.org Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
parent
68aaa74da5
commit
54cb39e229
@ -70,3 +70,10 @@ config DRM_DISPLAY_HDMI_HELPER
|
||||
depends on DRM_DISPLAY_HELPER
|
||||
help
|
||||
DRM display helpers for HDMI.
|
||||
|
||||
config DRM_DISPLAY_HDMI_STATE_HELPER
|
||||
bool
|
||||
depends on DRM_DISPLAY_HELPER
|
||||
depends on DRM_DISPLAY_HDMI_HELPER
|
||||
help
|
||||
DRM KMS state helpers for HDMI.
|
||||
|
@ -14,6 +14,8 @@ drm_display_helper-$(CONFIG_DRM_DISPLAY_HDCP_HELPER) += drm_hdcp_helper.o
|
||||
drm_display_helper-$(CONFIG_DRM_DISPLAY_HDMI_HELPER) += \
|
||||
drm_hdmi_helper.o \
|
||||
drm_scdc_helper.o
|
||||
drm_display_helper-$(CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER) += \
|
||||
drm_hdmi_state_helper.o
|
||||
drm_display_helper-$(CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV) += drm_dp_aux_dev.o
|
||||
drm_display_helper-$(CONFIG_DRM_DISPLAY_DP_AUX_CEC) += drm_dp_cec.o
|
||||
|
||||
|
41
drivers/gpu/drm/display/drm_hdmi_state_helper.c
Normal file
41
drivers/gpu/drm/display/drm_hdmi_state_helper.c
Normal file
@ -0,0 +1,41 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include <drm/drm_atomic.h>
|
||||
#include <drm/drm_connector.h>
|
||||
|
||||
#include <drm/display/drm_hdmi_state_helper.h>
|
||||
|
||||
/**
|
||||
* __drm_atomic_helper_connector_hdmi_reset() - Initializes all HDMI @drm_connector_state resources
|
||||
* @connector: DRM connector
|
||||
* @new_conn_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_conn_state)
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL(__drm_atomic_helper_connector_hdmi_reset);
|
||||
|
||||
/**
|
||||
* 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);
|
16
include/drm/display/drm_hdmi_state_helper.h
Normal file
16
include/drm/display/drm_hdmi_state_helper.h
Normal file
@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: MIT */
|
||||
|
||||
#ifndef DRM_HDMI_STATE_HELPER_H_
|
||||
#define DRM_HDMI_STATE_HELPER_H_
|
||||
|
||||
struct drm_atomic_state;
|
||||
struct drm_connector;
|
||||
struct drm_connector_state;
|
||||
|
||||
void __drm_atomic_helper_connector_hdmi_reset(struct drm_connector *connector,
|
||||
struct drm_connector_state *new_conn_state);
|
||||
|
||||
int drm_atomic_helper_connector_hdmi_check(struct drm_connector *connector,
|
||||
struct drm_atomic_state *state);
|
||||
|
||||
#endif // DRM_HDMI_STATE_HELPER_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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user