.. | .. |
---|
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 |
---|