| .. | .. |
|---|
| 55 | 55 | CS_SF(PHYPLLA_PIXCLK_RESYNC_CNTL, PHYPLLA_DCCG_DEEP_COLOR_CNTL, mask_sh),\ |
|---|
| 56 | 56 | CS_SF(PHYPLLA_PIXCLK_RESYNC_CNTL, PHYPLLA_PIXCLK_DOUBLE_RATE_ENABLE, mask_sh) |
|---|
| 57 | 57 | |
|---|
| 58 | | -#if defined(CONFIG_DRM_AMD_DC_DCN1_0) |
|---|
| 58 | +#define CS_COMMON_REG_LIST_DCN2_0(index, pllid) \ |
|---|
| 59 | + SRI(PIXCLK_RESYNC_CNTL, PHYPLL, pllid),\ |
|---|
| 60 | + SRII(PHASE, DP_DTO, 0),\ |
|---|
| 61 | + SRII(PHASE, DP_DTO, 1),\ |
|---|
| 62 | + SRII(PHASE, DP_DTO, 2),\ |
|---|
| 63 | + SRII(PHASE, DP_DTO, 3),\ |
|---|
| 64 | + SRII(PHASE, DP_DTO, 4),\ |
|---|
| 65 | + SRII(PHASE, DP_DTO, 5),\ |
|---|
| 66 | + SRII(MODULO, DP_DTO, 0),\ |
|---|
| 67 | + SRII(MODULO, DP_DTO, 1),\ |
|---|
| 68 | + SRII(MODULO, DP_DTO, 2),\ |
|---|
| 69 | + SRII(MODULO, DP_DTO, 3),\ |
|---|
| 70 | + SRII(MODULO, DP_DTO, 4),\ |
|---|
| 71 | + SRII(MODULO, DP_DTO, 5),\ |
|---|
| 72 | + SRII(PIXEL_RATE_CNTL, OTG, 0),\ |
|---|
| 73 | + SRII(PIXEL_RATE_CNTL, OTG, 1),\ |
|---|
| 74 | + SRII(PIXEL_RATE_CNTL, OTG, 2),\ |
|---|
| 75 | + SRII(PIXEL_RATE_CNTL, OTG, 3),\ |
|---|
| 76 | + SRII(PIXEL_RATE_CNTL, OTG, 4),\ |
|---|
| 77 | + SRII(PIXEL_RATE_CNTL, OTG, 5) |
|---|
| 78 | + |
|---|
| 79 | +#define CS_COMMON_REG_LIST_DCN2_1(index, pllid) \ |
|---|
| 80 | + SRI(PIXCLK_RESYNC_CNTL, PHYPLL, pllid),\ |
|---|
| 81 | + SRII(PHASE, DP_DTO, 0),\ |
|---|
| 82 | + SRII(PHASE, DP_DTO, 1),\ |
|---|
| 83 | + SRII(PHASE, DP_DTO, 2),\ |
|---|
| 84 | + SRII(PHASE, DP_DTO, 3),\ |
|---|
| 85 | + SRII(MODULO, DP_DTO, 0),\ |
|---|
| 86 | + SRII(MODULO, DP_DTO, 1),\ |
|---|
| 87 | + SRII(MODULO, DP_DTO, 2),\ |
|---|
| 88 | + SRII(MODULO, DP_DTO, 3),\ |
|---|
| 89 | + SRII(PIXEL_RATE_CNTL, OTG, 0),\ |
|---|
| 90 | + SRII(PIXEL_RATE_CNTL, OTG, 1),\ |
|---|
| 91 | + SRII(PIXEL_RATE_CNTL, OTG, 2),\ |
|---|
| 92 | + SRII(PIXEL_RATE_CNTL, OTG, 3) |
|---|
| 93 | + |
|---|
| 94 | +#if defined(CONFIG_DRM_AMD_DC_DCN3_0) |
|---|
| 95 | +#define CS_COMMON_REG_LIST_DCN3_0(index, pllid) \ |
|---|
| 96 | + SRI(PIXCLK_RESYNC_CNTL, PHYPLL, pllid),\ |
|---|
| 97 | + SRII(PHASE, DP_DTO, 0),\ |
|---|
| 98 | + SRII(PHASE, DP_DTO, 1),\ |
|---|
| 99 | + SRII(PHASE, DP_DTO, 2),\ |
|---|
| 100 | + SRII(PHASE, DP_DTO, 3),\ |
|---|
| 101 | + SRII(MODULO, DP_DTO, 0),\ |
|---|
| 102 | + SRII(MODULO, DP_DTO, 1),\ |
|---|
| 103 | + SRII(MODULO, DP_DTO, 2),\ |
|---|
| 104 | + SRII(MODULO, DP_DTO, 3),\ |
|---|
| 105 | + SRII(PIXEL_RATE_CNTL, OTG, 0),\ |
|---|
| 106 | + SRII(PIXEL_RATE_CNTL, OTG, 1),\ |
|---|
| 107 | + SRII(PIXEL_RATE_CNTL, OTG, 2),\ |
|---|
| 108 | + SRII(PIXEL_RATE_CNTL, OTG, 3) |
|---|
| 109 | +#endif |
|---|
| 110 | + |
|---|
| 111 | +#define CS_COMMON_MASK_SH_LIST_DCN2_0(mask_sh)\ |
|---|
| 112 | + CS_SF(DP_DTO0_PHASE, DP_DTO0_PHASE, mask_sh),\ |
|---|
| 113 | + CS_SF(DP_DTO0_MODULO, DP_DTO0_MODULO, mask_sh),\ |
|---|
| 114 | + CS_SF(PHYPLLA_PIXCLK_RESYNC_CNTL, PHYPLLA_DCCG_DEEP_COLOR_CNTL, mask_sh),\ |
|---|
| 115 | + CS_SF(OTG0_PIXEL_RATE_CNTL, DP_DTO0_ENABLE, mask_sh) |
|---|
| 116 | + |
|---|
| 117 | +#if defined(CONFIG_DRM_AMD_DC_DCN) |
|---|
| 59 | 118 | |
|---|
| 60 | 119 | #define CS_COMMON_REG_LIST_DCN1_0(index, pllid) \ |
|---|
| 61 | 120 | SRI(PIXCLK_RESYNC_CNTL, PHYPLL, pllid),\ |
|---|
| .. | .. |
|---|
| 125 | 184 | uint32_t hdmi_ss_params_cnt; |
|---|
| 126 | 185 | struct spread_spectrum_data *dvi_ss_params; |
|---|
| 127 | 186 | uint32_t dvi_ss_params_cnt; |
|---|
| 187 | + struct spread_spectrum_data *lvds_ss_params; |
|---|
| 188 | + uint32_t lvds_ss_params_cnt; |
|---|
| 128 | 189 | |
|---|
| 129 | 190 | uint32_t ext_clk_khz; |
|---|
| 130 | 191 | uint32_t ref_freq_khz; |
|---|
| .. | .. |
|---|
| 142 | 203 | const struct dce110_clk_src_shift *cs_shift, |
|---|
| 143 | 204 | const struct dce110_clk_src_mask *cs_mask); |
|---|
| 144 | 205 | |
|---|
| 206 | +bool dce112_clk_src_construct( |
|---|
| 207 | + struct dce110_clk_src *clk_src, |
|---|
| 208 | + struct dc_context *ctx, |
|---|
| 209 | + struct dc_bios *bios, |
|---|
| 210 | + enum clock_source_id id, |
|---|
| 211 | + const struct dce110_clk_src_regs *regs, |
|---|
| 212 | + const struct dce110_clk_src_shift *cs_shift, |
|---|
| 213 | + const struct dce110_clk_src_mask *cs_mask); |
|---|
| 214 | + |
|---|
| 215 | +bool dcn20_clk_src_construct( |
|---|
| 216 | + struct dce110_clk_src *clk_src, |
|---|
| 217 | + struct dc_context *ctx, |
|---|
| 218 | + struct dc_bios *bios, |
|---|
| 219 | + enum clock_source_id id, |
|---|
| 220 | + const struct dce110_clk_src_regs *regs, |
|---|
| 221 | + const struct dce110_clk_src_shift *cs_shift, |
|---|
| 222 | + const struct dce110_clk_src_mask *cs_mask); |
|---|
| 223 | + |
|---|
| 224 | +#if defined(CONFIG_DRM_AMD_DC_DCN3_0) |
|---|
| 225 | +bool dcn3_clk_src_construct( |
|---|
| 226 | + struct dce110_clk_src *clk_src, |
|---|
| 227 | + struct dc_context *ctx, |
|---|
| 228 | + struct dc_bios *bios, |
|---|
| 229 | + enum clock_source_id id, |
|---|
| 230 | + const struct dce110_clk_src_regs *regs, |
|---|
| 231 | + const struct dce110_clk_src_shift *cs_shift, |
|---|
| 232 | + const struct dce110_clk_src_mask *cs_mask); |
|---|
| 233 | +#endif |
|---|
| 234 | + |
|---|
| 235 | +/* this table is use to find *1.001 and /1.001 pixel rates from non-precise pixel rate */ |
|---|
| 236 | +struct pixel_rate_range_table_entry { |
|---|
| 237 | + unsigned int range_min_khz; |
|---|
| 238 | + unsigned int range_max_khz; |
|---|
| 239 | + unsigned int target_pixel_rate_khz; |
|---|
| 240 | + unsigned short mult_factor; |
|---|
| 241 | + unsigned short div_factor; |
|---|
| 242 | +}; |
|---|
| 243 | + |
|---|
| 244 | +#if defined(CONFIG_DRM_AMD_DC_DCN3_0) |
|---|
| 245 | +extern const struct pixel_rate_range_table_entry video_optimized_pixel_rates[]; |
|---|
| 246 | +const struct pixel_rate_range_table_entry *look_up_in_video_optimized_rate_tlb( |
|---|
| 247 | + unsigned int pixel_rate_khz); |
|---|
| 248 | +#endif |
|---|
| 145 | 249 | #endif |
|---|