drm/radeon: add driver option to disable uvd block.
authorJérome Glisse <jglisse@redhat.com>
Fri, 18 Mar 2016 15:58:36 +0000 (16:58 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 2 May 2016 17:08:52 +0000 (13:08 -0400)
Quite few suspend/hibernation bugs are related to this block. Add
an option to disable those as a work around.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_asic.c
drivers/gpu/drm/radeon/radeon_drv.c

index 8ac3e072dcd8ab066db93dbf05df40dcc4a421b6..1b26ceffed2416628008fe3d5eb42420175e3b82 100644 (file)
@@ -113,6 +113,7 @@ extern int radeon_bapm;
 extern int radeon_backlight;
 extern int radeon_auxch;
 extern int radeon_mst;
+extern int radeon_uvd;
 
 /*
  * Copy from radeon_drv.h so we don't have to include both and have conflicting
index 46a4ced338a474fe8672d1faafac524f293ec480..b4810ef06aee13082d855950a0201a89a879028f 100644 (file)
@@ -2696,6 +2696,9 @@ int radeon_asic_init(struct radeon_device *rdev)
                rdev->asic->pm.set_memory_clock = NULL;
        }
 
+       if (!radeon_uvd)
+               rdev->has_uvd = false;
+
        return 0;
 }
 
index 5d44ed0d104a1dd3649039708f46ba156a2c2eef..d637828ae53ca1646a321aeec02817597622c86a 100644 (file)
@@ -196,6 +196,7 @@ int radeon_bapm = -1;
 int radeon_backlight = -1;
 int radeon_auxch = -1;
 int radeon_mst = 0;
+int radeon_uvd = 1;
 
 MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers");
 module_param_named(no_wb, radeon_no_wb, int, 0444);
@@ -287,6 +288,9 @@ module_param_named(auxch, radeon_auxch, int, 0444);
 MODULE_PARM_DESC(mst, "DisplayPort MST experimental support (1 = enable, 0 = disable)");
 module_param_named(mst, radeon_mst, int, 0444);
 
+MODULE_PARM_DESC(uvd, "uvd enable/disable uvd support (1 = enable, 0 = disable)");
+module_param_named(uvd, radeon_uvd, int, 0444);
+
 static struct pci_device_id pciidlist[] = {
        radeon_PCI_IDS
 };