At Mon, 19 Sep 2011 14:50:35 +0200, Paul Menzel wrote:
Am Montag, den 19.09.2011, 11:27 +0200 schrieb Takashi Iwai:
At Sun, 18 Sep 2011 20:28:03 +0200, Paul Menzel wrote:
Am Mittwoch, den 14.09.2011, 00:11 +0200 schrieb Paul Menzel:
Am Montag, den 12.09.2011, 11:28 +0200 schrieb Takashi Iwai:
At Wed, 31 Aug 2011 12:37:28 +0200, Daniel Mack wrote:
On Wed, Aug 31, 2011 at 12:19 PM, Paul Menzel wrote:
> Am Donnerstag, den 25.08.2011, 17:01 +0200 schrieb Paul Menzel: > > […] > >> I just want to add that I also see these messages with Linux kernel >> 3.0.2 and say seem to be related to suspend and resume. >> >> The values seem to differ though every time. >> >> [ 1130.984969] hda-intel: spurious response 0x0:0x0, last cmd=0x620000 >> [ 1130.984990] hda-intel: spurious response 0x1003c:0x0, last cmd=0x620000 >> [ 1130.985011] hda-intel: spurious response 0x0:0x0, last cmd=0x620000 >> [ 1130.985032] hda-intel: spurious response 0x10034:0x0, last cmd=0x620000 >> [ 1130.985053] hda-intel: spurious response 0x0:0x0, last cmd=0x620000 >> >> [ … another suspend/resume … ] >> >> [ 2726.277102] hda-intel: spurious response 0x0:0x0, last cmd=0x1e70700 >> [ 2726.277123] hda-intel: spurious response 0x0:0x0, last cmd=0x1e70700 >> [ 2726.277144] hda-intel: spurious response 0x0:0x0, last cmd=0x1e70700 >> [ 2726.277165] hda-intel: spurious response 0xb:0x0, last cmd=0x1e70700 >> >> Please find the output of `alsa-info.sh` [1] with this Linux version at >> the end.
[…]
The verb 0x620000 is to set a stream format to NID 0x06. For further debugging, more detailed information is needed.
I seem to have lost the original post, so could you attach alsa-info.sh output again, Paul?
Unfortunately I have to compress them due to the size limit. (Could you increase that to for example 150 kB?)
The output of `alsa-info.sh` with Linux 3.1-rc6 (3ab0fcd6c)
commit 3ab0fcd6cd45d0d0cac114e498848f37e7a463b2 Merge: 9183834 14515a0 Author: Takashi Iwai <tiwai@suse.de> Date: Fri Sep 16 08:34:05 2011 +0200 Merge branch 'topic/misc'
is as follows.
Thanks. Judging from the alsa-info.sh output, the relevant widgets are for the SPDIF output, and I guess the messages are harmless.
Anyway, could you try the patch below?
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 2a8bed9..ef7e8de 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -2925,7 +2925,7 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = { .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI }, /* VIA VT8251/VT8237A */ { PCI_DEVICE(0x1106, 0x3288),
.driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA },
/* SIS966 */ { PCI_DEVICE(0x1039, 0x7502), .driver_data = AZX_DRIVER_SIS }, /* ULI M5461 */.driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA | AZX_DCAPS_SYNC_WRITE },
I applied your patch, did `make oldconfig`, `make -j2 deb-pkg`, installed the packages and rebooted. But the message are still there as far as I can see.
OK, then it's really spurious interrupts. This should be harmless, so you can ignore these messages.
Or, the patch below might work (just hide the messages).
Takashi
--- diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 2a8bed9..3449024 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -443,6 +443,7 @@ struct azx { unsigned int msi :1; unsigned int irq_pending_warned :1; unsigned int probing :1; /* codec probing phase */ + unsigned int in_suspend:1;
/* for debugging */ unsigned int last_cmd[AZX_MAX_CODECS]; @@ -696,11 +697,15 @@ static void azx_update_rirb(struct azx *chip) chip->rirb.res[addr] = res; smp_wmb(); chip->rirb.cmds[addr]--; - } else + } else if (!chip->in_suspend) { + /* we ignore spurious response messages during susepnd, + * as some chips actually send bogus messages + */ snd_printk(KERN_ERR SFX "spurious response %#x:%#x, " "last cmd=%#08x\n", res, res_ex, chip->last_cmd[addr]); + } } }
@@ -2267,6 +2272,7 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state) struct azx *chip = card->private_data; int i;
+ chip->in_suspend = 1; snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); azx_clear_irq_pending(chip); for (i = 0; i < HDA_MAX_PCMS; i++) @@ -2283,6 +2289,7 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state) pci_disable_device(pci); pci_save_state(pci); pci_set_power_state(pci, pci_choose_state(pci, state)); + chip->in_suspend = 0; return 0; }