[AGPGART] Fix up misprogrammed bridges with incorrect AGPv2 rates.
authorDave Jones <davej@redhat.com>
Fri, 3 Nov 2006 20:13:27 +0000 (15:13 -0500)
committerDave Jones <davej@redhat.com>
Fri, 3 Nov 2006 20:13:27 +0000 (15:13 -0500)
commit28af24bb8470c7d0573b703a2955548b73a6c066
treec8b68e60d8195e1200bf95cfdef0b3e5c53a28ed
parent18088748d2a493ce9f6adf0be7f833b04041807e
[AGPGART] Fix up misprogrammed bridges with incorrect AGPv2 rates.

Some dumb bridges are programmed to disobey the AGP2 spec.
This is likely a BIOS misprogramming rather than poweron default, or
it would be a lot more common.

AGPv2 spec 6.1.9 states:

 "The RATE field indicates the data transfer rates supported by this
  device. A.G.P. devices must report all that apply."

Fix them up as best we can.

This will prevent errors like..

agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0.
agpgart: req mode 1f000201 bridge_agpstat 1f000a14 vga_agpstat 2f000217.
agpgart: Device is in legacy mode, falling back to 2.x
agpgart: Putting AGP V2 device at 0000:00:00.0 into 0x mode
agpgart: Putting AGP V2 device at 0000:01:00.0 into 0x mode
agpgart: Putting AGP V2 device at 0000:01:00.1 into 0x mode

https://bugs.freedesktop.org/show_bug.cgi?id=8816

Signed-off-by: Dave Jones <davej@redhat.com>
drivers/char/agp/generic.c