[PATCH v5 06/11] drm/display: add CEC helpers code
Jani Nikula
jani.nikula at linux.intel.com
Wed Apr 30 11:25:21 UTC 2025
On Mon, 07 Apr 2025, Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com> wrote:
> diff --git a/include/drm/display/drm_hdmi_cec_helper.h b/include/drm/display/drm_hdmi_cec_helper.h
> new file mode 100644
> index 0000000000000000000000000000000000000000..39bb6d12acb35f539a4a6cd1b61ce97bf4e063ab
> --- /dev/null
> +++ b/include/drm/display/drm_hdmi_cec_helper.h
> @@ -0,0 +1,74 @@
> +/* SPDX-License-Identifier: MIT */
> +
> +#ifndef DRM_DISPLAY_HDMI_CEC_HELPER
> +#define DRM_DISPLAY_HDMI_CEC_HELPER
> +
> +#include <drm/drm_connector.h>
Is there anything in this file that requires that include?
> +
> +#include <linux/types.h>
> +
> +struct drm_connector;
> +
> +struct cec_msg;
> +struct device;
> +
> +struct drm_connector_hdmi_cec_funcs {
> + /**
> + * @init: perform hardware-specific initialization before registering the CEC adapter
> + */
> + int (*init)(struct drm_connector *connector);
> +
> + /**
> + * @uninit: perform hardware-specific teardown for the CEC adapter
> + */
> + void (*uninit)(struct drm_connector *connector);
> +
> + /**
> + * @enable: enable or disable CEC adapter
> + */
> + int (*enable)(struct drm_connector *connector, bool enable);
> +
> + /**
> + * @log_addr: set adapter's logical address, can be called multiple
> + * times if adapter supports several LAs
> + */
> + int (*log_addr)(struct drm_connector *connector, u8 logical_addr);
> +
> + /**
> + * @transmit: start transmission of the specified CEC message
> + */
> + int (*transmit)(struct drm_connector *connector, u8 attempts,
> + u32 signal_free_time, struct cec_msg *msg);
> +};
> +
> +int drm_connector_hdmi_cec_register(struct drm_connector *connector,
> + const struct drm_connector_hdmi_cec_funcs *funcs,
> + const char *name,
> + u8 available_las,
> + struct device *dev);
> +
> +void drm_connector_hdmi_cec_received_msg(struct drm_connector *connector,
> + struct cec_msg *msg);
> +
> +void drm_connector_hdmi_cec_transmit_done(struct drm_connector *connector,
> + u8 status,
> + u8 arb_lost_cnt, u8 nack_cnt,
> + u8 low_drive_cnt, u8 error_cnt);
> +
> +void drm_connector_hdmi_cec_transmit_attempt_done(struct drm_connector *connector,
> + u8 status);
> +
> +#if IS_ENABLED(CONFIG_DRM_DISPLAY_HDMI_CEC_NOTIFIER_HELPER)
> +int drm_connector_hdmi_cec_notifier_register(struct drm_connector *connector,
> + const char *port_name,
> + struct device *dev);
> +#else
> +static inline int drm_connector_hdmi_cec_notifier_register(struct drm_connector *connector,
> + const char *port_name,
> + struct device *dev)
> +{
> + return 0;
> +}
> +#endif
> +
> +#endif
--
Jani Nikula, Intel
More information about the dri-devel
mailing list