[alsa-devel] ASUS Phoebus (CMI8888) HDA Support

Vincent Lejeune vljn at ovi.com
Sun Aug 3 23:11:34 CEST 2014


Hi,

I just found this thread http://thread.gmane.org/gmane.linux.alsa.devel/116096 
I'm trying to find what can make the CMI8888 not work in non single_cmd mode and it looks more and more like a DMA issue.
I don't have an "iommu mode" option in my bios like Geoffrey McRae, it 
looks like an AMD only option, and using bigger page size/alignement 
constraint didnt solve the issue.
However I added some code to dump the content of the rirb buffer in the update_rirb() function and I copied it below.

The first command seems to be correctly handled the second time it is send 
to the hardware. As the AZX_DCAPS_*DELAY_RIRB doesnt change anything, 
I'm starting to think
that the corb engine may require some delay to be processed.
Is there a way to spy the dma transfer request from the device point of 
view ? I'd like to know when the cmi8888 request a dma read from the 
corb buffer and when it requests a dma write to the rirb buffer
to determine if it parses the corb buffer correctly or not.

In addition the first value returned is very odd : 13f68888. The pci id of the phoebus is 13f6:5011.
What does the 100f0001 cmd mean ? hda-decode-verb tells me the verb is "0x0"...

[ 4038.467696] snd_hda_intel 0000:01:00.1: Handle VGA-switcheroo audio client
[ 4038.467723] snd_hda_intel 0000:01:00.1: irq 50 for MSI/MSI-X
[ 4038.467836] snd_hda_intel 0000:02:00.0: Disabling MSI
[ 4038.469852] snd_hda_intel 0000:01:00.1: Pointers values : rirblbase : ffff8800, corbbase : ffff8000
[
 4038.469887] snd_hda_intel 0000:01:00.1: no codecs initialized
[ 4038.471618] snd_hda_intel 0000:02:00.0: Pointers values : rirblbase : ffff7800, corbbase : ffff7000
[ 4038.471721] snd_hda_intel 0000:02:00.0: corb write @ 1 value 100f0000
[ 4038.471780] snd_hda_intel 0000:02:00.0: rirb content @ 0 : 0 0
[ 4038.471782] snd_hda_intel 0000:02:00.0: rirb content @ 1 : 0 0
... lots of 0 0 ...
[ 4038.471968] snd_hda_intel 0000:02:00.0: rirb content @ 254 : 0 0
[ 4038.471968] snd_hda_intel 0000:02:00.0: rirb content @ 255 : 0 0
[ 4038.471969] snd_hda_intel 0000:02:00.0: rirb pos 1 : 0 0
[ 4038.471970] snd_hda_intel 0000:02:00.0: spurious response 0x0:0x0, rp = 1, wp = 1
[ 4038.471971] ------------[ cut here ]------------
[
 4038.471973] WARNING: CPU: 0 PID: 0 at sound/pci/hda/hda_controller.c:1212 azx_update_rirb+0x1a5/0x220 [snd_hda_controller]()
[ 4038.471974] BUG?
[
 4038.471974] Modules linked in: snd_hda_intel snd_hda_controller 
snd_hda_codec_generic snd_hda_codec snd_hwdep snd_pcm nls_utf8 isofs 
fuse ip6t_rpfilter bnep bluetooth ip6t_REJECT cfg80211 xt_conntrack 
rfkill ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables
 ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 
ip6table_mangle ip6table_security ip6table_raw ip6table_filter 
ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 
nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw 
x86_pkg_temp_thermal coretemp kvm_intel vfat fat uas kvm usb_storage 
mxm_wmi snd_seq snd_seq_device crct10dif_pclmul crc32_pclmul 
crc32c_intel joydev snd_timer ghash_clmulni_intel mei_me snd mei 
microcode serio_raw pcspkr soundcore shpchp wmi video
 i2c_hid dw_dmac dw_dmac_core i2c_designware_platform
[
 4038.471995]  acpi_pad i2c_designware_core radeon i2c_algo_bit 
drm_kms_helper ttm drm sdhci_acpi sdhci mmc_core alx i2c_core mdio [last
 unloaded: snd_hda_controller]
[ 4038.472001] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W     3.16.0-rc4+ #2
[ 4038.472001] Hardware name: Gigabyte Technology Co., Ltd. G1.Sniper Z97/G1.Sniper Z97, BIOS F6 05/30/2014
[ 4038.472002]  0000000000000000 92922082461d2d28 ffff88021ec03d90 ffffffff816ff2e2
[ 4038.472003]  ffff88021ec03dd8 ffff88021ec03dc8 ffffffff8108bead ffff8800d79d3800
[ 4038.472005]  0000000000000000 0000000000000001 0000000000000000 0000000000000000
[ 4038.472006] Call Trace:
[ 4038.472007] 
 <IRQ>  [<ffffffff816ff2e2>] dump_stack+0x45/0x56
[ 4038.472013]  [<ffffffff8108bead>] warn_slowpath_common+0x7d/0xa0
[ 4038.472014]  [<ffffffff8108bf2c>] warn_slowpath_fmt+0x5c/0x80
[ 4038.472016]  [<ffffffffa0304645>] azx_update_rirb+0x1a5/0x220 [snd_hda_controller]
[ 4038.472017]  [<ffffffffa03048c9>] azx_interrupt+0x179/0x1c0 [snd_hda_controller]
[ 4038.472020]  [<ffffffff810e697e>] handle_irq_event_percpu+0x3e/0x1a0
[ 4038.472021]  [<ffffffff810e6b16>] handle_irq_event+0x36/0x60
[ 4038.472023]  [<ffffffff810e9ebc>] handle_fasteoi_irq+0x7c/0x140
[ 4038.472026]  [<ffffffff81015eff>] handle_irq+0xbf/0x150
[ 4038.472029]  [<ffffffff810b33fa>] ?
 atomic_notifier_call_chain+0x1a/0x20
[ 4038.472032]  [<ffffffff8170968f>] do_IRQ+0x4f/0xf0
[ 4038.472033]  [<ffffffff8170746d>] common_interrupt+0x6d/0x6d
[ 4038.472033]  <EOI>  [<ffffffff81597792>] ? cpuidle_enter_state+0x52/0xc0
[ 4038.472037]  [<ffffffff815978b7>] cpuidle_enter+0x17/0x20
[ 4038.472039]  [<ffffffff810d3035>] cpu_startup_entry+0x315/0x440
[ 4038.472042]  [<ffffffff816f1427>] rest_init+0x77/0x80
[ 4038.472045]  [<ffffffff81d280e1>] start_kernel+0x465/0x486
[ 4038.472046]  [<ffffffff81d27a85>] ? set_init_arg+0x53/0x53
[ 4038.472048]  [<ffffffff81d27120>] ? early_idt_handlers+0x120/0x120
[ 4038.472049] 
 [<ffffffff81d275ee>] x86_64_start_reservations+0x2a/0x2c
[ 4038.472050]  [<ffffffff81d2773d>] x86_64_start_kernel+0x14d/0x170
[ 4038.472051] ---[ end trace 63c0b6054db2a1ea ]---
[ 4039.472815] snd_hda_intel 0000:02:00.0: Codec #1 probe error; disabling it...
[ 4039.477032] snd_hda_intel 0000:02:00.0: Pointers values : rirblbase : ffff7800, corbbase : ffff7000
[ 4039.477038] snd_hda_intel 0000:02:00.0: corb write @ 1 value 100f0000
[ 4039.477113] snd_hda_intel 0000:02:00.0: rirb content @ 0 : 0 0
[ 4039.477115] snd_hda_intel 0000:02:00.0: rirb content @ 1 : 13f68888 1
[ 4039.477116] snd_hda_intel 0000:02:00.0: rirb content @ 2 : 0 0
[ 4039.477117] snd_hda_intel 0000:02:00.0: rirb content @ 3 : 0 0
... lots of 0 0 ...
[ 4039.477306] snd_hda_intel 0000:02:00.0: rirb content @ 254 : 0 0
[ 4039.477307] snd_hda_intel 0000:02:00.0: rirb content @ 255 : 0 0
[ 4039.477308] snd_hda_intel 0000:02:00.0: rirb pos 1 : 13f68888 1
[ 4039.477318] snd_hda_intel 0000:02:00.0: corb write @ 2 value 100f0001
[ 4039.477373] snd_hda_intel 0000:02:00.0: rirb content @ 0 : 0 0
[ 4039.477374] snd_hda_intel 0000:02:00.0: rirb content @ 1 : 13f68888 1
[ 4039.477375] snd_hda_intel 0000:02:00.0: rirb content @ 2 : 0 0
[ 4039.477376] snd_hda_intel 0000:02:00.0: rirb content @ 3 : 0 0
... lots of 0 0 ...
[ 4039.477568] snd_hda_intel 0000:02:00.0: rirb content @ 253 : 0 0
[ 4039.477568] snd_hda_intel 0000:02:00.0: rirb content @ 254 : 0 0
[ 4039.477569] snd_hda_intel 0000:02:00.0: rirb content @ 255 : 0 0
[ 4039.477570] snd_hda_intel 0000:02:00.0: rirb pos 2 : 0 0
[ 4039.477571] snd_hda_intel 0000:02:00.0: spurious response 0x0:0x0, rp = 2, wp = 2
[ 4039.477572]
 ------------[ cut here ]------------
[ 4039.477575] WARNING: CPU: 0 PID: 0 at sound/pci/hda/hda_controller.c:1212 azx_update_rirb+0x1a5/0x220 [snd_hda_controller]()
[ 4039.477576] BUG?
[
 4039.477576] Modules linked in: snd_hda_intel snd_hda_controller 
snd_hda_codec_generic snd_hda_codec snd_hwdep snd_pcm nls_utf8 isofs 
fuse ip6t_rpfilter bnep bluetooth ip6t_REJECT cfg80211 xt_conntrack 
rfkill ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables
 ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 
ip6table_mangle ip6table_security ip6table_raw ip6table_filter 
ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 
nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw 
x86_pkg_temp_thermal coretemp kvm_intel vfat fat uas kvm usb_storage 
mxm_wmi snd_seq snd_seq_device crct10dif_pclmul crc32_pclmul 
crc32c_intel joydev snd_timer ghash_clmulni_intel mei_me
 snd mei microcode serio_raw pcspkr soundcore shpchp wmi video i2c_hid 
dw_dmac dw_dmac_core i2c_designware_platform
[
 4039.477599]  acpi_pad i2c_designware_core radeon i2c_algo_bit 
drm_kms_helper ttm drm sdhci_acpi sdhci mmc_core alx i2c_core mdio [last
 unloaded: snd_hda_controller]
[ 4039.477605] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W     3.16.0-rc4+ #2
[ 4039.477606] Hardware name: Gigabyte Technology Co., Ltd. G1.Sniper Z97/G1.Sniper Z97, BIOS F6 05/30/2014
[ 4039.477607]  0000000000000000 92922082461d2d28 ffff88021ec03d90 ffffffff816ff2e2
[ 4039.477608]  ffff88021ec03dd8 ffff88021ec03dc8 ffffffff8108bead ffff8800d79d3800
[ 4039.477609]  0000000000000000 0000000000000002 0000000000000000 0000000000000000
[ 4039.477611]
 Call Trace:
[ 4039.477612]  <IRQ>  [<ffffffff816ff2e2>] dump_stack+0x45/0x56
[ 4039.477617]  [<ffffffff8108bead>] warn_slowpath_common+0x7d/0xa0
[ 4039.477619]  [<ffffffff8108bf2c>] warn_slowpath_fmt+0x5c/0x80
[ 4039.477620]  [<ffffffffa0304645>] azx_update_rirb+0x1a5/0x220 [snd_hda_controller]
[ 4039.477622]  [<ffffffffa03048c9>] azx_interrupt+0x179/0x1c0 [snd_hda_controller]
[ 4039.477624]  [<ffffffff810e697e>] handle_irq_event_percpu+0x3e/0x1a0
[ 4039.477626]  [<ffffffff810e6b16>] handle_irq_event+0x36/0x60
[ 4039.477628]  [<ffffffff810e9ebc>] handle_fasteoi_irq+0x7c/0x140
[ 4039.477631]  [<ffffffff81015eff>] handle_irq+0xbf/0x150
[
 4039.477633]  [<ffffffff810b33fa>] ? atomic_notifier_call_chain+0x1a/0x20
[ 4039.477636]  [<ffffffff8170968f>] do_IRQ+0x4f/0xf0
[ 4039.477637]  [<ffffffff8170746d>] common_interrupt+0x6d/0x6d
[ 4039.477638]  <EOI>  [<ffffffff81597792>] ? cpuidle_enter_state+0x52/0xc0
[ 4039.477641]  [<ffffffff815978b7>] cpuidle_enter+0x17/0x20
[ 4039.477643]  [<ffffffff810d3035>] cpu_startup_entry+0x315/0x440
[ 4039.477646]  [<ffffffff816f1427>] rest_init+0x77/0x80
[ 4039.477649]  [<ffffffff81d280e1>] start_kernel+0x465/0x486
[ 4039.477651]  [<ffffffff81d27a85>] ? set_init_arg+0x53/0x53
[ 4039.477652]  [<ffffffff81d27120>] ? early_idt_handlers+0x120/0x120
[ 4039.477654]  [<ffffffff81d275ee>] x86_64_start_reservations+0x2a/0x2c
[ 4039.477655]  [<ffffffff81d2773d>] x86_64_start_kernel+0x14d/0x170
[ 4039.477656] ---[ end trace 63c0b6054db2a1eb ]---


Regards,Vincent


More information about the Alsa-devel mailing list