mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 17:59:32 +00:00
![Imre Deak](/assets/img/avatar_default.png)
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"
|