xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/display/intel_tc.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: MIT */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright © 2019 Intel Corporation
4*4882a593Smuzhiyun  */
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #ifndef __INTEL_TC_H__
7*4882a593Smuzhiyun #define __INTEL_TC_H__
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #include <linux/mutex.h>
10*4882a593Smuzhiyun #include <linux/types.h>
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun struct intel_digital_port;
13*4882a593Smuzhiyun struct intel_encoder;
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun bool intel_tc_port_connected(struct intel_encoder *encoder);
16*4882a593Smuzhiyun u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port);
17*4882a593Smuzhiyun u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port);
18*4882a593Smuzhiyun int intel_tc_port_fia_max_lane_count(struct intel_digital_port *dig_port);
19*4882a593Smuzhiyun void intel_tc_port_set_fia_lane_count(struct intel_digital_port *dig_port,
20*4882a593Smuzhiyun 				      int required_lanes);
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun void intel_tc_port_sanitize(struct intel_digital_port *dig_port);
23*4882a593Smuzhiyun void intel_tc_port_lock(struct intel_digital_port *dig_port);
24*4882a593Smuzhiyun void intel_tc_port_unlock(struct intel_digital_port *dig_port);
25*4882a593Smuzhiyun void intel_tc_port_get_link(struct intel_digital_port *dig_port,
26*4882a593Smuzhiyun 			    int required_lanes);
27*4882a593Smuzhiyun void intel_tc_port_put_link(struct intel_digital_port *dig_port);
28*4882a593Smuzhiyun bool intel_tc_port_ref_held(struct intel_digital_port *dig_port);
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun void intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy);
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun #endif /* __INTEL_TC_H__ */
33