All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Kai-Heng Feng <kai.heng.feng@canonical.com>
Cc: alsa-devel@alsa-project.org, kai.vehmanen@linux.intel.com,
	linux-kernel@vger.kernel.org, tiwai@suse.com,
	hui.wang@canonical.com
Subject: Re: [PATCH v2 2/4] ALSA: hda: Stop mangling PCI IRQ
Date: Tue, 27 Oct 2020 08:36:35 +0100	[thread overview]
Message-ID: <s5hmu082k8s.wl-tiwai@suse.de> (raw)
In-Reply-To: <20201027054001.1800-3-kai.heng.feng@canonical.com>

On Tue, 27 Oct 2020 06:39:59 +0100,
Kai-Heng Feng wrote:
> 
> The code predates 2005, it should be unnecessary now as PCI core handles
> IRQ much better nowadays.
> 
> So stop PCI IRQ mangling in suspend/resume callbacks.
> 
> Takashi Iwai mentioned that IRQ number can change after S3 on some
> really old hardwares. We should use quirks to handle those platforms, as
> most modern systems won't have that issue.

I believe it was S4.  And this pretty much depends on BIOS, hence it's
hard to apply the quirk, honestly speaking.

And, if we know that we need a quirk, dropping the code completely now
is a bad move.  If any, this should be applied conditionally to the
"known to be modern" platforms, but this will make the code rather
messier, OTOH.

Do we need this change inevitably?  Otherwise I'd skip this one.


thanks,

Takashi


> 
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> ---
> v2:
>  - Wording.
>  - Add info on IRQ # can change on old hardwares.
> 
>  sound/pci/hda/hda_intel.c | 15 ---------------
>  1 file changed, 15 deletions(-)
> 
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index 749b88090970..b4aa1dcf1aae 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -1022,13 +1022,11 @@ static int azx_suspend(struct device *dev)
>  {
>  	struct snd_card *card = dev_get_drvdata(dev);
>  	struct azx *chip;
> -	struct hdac_bus *bus;
>  
>  	if (!azx_is_pm_ready(card))
>  		return 0;
>  
>  	chip = card->private_data;
> -	bus = azx_bus(chip);
>  	snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
>  	/* An ugly workaround: direct call of __azx_runtime_suspend() and
>  	 * __azx_runtime_resume() for old Intel platforms that suffer from
> @@ -1038,14 +1036,6 @@ static int azx_suspend(struct device *dev)
>  		__azx_runtime_suspend(chip);
>  	else
>  		pm_runtime_force_suspend(dev);
> -	if (bus->irq >= 0) {
> -		free_irq(bus->irq, chip);
> -		bus->irq = -1;
> -		chip->card->sync_irq = -1;
> -	}
> -
> -	if (chip->msi)
> -		pci_disable_msi(chip->pci);
>  
>  	trace_azx_suspend(chip);
>  	return 0;
> @@ -1060,11 +1050,6 @@ static int azx_resume(struct device *dev)
>  		return 0;
>  
>  	chip = card->private_data;
> -	if (chip->msi)
> -		if (pci_enable_msi(chip->pci) < 0)
> -			chip->msi = 0;
> -	if (azx_acquire_irq(chip, 1) < 0)
> -		return -EIO;
>  
>  	if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
>  		__azx_runtime_resume(chip, false);
> -- 
> 2.17.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: Takashi Iwai <tiwai@suse.de>
To: Kai-Heng Feng <kai.heng.feng@canonical.com>
Cc: tiwai@suse.com, perex@perex.cz, hui.wang@canonical.com,
	kai.vehmanen@linux.intel.com, alsa-devel@alsa-project.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/4] ALSA: hda: Stop mangling PCI IRQ
Date: Tue, 27 Oct 2020 08:36:35 +0100	[thread overview]
Message-ID: <s5hmu082k8s.wl-tiwai@suse.de> (raw)
In-Reply-To: <20201027054001.1800-3-kai.heng.feng@canonical.com>

On Tue, 27 Oct 2020 06:39:59 +0100,
Kai-Heng Feng wrote:
> 
> The code predates 2005, it should be unnecessary now as PCI core handles
> IRQ much better nowadays.
> 
> So stop PCI IRQ mangling in suspend/resume callbacks.
> 
> Takashi Iwai mentioned that IRQ number can change after S3 on some
> really old hardwares. We should use quirks to handle those platforms, as
> most modern systems won't have that issue.

I believe it was S4.  And this pretty much depends on BIOS, hence it's
hard to apply the quirk, honestly speaking.

And, if we know that we need a quirk, dropping the code completely now
is a bad move.  If any, this should be applied conditionally to the
"known to be modern" platforms, but this will make the code rather
messier, OTOH.

Do we need this change inevitably?  Otherwise I'd skip this one.


thanks,

Takashi


> 
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
> ---
> v2:
>  - Wording.
>  - Add info on IRQ # can change on old hardwares.
> 
>  sound/pci/hda/hda_intel.c | 15 ---------------
>  1 file changed, 15 deletions(-)
> 
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index 749b88090970..b4aa1dcf1aae 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -1022,13 +1022,11 @@ static int azx_suspend(struct device *dev)
>  {
>  	struct snd_card *card = dev_get_drvdata(dev);
>  	struct azx *chip;
> -	struct hdac_bus *bus;
>  
>  	if (!azx_is_pm_ready(card))
>  		return 0;
>  
>  	chip = card->private_data;
> -	bus = azx_bus(chip);
>  	snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
>  	/* An ugly workaround: direct call of __azx_runtime_suspend() and
>  	 * __azx_runtime_resume() for old Intel platforms that suffer from
> @@ -1038,14 +1036,6 @@ static int azx_suspend(struct device *dev)
>  		__azx_runtime_suspend(chip);
>  	else
>  		pm_runtime_force_suspend(dev);
> -	if (bus->irq >= 0) {
> -		free_irq(bus->irq, chip);
> -		bus->irq = -1;
> -		chip->card->sync_irq = -1;
> -	}
> -
> -	if (chip->msi)
> -		pci_disable_msi(chip->pci);
>  
>  	trace_azx_suspend(chip);
>  	return 0;
> @@ -1060,11 +1050,6 @@ static int azx_resume(struct device *dev)
>  		return 0;
>  
>  	chip = card->private_data;
> -	if (chip->msi)
> -		if (pci_enable_msi(chip->pci) < 0)
> -			chip->msi = 0;
> -	if (azx_acquire_irq(chip, 1) < 0)
> -		return -EIO;
>  
>  	if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
>  		__azx_runtime_resume(chip, false);
> -- 
> 2.17.1
> 

  reply	other threads:[~2020-10-27  7:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-27  5:39 [PATCH v2 0/4] HDA controller and PM cleanups Kai-Heng Feng
2020-10-27  5:39 ` Kai-Heng Feng
2020-10-27  5:39 ` [PATCH v2 1/4] ALSA: hda: Refactor codec PM to use direct-complete optimization Kai-Heng Feng
2020-10-27  5:39   ` Kai-Heng Feng
2020-10-27  5:39 ` [PATCH v2 2/4] ALSA: hda: Stop mangling PCI IRQ Kai-Heng Feng
2020-10-27  5:39   ` Kai-Heng Feng
2020-10-27  7:36   ` Takashi Iwai [this message]
2020-10-27  7:36     ` Takashi Iwai
2020-10-27  7:42     ` Kai-Heng Feng
2020-10-27  7:42       ` Kai-Heng Feng
2020-10-27  5:40 ` [PATCH v2 3/4] ALSA: hda: Separate runtime and system suspend Kai-Heng Feng
2020-10-27  5:40   ` Kai-Heng Feng
2020-10-27  7:46   ` Takashi Iwai
2020-10-27  7:46     ` Takashi Iwai
2020-10-27  8:12     ` Takashi Iwai
2020-10-27  8:12       ` Takashi Iwai
2020-10-27  8:15       ` Takashi Iwai
2020-10-27  8:15         ` Takashi Iwai
2020-10-27  8:24         ` Kai-Heng Feng
2020-10-27  8:24           ` Kai-Heng Feng
2020-10-27 11:38   ` Kai Vehmanen
2020-10-27 11:38     ` Kai Vehmanen
2020-10-27 12:04     ` Kai-Heng Feng
2020-10-27 12:04       ` Kai-Heng Feng
2020-10-27  5:40 ` [PATCH v2 4/4] ALSA: hda: Reinstate runtime_allow() for all hda controllers Kai-Heng Feng
2020-10-27  5:40   ` Kai-Heng Feng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hmu082k8s.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=hui.wang@canonical.com \
    --cc=kai.heng.feng@canonical.com \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.