| .. | .. |
|---|
| 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_ */ |
|---|