aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2014-07-01 11:23:03 -0400
committerAlex Deucher <alexander.deucher@amd.com>2014-07-01 11:23:03 -0400
commita624f4290ab09e996b1040c3a349241f76742327 (patch)
tree5a5d94a93c6a7376222215b1b7ccca2dc0ce6bf1
parent0c78a44964db3d483b0c09a8236e0fe123aa9cfc (diff)
drm/radeon: add a module parameter to control deep color support
Some monitors seem to have problems with deep color enabled, even though they claim to support it. I'm not sure if the monitor need a quirk or if the driver is doing something the monitor doesn't like. At this point lets just disable deep color by default like we did for hdmi audio and work through the bugs so we can eventually enable it by default. bug: https://bugs.freedesktop.org/show_bug.cgi?id=80531 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/radeon.h1
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c3
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c4
3 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 4b0bbf88d5c0..a2e1ed8d4ed4 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -102,6 +102,7 @@ extern int radeon_runtime_pm;
102extern int radeon_hard_reset; 102extern int radeon_hard_reset;
103extern int radeon_vm_size; 103extern int radeon_vm_size;
104extern int radeon_vm_block_size; 104extern int radeon_vm_block_size;
105extern int radeon_deep_color;
105 106
106/* 107/*
107 * Copy from radeon_drv.h so we don't have to include both and have conflicting 108 * Copy from radeon_drv.h so we don't have to include both and have conflicting
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 1b9177ed181f..44831197e82e 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -199,6 +199,9 @@ int radeon_get_monitor_bpc(struct drm_connector *connector)
199 } 199 }
200 } 200 }
201 201
202 if ((radeon_deep_color == 0) && (bpc > 8))
203 bpc = 8;
204
202 DRM_DEBUG("%s: Display bpc=%d, returned bpc=%d\n", 205 DRM_DEBUG("%s: Display bpc=%d, returned bpc=%d\n",
203 connector->name, connector->display_info.bpc, bpc); 206 connector->name, connector->display_info.bpc, bpc);
204 207
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 6e3017413386..cb1421369e3a 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -175,6 +175,7 @@ int radeon_runtime_pm = -1;
175int radeon_hard_reset = 0; 175int radeon_hard_reset = 0;
176int radeon_vm_size = 4096; 176int radeon_vm_size = 4096;
177int radeon_vm_block_size = 9; 177int radeon_vm_block_size = 9;
178int radeon_deep_color = 0;
178 179
179MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); 180MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers");
180module_param_named(no_wb, radeon_no_wb, int, 0444); 181module_param_named(no_wb, radeon_no_wb, int, 0444);
@@ -248,6 +249,9 @@ module_param_named(vm_size, radeon_vm_size, int, 0444);
248MODULE_PARM_DESC(vm_block_size, "VM page table size in bits (default 9)"); 249MODULE_PARM_DESC(vm_block_size, "VM page table size in bits (default 9)");
249module_param_named(vm_block_size, radeon_vm_block_size, int, 0444); 250module_param_named(vm_block_size, radeon_vm_block_size, int, 0444);
250 251
252MODULE_PARM_DESC(deep_color, "Deep Color support (1 = enable, 0 = disable (default))");
253module_param_named(deep_color, radeon_deep_color, int, 0444);
254
251static struct pci_device_id pciidlist[] = { 255static struct pci_device_id pciidlist[] = {
252 radeon_PCI_IDS 256 radeon_PCI_IDS
253}; 257};