Comment # 4 on bug 1159962 from
> You machine has two individual HD-audio controllers, one for HDMI and one for 
> onboard audio, and the secondary probe fails.

Correct.

> The message "snd_hda_intel 0000:00:14.2: no codecs found!" indicates that the HD-audio codec wasn't reported back to the controller while probing.  Usually this indicates either the disabled setup by BIOS, some buggy interrupt handling or some communication error between codec and controller.

Okay.

> You may try to enforce probing the codec by passing probe_mask option.  In your case, though, you'll need to pass like:

  options snd_hda_intel probe_mask=,0x10f

> Note the comma (',') before 0x10f.  It means to pass it to the secondary device, and 0x10f means to enforce the codec probes for slot 0 to 3.

Unfortunately, that didn't work as expected, as it resulted in:

[   29.809817] snd_hda_intel: `' invalid for parameter `probe_mask'
[   29.853556] snd_hda_intel: `' invalid for parameter `probe_mask'
[   29.916854] snd_hda_intel: `' invalid for parameter `probe_mask'

Obviously, it doesn't cope with an omitted mask well. (I've tried several
variants). This one worked:

  options snd_hda_intel probe_mask=0xff,0x10f

[   30.586463] snd_hda_intel 0000:00:14.2: codec_mask forced to 0xf
[   30.590604] snd_hda_intel 0000:00:14.2: no codecs found!

but still no sound.

> In addition, you may try to pass snoop=0 option to snd-hda-intel module.  This option has no array, so just pass snoop=0.

Resulted in:

[   30.462138] snd_hda_intel 0000:00:01.1: Force to non-snoop mode by module
option
[   30.493508] snd_hda_intel 0000:00:14.2: codec_mask forced to 0xf
[   30.493516] snd_hda_intel 0000:00:14.2: Force to non-snoop mode by module
option

but still no sound.

Then I examined the related PCI/IRQ.

$ dmesg | grep 00:14.2
[    0.647371] pci 0000:00:14.2: [1002:4383] type 00 class 0x040300
[    0.647409] pci 0000:00:14.2: reg 0x10: [mem 0xfeb40000-0xfeb43fff 64bit]
[    0.647514] pci 0000:00:14.2: PME# supported from D0 D3hot D3cold
[   30.257019] snd_hda_intel 0000:00:14.2: codec_mask forced to 0xf
[   30.257027] snd_hda_intel 0000:00:14.2: Force to non-snoop mode by module
option
[   30.262651] snd_hda_intel 0000:00:14.2: no codecs found!

Since interrupts are routed with ACPI, I disabled ACPI (acpi=off), which
resulted in a boot hang. After removing acpi=off again, azalia sound is up:

[    0.647265] pci 0000:00:14.2: [1002:4383] type 00 class 0x040300
[    0.647304] pci 0000:00:14.2: reg 0x10: [mem 0xfeb40000-0xfeb43fff 64bit]
[    0.647430] pci 0000:00:14.2: PME# supported from D0 D3hot D3cold
[   30.478191] snd_hda_intel 0000:00:14.2: codec_mask forced to 0xf
[   30.478196] snd_hda_intel 0000:00:14.2: Force to non-snoop mode by module
option
[   31.606751] input: HDA Digital PCBeep as
/devices/pci0000:00/0000:00:14.2/sound/card1/input10
[   31.606940] input: HDA ATI SB Mic as
/devices/pci0000:00/0000:00:14.2/sound/card1/input11
[   31.607118] input: HDA ATI SB Headphone as
/devices/pci0000:00/0000:00:14.2/sound/card1/input12

I've no idea, why this is working now, but not before, but it seemed related to
some interrupt routing issue.

Update: after a cold start of the notebook, this procedure has to be repeated
(acpi=off, boot, wait for hang (2-3 secs), switch device off and on) in order
to get azalia up, so is definitely acpi related. :-(

Update: on a further reboot, azalia sound was dysfunctional again, but the
above sequence restored it again..

Related to IRQs, IRQ 16 is missing, if azalia is broken:

           CPU0       
  0:         35   IO-APIC   2-edge      timer
  1:         15   IO-APIC   1-edge      i8042
  8:          1   IO-APIC   8-edge      rtc0
  9:        163   IO-APIC   9-fasteoi   acpi
 12:        176   IO-APIC  12-edge      i8042
 14:          0   IO-APIC  14-edge      pata_atiixp
 15:          0   IO-APIC  15-edge      pata_atiixp
 16:        684   IO-APIC  16-fasteoi   snd_hda_intel:card1
 17:        130   IO-APIC  17-fasteoi   ehci_hcd:usb1, ehci_hcd:usb2
 18:         97   IO-APIC  18-fasteoi   ohci_hcd:usb3, ohci_hcd:usb4, rtl_pci
 19:       9014   IO-APIC  19-fasteoi   ahci[0000:00:11.0]
 26:       1095   PCI-MSI 16384-edge      radeon
 27:        312   PCI-MSI 1048576-edge      eth0
 28:         38   PCI-MSI 18432-edge      snd_hda_intel:card0
NMI:          3   Non-maskable interrupts
LOC:      20266   Local timer interrupts
SPU:          0   Spurious interrupts
PMI:          3   Performance monitoring interrupts
IWI:       5871   IRQ work interrupts
RTR:          0   APIC ICR read retries
RES:          0   Rescheduling interrupts
CAL:          0   Function call interrupts
TLB:          0   TLB shootdowns
TRM:          0   Thermal event interrupts
THR:          0   Threshold APIC interrupts
DFR:          0   Deferred Error APIC interrupts
MCE:          0   Machine check exceptions
MCP:          1   Machine check polls
HYP:          0   Hypervisor callback interrupts
HRE:          0   Hyper-V reenlightenment interrupts
HVS:          0   Hyper-V stimer0 interrupts
ERR:          1
MIS:          0
PIN:          0   Posted-interrupt notification event
NPI:          0   Nested posted-interrupt event
PIW:          0   Posted-interrupt wakeup event

How can I force the driver to use IRQ 16, and how can I specify the second card
as primary sound device (given, that yast sound fails on this..)?


You are receiving this mail because: