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

Alex Deucher alexdeucher at gmail.com
Mon Nov 7 08:08:19 PST 2011


On Mon, Nov 7, 2011 at 11:05 AM, Tormod Volden <lists.tormod at gmail.com> wrote:
> On Mon, Nov 7, 2011 at 2:50 PM, Konrad Rzeszutek Wilk
> <konrad.wilk at oracle.com> wrote:
>> On Sun, Nov 06, 2011 at 04:03:21PM +0100, Tormod Volden wrote:
>>> 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.
>>
>> Have you tested it on other hardware besides your KN133?
>
> No, I don't have access to other AGP hardware. Note that this will
> only affect the hardware & software/configuration combinations that
> currently result in the "0x" message. A web search on this message
> shows that also some radeon cards are bitten by this. So testing on
> these cards would be welcome.

There are already a number of chipset/asic combos where we force a
certain AGP mode in order to get stable operation.

Alex

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


More information about the dri-devel mailing list