Kernel patch for volume control

Jeff Mock
2/20/1

Here is a patch for the kernel audio driver in version 1.01 of
the Dell Audio Receiver.  This patch changes the way the volume
control works so that all of the outputs are affected by the volume
control instead of just the headphone and speaker outputs.

You can download the source for the patch:
    ftp://ftp.mock.com/pub/arm-linux/patch-audio-1.01.gz

In order to apply the patch you need to get setup with a toolchain
and kernel source.  Here is how I did it: 

    http://www.mock.com/receiver/tools

When you are setup with tools and kernel source, apply the patch:

    cd $KERNEL     # wherever you have the kernel source
    gzip -d patch-audio-1.01.gz
    patch -p1 < patch-audio-1.01

The patch modifies drivers/char/audio_7212.c.  This file now has
a define called LINE_VOLUME.  If you comment out the define it will
build with the old functionality, with the define the kernel will
apply volume control to all of the outputs.

    make zImage  # build the kernel

If you just want the audio patch and don't want to figure out
how to build a kernel with cross-compilers, you can just take
the following pre-built kernel:

    ftp://ftp.mock.com/pub/arm-linux/zImage-audiohack.gz

Once you've got a new kernel you need to install it.  If you are
using a Windows server you need modify the file mercury.arf.  This
file is a GNU tar archive.  The only safe way I know to modify this
file is to copy it over to a Linux machine, use GNU tar to extract
all of the files from the archive, replace zImage with the kernel
image zImage you just made, and rebuild the archive. The kernel
file must be named zImage.

If you are using a Linux-based server for the receiver then you
just need to copy zImage to the NFS directory the receiver mounts,
usually /tftpboot/hostname.domainame/zImage.

Power cycle the audio receiver and the volume control will work
differently.  Thanks to Hugo Fiennes who suggested that this change
could be made.