Trusting the spec worries me; could this break anybody?
Is there any reason to use the not-so-magic numbers instead of the named constants?
Sending from a mobile, pardon my terseness. ~ C. On Nov 6, 2011 7:03 AM, "Tormod Volden" lists.tormod@gmail.com wrote:
From: Tormod Volden debian.tormod@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@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
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel