Thanks, this did help me. Thought I would add a bit so that it might help someone else.
(setup info)
asus m2n-e motherboard (old board with nforce chipset)
analog devices ADI AD1988 onboard sound (not well supported)
geforce 9600gt video card
ubuntu 12.04 precise 64bit
xbmc 11.0 eden
video connected dvi>hdmi
audio connected optical toslink
Had issues for a long time with xbmc and onboard sound. I could get passthrough (DD/DTS) to work but using it would break non-passthrough audio (music/menuSounds) until a reboot, and vice-versa. Sometimes I could get both to work but if I used passthrough, hit stop, then quickly started playing something else with passthrough all sound would break until I rebooted (reloading alsa and killing pulse would not fix it).
Got fed up, decided to try replacing the sound card, learned that the sound card market is pretty dead because onboard sound is "good enough" for almost everyone. Which is a problem if you have an ancient motherboard with flaky/broken/unsupported onboard sound and don't want to get a whole new motherboard/memory/cpu.
Ran across the Turtle Beach usb sound cards, specifically the "Turtle Beach Audio Advantage Micro II" which has a cmedia cm106 sound chip and is rather inexpensive. Then found your post which gave me the confidence to buy it.
(steps I went through to get working sound with turtle beach usb sound card)
1. plugged in turtle beach usb card and verified it appeared in the list of sound devices in ubuntu.
2. rebooted, went into bios, disabled onboard sound. I have read that some people run into issues with usb sound cards when disabling their onboard sound. For me it didn't cause any issues and I wanted to keep things simple and only have one active device.
3. installed the a52 plugin for passthrough and modified my /etc/asound.conf by following the steps here:
https://help.ubuntu.com/community/DigitalAC-3Pulseaudio
note: I only followed that guide up to where it says "restart alsa". another note: the paths they list at the "install plugin" step are out of date, the correct commands for my ubuntu64 system are:
cd a52/.libs
sudo cp libasound_module_pcm_a52.la libasound_module_pcm_a52.so /usr/lib/x86_64-linux-gnu/alsa-lib/
sudo cp libasound_module_pcm_a52.so /usr/lib/`uname -i`-linux-gnu/alsa-lib/
4. open ubuntu sound settings and set the following options:
(output tab) connector: digital output (s/pdif)
(hardware tab) profile: digital stereo (iec958) output
5. run xbmc and there should be a new option under the list of passthrough devices (system) > (system) > (audio output). for me it now looks like:
(audio output device): defaults (pulseaudio)
(passthrough output device): cm102-a+/102s+ audio controller digital stereo (iec958) (pulseaudio)
6. that's it, now I have working passthrough and non-passthrough audio on the turtle beach card.
cheers