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

Tormod Volden lists.tormod at gmail.com
Mon Nov 7 08:33:51 PST 2011


On Mon, Nov 7, 2011 at 5:08 PM, Alex Deucher <alexdeucher at gmail.com> wrote:
> 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

Exactly, we /try/ to force a certain AGP mode. But if we end up
pushing x0 to the bridge, that is not successful. I don't think we
ever want to set x0 for any reason. Of course, it is possible that in
some cases 0x magically work, and that the quirked rate that we tried
to set will not work, but then we should fix that quirk.

Tormod


>
>>
>> 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