# SPDX-License-Identifier: MIT

config DRM_RADEON
	tristate "ATI Radeon"
	depends on DRM && PCI
	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.
