On Mon, 07 Apr 2025, Dmitry Baryshkov <dmitry.barysh...@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

Reply via email to