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