Linux Kernel Alsa Driver Differential Audio Output Patches

For the in-car PC I needed to send differential audio to the head-unit for the navigation voice.

So instead of building some hardware I patched the alsa drivers for via82xx and ens1370 to invert one channel in stereo and used left channel for positive and right channel for negative. By telling alsa that the hardware always had two channels the alsa middle layer expands mono signal into both channels.

 

Patches here.

 

Also the drivers have included code to control the parallel port. One of the pins in the parallel port is used to active the navigation voice input on the head unit. The pin is controlled by start-stop and inspecting the raw data sent to the DAC.