snd_hda works on i386, fails on amd64 (RELENG_7)
Rick C. Petty
rick-freebsd2008 at kiwi-computer.com
Tue May 19 18:41:52 UTC 2009
On Tue, May 19, 2009 at 06:45:54AM +0300, Alexander Motin wrote:
> Hi.
>
> I have already seen such reports few times, but nobody yet reported
> about platform specifics of this. I think it is not codec, but a HDA
> controller related issue. In your case problem only appears with
> on-board NVidia controller, but not with external ATI one.
Yeah. The ATI one is useless to me though.
> Could you boot with `hw.snd.verbose=4` to get maximum driver debugging.
Included, below.
> I am especially interested in first hdac0 related messages. There is
> some sort of CPU cache coherency/DMA management magic used, which looks
> suspicious to me. Also some people report about such problems with
> NVidia HDA controllers when MSI interrupts enabled, but it is probably
> not your case, as snd_hda does not uses MSI by default on RELENG_7.
Let me know if you need anything else. Thank you,
-- Rick C. Petty
hdac0: <NVidia MCP78 High Definition Audio Controller> mem 0xfe978000-0xfe97bfff irq 22 at device 7.0 on pci0
hdac0: HDA Driver Revision: 20090329_0131
hdac0: DMA Coherency: Uncacheable / vendor=0x10de
hdac0: [ITHREAD]
hdac0: CORB size: 256
hdac0: RIRB size: 256
hdac0: Streams: ISS=4 OSS=4 BSS=0
hdac0: hdac_dma_alloc: size=1024 -> roundsz=1024
hdac0: hdac_dma_alloc: size=2048 -> roundsz=2048
hdac0: Reset controller...
hdac1: <ATI RV620 High Definition Audio Controller> mem 0xfebfc000-0xfebfffff irq 17 at device 0.1 on pci2
hdac1: HDA Driver Revision: 20090329_0131
hdac1: DMA Coherency: Uncacheable / vendor=0x1002
hdac1: [ITHREAD]
hdac1: CORB size: 256
hdac1: RIRB size: 256
hdac1: Streams: ISS=0 OSS=1 BSS=0
hdac1: hdac_dma_alloc: size=1024 -> roundsz=1024
hdac1: hdac_dma_alloc: size=2048 -> roundsz=2048
hdac1: Reset controller...
hdac0: HDA Config: on=0x00000000 off=0x00000000
hdac0: Starting CORB Engine...
hdac0: Starting RIRB Engine...
hdac0: Enabling controller interrupt...
hdac0: Scanning HDA codecs ...
hdac0: Probing codec #0...
hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
hdac0: Codec #0 is not responding! Probing aborted.
hdac0: Probing codec #3...
hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
hdac0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
hdac0: Codec #3 is not responding! Probing aborted.
hdac0:
hdac1: HDA Config: on=0x00000000 off=0x00000000
hdac1: Starting CORB Engine...
hdac1: Starting RIRB Engine...
hdac1: Enabling controller interrupt...
hdac1: Scanning HDA codecs ...
hdac1: Probing codec #0...
hdac1: HDA Codec #0: ATI R6xx HDMI
hdac1: HDA Codec ID: 0x1002aa01
hdac1: Vendor: 0x1002
hdac1: Device: 0xaa01
hdac1: Revision: 0x00
hdac1: Stepping: 0x00
hdac1: PCI Subvendor: 0xaa281043
hdac1: startnode=1 endnode=2
hdac1: Found audio FG nid=1 startnode=2 endnode=4 total=2
hdac1:
hdac1: Processing audio FG cad=0 nid=1...
hdac1: Powering up...
hdac1: Parsing audio FG...
hdac1: GPIO: 0x00000000 NumGPIO=0 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=0
hdac1: nid 3 0x18560010 as 1 seq 0 Digital-out Jack jack 6 loc 24 color Unknown misc 0
hdac1: Parsing Ctls...
hdac1: Parsing vendor patch...
hdac1: Disabling nonaudio...
hdac1: Disabling useless...
hdac1: Patched pins configuration:
hdac1: nid 3 0x18560010 as 1 seq 0 Digital-out Jack jack 6 loc 24 color Unknown misc 0
hdac1: Parsing pin associations...
hdac1: 1 associations found:
hdac1: Association 0 (1) out:
hdac1: Pin nid=3 seq=0
hdac1: Building AFG tree...
hdac1: Tracing association 0 (1)
hdac1: Tracing pin 3 with min nid 0
hdac1: tracing via nid 3
hdac1: tracing via nid 2
hdac1: nid 2 returned 2
hdac1: nid 3 returned 2
hdac1: Pin 3 traced to DAC 2
hdac1: Association 0 (1) trace succeeded
hdac1: Tracing input monitor
hdac1: Tracing beeper
hdac1: Disabling unassociated widgets...
hdac1: Disabling nonselected inputs...
hdac1: Disabling useless...
hdac1: Disabling crossassociatement connections...
hdac1: Disabling useless...
hdac1: Binding associations to channels...
hdac1: Assigning names to signal sources...
hdac1: Assigning mixers to the tree...
hdac1: Preparing pin controls...
hdac1: AFG commit...
hdac1: HP switch init...
hdac1: Creating PCM devices...
hdac1: FG config/quirks: forcestereo ivref50 ivref80 ivref100 ivref
hdac1:
hdac1: +-------------------+
hdac1: | DUMPING HDA NODES |
hdac1: +-------------------+
hdac1:
hdac1: Default Parameter
hdac1: -----------------
hdac1: Stream cap: 0x00000001
hdac1: PCM
hdac1: PCM cap: 0x00020040
hdac1: 16 bits, 48 KHz
hdac1: IN amp: 0x00000000
hdac1: OUT amp: 0x00000000
hdac1:
hdac1: nid: 2
hdac1: Name: audio output
hdac1: Widget cap: 0x00000201
hdac1: DIGITAL STEREO
hdac1: Association: 0 (0x00000001)
hdac1: OSS: pcm (pcm)
hdac1: Stream cap: 0x00000001
hdac1: PCM
hdac1: PCM cap: 0x00020040
hdac1: 16 bits, 48 KHz
hdac1:
hdac1: nid: 3
hdac1: Name: pin: Digital-out (Jack)
hdac1: Widget cap: 0x00400381
hdac1: DIGITAL UNSOL STEREO
hdac1: Association: 0 (0x00000001)
hdac1: Pin cap: 0x00000094
hdac1: PDC OUT
hdac1: Pin config: 0x18560010
hdac1: Pin control: 0x00000040 OUT
hdac1: connections: 1
hdac1: |
hdac1: + <- nid=2 [audio output]
hdac1:
hdac1: +------------------------+
hdac1: | DUMPING HDA AMPLIFIERS |
hdac1: +------------------------+
hdac1:
hdac1:
pcm0: <HDA ATI R6xx HDMI PCM #0 Digital> at cad 0 nid 1 on hdac1
hdac1: hdac_dma_alloc: size=4096 -> roundsz=4096
More information about the freebsd-multimedia
mailing list