# SPDX-License-Identifier: MIT

config DRM_RADEON
	tristate "ATI Radeon"
	depends on DRM && PCI && MMU
	depends on AGP || !AGP
	select FW_LOADER
	select DRM_CLIENT_SELECTION
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
        select DRM_KMS_HELPER
	select DRM_SUBALLOC_HELPER
        select DRM_TTM
	select DRM_TTM_HELPER
	select FB_IOMEM_HELPERS if DRM_FBDEV_EMULATION
	select DRM_EXEC
	select SND_HDA_COMPONENT if SND_HDA_CORE
	select POWER_SUPPLY
	select HWMON
	select BACKLIGHT_CLASS_DEVICE
	select INTERVAL_TREE
	select I2C
	select I2C_ALGOBIT
	# radeon depends on ACPI_VIDEO when ACPI is enabled, for select to work
	# ACPI_VIDEO's dependencies must also be selected.
	select INPUT if ACPI
	select ACPI_VIDEO if ACPI
	# On x86 ACPI_VIDEO also needs ACPI_WMI
	select X86_PLATFORM_DEVICES if ACPI && X86
	select ACPI_WMI if ACPI && X86
	help
	  Choose this option if you have an ATI Radeon graphics card.  There
	  are both PCI and AGP versions.  You don't need to choose this to
	  run the Radeon in plain VGA mode.

	  If M is selected, the module will be called radeon.

config DRM_RADEON_USERPTR
	bool "Always enable userptr support"
	depends on DRM_RADEON
	select MMU_NOTIFIER
	help
	  This option selects CONFIG_MMU_NOTIFIER if it isn't already
	  selected to enabled full userptr support.
