Re: [PATCH] agp: Enable all supported rates for graphic cards

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx> wrote:
From: Tormod Volden <debian.tormod@xxxxxxxxx>

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@xxxxxxxxx>
---
 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@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux