The amdgpu driver has been working well on CIK dGPUs for years.
Now that the DC analog connector support landed,
amdgpu is at feature parity with the old radeon driver
on CIK dGPUs.

Enabling the amdgpu driver by default for CIK dGPUs has the
following benefits:

- More stable OpenGL support through RadeonSI
- Vulkan support through RADV
- Improved performance
- Better display features through DC

Users who want to keep using the old driver can do so using:
amdgpu.cik_support=0 radeon.cik_support=1

v2:
- Update documentation in Kconfig file

Signed-off-by: Timur Kristóf <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/Kconfig      | 12 +++++++++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c |  6 +++++-
 drivers/gpu/drm/radeon/radeon_drv.c     |  2 ++
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/Kconfig 
b/drivers/gpu/drm/amd/amdgpu/Kconfig
index 1acfed2f92ef..883f32428871 100644
--- a/drivers/gpu/drm/amd/amdgpu/Kconfig
+++ b/drivers/gpu/drm/amd/amdgpu/Kconfig
@@ -59,11 +59,17 @@ config DRM_AMDGPU_CIK
          Choose this option if you want to enable support for CIK (Sea
          Islands) asics.
 
-         CIK is already supported in radeon. Support for CIK in amdgpu
-         will be disabled by default and is still provided by radeon.
-         Use module options to override this:
+         CIK (Sea Islands) are second generation GCN GPUs,
+         supported by both drivers: radeon (old) and amdgpu (new).
+         By default,
+         CIK dedicated GPUs are supported by amdgpu
+         CIK APUs are supported by radeon
 
+         Use module options to override this:
+         To use amdgpu for CIK,
          radeon.cik_support=0 amdgpu.cik_support=1
+         To use radeon for CIK,
+         radeon.cik_support=1 amdgpu.cik_support=0
 
 config DRM_AMDGPU_USERPTR
        bool "Always enable userptr write support"
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 95224dffc367..910269407700 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -641,7 +641,9 @@ module_param_named(si_support, amdgpu_si_support, int, 
0444);
  * CIK (Sea Islands) are second generation GCN GPUs, supported by both
  * drivers: radeon (old) and amdgpu (new). This parameter controls whether
  * amdgpu should support CIK.
- * By default, CIK chips are supported by radeon (except when radeon is not 
built).
+ * By default:
+ * - CIK dedicated GPUs are supported by amdgpu.
+ * - CIK APUs are supported by radeon (except when radeon is not built).
  * Only relevant when CONFIG_DRM_AMDGPU_CIK is enabled to build CIK support in 
amdgpu.
  * See also radeon.cik_support which should be disabled when 
amdgpu.cik_support is
  * enabled, and vice versa.
@@ -2329,6 +2331,8 @@ static bool amdgpu_support_enabled(struct device *dev,
 
        case CHIP_BONAIRE:
        case CHIP_HAWAII:
+               support_by_default = true;
+               fallthrough;
        case CHIP_KAVERI:
        case CHIP_KABINI:
        case CHIP_MULLINS:
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c 
b/drivers/gpu/drm/radeon/radeon_drv.c
index ac175442d806..40dff6feac8a 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -277,6 +277,8 @@ static bool radeon_support_enabled(struct device *dev,
 
        case CHIP_BONAIRE:
        case CHIP_HAWAII:
+               support_by_default = false;
+               fallthrough;
        case CHIP_KAVERI:
        case CHIP_KABINI:
        case CHIP_MULLINS:
-- 
2.51.1

Reply via email to