Add support to enable the DP tunnel BW allocation mode. Follow-up patches will call the required helpers added here to prepare for a modeset on a link with DP tunnels, the last change in the patchset actually enabling BWA. With BWA enabled, the driver will expose the full mode list a display supports, regardless of any BW limitation on a shared (Thunderbolt) link. Such BW limits will be checked against only during a modeset, when the driver has the full knowledge of each display's BW requirement. If the link BW changes in a way that a connector's modelist may also change, userspace will get a hotplug notification for all the connectors sharing the same link (so it can adjust the mode used for a display). The BW limitation can change at any point, asynchronously to modesets on a given connector, so a modeset can fail even though the atomic check for it passed. In such scenarios userspace will get a bad link notification and in response is supposed to retry the modeset. v2: - Fix old vs. new connector state in intel_dp_tunnel_atomic_check_state(). (Ville) - Fix propagating the error from intel_dp_tunnel_atomic_compute_stream_bw(). (Ville) - Move tunnel==NULL checks from driver to DRM core helpers. (Ville) - Simplify return flow from intel_dp_tunnel_detect(). (Ville) - s/dp_tunnel_state/inherited_dp_tunnels (Ville) - Simplify struct intel_dp_tunnel_inherited_state. (Ville) - Unconstify object pointers (vs. states) where possible. (Ville) - Init crtc_state while declaring it in check_group_state(). (Ville) - Join obj->base.id, obj->name arg lines in debug prints to reduce LOC. (Ville) - Add/rework intel_dp_tunnel_atomic_alloc_bw() to prepare for moving the BW allocation from encoder hooks up to intel_atomic_commit_tail() later in the patchset. - Disable BW alloc mode during system suspend. - Allocate the required BW for all tunnels during system resume. - Add intel_dp_tunnel_atomic_clear_stream_bw() instead of the open-coded sequence in a follow-up patch. - Add function documentation to all exported functions. - Add CONFIG_USB4 dependency to CONFIG_DRM_I915_DP_TUNNEL. v3: - Rebase on intel_dp_get_active_pipes() change in previous patch. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240226185246.1276018-4-imre.deak@intel.com
262 lines
7.5 KiB
Plaintext
262 lines
7.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
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
|
|
depends on EXPERT # only for developers
|
|
depends on !COMPILE_TEST # never built by robots
|
|
select DEBUG_FS
|
|
select PREEMPT_COUNT
|
|
select I2C_CHARDEV
|
|
select REF_TRACKER
|
|
select STACKDEPOT
|
|
select STACKTRACE
|
|
select DRM_DP_AUX_CHARDEV
|
|
select DRM_DISPLAY_DEBUG_DP_TUNNEL_STATE if DRM_I915_DP_TUNNEL
|
|
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 DRM_EXPORT_FOR_TESTS if m
|
|
select DRM_DEBUG_SELFTEST
|
|
select DMABUF_SELFTESTS
|
|
select SW_SYNC # signaling validation framework (igt/syncobj*)
|
|
select DRM_I915_WERROR
|
|
select DRM_I915_DEBUG_GEM
|
|
select DRM_I915_DEBUG_GEM_ONCE
|
|
select DRM_I915_DEBUG_MMIO
|
|
select DRM_I915_DEBUG_RUNTIME_PM
|
|
select DRM_I915_DEBUG_WAKEREF
|
|
select DRM_I915_SW_FENCE_DEBUG_OBJECTS
|
|
select DRM_I915_SELFTEST
|
|
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_MMIO
|
|
bool "Always insert extra checks around mmio access by default"
|
|
default n
|
|
help
|
|
By default, always enables the extra sanity checks (extra register
|
|
reads) around every mmio (register) access that will slow the system
|
|
down. This sets the default value of i915.mmio_debug to -1 and can
|
|
be overridden at module load.
|
|
|
|
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_DEBUG_GEM_ONCE
|
|
bool "Make a GEM debug failure fatal"
|
|
default n
|
|
depends on DRM_I915_DEBUG_GEM
|
|
help
|
|
During development, we often only want the very first failure
|
|
as that would otherwise be lost in the deluge of subsequent
|
|
failures. However, more casual testers may not want to trigger
|
|
a hard BUG_ON and hope that the system remains sufficiently usable
|
|
to capture a bug report in situ.
|
|
|
|
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_TRACE_GTT
|
|
bool "Insert extra ftrace output from the GTT 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
|
|
select STACKDEPOT
|
|
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 DRM_EXPORT_FOR_TESTS if m
|
|
select FAULT_INJECTION
|
|
select PRIME_NUMBERS
|
|
select CRC32
|
|
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.
|
|
|
|
Recommended for driver developers only.
|
|
|
|
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.
|
|
|
|
Recommended for driver developers only.
|
|
|
|
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
|
|
select REF_TRACKER
|
|
select STACKDEPOT
|
|
select STACKTRACE
|
|
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.
|
|
|
|
Recommended for driver developers only.
|
|
|
|
If in doubt, say "N"
|
|
|
|
config DRM_I915_DEBUG_WAKEREF
|
|
bool "Enable extra tracking for wakerefs"
|
|
depends on DRM_I915
|
|
select REF_TRACKER
|
|
select STACKDEPOT
|
|
select STACKTRACE
|
|
help
|
|
Choose this option to turn on extra state checking and usage
|
|
tracking for the wakerefPM functionality. This may introduce
|
|
overhead during driver runtime.
|
|
|
|
If in doubt, say "N"
|