2008-08-10 20:49:18

by Krzysztof Helt

[permalink] [raw]
Subject: [PATCH RESEND] agp: fix SIS 5591/5592 wrong PCI id

From: Krzysztof Helt <[email protected]>

The correct id for the AGP bridge is the id of
the main host (5591) not the id of the PCI-to-PCI
bridge AGP (0001). Output from "lspci -nv" shows
that only the former has AGP capabilities flag set:

00:00.0 0600: 1039:5591 (rev 02)
Flags: bus master, medium devsel, latency 64
Memory at ec000000 (32-bit, non-prefetchable) [size=32M]
Capabilities: [c0] AGP version 1.0

00:02.0 0604: 1039:0001 (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: eb500000-eb5fffff
Prefetchable memory behind bridge: eb300000-eb3fffff


Signed-off-by: Krzysztof Helt <[email protected]>
---

The AGP bridge is correctly detected with the patch applied.
I have tested it on PC Chips M570 motherboard.

--- linux-mm/drivers/char/agp/sis-agp.c~ 2008-08-04 18:00:31.133979040 +0200
+++ linux-mm/drivers/char/agp/sis-agp.c 2008-08-06 18:33:02.162916563 +0200
@@ -241,7 +241,7 @@ static struct pci_device_id agp_sis_pci_
.class = (PCI_CLASS_BRIDGE_HOST << 8),
.class_mask = ~0,
.vendor = PCI_VENDOR_ID_SI,
- .device = PCI_DEVICE_ID_SI_5591_AGP,
+ .device = PCI_DEVICE_ID_SI_5591,
.subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID,
},


2008-08-12 00:09:12

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH RESEND] agp: fix SIS 5591/5592 wrong PCI id

On Sun, 10 Aug 2008 22:54:52 +0200
Krzysztof Helt <[email protected]> wrote:

> From: Krzysztof Helt <[email protected]>
>
> The correct id for the AGP bridge is the id of
> the main host (5591) not the id of the PCI-to-PCI
> bridge AGP (0001). Output from "lspci -nv" shows
> that only the former has AGP capabilities flag set:
>
> 00:00.0 0600: 1039:5591 (rev 02)
> Flags: bus master, medium devsel, latency 64
> Memory at ec000000 (32-bit, non-prefetchable) [size=32M]
> Capabilities: [c0] AGP version 1.0
>
> 00:02.0 0604: 1039:0001 (prog-if 00 [Normal decode])
> Flags: bus master, fast devsel, latency 0
> Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> I/O behind bridge: 0000c000-0000cfff
> Memory behind bridge: eb500000-eb5fffff
> Prefetchable memory behind bridge: eb300000-eb3fffff
>
>
> Signed-off-by: Krzysztof Helt <[email protected]>
> ---
>
> The AGP bridge is correctly detected with the patch applied.
> I have tested it on PC Chips M570 motherboard.
>
> --- linux-mm/drivers/char/agp/sis-agp.c~ 2008-08-04 18:00:31.133979040 +0200
> +++ linux-mm/drivers/char/agp/sis-agp.c 2008-08-06 18:33:02.162916563 +0200
> @@ -241,7 +241,7 @@ static struct pci_device_id agp_sis_pci_
> .class = (PCI_CLASS_BRIDGE_HOST << 8),
> .class_mask = ~0,
> .vendor = PCI_VENDOR_ID_SI,
> - .device = PCI_DEVICE_ID_SI_5591_AGP,
> + .device = PCI_DEVICE_ID_SI_5591,
> .subvendor = PCI_ANY_ID,
> .subdevice = PCI_ANY_ID,
> },

This fix appears to be applicable to both 2.6.25.x and to 2.6.26.x. Do you
think that the problem which it solves is sufficiently serious to
warrant the backport?

Thanks.

2008-08-12 04:25:57

by Krzysztof Helt

[permalink] [raw]
Subject: Re: [PATCH RESEND] agp: fix SIS 5591/5592 wrong PCI id

On Mon, 11 Aug 2008 17:08:03 -0700
Andrew Morton <[email protected]> wrote:

> On Sun, 10 Aug 2008 22:54:52 +0200
> Krzysztof Helt <[email protected]> wrote:
>
> > From: Krzysztof Helt <[email protected]>
> >
> > The correct id for the AGP bridge is the id of
> > the main host (5591) not the id of the PCI-to-PCI
> > bridge AGP (0001). Output from "lspci -nv" shows
> > that only the former has AGP capabilities flag set:
> >
> > 00:00.0 0600: 1039:5591 (rev 02)
> > Flags: bus master, medium devsel, latency 64
> > Memory at ec000000 (32-bit, non-prefetchable) [size=32M]
> > Capabilities: [c0] AGP version 1.0
> >
> > 00:02.0 0604: 1039:0001 (prog-if 00 [Normal decode])
> > Flags: bus master, fast devsel, latency 0
> > Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> > I/O behind bridge: 0000c000-0000cfff
> > Memory behind bridge: eb500000-eb5fffff
> > Prefetchable memory behind bridge: eb300000-eb3fffff
> >
> >
> > Signed-off-by: Krzysztof Helt <[email protected]>
> > ---
> >
> > The AGP bridge is correctly detected with the patch applied.
> > I have tested it on PC Chips M570 motherboard.
> >
> > --- linux-mm/drivers/char/agp/sis-agp.c~ 2008-08-04 18:00:31.133979040 +0200
> > +++ linux-mm/drivers/char/agp/sis-agp.c 2008-08-06 18:33:02.162916563 +0200
> > @@ -241,7 +241,7 @@ static struct pci_device_id agp_sis_pci_
> > .class = (PCI_CLASS_BRIDGE_HOST << 8),
> > .class_mask = ~0,
> > .vendor = PCI_VENDOR_ID_SI,
> > - .device = PCI_DEVICE_ID_SI_5591_AGP,
> > + .device = PCI_DEVICE_ID_SI_5591,
> > .subvendor = PCI_ANY_ID,
> > .subdevice = PCI_ANY_ID,
> > },
>
> This fix appears to be applicable to both 2.6.25.x and to 2.6.26.x. Do you
> think that the problem which it solves is sufficiently serious to
> warrant the backport?
>

This is old chipset and the error is since kernel 2.6.8 when the
untested support was introduced. I would skip stable branches
as I used it only few days for now. In fact, it is like adding new
hardware which was previously not supported.

Regards,
Krzysztof