linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] PCI: disable MSI on SiS 761
@ 2015-09-11 21:12 Ondrej Zary
  2015-09-24 18:21 ` Bjorn Helgaas
  2015-09-24 20:40 ` Bjorn Helgaas
  0 siblings, 2 replies; 4+ messages in thread
From: Ondrej Zary @ 2015-09-11 21:12 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: linux-pci, Kernel development list

MSI is broken on SiS 761 chipset at least on PC Chips A31G board.
No interrupts are delivered once MSI is enabled for a device. This causes
hang on X11 start with a nVidia card installed (with nouveau driver).

Disable MSI completely for this chipset.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
---
 drivers/pci/quirks.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index e9fd0e9..6caffc3 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2204,6 +2204,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disab
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8380_0, quirk_disable_all_msi);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
 
 /* Disable MSI on chipsets that are known to not support it */
 static void quirk_disable_msi(struct pci_dev *dev)
-- 
Ondrej Zary


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] PCI: disable MSI on SiS 761
  2015-09-11 21:12 [PATCH] PCI: disable MSI on SiS 761 Ondrej Zary
@ 2015-09-24 18:21 ` Bjorn Helgaas
  2015-09-24 19:21   ` Ondrej Zary
  2015-09-24 20:40 ` Bjorn Helgaas
  1 sibling, 1 reply; 4+ messages in thread
From: Bjorn Helgaas @ 2015-09-24 18:21 UTC (permalink / raw)
  To: Ondrej Zary; +Cc: Bjorn Helgaas, linux-pci, Kernel development list

Hi Ondrej,

On Fri, Sep 11, 2015 at 11:12:17PM +0200, Ondrej Zary wrote:
> MSI is broken on SiS 761 chipset at least on PC Chips A31G board.
> No interrupts are delivered once MSI is enabled for a device. This causes
> hang on X11 start with a nVidia card installed (with nouveau driver).
> 
> Disable MSI completely for this chipset.
> 
> Signed-off-by: Ondrej Zary <linux@rainbow-software.org>

This is a pretty old chipset, isn't it?  Google finds a reference to
SiS 761GX from 2005.  I wonder why we're only finding this problem
now.  Is there a problem report?  I wonder if the problem is really
elsewhere, and turning off MSI just avoids the real problem.

Bjorn

> ---
>  drivers/pci/quirks.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index e9fd0e9..6caffc3 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2204,6 +2204,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disab
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8380_0, quirk_disable_all_msi);
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
>  
>  /* Disable MSI on chipsets that are known to not support it */
>  static void quirk_disable_msi(struct pci_dev *dev)
> -- 
> Ondrej Zary
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] PCI: disable MSI on SiS 761
  2015-09-24 18:21 ` Bjorn Helgaas
@ 2015-09-24 19:21   ` Ondrej Zary
  0 siblings, 0 replies; 4+ messages in thread
From: Ondrej Zary @ 2015-09-24 19:21 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Bjorn Helgaas, linux-pci, Kernel development list

On Thursday 24 September 2015 20:21:16 Bjorn Helgaas wrote:
> Hi Ondrej,
>
> On Fri, Sep 11, 2015 at 11:12:17PM +0200, Ondrej Zary wrote:
> > MSI is broken on SiS 761 chipset at least on PC Chips A31G board.
> > No interrupts are delivered once MSI is enabled for a device. This causes
> > hang on X11 start with a nVidia card installed (with nouveau driver).
> >
> > Disable MSI completely for this chipset.
> >
> > Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
>
> This is a pretty old chipset, isn't it?  Google finds a reference to
> SiS 761GX from 2005.  I wonder why we're only finding this problem
> now.  Is there a problem report?  I wonder if the problem is really
> elsewhere, and turning off MSI just avoids the real problem.

Yes, it's an old chipset and board (Socket 754) and not very common. Nouveau 
was not usable back then, MSI support was added to Nouveau in 2010 and 
enabled by default only in 2013. Maybe I'm the only one who tested MSI on 
this board/chipset...

The facts are:
 - zero interrupts in /proc/interrupts with MSI enabled and X11 hangs
 - everything works fine with MSI disabled
 - tested with two different nVidia cards (don't have any other PCIe card to 
test)

I guess that either the MSI support in the chipset is broken or the BIOS does 
not set up some secret chipset register(s) correctly.

-- 
Ondrej Zary

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] PCI: disable MSI on SiS 761
  2015-09-11 21:12 [PATCH] PCI: disable MSI on SiS 761 Ondrej Zary
  2015-09-24 18:21 ` Bjorn Helgaas
@ 2015-09-24 20:40 ` Bjorn Helgaas
  1 sibling, 0 replies; 4+ messages in thread
From: Bjorn Helgaas @ 2015-09-24 20:40 UTC (permalink / raw)
  To: Ondrej Zary; +Cc: Bjorn Helgaas, linux-pci, Kernel development list

On Fri, Sep 11, 2015 at 11:12:17PM +0200, Ondrej Zary wrote:
> MSI is broken on SiS 761 chipset at least on PC Chips A31G board.
> No interrupts are delivered once MSI is enabled for a device. This causes
> hang on X11 start with a nVidia card installed (with nouveau driver).
> 
> Disable MSI completely for this chipset.
> 
> Signed-off-by: Ondrej Zary <linux@rainbow-software.org>

Applied to pci/misc for v4.4, thanks!

> ---
>  drivers/pci/quirks.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index e9fd0e9..6caffc3 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2204,6 +2204,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disab
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8380_0, quirk_disable_all_msi);
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
>  
>  /* Disable MSI on chipsets that are known to not support it */
>  static void quirk_disable_msi(struct pci_dev *dev)
> -- 
> Ondrej Zary
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-09-24 20:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-11 21:12 [PATCH] PCI: disable MSI on SiS 761 Ondrej Zary
2015-09-24 18:21 ` Bjorn Helgaas
2015-09-24 19:21   ` Ondrej Zary
2015-09-24 20:40 ` Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).