Messages in this thread Patch in this message |  | | Date | Tue, 08 Jan 2013 13:56:37 +0100 | From | Takashi Iwai <> | Subject | Re: [3.6.9 -> 3.7.1 regression] sound: snd_hda_intel codec probing issue? |
| |
At Tue, 08 Jan 2013 13:28:55 +0100, Vincent Blut wrote: > > Le lundi 07 janvier 2013 à 09:32 +0100, Takashi Iwai a écrit : > > 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. > > > > Ok, I added a debug printk() which is called: > > $ dmesg | grep -i debug > [ 5330.371523] [debug] Probably needs a device-specific quirk! > > As usual, when it is called the sound become very choppy.
OK. So it's not the driver code but really a problem in the deeper level.
> I'll test with enable_msi=0 later.
Thanks.
FWIW, below is a patch I'm considering to merge (after testing, of course). Could you buys check it?
Takashi
--- From: Takashi Iwai <tiwai@suse.de> Subject: [PATCH] ALSA: hda - Disable runtime D3 for Intel CPT & co
We've got a few bug reports that the runtime D3 results in the dead HD-audio controller. It seems that the problem is in a deeper level than the sound driver itself, so as a temporal solution, disable the feature for these controllers again.
Reported-by: Vincent Blut <vincent.debian@free.fr> Reported-by: Maurizio Avogadro <mavoga@gmail.com> Cc: <stable@vger.kernel.org> [v3.7] Signed-off-by: Takashi Iwai <tiwai@suse.de> --- sound/pci/hda/hda_intel.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index cca8727..0b6aeba 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -573,9 +573,12 @@ enum { #define AZX_DCAPS_PM_RUNTIME (1 << 26) /* runtime PM support */ /* quirks for Intel PCH */ -#define AZX_DCAPS_INTEL_PCH \ +#define AZX_DCAPS_INTEL_PCH_NOPM \ (AZX_DCAPS_SCH_SNOOP | AZX_DCAPS_BUFSIZE | \ - AZX_DCAPS_COUNT_LPIB_DELAY | AZX_DCAPS_PM_RUNTIME) + AZX_DCAPS_COUNT_LPIB_DELAY) + +#define AZX_DCAPS_INTEL_PCH \ + (AZX_DCAPS_INTEL_PCH_NOPM | AZX_DCAPS_PM_RUNTIME) /* quirks for ATI SB / AMD Hudson */ #define AZX_DCAPS_PRESET_ATI_SB \ @@ -3586,13 +3589,13 @@ static void azx_remove(struct pci_dev *pci) static DEFINE_PCI_DEVICE_TABLE(azx_ids) = { /* CPT */ { PCI_DEVICE(0x8086, 0x1c20), - .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, + .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH_NOPM }, /* PBG */ { PCI_DEVICE(0x8086, 0x1d20), - .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, + .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH_NOPM }, /* Panther Point */ { PCI_DEVICE(0x8086, 0x1e20), - .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, + .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH_NOPM }, /* Lynx Point */ { PCI_DEVICE(0x8086, 0x8c20), .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, -- 1.8.0.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |