alot of mobile board have intel-hda cards, which can be a headache to get running with low latency. this should give most people a very good start on it.

soon Step 1 will be able to be skipped if your running linuxice2, or use the linuxice2 kernel, and this is the config that the default linuxice2 kernel will have soon.

The intel-hda jack low latency howto by wirelessdreamer

I've seen asked many times on the list how to get intel-hda cards working with low latency, in duplex operation. Here is a full, step by step, on how I got 4ms latency. I'm using a Dell M90 with a Quadro fx 1500, attached to a docking station with a Maudio Delta 66 pci card (secondary card) in it, the binary Nvidia drivers and Compiz. So if you were wondering, it is possible.

1. Kernel (i'm not going to walk you through how to compile a kernel)

(the last kernel before the big kernel lock regression)
* wget http://www.kernel.org/pub/linux/kern...6.24.7.tar.bz2

* tar xvjf linux-2.6.24.7.tar.bz2
* cd linux-2.6.24.7.tar.bz2

(if you don't see it here look in the projects/rt/older/ directory)
* wget http://www.kernel.org/pub/linux/kern....24.7-rt21.bz2

* bzcat ../patch-2.6.24.7-rt21.bz2

* wget http://pastebin.com/pastebin.php?dl=f6ad31838
* mv pastebin.php\?dl\=f6ad31838 .config.old
* make oldconfig

(build and install your kernel)

2. Module Options
Add the following line to the file your distribution has its module options in
(in ubuntu it is /etc/modules.d/alsa-base)

options snd-hda-intel model=ref position_fix=1 enable=1 index=0

3. Mixer Options (VERY IMPORTANT ! ! !)
enable capture/record elements in mixer
without this jack can't play nicely with intel-hda cards
(if your unsure run alsamixer and enable anything you can find that says capture or record)

4. RT Permissions
In most modern distros /etc/security/limits.conf is where realtime permissions are set, I added these 3 lines to it, and added myself to the @audio group in /etc/group (log out and back in for these to take effect)

@audio - memlock 1024000
@audio - nice -10
@audio - rtprio 99

5. Jack options
I use qjackctl to set these

put a check in Realtime
Priority 89
Frames/Period 64
Sample Rate 48000
Periods/Buffer 3