[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <455CF360.4000101@trollprod.org>
Date: Fri, 17 Nov 2006 00:25:20 +0100
From: Olivier Nicolas <olivn@...llprod.org>
To: Yinghai Lu <yinghai.lu@....com>
CC: Linus Torvalds <torvalds@...l.org>, Mws <mws@...sted-brains.org>,
Jeff Garzik <jeff@...zik.org>,
Krzysztof Halasa <khc@...waw.pl>,
David Miller <davem@...emloft.net>,
linux-kernel@...r.kernel.org, tiwai@...e.de
Subject: Re: [PATCH] ALSA: hda-intel - Disable MSI support by default
Yinghai Lu wrote:
> Please try the patch about using pci_intx.
>
> it could use msi.
It can't cold boot with this one (with pci=routeirq or not)
The last visible boot messages are
Interrupt Link [AAZA] enabled at IRQ 20
Interrupt 0000:00:0e.1[B]->Link [AAZA] -> GSI 20 (level,low) -> IRQ 20
Olivier
>
> YH
>
>
> ------------------------------------------------------------------------
>
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index e35cfd3..88b99ab 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -547,6 +547,7 @@ static unsigned int azx_rirb_get_respons
> chip->msi = 0;
> if (azx_acquire_irq(chip, 1) < 0)
> return -1;
> + pci_intx(chip->pci, 1);
> goto again;
> }
>
> @@ -1435,11 +1436,16 @@ static int azx_resume(struct pci_dev *pc
> return -EIO;
> }
> pci_set_master(pci);
> - if (chip->msi)
> + if (chip->msi) {
> + pci_intx(pci, 0);
> if (pci_enable_msi(pci) < 0)
> chip->msi = 0;
> + }
> if (azx_acquire_irq(chip, 1) < 0)
> return -EIO;
> +
> + if (!chip->msi)
> + pci_intx(pci, 1);
> azx_init_chip(chip);
> snd_hda_resume(chip->bus);
> snd_power_change_state(card, SNDRV_CTL_POWER_D0);
> @@ -1531,7 +1537,8 @@ static int __devinit azx_create(struct s
> chip->pci = pci;
> chip->irq = -1;
> chip->driver_type = driver_type;
> - chip->msi = enable_msi;
> +// chip->msi = enable_msi;
> + chip->msi = 1;
>
> chip->position_fix = position_fix;
> chip->single_cmd = single_cmd;
> @@ -1561,14 +1568,19 @@ #endif
> goto errout;
> }
>
> - if (chip->msi)
> + if (chip->msi) {
> + pci_intx(pci, 0);
> if (pci_enable_msi(pci) < 0)
> chip->msi = 0;
> + }
>
> if (azx_acquire_irq(chip, 0) < 0) {
> err = -EBUSY;
> goto errout;
> }
> +
> + if(!chip->msi)
> + pci_intx(pci, 1);
>
> pci_set_master(pci);
> synchronize_irq(chip->irq);
--
Laudator temporis acti (Horace, 173)
Donner c'est donner, repeindre ses volets
-
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