Index: firmware/drivers/as3514.c
===================================================================
--- firmware/drivers/as3514.c	(revision 12912)
+++ firmware/drivers/as3514.c	(working copy)
@@ -101,10 +101,10 @@
 
     /* Set ADC off, mixer on, DAC on, line out off, line in off, mic off */
     pp_i2c_send(AS3514_I2C_ADDR, AUDIOSET1, 0x60); /* Turn on DAC and mixer */
+    pp_i2c_send(AS3514_I2C_ADDR, AUDIOSET3, 0x1); /* Turn off the headphone Common Mode buffer */
     pp_i2c_send(AS3514_I2C_ADDR, PLLMODE, 0x04);
-    pp_i2c_send(AS3514_I2C_ADDR, DAC_L, 0x50); /* DAC mute off, -16.5dB gain */
-    pp_i2c_send(AS3514_I2C_ADDR, DAC_R, 0x10); /* DAC -16.5dB gain to prevent overloading
-                                       the headphone amp */
+    pp_i2c_send(AS3514_I2C_ADDR, DAC_L, 0x40 | 0x16); /* DAC mute off, (someone sort out the exact value?) gain */
+    pp_i2c_send(AS3514_I2C_ADDR, DAC_R, 0x16); /* (?) gain */
     return 0;
 }
 
@@ -132,7 +132,7 @@
 {
     vol_l &= 0x1f;
     vol_r &= 0x1f;
-    pp_i2c_send(AS3514_I2C_ADDR, HPH_OUT_R, vol_r);
+    pp_i2c_send(AS3514_I2C_ADDR, HPH_OUT_R, 0xc0 | vol_r); /* Disable the over-current timeout when setting the volume */
     pp_i2c_send(AS3514_I2C_ADDR, HPH_OUT_L, 0x40 | vol_l);
 
     return 0;
