.. | .. |
---|
58 | 58 | uint32_t IS_HBR3_CAPABLE:1; |
---|
59 | 59 | uint32_t IS_TPS3_CAPABLE:1; |
---|
60 | 60 | uint32_t IS_TPS4_CAPABLE:1; |
---|
61 | | - uint32_t IS_YCBCR_CAPABLE:1; |
---|
62 | 61 | uint32_t HDMI_6GB_EN:1; |
---|
| 62 | + uint32_t DP_IS_USB_C:1; |
---|
63 | 63 | } bits; |
---|
64 | 64 | uint32_t raw; |
---|
65 | 65 | } flags; |
---|
66 | 66 | |
---|
67 | 67 | enum dc_color_depth max_hdmi_deep_color; |
---|
68 | 68 | unsigned int max_hdmi_pixel_clock; |
---|
69 | | - bool ycbcr420_supported; |
---|
| 69 | + bool hdmi_ycbcr420_supported; |
---|
| 70 | + bool dp_ycbcr420_supported; |
---|
| 71 | + bool fec_supported; |
---|
70 | 72 | }; |
---|
71 | 73 | |
---|
72 | 74 | union dpcd_psr_configuration { |
---|
.. | .. |
---|
112 | 114 | struct encoder_feature_support features; |
---|
113 | 115 | enum transmitter transmitter; |
---|
114 | 116 | enum hpd_source_id hpd_source; |
---|
| 117 | + bool usbc_combo_phy; |
---|
| 118 | +}; |
---|
| 119 | + |
---|
| 120 | +struct link_enc_state { |
---|
| 121 | + |
---|
| 122 | + uint32_t dphy_fec_en; |
---|
| 123 | + uint32_t dphy_fec_ready_shadow; |
---|
| 124 | + uint32_t dphy_fec_active_status; |
---|
| 125 | + uint32_t dp_link_training_complete; |
---|
| 126 | + |
---|
115 | 127 | }; |
---|
116 | 128 | |
---|
117 | 129 | struct link_encoder_funcs { |
---|
| 130 | + void (*read_state)( |
---|
| 131 | + struct link_encoder *enc, struct link_enc_state *s); |
---|
118 | 132 | bool (*validate_output_with_stream)( |
---|
119 | 133 | struct link_encoder *enc, const struct dc_stream_state *stream); |
---|
120 | 134 | void (*hw_init)(struct link_encoder *enc); |
---|
.. | .. |
---|
131 | 145 | void (*enable_dp_mst_output)(struct link_encoder *enc, |
---|
132 | 146 | const struct dc_link_settings *link_settings, |
---|
133 | 147 | enum clock_source_id clock_source); |
---|
| 148 | + void (*enable_lvds_output)(struct link_encoder *enc, |
---|
| 149 | + enum clock_source_id clock_source, |
---|
| 150 | + uint32_t pixel_clock); |
---|
134 | 151 | void (*disable_output)(struct link_encoder *link_enc, |
---|
135 | 152 | enum signal_type signal); |
---|
136 | 153 | void (*dp_set_lane_settings)(struct link_encoder *enc, |
---|
.. | .. |
---|
150 | 167 | void (*enable_hpd)(struct link_encoder *enc); |
---|
151 | 168 | void (*disable_hpd)(struct link_encoder *enc); |
---|
152 | 169 | bool (*is_dig_enabled)(struct link_encoder *enc); |
---|
| 170 | + unsigned int (*get_dig_frontend)(struct link_encoder *enc); |
---|
153 | 171 | void (*destroy)(struct link_encoder **enc); |
---|
| 172 | + |
---|
| 173 | + void (*fec_set_enable)(struct link_encoder *enc, |
---|
| 174 | + bool enable); |
---|
| 175 | + |
---|
| 176 | + void (*fec_set_ready)(struct link_encoder *enc, |
---|
| 177 | + bool ready); |
---|
| 178 | + |
---|
| 179 | + bool (*fec_is_active)(struct link_encoder *enc); |
---|
| 180 | + bool (*is_in_alt_mode) (struct link_encoder *enc); |
---|
| 181 | + |
---|
| 182 | + void (*get_max_link_cap)(struct link_encoder *enc, |
---|
| 183 | + struct dc_link_settings *link_settings); |
---|
| 184 | + |
---|
| 185 | + enum signal_type (*get_dig_mode)( |
---|
| 186 | + struct link_encoder *enc); |
---|
154 | 187 | }; |
---|
155 | 188 | |
---|
156 | 189 | #endif /* LINK_ENCODER_H_ */ |
---|