public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 00/66] runtime pm for DPMS
@ 2014-04-24 21:54 Daniel Vetter
  2014-04-24 21:54 ` [PATCH 01/66] drm/i915: Make encoder->mode_set callbacks optional Daniel Vetter
                   ` (66 more replies)
  0 siblings, 67 replies; 121+ messages in thread
From: Daniel Vetter @ 2014-04-24 21:54 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter

Hi all,

So this is a little patch series that started very innocently as a small cleanup
in prep for some of the bigger features and then got out of hand. It now
implements runtime pm support for DPMS on everything that supports it.

Still rather lightly tested because of too many distractions this week.

After this series all the hw enabling is _only_ done in the ->enable hooks.
Encoder ->mode_set callbacks are completely gone and the crtc mode_set hooks
only do some pll state computations. This is a nice prep for atomic modesets too
since now all remaining code in the crtc mode_set callbacks must be moved out
into the preparatory compute_config stage. Unfortunately the code is tricky and
also depends upon the entire hw/sw state in tricky ways.

Anyway the entire pile nicely splits into sub-series, see below for in-line
comments.

Feedback and also testing from untime pm experts highly welcome. Presuming no
fundamental issues I'll sign up people for in-depth reviews soonish.

Cheers, Daniel

Daniel Vetter (66):
  drm/i915: Make encoder->mode_set callbacks optional
  drm/i915/dvo: Remove ->mode_set callback
  drm/i915/tv: extract set_tv_mode_timings
  drm/i915/tv: extract set_color_conversion
  drm/i915/tv: De-magic device check
  drm/i915/tv: Rip out pipe-disabling nonsense from ->mode_set
  drm/i915/tv: Remove ->mode_set callback
  drm/i915/crt: Remove ->mode_set callback
  drm/i915/sdvo: Remove ->mode_set callback

Removal of encoder->mode_set callbacks, part 1

  drm/i915/hdmi: Enable hdmi mode on g4x, too
  drm/i915: Track hdmi mode in the pipe config
  drm/i915/sdvo: Use pipe_config->limited_color_range consistently
  drm/i915: state readout and cross checking for limited_color_range
  drm/i915/sdvo: use config->has_hdmi_sink
  drm/i915: Simplify audio handling on DDI ports
  drm/i915: Track has_audio in the pipe config
  drm/i915/dp: Move port A pll setup to g4x_pre_enable_dp
  drm/i915/dp: Remove ->mode_set callback
  drm/i915/hdmi: Remove redundant IS_VLV checks
  drm/i915/hdmi: Remove ->mode_set callback

Removal of the encoder->mode_set callbacks for hdmi/sdvo/dp with small
interludes to move a bit of the hdmi/audio state into the pipe config.

  drm/i915/lvds: Remove ->mode_set callback
  drm/i915/ddi: Remove ->mode_set callback
  drm/i915/dsi: Remove ->mode_set callback
  drm/i915: Stop calling encoder->mode_set

Final removals of encoder->mode_set callbacks

  drm/i915: Make ->update_primary_plane infallible
  drm/i915: More cargo-culted locking for intel_update_fbc
  drm/i915: Sprinkle intel_edp_psr_update over crtc_enable/disable
  drm/i915: Inline set_base into crtc_mode_set
  drm/i915: Move fb pinning into __intel_set_mode

Some shuffling to get the primary->fb handling out of crtc mode_set callbacks

  drm/i915: Shovel hw setup code out of i9xx_crtc_mode_set
  drm/i915: Move lowfreq_avail around a bit in ilk/hsw_crtc_mode_set
  drm/i915: Shovel hw setup code out of ilk_crtc_mode_set
  drm/i915: Shovel hw setup code out of hsw_crtc_mode_set
  drm/i915: Extract i9xx_set_pll_dividers
  drm/i915: Extract vlv_prepare_pll

gmch pll moved out of crtc mode_set callbacks into ->enable hooks

  drm/i915: Only update shared dpll state when needed
  drm/i915: Extract intel_prepare_shared_dpll
  drm/i915: s/ironlake_/intel_ for the enable_share_dpll function

Prep polish on the existing shared_dpll code

  drm/i915: Check hw state in assert_can_disable_lcpll
  drm/i915: Remove spll_refcount for hsw
  drm/i915: Clean up WRPLL/SPLL #defines
  drm/i915: Make intel_wait_for_pipe_off static
  drm/i915: Disable pipe before ports on ilk
  drm/i915: Pass port explicitly to intel_ddi_get_hw_state
  drm/i915: Unexport intel_ddi_connector_get_hw_state
  drm/i915: Move hsw_fdi_link_train into intel_crt.c
  drm/i915: Move pch fifo underrun report enabling to hsw_crt_pre_enable
  drm/i915: Move the SPLL enabling into hsw_crt_pre_enable
  drm/i915: Move lpt_pch_enable int hsw_crt_enable
  drm/i915: Move the pch fifo underrun handling into hsw_crt_disable
  drm/i915: Move lpt_disable_pch_transcoder into the hsw crt encoder
  drm/i915: Move pch fifo underrun report re-enabling into
    hsw_crt_post_disable
  drm/i915: Move the hsw fdi disabling into hsw_crt_post_disable
  drm/i915: Move SPLL disabling into hsw_crt_post_disable

Create a new hsw-specific crt encoder which subsumes the entire fdi/pch handling
on haswell. This has the nice upshot to make SPLL logically a port-private clock
and so removes it from further considerations.

  drm/i915: Add a debugfs file for the shared dpll state
  drm/i915: Move ddi_pll_sel into the pipe config
  drm/i915: State readout and cross-checking for ddi_pll_sel
  drm/i915: Precompute static ddi_pll_sel values in encoders
  drm/i915: Basic shared dpll support for WRPLLs
  drm/i915: Document that the pll->mode_set hook is optional
  drm/i915: State readout support for WRPLLs
  drm/i915: ->disable hook for WRPLLs
  drm/i915: ->enable hook for WRPLLs
  drm/i915: Switch to common shared dpll framework for WRPLLs
  drm/i915: Only touch WRPLL hw state in enable/disable hooks

Convert wrpll handling to the common shared_dpll framework. We need this since
runtime pm for dpms requires us to separately track pll refernces from crtcs and
active usage by crtcs

  drm/i915: runtime PM support for DPMS

The final piece.

 drivers/gpu/drm/i915/i915_debugfs.c  |  27 ++
 drivers/gpu/drm/i915/i915_drv.h      |  22 +-
 drivers/gpu/drm/i915/i915_reg.h      |  10 +-
 drivers/gpu/drm/i915/intel_crt.c     | 456 ++++++++++++++++++---
 drivers/gpu/drm/i915/intel_ddi.c     | 609 ++++++----------------------
 drivers/gpu/drm/i915/intel_display.c | 747 ++++++++++++++++-------------------
 drivers/gpu/drm/i915/intel_dp.c      |  51 ++-
 drivers/gpu/drm/i915/intel_drv.h     |  47 ++-
 drivers/gpu/drm/i915/intel_dsi.c     |  19 +-
 drivers/gpu/drm/i915/intel_dvo.c     |   4 +-
 drivers/gpu/drm/i915/intel_hdmi.c    |  63 +--
 drivers/gpu/drm/i915/intel_lvds.c    |  14 -
 drivers/gpu/drm/i915/intel_sdvo.c    |  37 +-
 drivers/gpu/drm/i915/intel_tv.c      | 214 +++++-----
 14 files changed, 1153 insertions(+), 1167 deletions(-)

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 121+ messages in thread

end of thread, other threads:[~2014-06-02 16:09 UTC | newest]

Thread overview: 121+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-24 21:54 [PATCH 00/66] runtime pm for DPMS Daniel Vetter
2014-04-24 21:54 ` [PATCH 01/66] drm/i915: Make encoder->mode_set callbacks optional Daniel Vetter
2014-04-24 21:54 ` [PATCH 02/66] drm/i915/dvo: Remove ->mode_set callback Daniel Vetter
2014-04-24 21:54 ` [PATCH 03/66] drm/i915/tv: extract set_tv_mode_timings Daniel Vetter
2014-04-24 21:54 ` [PATCH 04/66] drm/i915/tv: extract set_color_conversion Daniel Vetter
2014-04-24 21:54 ` [PATCH 05/66] drm/i915/tv: De-magic device check Daniel Vetter
2014-04-24 21:54 ` [PATCH 06/66] drm/i915/tv: Rip out pipe-disabling nonsense from ->mode_set Daniel Vetter
2014-04-24 21:54 ` [PATCH 07/66] drm/i915/tv: Remove ->mode_set callback Daniel Vetter
2014-04-24 21:54 ` [PATCH 08/66] drm/i915/crt: " Daniel Vetter
2014-04-24 21:54 ` [PATCH 09/66] drm/i915/sdvo: " Daniel Vetter
2014-04-24 21:54 ` [PATCH 10/66] drm/i915/hdmi: Enable hdmi mode on g4x, too Daniel Vetter
2014-04-24 21:54 ` [PATCH 11/66] drm/i915: Track hdmi mode in the pipe config Daniel Vetter
2014-04-24 21:54 ` [PATCH 12/66] drm/i915/sdvo: Use pipe_config->limited_color_range consistently Daniel Vetter
2014-04-24 21:54 ` [PATCH 13/66] drm/i915: state readout and cross checking for limited_color_range Daniel Vetter
2014-04-24 21:54 ` [PATCH 14/66] drm/i915/sdvo: use config->has_hdmi_sink Daniel Vetter
2014-04-24 21:54 ` [PATCH 15/66] drm/i915: Simplify audio handling on DDI ports Daniel Vetter
2014-04-24 21:54 ` [PATCH 16/66] drm/i915: Track has_audio in the pipe config Daniel Vetter
2014-04-24 21:54 ` [PATCH 17/66] drm/i915/dp: Move port A pll setup to g4x_pre_enable_dp Daniel Vetter
2014-04-24 21:54 ` [PATCH 18/66] drm/i915/dp: Remove ->mode_set callback Daniel Vetter
2014-04-24 21:54 ` [PATCH 19/66] drm/i915/hdmi: Remove redundant IS_VLV checks Daniel Vetter
2014-04-24 21:54 ` [PATCH 20/66] drm/i915/hdmi: Remove ->mode_set callback Daniel Vetter
2014-04-24 21:54 ` [PATCH 21/66] drm/i915/lvds: " Daniel Vetter
2014-04-24 21:54 ` [PATCH 22/66] drm/i915/ddi: " Daniel Vetter
2014-04-24 21:54 ` [PATCH 23/66] drm/i915/dsi: " Daniel Vetter
2014-05-20 11:59   ` Kumar, Shobhit
2014-05-20 12:07     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 24/66] drm/i915: Stop calling encoder->mode_set Daniel Vetter
2014-05-16 10:04   ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 25/66] drm/i915: Make ->update_primary_plane infallible Daniel Vetter
2014-04-24 21:55 ` [PATCH 26/66] drm/i915: More cargo-culted locking for intel_update_fbc Daniel Vetter
2014-04-24 21:55 ` [PATCH 27/66] drm/i915: Sprinkle intel_edp_psr_update over crtc_enable/disable Daniel Vetter
2014-04-24 21:55 ` [PATCH 28/66] drm/i915: Inline set_base into crtc_mode_set Daniel Vetter
2014-04-24 21:55 ` [PATCH 29/66] drm/i915: Move fb pinning into __intel_set_mode Daniel Vetter
2014-04-24 21:55 ` [PATCH 30/66] drm/i915: Shovel hw setup code out of i9xx_crtc_mode_set Daniel Vetter
2014-04-24 21:55 ` [PATCH 31/66] drm/i915: Move lowfreq_avail around a bit in ilk/hsw_crtc_mode_set Daniel Vetter
2014-04-24 21:55 ` [PATCH 32/66] drm/i915: Shovel hw setup code out of ilk_crtc_mode_set Daniel Vetter
2014-04-24 21:55 ` [PATCH 33/66] drm/i915: Shovel hw setup code out of hsw_crtc_mode_set Daniel Vetter
2014-04-24 21:55 ` [PATCH 34/66] drm/i915: Extract i9xx_set_pll_dividers Daniel Vetter
2014-04-24 21:55 ` [PATCH 35/66] drm/i915: Extract vlv_prepare_pll Daniel Vetter
2014-04-24 21:55 ` [PATCH 36/66] drm/i915: Only update shared dpll state when needed Daniel Vetter
2014-05-20 10:18   ` Damien Lespiau
2014-05-20 11:17     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 37/66] drm/i915: Extract intel_prepare_shared_dpll Daniel Vetter
2014-05-20 10:28   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 38/66] drm/i915: s/ironlake_/intel_ for the enable_share_dpll function Daniel Vetter
2014-05-20 10:29   ` Damien Lespiau
2014-05-20 13:16     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 39/66] drm/i915: Check hw state in assert_can_disable_lcpll Daniel Vetter
2014-05-22 18:10   ` Paulo Zanoni
2014-05-22 19:26     ` Daniel Vetter
2014-05-22 20:10       ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 40/66] drm/i915: Remove spll_refcount for hsw Daniel Vetter
2014-05-22 18:41   ` Paulo Zanoni
2014-05-22 19:41     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 41/66] drm/i915: Clean up WRPLL/SPLL #defines Daniel Vetter
2014-05-22 18:29   ` Paulo Zanoni
2014-04-24 21:55 ` [PATCH 42/66] drm/i915: Make intel_wait_for_pipe_off static Daniel Vetter
2014-05-22 18:36   ` Paulo Zanoni
2014-04-24 21:55 ` [PATCH 43/66] drm/i915: Disable pipe before ports on ilk Daniel Vetter
2014-05-22 19:25   ` Paulo Zanoni
2014-05-22 20:26     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 44/66] drm/i915: Pass port explicitly to intel_ddi_get_hw_state Daniel Vetter
2014-05-22 19:38   ` Paulo Zanoni
2014-05-22 20:30     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 45/66] drm/i915: Unexport intel_ddi_connector_get_hw_state Daniel Vetter
2014-05-22 20:13   ` Paulo Zanoni
2014-05-22 20:49   ` [PATCH] " Daniel Vetter
2014-04-24 21:55 ` [PATCH 46/66] drm/i915: Move hsw_fdi_link_train into intel_crt.c Daniel Vetter
2014-05-22 20:28   ` Paulo Zanoni
2014-05-22 21:57     ` Daniel Vetter
2014-05-27 17:31       ` Jesse Barnes
2014-05-27 18:00         ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 47/66] drm/i915: Move pch fifo underrun report enabling to hsw_crt_pre_enable Daniel Vetter
2014-05-22 20:38   ` Paulo Zanoni
2014-05-22 22:03     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 48/66] drm/i915: Move the SPLL enabling into hsw_crt_pre_enable Daniel Vetter
2014-04-24 21:55 ` [PATCH 49/66] drm/i915: Move lpt_pch_enable int hsw_crt_enable Daniel Vetter
2014-04-24 21:55 ` [PATCH 50/66] drm/i915: Move the pch fifo underrun handling into hsw_crt_disable Daniel Vetter
2014-04-24 21:55 ` [PATCH 51/66] drm/i915: Move lpt_disable_pch_transcoder into the hsw crt encoder Daniel Vetter
2014-04-24 21:55 ` [PATCH 52/66] drm/i915: Move pch fifo underrun report re-enabling into hsw_crt_post_disable Daniel Vetter
2014-04-24 21:55 ` [PATCH 53/66] drm/i915: Move the hsw fdi disabling " Daniel Vetter
2014-04-24 21:55 ` [PATCH 54/66] drm/i915: Move SPLL " Daniel Vetter
2014-04-24 21:55 ` [PATCH 55/66] drm/i915: Add a debugfs file for the shared dpll state Daniel Vetter
2014-05-20 10:33   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 56/66] drm/i915: Move ddi_pll_sel into the pipe config Daniel Vetter
2014-05-20 10:36   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 57/66] drm/i915: State readout and cross-checking for ddi_pll_sel Daniel Vetter
2014-05-20 10:47   ` Damien Lespiau
2014-05-20 11:24     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 58/66] drm/i915: Precompute static ddi_pll_sel values in encoders Daniel Vetter
2014-05-20 10:56   ` Damien Lespiau
2014-05-20 11:27     ` Daniel Vetter
2014-04-24 21:55 ` [PATCH 59/66] drm/i915: Basic shared dpll support for WRPLLs Daniel Vetter
2014-05-20 11:06   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 60/66] drm/i915: Document that the pll->mode_set hook is optional Daniel Vetter
2014-05-20 11:08   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 61/66] drm/i915: State readout support for WRPLLs Daniel Vetter
2014-05-20 11:16   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 62/66] drm/i915: ->disable hook " Daniel Vetter
2014-05-20 11:20   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 63/66] drm/i915: ->enable " Daniel Vetter
2014-05-20 11:29   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 64/66] drm/i915: Switch to common shared dpll framework " Daniel Vetter
2014-05-20 11:38   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 65/66] drm/i915: Only touch WRPLL hw state in enable/disable hooks Daniel Vetter
2014-05-20 11:39   ` Damien Lespiau
2014-04-24 21:55 ` [PATCH 66/66] drm/i915: runtime PM support for DPMS Daniel Vetter
2014-05-16 21:48   ` Jesse Barnes
2014-05-16 22:19     ` Daniel Vetter
2014-05-16 22:23       ` Jesse Barnes
2014-05-23 14:00   ` Paulo Zanoni
2014-06-02 16:09   ` Daniel Vetter
2014-04-25  8:45 ` [PATCH 00/66] runtime pm " Daniel Vetter
2014-04-30 15:36   ` Shobhit Kumar
2014-04-30 17:29     ` Daniel Vetter
2014-04-30 16:38   ` Imre Deak
2014-04-30 17:30     ` Daniel Vetter
2014-05-16  8:39     ` Naresh Kumar Kachhi
2014-05-17  4:37       ` Akash Goel
2014-05-07 13:49   ` Imre Deak
2014-05-20 11:52   ` Kumar, Shobhit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox