# ATI SB800 Headphones/Speaker auto-sensing issues



## ring_zero (Apr 6, 2012)

Hello all,

For some reason, no matter what I try I just can't get this darned thing to work.  I have checked the snd_hda(4) man page, as well as the following previous threads:
http://forums.freebsd.org/showthread.php?t=12910
http://forums.freebsd.org/showthread.php?t=15894
http://forums.freebsd.org/showthread.php?t=30502
http://forums.freebsd.org/showthread.php?t=30502

My additions to /boot/device.hints:

```
hint.hdac.0.cad0.nid25.config="as=1 seq=15"
hint.hdac.0.cad0.nid27.config="as=2 seq=1"
```

The output of [CMD=""]dmesg | grep hdac[/CMD]

```
hdac0: <ATI SB600 High Definition Audio Controller> mem 0xf2300000-0xf2303fff irq 16 at device 20.2 on pci0
hdac0: HDA Driver Revision: 20100226_0142
hdac0: Caps: OSS 4, ISS 4, BSS 0, NSDO 1, 64bit, CORB 256, RIRB 256
hdac0: Probing codec #0...
hdac0: HDA Codec #0: Conexant CX20585
hdac0:  HDA Codec ID: 0x14f15069
hdac0:        Vendor: 0x14f1
hdac0:        Device: 0x5069
hdac0:      Revision: 0x03
hdac0:      Stepping: 0x02
hdac0: PCI Subvendor: 0xff1e1179
hdac0: 	Found audio FG nid=1 startnode=16 endnode=38 total=22
hdac0: 
hdac0: Processing audio FG cad=0 nid=1...
hdac0: GPIO: 0x40000004 NumGPIO=4 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
hdac0:  nid 25 0x032110f0 as 15 seq  0    Headphones  Jack jack  1 loc  3 color   Black misc 0
hdac0:  nid 26 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1
hdac0:  nid 27 0x03a110f0 as 15 seq  0           Mic  Jack jack  1 loc  3 color   Black misc 0
hdac0:  nid 28 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1
hdac0:  nid 29 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1
hdac0:  nid 30 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1
hdac0:  nid 31 0x921701f0 as 15 seq  0       Speaker Fixed jack  7 loc 18 color Unknown misc 1
hdac0:  nid 32 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1
hdac0:  nid 34 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1
hdac0:  nid 35 0x95a601f0 as 15 seq  0           Mic Fixed jack  6 loc 21 color Unknown misc 1
hdac0: Patched pins configuration:
hdac0:  nid 25 0x032110f0 as 15 seq  0    Headphones  Jack jack  1 loc  3 color   Black misc 0
hdac0:  nid 26 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1 [DISABLED]
hdac0:  nid 27 0x03a110f0 as 15 seq  0           Mic  Jack jack  1 loc  3 color   Black misc 0
hdac0:  nid 28 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1 [DISABLED]
hdac0:  nid 29 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1 [DISABLED]
hdac0:  nid 30 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1 [DISABLED]
hdac0:  nid 31 0x921701f0 as 15 seq  0       Speaker Fixed jack  7 loc 18 color Unknown misc 1
hdac0:  nid 32 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1 [DISABLED]
hdac0:  nid 34 0x400001f0 as 15 seq  0      Line-out  None jack  0 loc  0 color Unknown misc 1 [DISABLED]
hdac0:  nid 35 0x95a601f0 as 15 seq  0           Mic Fixed jack  6 loc 21 color Unknown misc 1
hdac0: 4 associations found:
hdac0: Association 0 (15) out:
hdac0:  Pin nid=25 seq=0
hdac0: Association 1 (15) in:
hdac0:  Pin nid=27 seq=0
hdac0: Association 2 (15) out:
hdac0:  Pin nid=31 seq=0
hdac0: Association 3 (15) in:
hdac0:  Pin nid=35 seq=0
hdac0: Tracing association 0 (15)
hdac0:  Pin 25 traced to DAC 16
hdac0: Association 0 (15) trace succeeded
hdac0: Tracing association 1 (15)
hdac0:  Pin 27 traced to ADC 20
hdac0: Association 1 (15) trace succeeded
hdac0: Tracing association 2 (15)
hdac0:  Pin 31 traced to DAC 17
hdac0: Association 2 (15) trace succeeded
hdac0: Tracing association 3 (15)
hdac0:  Pin 35 traced to ADC 21
hdac0: Association 3 (15) trace succeeded
hdac0: Tracing input monitor
hdac0: Tracing other input monitors
hdac0:  Tracing nid 27 to out
hdac0:  Tracing nid 35 to out
hdac0: Tracing beeper
hdac0: FG config/quirks: forcestereo ivref50 ivref80 ivref100 ivref
```

At present auto-sensing is not working.  So in order to switch between the headphones and the speakers, I have to in this order:
1) Close any applications that are using the sound system.
2) Change the default sound unit via sysctl
`sysctl hw.snd.default_unit=1`
3) Reopen the application.

In order to go back to the headphones, I have to do this in reverse.
This is getting kind of annoying.  I have no idea what else to do.  
I have even tried to turn on polling through /etc/sysctl.conf
by adding:

```
dev.hdac.%d.polling
```

It did not work, so I am now at my wits end here.  If anyone has any ideas here, I sure would appreciate it.

Thank You.


----------



## ring_zero (Apr 6, 2012)

*It's always something obvious.*

So, I tried one last time to get this to work.  My theory was simple, what if I force association of the line out headphones, and the integrated speakers to association 2, and put the speakers in sequence 0 (stereo), and the headphones in sequence 15 (to duplicate with automatic mute.) 
You wind up with:


```
hint.hdac.0.cad0.nid31.config="as=2 seq=0 device=Speaker"
hint.hdac.0.cad0.nid25.config="as=2 seq=15 device=Headphones"
```

Reboot, and it worked!


----------

