summaryrefslogtreecommitdiff
path: root/include/drm
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>2025-05-17 04:59:45 +0300
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>2025-05-21 01:35:21 +0300
commita74288c8ded7c34624e50b4aa8ca37ae6cc03df4 (patch)
treefc45ce5fefea46012f0db09b19627eef877c42cc /include/drm
parent65a2575a68e4ff03ba887b5aef679fc95405fcd2 (diff)
drm/display: bridge-connector: handle CEC adapters
Implement necessary glue code to let DRM bridge drivers to implement CEC adapters support. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Maxime Ripard <mripard@kernel.org> Link: https://lore.kernel.org/r/20250517-drm-hdmi-connector-cec-v6-9-35651db6f19b@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm_bridge.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h
index 0e5f6a007d53..cc9f7df38102 100644
--- a/include/drm/drm_bridge.h
+++ b/include/drm/drm_bridge.h
@@ -32,6 +32,7 @@
#include <drm/drm_mode_object.h>
#include <drm/drm_modes.h>
+struct cec_msg;
struct device_node;
struct drm_bridge;
@@ -737,6 +738,16 @@ struct drm_bridge_funcs {
struct drm_bridge *bridge,
bool enable, int direction);
+ int (*hdmi_cec_init)(struct drm_connector *connector,
+ struct drm_bridge *bridge);
+
+ int (*hdmi_cec_enable)(struct drm_bridge *bridge, bool enable);
+
+ int (*hdmi_cec_log_addr)(struct drm_bridge *bridge, u8 logical_addr);
+
+ int (*hdmi_cec_transmit)(struct drm_bridge *bridge, u8 attempts,
+ u32 signal_free_time, struct cec_msg *msg);
+
/**
* @dp_audio_startup:
*
@@ -912,6 +923,11 @@ enum drm_bridge_ops {
* to be present.
*/
DRM_BRIDGE_OP_HDMI_CEC_NOTIFIER = BIT(7),
+ /**
+ * @DRM_BRIDGE_OP_HDMI_CEC_ADAPTER: The bridge requires CEC notifier
+ * to be present.
+ */
+ DRM_BRIDGE_OP_HDMI_CEC_ADAPTER = BIT(8),
};
/**
@@ -1048,6 +1064,16 @@ struct drm_bridge {
*/
int hdmi_audio_dai_port;
+ /**
+ * @hdmi_cec_adapter_name: the name of the adapter to register
+ */
+ const char *hdmi_cec_adapter_name;
+
+ /**
+ * @hdmi_cec_available_las: number of logical addresses, CEC_MAX_LOG_ADDRS if unset
+ */
+ u8 hdmi_cec_available_las;
+
/** private: */
/**
* @hpd_mutex: Protects the @hpd_cb and @hpd_data fields.