lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 1 Apr 2010 11:01:43 -0400
From:	Alex Deucher <alexdeucher@...il.com>
To:	Clemens Ladisch <clemens@...isch.de>
Cc:	"Rafael J. Wysocki" <rjw@...k.pl>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Linux PCI <linux-pci@...r.kernel.org>,
	Greg KH <gregkh@...e.de>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	Jesse Barnes <jbarnes@...tuousgeek.org>,
	dri-devel@...ts.sourceforge.net, stable@...nel.org,
	Dave Airlie <airlied@...il.com>
Subject: Re: [Regression, post-rc2] Commit a5ee4eb7541 breaks OpenGL on RS780 
	(was: Re: Linux 2.6.34-rc3)

On Thu, Apr 1, 2010 at 2:36 AM, Clemens Ladisch <clemens@...isch.de> wrote:
> Alex Deucher wrote:
>> On Wed, Mar 31, 2010 at 9:13 PM, Rafael J. Wysocki <rjw@...k.pl> wrote:
>>> On Tuesday 30 March 2010, Rafael J. Wysocki wrote:
>>>> >       PCI quirk: RS780/RS880: work around missing MSI initialization
>>>>
>>>> This one (commit a5ee4eb7541) broke OpenGL acceleration on my new test box
>>>> which happens to have a RS780.
>
> So it's better to disable MSI unconditionally.
>
> Rafael, can you check if MSI works for the HDMI audio device?
> (I'd guess it doesn't.)
>
>> I also have the attached patch queued in via Dave's tree to disable
>> MSI on all IGP chips for the time being.
>
> This disables MSI only for the graphics device.  I'd prefer to have
> the quirk on its bridge so that MSI gets disabled for the HDMI audio
> device too, to avoid having to duplicate this quirk in the snd-hda-intel
> driver.
>
> ==========
>
> PCI quirk: RS780/RS880: disable MSI completely
>
> The missing initialization of the nb_cntl.strap_msi_enable does not seem
> to be the only problem that prevents MSI, so that quirk is not
> sufficient to enable MSI on all machines.  To be safe, unconditionally
> disable MSI for the internal graphics and HDMI audio on these chipsets.
>
> Signed-off-by: Clemens Ladisch <clemens@...isch.de>

Works fine here.

Tested-by: Alex Deucher <alexdeucher@...il.com>

>
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2123,6 +2123,8 @@ static void __devinit quirk_disable_msi(struct pci_dev *dev)
>        }
>  }
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_msi);
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x9602, quirk_disable_msi);
> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASUSTEK, 0x9602, quirk_disable_msi);
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, 0xa238, quirk_disable_msi);
>
>  /* Go through the list of Hypertransport capabilities and
> @@ -2495,39 +2497,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374,
>  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
>                        quirk_msi_intx_disable_bug);
>
> -/*
> - * MSI does not work with the AMD RS780/RS880 internal graphics and HDMI audio
> - * devices unless the BIOS has initialized the nb_cntl.strap_msi_enable bit.
> - */
> -static void __init rs780_int_gfx_disable_msi(struct pci_dev *int_gfx_bridge)
> -{
> -       u32 nb_cntl;
> -
> -       if (!int_gfx_bridge->subordinate)
> -               return;
> -
> -       pci_bus_write_config_dword(int_gfx_bridge->bus, PCI_DEVFN(0, 0),
> -                                  0x60, 0);
> -       pci_bus_read_config_dword(int_gfx_bridge->bus, PCI_DEVFN(0, 0),
> -                                 0x64, &nb_cntl);
> -
> -       if (!(nb_cntl & BIT(10))) {
> -               dev_warn(&int_gfx_bridge->dev,
> -                        FW_WARN "RS780: MSI for internal graphics disabled\n");
> -               int_gfx_bridge->subordinate->bus_flags |= PCI_BUS_FLAGS_NO_MSI;
> -       }
> -}
> -
> -#define PCI_DEVICE_ID_AMD_RS780_P2P_INT_GFX    0x9602
> -
> -DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD,
> -                       PCI_DEVICE_ID_AMD_RS780_P2P_INT_GFX,
> -                       rs780_int_gfx_disable_msi);
> -/* wrong vendor ID on M4A785TD motherboard: */
> -DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASUSTEK,
> -                       PCI_DEVICE_ID_AMD_RS780_P2P_INT_GFX,
> -                       rs780_int_gfx_disable_msi);
> -
>  #endif /* CONFIG_PCI_MSI */
>
>  #ifdef CONFIG_PCI_IOV
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ