Re: [Regression, post-rc2] Commit a5ee4eb7541 breaks OpenGL on RS780 (was: Re: Linux 2.6.34-rc3)

From: Alex Deucher
Date: Wed Mar 31 2010 - 22:19:40 EST


On Wed, Mar 31, 2010 at 9:13 PM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
> On Tuesday 30 March 2010, Rafael J. Wysocki wrote:
>> On Tuesday 30 March 2010, Linus Torvalds wrote:
>> ...
>> > Other than that? Random fixes and updates all over. Mostly drivers and
>> > filesystems, and mostly fairly small things. If you had PCI resource
>> > conflict problems with the early -rc's due to the _CRS window thing, for
>> > example, that should hopefully be fixed. See the appended shortlog for
>> > other details.
>>
>> ...
>>
>> > Clemens Ladisch (4):
>> >       firewire: core: fw_iso_resource_manage: fix error handling
>> >       firewire: ohci: add cycle timer quirk for the TI TSB12LV22
>> >       ALSA: cmipci: work around invalid PCM pointer
>> >       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.
>>
>> The symptom is that every operation involving the GPU is _very_ slow, so the
>> window manager eventually disables compositing.  Reverting this commit makes
>> things work flawlessly again.
>>
>> So, please revert.
>>
>> BTW, I don't think it's a -stable material.
>
> OK, I've verified that partial revert (below) is sufficient.
>
> Rafael
>
> ---
> From: Rafael J. Wysocki <rjw@xxxxxxx>
> Subject: DRM / radeon: Really do not try to enable MSI on RS780 and RS880
>
> Commit a5ee4eb75413c145334c30e43f1af9875dad6fd7
> (PCI quirk: RS780/RS880: work around missing MSI initialization)
> removed a quirk to disable MSI on RS780 and RS880, which still is
> necessary on my Acer Ferrari One, because pci_enable_msi() attempts
> to enable the MSI and apparently succeeds despite the PCI quirk
> added by that commit.  Add the removed radeon quirk again.
>
> Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> ---
>  drivers/gpu/drm/radeon/radeon_irq_kms.c |    8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> Index: linux-2.6/drivers/gpu/drm/radeon/radeon_irq_kms.c
> ===================================================================
> --- linux-2.6.orig/drivers/gpu/drm/radeon/radeon_irq_kms.c
> +++ linux-2.6/drivers/gpu/drm/radeon/radeon_irq_kms.c
> @@ -116,7 +116,13 @@ int radeon_irq_kms_init(struct radeon_de
>        }
>        /* enable msi */
>        rdev->msi_enabled = 0;
> -       if (rdev->family >= CHIP_RV380) {
> +       /* MSIs don't seem to work on my rs780;
> +        * not sure about rs880 or other rs780s.
> +        * Needs more investigation.
> +        */
> +       if ((rdev->family >= CHIP_RV380) &&
> +           (rdev->family != CHIP_RS780) &&
> +           (rdev->family != CHIP_RS880)) {
>                int ret = pci_enable_msi(rdev->pdev);
>                if (!ret) {
>                        rdev->msi_enabled = 1;

I also have the attached patch queued in via Dave's tree to disable
MSI on all IGP chips for the time being.

Alex

Attachment: 0001-drm-radeon-kms-disable-MSI-on-IGP-chips.patch
Description: application/mbox