Re: [3.6.9 -> 3.7.1 regression] sound: snd_hda_intel codec probing issue?

From: Takashi Iwai
Date: Mon Jan 07 2013 - 03:33:05 EST


At Sat, 05 Jan 2013 22:24:03 +0100,
Vincent Blut wrote:
>
> Le jeudi 03 janvier 2013 Ã 10:19 +0100, Takashi Iwai a Ãcrit :
> > At Fri, 28 Dec 2012 15:25:40 +0100,
> > Vincent Blut wrote:
> > >
> > > Hi,
> > >
> > > Since I updated to Linux 3.7.1, listening to some audio/video bits
> > > frequently cause the following:
> > >
> > > [ 7896.166946] hda-intel: azx_get_response timeout, switching to polling
> > > mode: last cmd=0x020c0000
> > > [ 7897.173444] hda-intel: No response from codec, disabling MSI: last
> > > cmd=0x020c0000
> > > [ 7898.179932] hda_intel: azx_get_response timeout, switching to
> > > single_cmd mode: last cmd=0x020c0000
> > > [ 7898.179983] hda-codec: out of range cmd 0:0:20:400:fffff7ff
> > > [ 9445.034371] plugin-containe[5873]: segfault at 7f44bb95e639 ip
> > > 00007f44e454bca0 sp 00007f44c91165f8 error 4 in
> > > libc-2.13.so[7f44e442c000+180000]
> > >
> > > It seems to be a codec probing failure (?). This is really fatal because
> > > the sound become very choppy and can't recover until I reboot.
> > > I'll try to play with 'probe_mask' kernel parameter to see if I can
> > > narrow the correct codec slots!
> > >
> > > By the way I can't reproduce this on 3.6.9, so is there something that
> > > changed in this area in 3.7.1?
> >
> > If it's new in 3.7, this could be a regression by runtime D3.
> > Try to pass power_save_controller=0 option to snd-hda-intel module
> > (or change it via sysfs dynamically).
> >
> >
> > thanks,
> >
> > Takashi
>
> Hi Takashi,
>
> Well, power_save_controller=0 seems to do the trick but I get plenty of:
>
>
> [ 15.389270] pci_pm_runtime_suspend(): azx_runtime_suspend+0x0/0x37
> [snd_hda_intel] returns -11
> [ 25.178725] pci_pm_runtime_suspend(): azx_runtime_suspend+0x0/0x37
> [snd_hda_intel] returns -11
> [ 72.296536] pci_pm_runtime_suspend(): azx_runtime_suspend+0x0/0x37
> [snd_hda_intel] returns -11
> [ 2318.147505] pci_pm_runtime_suspend(): azx_runtime_suspend+0x0/0x37
> [snd_hda_intel] returns -11
> [ 6086.029839] pci_pm_runtime_suspend(): azx_runtime_suspend+0x0/0x37
> [snd_hda_intel] returns -11
> [ 7390.772818] pci_pm_runtime_suspend(): azx_runtime_suspend+0x0/0x37
> [snd_hda_intel] returns -11
>
>
> which I think is fixed in 3.8 by commit 6eb827d23577

Yes, and should be merged in the next stable release.

> So what's the next step? Adding a quirk for this sound card? Or is there
> a way to fix the root cause?

One more thing to test is whether azx_runtime_resume() is properly
called before this error happens. Could you put a debug print and
check it? If it's not called, it implies that the refcount or
something else got broken. If it's called but the device doesn't
respond, it's a hardware-specific issue, and the likely solution is to
add a device-specific quirk.


thanks,

Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/