[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