From: Felix Kuehling Date: Mon, 5 Jun 2017 18:52:51 +0900 Subject: drm/radeon: Add module param to control SI support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Git-commit: 36ffce0ac0424ad886061f59b2fabbc4133af37f Patch-mainline: v4.13-rc1 References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166 If AMDGPU supports SI, add a module parameter to control SI support in radeon. It's on by default in radeon, while it will be off by default in AMDGPU as long as SI support is experimental. Signed-off-by: Felix Kuehling Reviewed-by: Christian König Acked-by: Michel Dänzer Acked-by: Petr Tesarik --- drivers/gpu/drm/radeon/radeon.h | 3 +++ drivers/gpu/drm/radeon/radeon_drv.c | 6 ++++++ drivers/gpu/drm/radeon/radeon_kms.c | 14 ++++++++++++++ 3 files changed, 23 insertions(+) --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h @@ -116,6 +116,9 @@ extern int radeon_mst; extern int radeon_uvd; extern int radeon_vce; +#ifdef CONFIG_DRM_AMDGPU_SI +extern int radeon_si_support; +#endif #ifdef CONFIG_DRM_AMDGPU_CIK extern int radeon_cik_support; #endif --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -294,6 +294,12 @@ module_param_named(uvd, radeon_uvd, int, MODULE_PARM_DESC(vce, "vce enable/disable vce support (1 = enable, 0 = disable)"); module_param_named(vce, radeon_vce, int, 0444); +#ifdef CONFIG_DRM_AMDGPU_SI +int radeon_si_support = 1; +MODULE_PARM_DESC(si_support, "SI support (1 = enabled (default), 0 = disabled)"); +module_param_named(si_support, radeon_si_support, int, 0444); +#endif + #ifdef CONFIG_DRM_AMDGPU_CIK int radeon_cik_support = 0; MODULE_PARM_DESC(cik_support, "CIK support (1 = enabled, 0 = disabled (default))"); --- a/drivers/gpu/drm/radeon/radeon_kms.c +++ b/drivers/gpu/drm/radeon/radeon_kms.c @@ -98,6 +98,20 @@ int radeon_driver_load_kms(struct drm_de struct radeon_device *rdev; int r, acpi_status; +#ifdef CONFIG_DRM_AMDGPU_SI + if (!radeon_si_support) { + switch (flags & RADEON_FAMILY_MASK) { + case CHIP_TAHITI: + case CHIP_PITCAIRN: + case CHIP_VERDE: + case CHIP_OLAND: + case CHIP_HAINAN: + dev_info(dev->dev, + "SI support disabled by module param\n"); + return -ENODEV; + } + } +#endif #ifdef CONFIG_DRM_AMDGPU_CIK if (!radeon_cik_support) { switch (flags & RADEON_FAMILY_MASK) {