From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Fix/clean up the DRRS code sufficiently that I feel comfortable enabling it on all ilk+ CPU eDP ports. PCH ports still need a bit of work. The other thing I slapped on top is the beginnings of static DRRS support (ie. actually changing the refresh rate based on what the user asked). This initial version is still limited to just two refresh rates though. We'll have to expand on that further to also allow switching the other supported refresh rates. For the moment the user initiated refresh rate change will cause a full modeset. But I think we should be able to skip that if the hardware supports seamless DRRS, at least on BDW+ with its double buffered M/N registers. Some extra work will likely be needed for the modeset sequence to make sure the DRRS frontbuffer stuff won't interfere with the fastset reprogramming, and to make sure the reprogrmming happens atomically with all the plane updates. The biggest sticking point will probably be the fastset state check/copy stuff. As is that is pretty much a big hack when it comes to anything dotclock related and so probably needs some real surgery. v2: Lot more refactoring and a real fixed_modes list Ville Syrjälä (16): drm/i915/dsi: Pass fixed_mode to *_dsi_add_properties() drm/i915/sdvo: Passt the requesed mode to intel_sdvo_create_preferred_input_timing() drm/i915/lvds: Pass fixed_mode to compute_is_dual_link_lvds() drm/i915: Simplify intel_panel_info() drm/i915: Nuke dev_priv->drrs.type drm/i915: Introduce intel_panel_{fixed,downclock}_mode() drm/i915: Introduce intel_panel_get_modes() drm/i915: Introduce intel_panel_preferred_fixed_mode() drm/i915: Introduce intel_panel_drrs_type() drm/i915: Introduce intel_drrs_type_str() drm/i915: Eliminate the intel_dp dependency from DRRS drm/i915: Stash DRRS state under intel_crtc drm/i915: Move DRRS enable/disable higher up drm/i915: Enable eDP DRRS on ilk/snb port A drm/i915: Implement static DRRS drm/i915: Convert fixed_mode/downclock_mode into a list drivers/gpu/drm/i915/display/icl_dsi.c | 11 +- .../gpu/drm/i915/display/intel_connector.c | 2 + drivers/gpu/drm/i915/display/intel_crtc.c | 2 + drivers/gpu/drm/i915/display/intel_ddi.c | 7 +- drivers/gpu/drm/i915/display/intel_display.c | 6 +- .../drm/i915/display/intel_display_debugfs.c | 152 +++----- .../drm/i915/display/intel_display_types.h | 17 +- drivers/gpu/drm/i915/display/intel_dp.c | 27 +- drivers/gpu/drm/i915/display/intel_drrs.c | 329 ++++++++---------- drivers/gpu/drm/i915/display/intel_drrs.h | 20 +- drivers/gpu/drm/i915/display/intel_dsi.c | 24 +- drivers/gpu/drm/i915/display/intel_dvo.c | 20 +- drivers/gpu/drm/i915/display/intel_lvds.c | 19 +- drivers/gpu/drm/i915/display/intel_panel.c | 99 +++++- drivers/gpu/drm/i915/display/intel_panel.h | 13 +- drivers/gpu/drm/i915/display/intel_sdvo.c | 40 +-- drivers/gpu/drm/i915/display/vlv_dsi.c | 9 +- drivers/gpu/drm/i915/i915_drv.h | 15 - 18 files changed, 370 insertions(+), 442 deletions(-) -- 2.34.1