[Intel-gfx] [PATCH 00/42] drm/i915: Convert to atomic, part 2.

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Mon May 11 07:24:36 PDT 2015


This patch makes this happen by consolidating all modeset paths
and getting rid of most transitional state.

This happens first by unifying all paths so all code that
disables a crtc goes through either intel_crtc_toggle or
__intel_set_mode. After that's done crtc_state->active is
updated in intel_crtc_toggle, and used to check whether
the crtc is active or not.

At this point crtc->state is equal to intel_crtc->config and
crtc->state->active is equal to crtc->config.

This gives us enough information to convert all planes to atomic,
this had to be done in a single commit because the transitional
helpers don't call crtc_check and some things have to be moved
there.

This makes the planes fully atomic, next step is getting rid
of the transitional intel_crtc->active and intel_crtc->config,
and replacing it with crtc->state or old_crtc_state.

The last part allows setting multiple crtc's in intel_set_mode,
and restore the sw state after suspend by calculating the hw
state in a drm_atomic_state, then swapping it with sw state
and finally call intel_set_mode with the sw state.

Ander Conselvan de Oliveira (6):
  drm/i915: Set mode_changed for audio in intel_modeset_pipe_config()
  drm/i915: Make __intel_set_mode() take only atomic state as argument
  drm/i915: Use global atomic state for staged pll config
  drm/i915: Support modeset across multiple pipes
  drm/i915: Move cdclk and pll setup to intel_modeset_compute_config()
  drm/i915: Read hw state into an atomic state struct

Maarten Lankhorst (36):
  drm/atomic: Allow drivers to subclass drm_atomic_state
  drm/i915: get rid of intel_crtc_disable and related code, v2
  drm/i915: Only update required power domains.
  drm/i915: use intel_crtc_control everywhere
  drm/i915: Get rid of new_encoder.
  drm/i915: get rid of new_crtc
  drm/i915: Get rid of crtc->new_enabled, v2.
  drm/i915: Implement intel_crtc_toggle using atomic state
  drm/i915: Make intel_modeset_fixup_state similar to the atomic helper.
  drm/i915: make plane helpers fully atomic
  drm/i915: Update less state during modeset.
  drm/i915: move swap_state to the right place
  drm/i915: Use hwmode for vblanks.
  drm/i915: Remove usage of crtc->config from i915_debugfs.c
  drm/i915: Remove use of crtc->config from intel_pm.c
  drm/i915: Remove use of crtc->config from intel_audio.c
  drm/i915: remove use of crtc->config from intel_fbc.c
  drm/i915: remove use of crtc->config from intel_atomic.c and
    intel_sprite.c
  drm/i915: Remove use of crtc->config from intel_overlay.c
  drm/i915: Pass old state to crtc_disable and use it.
  drm/i915: Pass old state to encoder->(post_)disable.
  drm/i915: Remove use of crtc->config from intel_fbdev.c
  drm/i915: Remove use of crtc->config from intel_psr.c
  drm/i915: Remove use of crtc->config from intel_ddi.c
  drm/i915: Remove use of crtc->config from intel_dp.c
  drm/i915: Remove use of crtc->config from intel_dp_mst.c
  drm/i915: Remove use of crtc->config from intel_dsi.c
  drm/i915: Remove use of crtc->config in intel_hdmi.c
  drm/i915: Remove use of crtc->config in intel_sdvo.c
  drm/i915: Calculate haswell plane workaround.
  drm/i915: remove crtc->active tracking completely
  drm/i915: get rid of crtc->config in intel_display.c, part 1
  drm/i915: get rid of crtc->config in intel_display.c, part 2
  drm/i915: get rid of crtc->config
  drm/i915: swap state correctly in intel_atomic_commit
  drm/i915: return early in __intel_set_mode_setup_plls without modeset

 drivers/gpu/drm/drm_atomic.c              |   91 +-
 drivers/gpu/drm/i915/i915_debugfs.c       |   50 +-
 drivers/gpu/drm/i915/i915_drv.h           |    5 +-
 drivers/gpu/drm/i915/i915_irq.c           |   13 +-
 drivers/gpu/drm/i915/intel_atomic.c       |   93 +-
 drivers/gpu/drm/i915/intel_atomic_plane.c |   59 +-
 drivers/gpu/drm/i915/intel_audio.c        |    2 +-
 drivers/gpu/drm/i915/intel_crt.c          |   21 +-
 drivers/gpu/drm/i915/intel_ddi.c          |   93 +-
 drivers/gpu/drm/i915/intel_display.c      | 2639 +++++++++++++++--------------
 drivers/gpu/drm/i915/intel_dp.c           |   86 +-
 drivers/gpu/drm/i915/intel_dp_mst.c       |   16 +-
 drivers/gpu/drm/i915/intel_drv.h          |   72 +-
 drivers/gpu/drm/i915/intel_dsi.c          |   25 +-
 drivers/gpu/drm/i915/intel_dvo.c          |   15 +-
 drivers/gpu/drm/i915/intel_fbc.c          |    8 +-
 drivers/gpu/drm/i915/intel_fbdev.c        |   19 +-
 drivers/gpu/drm/i915/intel_hdmi.c         |   78 +-
 drivers/gpu/drm/i915/intel_lvds.c         |   13 +-
 drivers/gpu/drm/i915/intel_overlay.c      |    8 +-
 drivers/gpu/drm/i915/intel_panel.c        |    3 +-
 drivers/gpu/drm/i915/intel_pm.c           |   96 +-
 drivers/gpu/drm/i915/intel_psr.c          |   25 +-
 drivers/gpu/drm/i915/intel_sdvo.c         |   22 +-
 drivers/gpu/drm/i915/intel_sprite.c       |   84 +-
 drivers/gpu/drm/i915/intel_tv.c           |    5 +-
 include/drm/drm_atomic.h                  |    4 +
 include/drm/drm_crtc.h                    |    4 +
 28 files changed, 1908 insertions(+), 1741 deletions(-)

-- 
2.1.0



More information about the Intel-gfx mailing list