.. | .. |
---|
84 | 84 | #define DCP_REG(reg) (reg + tg110->offsets.dcp) |
---|
85 | 85 | #define DMIF_REG(reg) (reg + tg110->offsets.dmif) |
---|
86 | 86 | |
---|
87 | | -static void program_pix_dur(struct timing_generator *tg, uint32_t pix_clk_khz) |
---|
| 87 | +static void program_pix_dur(struct timing_generator *tg, uint32_t pix_clk_100hz) |
---|
88 | 88 | { |
---|
89 | 89 | uint64_t pix_dur; |
---|
90 | 90 | uint32_t addr = mmDMIF_PG0_DPG_PIPE_ARBITRATION_CONTROL1 |
---|
91 | 91 | + DCE110TG_FROM_TG(tg)->offsets.dmif; |
---|
92 | 92 | uint32_t value = dm_read_reg(tg->ctx, addr); |
---|
93 | 93 | |
---|
94 | | - if (pix_clk_khz == 0) |
---|
| 94 | + if (pix_clk_100hz == 0) |
---|
95 | 95 | return; |
---|
96 | 96 | |
---|
97 | | - pix_dur = 1000000000 / pix_clk_khz; |
---|
| 97 | + pix_dur = div_u64(10000000000ull, pix_clk_100hz); |
---|
98 | 98 | |
---|
99 | 99 | set_reg_field_value( |
---|
100 | 100 | value, |
---|
.. | .. |
---|
107 | 107 | |
---|
108 | 108 | static void program_timing(struct timing_generator *tg, |
---|
109 | 109 | const struct dc_crtc_timing *timing, |
---|
| 110 | + int vready_offset, |
---|
| 111 | + int vstartup_start, |
---|
| 112 | + int vupdate_offset, |
---|
| 113 | + int vupdate_width, |
---|
| 114 | + const enum signal_type signal, |
---|
110 | 115 | bool use_vbios) |
---|
111 | 116 | { |
---|
112 | 117 | if (!use_vbios) |
---|
113 | | - program_pix_dur(tg, timing->pix_clk_khz); |
---|
| 118 | + program_pix_dur(tg, timing->pix_clk_100hz); |
---|
114 | 119 | |
---|
115 | | - dce110_tg_program_timing(tg, timing, use_vbios); |
---|
| 120 | + dce110_tg_program_timing(tg, timing, 0, 0, 0, 0, 0, use_vbios); |
---|
116 | 121 | } |
---|
117 | 122 | |
---|
118 | 123 | static void dce80_timing_generator_enable_advanced_request( |
---|