[PATCH] agp: Enable all supported rates for graphic cards
Tormod Volden
lists.tormod at gmail.com
Sun Nov 6 07:03:21 PST 2011
From: Tormod Volden <debian.tormod at gmail.com>
Some cards report that they support only 4x, in which case they
should support 2x and 1x as well, according to the AGP spec.
Otherwise a requested 1x or 2x rate will result in 0 being set:
agpgart-via 0000:00:00.0: putting AGP V2 device into 0x mode
For instance ProSavage KN133 [5333:8d02] only reports 4x.
Signed-off-by: Tormod Volden <debian.tormod at gmail.com>
---
drivers/char/agp/generic.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
index b072648..c5d04e5 100644
--- a/drivers/char/agp/generic.c
+++ b/drivers/char/agp/generic.c
@@ -526,6 +526,24 @@ static void agp_v2_parse_one(u32 *requested_mode, u32 *bridge_agpstat, u32 *vga_
break;
}
+ /* Some graphic cards report they only support 4x, however the AGP 2.0 spec
+ * (section 4.1.1) says components must support the lower speeds as well.
+ */
+ switch (*vga_agpstat & 7) {
+ case 4:
+ *vga_agpstat |= (AGPSTAT2_2X | AGPSTAT2_1X);
+ printk(KERN_INFO PFX "Graphics card claims to only support x4 rate. "
+ "Fixing up support for x2 & x1\n");
+ break;
+ case 2:
+ *vga_agpstat |= AGPSTAT2_1X;
+ printk(KERN_INFO PFX "Graphics card claims to only support x2 rate. "
+ "Fixing up support for x1\n");
+ break;
+ default:
+ break;
+ }
+
/* Check the speed bits make sense. Only one should be set. */
tmp = *requested_mode & 7;
switch (tmp) {
--
1.7.5.4
More information about the dri-devel
mailing list