mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	After
commit 2cd9a689e9 ("drm/i915: Refactor intel_display_set_init_power() logic")
it makes more sense to check the power domain/well refcounts after
enabling the power domains functionality. Before that it's guaranteed
that most power wells (in the INIT domain) will have a reference held,
so not an interesting state.
While at it also add the check after the init_hw/fini_hw, disable and
suspend/resume steps. Make the test optional on a Kconfig option since
it may add substantial overhead: on VLV/CHV the corresponding PUNIT reg
access for each power well may take up to 20ms.
v2:
- Add the state check to more spots. (Chris)
v3:
- During suspend check the state before deiniting display core.
  Afterwards DC states are disabled (and so the dc_off power well is
  enabled) even though we don't hold a reference on it.
- Do the test conditionally based on a new Kconfig option. (Chris)
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
[Add DRM_I915_DEBUG_RUNTIME_PM to welcome messages]
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180817145837.26592-1-imre.deak@intel.com
		
	
			
		
			
				
	
	
		
			181 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
config DRM_I915_WERROR
 | 
						|
        bool "Force GCC to throw an error instead of a warning when compiling"
 | 
						|
        # As this may inadvertently break the build, only allow the user
 | 
						|
        # to shoot oneself in the foot iff they aim really hard
 | 
						|
        depends on EXPERT
 | 
						|
        # We use the dependency on !COMPILE_TEST to not be enabled in
 | 
						|
        # allmodconfig or allyesconfig configurations
 | 
						|
        depends on !COMPILE_TEST
 | 
						|
        default n
 | 
						|
        help
 | 
						|
          Add -Werror to the build flags for (and only for) i915.ko.
 | 
						|
          Do not enable this unless you are writing code for the i915.ko module.
 | 
						|
 | 
						|
          Recommended for driver developers only.
 | 
						|
 | 
						|
          If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_DEBUG
 | 
						|
        bool "Enable additional driver debugging"
 | 
						|
        depends on DRM_I915
 | 
						|
        select DEBUG_FS
 | 
						|
        select PREEMPT_COUNT
 | 
						|
        select I2C_CHARDEV
 | 
						|
        select DRM_DP_AUX_CHARDEV
 | 
						|
        select X86_MSR # used by igt/pm_rpm
 | 
						|
        select DRM_VGEM # used by igt/prime_vgem (dmabuf interop checks)
 | 
						|
        select DRM_DEBUG_MM if DRM=y
 | 
						|
        select STACKDEPOT if DRM=y # for DRM_DEBUG_MM
 | 
						|
	select DRM_DEBUG_SELFTEST
 | 
						|
	select SW_SYNC # signaling validation framework (igt/syncobj*)
 | 
						|
	select DRM_I915_SW_FENCE_DEBUG_OBJECTS
 | 
						|
	select DRM_I915_SELFTEST
 | 
						|
	select DRM_I915_DEBUG_RUNTIME_PM
 | 
						|
        default n
 | 
						|
        help
 | 
						|
          Choose this option to turn on extra driver debugging that may affect
 | 
						|
          performance but will catch some internal issues.
 | 
						|
 | 
						|
          Recommended for driver developers only.
 | 
						|
 | 
						|
          If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_DEBUG_GEM
 | 
						|
        bool "Insert extra checks into the GEM internals"
 | 
						|
        default n
 | 
						|
        depends on DRM_I915_WERROR
 | 
						|
        help
 | 
						|
          Enable extra sanity checks (including BUGs) along the GEM driver
 | 
						|
          paths that may slow the system down and if hit hang the machine.
 | 
						|
 | 
						|
          Recommended for driver developers only.
 | 
						|
 | 
						|
          If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_ERRLOG_GEM
 | 
						|
	bool "Insert extra logging (very verbose) for common GEM errors"
 | 
						|
	default n
 | 
						|
	depends on DRM_I915_DEBUG_GEM
 | 
						|
	help
 | 
						|
	  Enable additional logging that may help track down the cause of
 | 
						|
	  principally userspace errors.
 | 
						|
 | 
						|
	  Recommended for driver developers only.
 | 
						|
 | 
						|
	  If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_TRACE_GEM
 | 
						|
	bool "Insert extra ftrace output from the GEM internals"
 | 
						|
	depends on DRM_I915_DEBUG_GEM
 | 
						|
	select TRACING
 | 
						|
	default n
 | 
						|
	help
 | 
						|
	  Enable additional and verbose debugging output that will spam
 | 
						|
	  ordinary tests, but may be vital for post-mortem debugging when
 | 
						|
	  used with /proc/sys/kernel/ftrace_dump_on_oops
 | 
						|
 | 
						|
	  Recommended for driver developers only.
 | 
						|
 | 
						|
	  If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_SW_FENCE_DEBUG_OBJECTS
 | 
						|
        bool "Enable additional driver debugging for fence objects"
 | 
						|
        depends on DRM_I915
 | 
						|
        select DEBUG_OBJECTS
 | 
						|
        default n
 | 
						|
        help
 | 
						|
          Choose this option to turn on extra driver debugging that may affect
 | 
						|
          performance but will catch some internal issues.
 | 
						|
 | 
						|
          Recommended for driver developers only.
 | 
						|
 | 
						|
          If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_SW_FENCE_CHECK_DAG
 | 
						|
        bool "Enable additional driver debugging for detecting dependency cycles"
 | 
						|
        depends on DRM_I915
 | 
						|
        default n
 | 
						|
        help
 | 
						|
          Choose this option to turn on extra driver debugging that may affect
 | 
						|
          performance but will catch some internal issues.
 | 
						|
 | 
						|
          Recommended for driver developers only.
 | 
						|
 | 
						|
          If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_DEBUG_GUC
 | 
						|
        bool "Enable additional driver debugging for GuC"
 | 
						|
        depends on DRM_I915
 | 
						|
        default n
 | 
						|
        help
 | 
						|
          Choose this option to turn on extra driver debugging that may affect
 | 
						|
          performance but will help resolve GuC related issues.
 | 
						|
 | 
						|
          Recommended for driver developers only.
 | 
						|
 | 
						|
          If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_SELFTEST
 | 
						|
	bool "Enable selftests upon driver load"
 | 
						|
	depends on DRM_I915
 | 
						|
	default n
 | 
						|
	select FAULT_INJECTION
 | 
						|
	select PRIME_NUMBERS
 | 
						|
	help
 | 
						|
	  Choose this option to allow the driver to perform selftests upon
 | 
						|
	  loading; also requires the i915.selftest=1 module parameter. To
 | 
						|
	  exit the module after running the selftests (i.e. to prevent normal
 | 
						|
	  module initialisation afterwards) use i915.selftest=-1.
 | 
						|
 | 
						|
	  Recommended for driver developers only.
 | 
						|
 | 
						|
	  If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_SELFTEST_BROKEN
 | 
						|
	bool "Enable broken and dangerous selftests"
 | 
						|
	depends on DRM_I915_SELFTEST
 | 
						|
	depends on BROKEN
 | 
						|
	default n
 | 
						|
	help
 | 
						|
	  This option enables the execution of selftests that are "dangerous"
 | 
						|
	  and may trigger unintended HW side-effects as they break strict
 | 
						|
	  rules given in the HW specification. For science.
 | 
						|
 | 
						|
	  Recommended for masochistic driver developers only.
 | 
						|
 | 
						|
	  If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_LOW_LEVEL_TRACEPOINTS
 | 
						|
        bool "Enable low level request tracing events"
 | 
						|
        depends on DRM_I915
 | 
						|
        default n
 | 
						|
        help
 | 
						|
          Choose this option to turn on low level request tracing events.
 | 
						|
          This provides the ability to precisely monitor engine utilisation
 | 
						|
          and also analyze the request dependency resolving timeline.
 | 
						|
 | 
						|
          If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_DEBUG_VBLANK_EVADE
 | 
						|
	bool "Enable extra debug warnings for vblank evasion"
 | 
						|
	depends on DRM_I915
 | 
						|
	default n
 | 
						|
	help
 | 
						|
	  Choose this option to turn on extra debug warnings for the
 | 
						|
	  vblank evade mechanism. This gives a warning every time the
 | 
						|
	  the deadline allotted for the vblank evade critical section
 | 
						|
	  is exceeded, even if there isn't an actual risk of missing
 | 
						|
	  the vblank.
 | 
						|
 | 
						|
	  If in doubt, say "N".
 | 
						|
 | 
						|
config DRM_I915_DEBUG_RUNTIME_PM
 | 
						|
	bool "Enable extra state checking for runtime PM"
 | 
						|
	depends on DRM_I915
 | 
						|
	default n
 | 
						|
	help
 | 
						|
	  Choose this option to turn on extra state checking for the
 | 
						|
	  runtime PM functionality. This may introduce overhead during
 | 
						|
	  driver loading, suspend and resume operations.
 | 
						|
 | 
						|
	  If in doubt, say "N"
 |