Ondrej Zary
2015-Sep-30 11:48 UTC
[Nouveau] [PATCH] [resend] nouveau: Disable AGP for SiS 761
SiS 761 chipset does not support AGP cards but has AGP capability (for
the onboard video). At least PC Chips A31G board using this chipset has
an AGP-like AGPro slot that's wired to the PCI bus. Enabling AGP will
fail (GPU lockup and software fbcon, X11 hangs).
Add support for matching just the host bridge in nvkm_device_agp_quirks
and add entry for SiS 761 with mode 0 (AGP disabled).
Signed-off-by: Ondrej Zary <linux at rainbow-software.org>
---
drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c
b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c
index 814cb51..385a90f 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c
@@ -35,6 +35,8 @@ static const struct nvkm_device_agp_quirk
nvkm_device_agp_quirks[] = {
/* VIA Apollo PRO133x / GeForce FX 5600 Ultra - fdo#20341 */
{ PCI_VENDOR_ID_VIA, 0x0691, PCI_VENDOR_ID_NVIDIA, 0x0311, 2 },
+ /* SiS 761 does not support AGP cards, use PCI mode */
+ { PCI_VENDOR_ID_SI, 0x0761, PCI_ANY_ID, PCI_ANY_ID, 0 },
{},
};
@@ -137,8 +139,10 @@ nvkm_agp_ctor(struct nvkm_pci *pci)
while (quirk->hostbridge_vendor) {
if (info.device->vendor == quirk->hostbridge_vendor &&
info.device->device == quirk->hostbridge_device &&
- pci->pdev->vendor == quirk->chip_vendor &&
- pci->pdev->device == quirk->chip_device) {
+ (quirk->chip_vendor == (u16)PCI_ANY_ID ||
+ pci->pdev->vendor == quirk->chip_vendor) &&
+ (quirk->chip_device == (u16)PCI_ANY_ID ||
+ pci->pdev->device == quirk->chip_device)) {
nvkm_info(subdev, "forcing default agp mode to %dX, "
"use NvAGP=<mode> to override\n",
quirk->mode);
--
Ondrej Zary
Samuel Pitoiset
2015-Sep-30 11:52 UTC
[Nouveau] [PATCH] [resend] nouveau: Disable AGP for SiS 761
This patch has been merged by Ben yesterday. http://cgit.freedesktop.org/~darktama/nouveau/commit/?id=8c713f90a63ffca10d122af09d439f3409c933ed Why do you send a new version ? Is the previous patch wrong? On 09/30/2015 01:48 PM, Ondrej Zary wrote:> SiS 761 chipset does not support AGP cards but has AGP capability (for > the onboard video). At least PC Chips A31G board using this chipset has > an AGP-like AGPro slot that's wired to the PCI bus. Enabling AGP will > fail (GPU lockup and software fbcon, X11 hangs). > > Add support for matching just the host bridge in nvkm_device_agp_quirks > and add entry for SiS 761 with mode 0 (AGP disabled). > > Signed-off-by: Ondrej Zary <linux at rainbow-software.org> > --- > drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c > index 814cb51..385a90f 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c > @@ -35,6 +35,8 @@ static const struct nvkm_device_agp_quirk > nvkm_device_agp_quirks[] = { > /* VIA Apollo PRO133x / GeForce FX 5600 Ultra - fdo#20341 */ > { PCI_VENDOR_ID_VIA, 0x0691, PCI_VENDOR_ID_NVIDIA, 0x0311, 2 }, > + /* SiS 761 does not support AGP cards, use PCI mode */ > + { PCI_VENDOR_ID_SI, 0x0761, PCI_ANY_ID, PCI_ANY_ID, 0 }, > {}, > }; > > @@ -137,8 +139,10 @@ nvkm_agp_ctor(struct nvkm_pci *pci) > while (quirk->hostbridge_vendor) { > if (info.device->vendor == quirk->hostbridge_vendor && > info.device->device == quirk->hostbridge_device && > - pci->pdev->vendor == quirk->chip_vendor && > - pci->pdev->device == quirk->chip_device) { > + (quirk->chip_vendor == (u16)PCI_ANY_ID || > + pci->pdev->vendor == quirk->chip_vendor) && > + (quirk->chip_device == (u16)PCI_ANY_ID || > + pci->pdev->device == quirk->chip_device)) { > nvkm_info(subdev, "forcing default agp mode to %dX, " > "use NvAGP=<mode> to override\n", > quirk->mode);
Ondrej Zary
2015-Sep-30 12:36 UTC
[Nouveau] [PATCH] [resend] nouveau: Disable AGP for SiS 761
On Wednesday 30 September 2015, Samuel Pitoiset wrote:> This patch has been merged by Ben yesterday. > > http://cgit.freedesktop.org/~darktama/nouveau/commit/?id=8c713f90a63ffca10d >122af09d439f3409c933ed > > Why do you send a new version ? Is the previous patch wrong?Oops, sorry. Didn't notice it was merged. -- Ondrej Zary