1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2019 Intel Corporation
4 */
5
6#ifndef __INTEL_LSPCON_H__
7#define __INTEL_LSPCON_H__
8
9#include <linux/types.h>
10
11struct drm_connector_state;
12struct intel_crtc_state;
13struct intel_digital_port;
14struct intel_encoder;
15
16bool intel_lspcon_init(struct intel_digital_port *dig_port);
17bool intel_lspcon_active(struct intel_digital_port *dig_port);
18bool intel_lspcon_detect_hdr_capability(struct intel_digital_port *dig_port);
19void intel_lspcon_resume(struct intel_digital_port *dig_port);
20void intel_lspcon_wait_pcon_mode(struct intel_digital_port *dig_port);
21u32 intel_lspcon_infoframes_enabled(struct intel_encoder *encoder,
22 const struct intel_crtc_state *pipe_config);
23
24/* digital port infoframes hooks */
25void lspcon_write_infoframe(struct intel_encoder *encoder,
26 const struct intel_crtc_state *crtc_state,
27 unsigned int type,
28 const void *buf, ssize_t len);
29void lspcon_read_infoframe(struct intel_encoder *encoder,
30 const struct intel_crtc_state *crtc_state,
31 unsigned int type,
32 void *frame, ssize_t len);
33void lspcon_set_infoframes(struct intel_encoder *encoder,
34 bool enable,
35 const struct intel_crtc_state *crtc_state,
36 const struct drm_connector_state *conn_state);
37u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
38 const struct intel_crtc_state *pipe_config);
39
40#endif /* __INTEL_LSPCON_H__ */
41