1c349dbc7Sjsg /* SPDX-License-Identifier: MIT */ 2c349dbc7Sjsg /* 3c349dbc7Sjsg * Copyright © 2019 Intel Corporation 4c349dbc7Sjsg */ 5c349dbc7Sjsg 6c349dbc7Sjsg #ifndef __INTEL_LSPCON_H__ 7c349dbc7Sjsg #define __INTEL_LSPCON_H__ 8c349dbc7Sjsg 9c349dbc7Sjsg #include <linux/types.h> 10c349dbc7Sjsg 11c349dbc7Sjsg struct drm_connector; 12c349dbc7Sjsg struct drm_connector_state; 13c349dbc7Sjsg struct intel_crtc_state; 14c349dbc7Sjsg struct intel_digital_port; 15c349dbc7Sjsg struct intel_encoder; 16c349dbc7Sjsg struct intel_lspcon; 17c349dbc7Sjsg 18ad8b1aafSjsg bool lspcon_init(struct intel_digital_port *dig_port); 19*5ca02815Sjsg void lspcon_detect_hdr_capability(struct intel_lspcon *lspcon); 20*5ca02815Sjsg void lspcon_resume(struct intel_digital_port *dig_port); 21c349dbc7Sjsg void lspcon_wait_pcon_mode(struct intel_lspcon *lspcon); 22c349dbc7Sjsg void lspcon_write_infoframe(struct intel_encoder *encoder, 23c349dbc7Sjsg const struct intel_crtc_state *crtc_state, 24c349dbc7Sjsg unsigned int type, 25c349dbc7Sjsg const void *buf, ssize_t len); 26c349dbc7Sjsg void lspcon_read_infoframe(struct intel_encoder *encoder, 27c349dbc7Sjsg const struct intel_crtc_state *crtc_state, 28c349dbc7Sjsg unsigned int type, 29c349dbc7Sjsg void *frame, ssize_t len); 30c349dbc7Sjsg void lspcon_set_infoframes(struct intel_encoder *encoder, 31c349dbc7Sjsg bool enable, 32c349dbc7Sjsg const struct intel_crtc_state *crtc_state, 33c349dbc7Sjsg const struct drm_connector_state *conn_state); 34c349dbc7Sjsg u32 lspcon_infoframes_enabled(struct intel_encoder *encoder, 35c349dbc7Sjsg const struct intel_crtc_state *pipe_config); 36*5ca02815Sjsg u32 intel_lspcon_infoframes_enabled(struct intel_encoder *encoder, 37*5ca02815Sjsg const struct intel_crtc_state *pipe_config); 38*5ca02815Sjsg void hsw_write_infoframe(struct intel_encoder *encoder, 39*5ca02815Sjsg const struct intel_crtc_state *crtc_state, 40*5ca02815Sjsg unsigned int type, 41*5ca02815Sjsg const void *frame, ssize_t len); 42*5ca02815Sjsg void hsw_read_infoframe(struct intel_encoder *encoder, 43*5ca02815Sjsg const struct intel_crtc_state *crtc_state, 44*5ca02815Sjsg unsigned int type, 45*5ca02815Sjsg void *frame, ssize_t len); 46c349dbc7Sjsg 47c349dbc7Sjsg #endif /* __INTEL_LSPCON_H__ */ 48