mbox series

[v2,00/16] drm/i915: DRRS fixes/cleanups and start of static DRRS

Message ID 20220311172428.14685-1-ville.syrjala@linux.intel.com (mailing list archive)
Headers show
Series drm/i915: DRRS fixes/cleanups and start of static DRRS | expand

Message

Ville Syrjälä March 11, 2022, 5:24 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

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(-)