[alsa-devel] `hda-intel: spurious response` several times in output of `dmesg`
Takashi Iwai
tiwai at suse.de
Mon Sep 19 15:19:28 CEST 2011
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 at 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 },
> > + .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA | AZX_DCAPS_SYNC_WRITE },
> > /* SIS966 */
> > { PCI_DEVICE(0x1039, 0x7502), .driver_data = AZX_DRIVER_SIS },
> > /* ULI M5461 */
>
> 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;
}
More information about the Alsa-devel
mailing list