diff -urN alsa-lib-1.0.16/include/iatomic.h
--- alsa-lib-1.0.16/include/iatomic.h.unpatched 2008-05-22 14:20:52.000000000 +0200
+++ alsa-lib-1.0.16/include/iatomic.h   2008-05-22 14:21:26.000000000 +0200
@@ -720,7 +720,7 @@
  * Atomically adds @i to @v.  Note that the guaranteed useful range
  * of an atomic_t is only 24 bits.
  */
-extern __inline__ void atomic_add(int i, atomic_t * v)
+static void atomic_add(int i, atomic_t * v)
 {
        unsigned long temp;
 
@@ -744,7 +744,7 @@
  * Atomically subtracts @i from @v.  Note that the guaranteed
  * useful range of an atomic_t is only 24 bits.
  */
-extern __inline__ void atomic_sub(int i, atomic_t * v)
+static void atomic_sub(int i, atomic_t * v)
 {
        unsigned long temp;

diff -urN alsa-lib-1.0.16/src/mixer/simple_none.c
--- alsa-lib-1.0.16/src/mixer/simple_none.c.unpatched	2008-02-05 10:23:45.000000000 +0100
+++ alsa-lib-1.0.16/src/mixer/simple_none.c	2008-12-01 14:09:43.812889000 +0100
@@ -953,11 +953,12 @@
 	if (s->selem.caps & 
 	    (dir == SM_PLAY ? SM_CAP_PVOLUME_JOIN : SM_CAP_CVOLUME_JOIN))
 		channel = 0;
-	if (value != s->str[dir].vol[channel]) {
+    /* PATCH FOR PR CFR_STB#418 */
+	/* if (value != s->str[dir].vol[channel]) { */
 		s->str[dir].vol[channel] = value;
 		return 1;
-	}
-	return 0;
+	/* } */
+	/* return 0; */
 }
 
 static int _snd_mixer_selem_set_switch(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, int value)
