hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/gpu/drm/amd/display/dc/dce110/dce110_timing_generator.c
....@@ -469,22 +469,27 @@
469469
470470 void dce110_timing_generator_set_static_screen_control(
471471 struct timing_generator *tg,
472
- uint32_t value)
472
+ uint32_t event_triggers,
473
+ uint32_t num_frames)
473474 {
474475 struct dce110_timing_generator *tg110 = DCE110TG_FROM_TG(tg);
475476 uint32_t static_screen_cntl = 0;
476477 uint32_t addr = 0;
477478
479
+ // By register spec, it only takes 8 bit value
480
+ if (num_frames > 0xFF)
481
+ num_frames = 0xFF;
482
+
478483 addr = CRTC_REG(mmCRTC_STATIC_SCREEN_CONTROL);
479484 static_screen_cntl = dm_read_reg(tg->ctx, addr);
480485
481486 set_reg_field_value(static_screen_cntl,
482
- value,
487
+ event_triggers,
483488 CRTC_STATIC_SCREEN_CONTROL,
484489 CRTC_STATIC_SCREEN_EVENT_MASK);
485490
486491 set_reg_field_value(static_screen_cntl,
487
- 2,
492
+ num_frames,
488493 CRTC_STATIC_SCREEN_CONTROL,
489494 CRTC_STATIC_SCREEN_FRAME_COUNT);
490495
....@@ -1952,6 +1957,11 @@
19521957
19531958 void dce110_tg_program_timing(struct timing_generator *tg,
19541959 const struct dc_crtc_timing *timing,
1960
+ int vready_offset,
1961
+ int vstartup_start,
1962
+ int vupdate_offset,
1963
+ int vupdate_width,
1964
+ const enum signal_type signal,
19551965 bool use_vbios)
19561966 {
19571967 if (use_vbios)