# SPDX-License-Identifier: MIT
# Copyright © 2019-2024 Advanced Micro Devices, Inc. All rights reserved.

menu "Display Engine Configuration"
	depends on DRM && DRM_AMDGPU

config DRM_AMD_DC
	bool "AMD DC - Enable new display engine"
	default y
	depends on BROKEN || !CC_IS_CLANG || ARM64 || LOONGARCH || RISCV || SPARC64 || X86_64
	select CEC_CORE
	select CEC_NOTIFIER
	select SND_HDA_COMPONENT if SND_HDA_CORE
	# !CC_IS_CLANG: https://github.com/ClangBuiltLinux/linux/issues/1752
	select DRM_AMD_DC_FP if ARCH_HAS_KERNEL_FPU_SUPPORT && !(CC_IS_CLANG && (ARM64 || LOONGARCH || RISCV))
	help
	  Choose this option if you want to use the new display engine
	  support for AMDGPU. This adds required support for Vega and
	  Raven ASICs.

	  calculate_bandwidth() is presently broken on all !(X86_64 || SPARC64 ||
	  ARM64 || LOONGARCH || RISCV) architectures built with Clang (all released
	  versions), whereby the stack frame gets blown up to well over 5k.  This
	  would cause an immediate kernel panic on most architectures.  We'll revert
	  this when the following bug report has been resolved:
	  https://github.com/llvm/llvm-project/issues/41896.

config DRM_AMD_DC_FP
	def_bool n
	help
	  Floating point support, required for DCN-based SoCs

config DRM_AMD_DC_SI
	bool "AMD DC support for Southern Islands ASICs"
	depends on DRM_AMDGPU_SI
	depends on DRM_AMD_DC
	help
	  Choose this option to enable new AMD DC support for SI asics
	  by default. This includes Tahiti, Pitcairn, Cape Verde, Oland.
	  Hainan is not supported by AMD DC and it has no physical DCE6.

config DEBUG_KERNEL_DC
	bool "Enable kgdb break in DC"
	depends on DRM_AMD_DC
	depends on KGDB
	help
	  Choose this option if you want to hit kdgb_break in assert.

config DRM_AMD_SECURE_DISPLAY
	bool "Enable secure display support"
	depends on DEBUG_FS
	depends on DRM_AMD_DC_FP
	help
	  Choose this option if you want to support secure display

	  This option enables the calculation of crc of specific region via
	  debugfs. Cooperate with specific DMCU FW.

endmenu
