mkennyI am also having issue with getting external microphone (i.e. microphone of earphone plugged in via jack) to get detected and work. Is that working for you?
There is a patch available for the speakers that wasn't accepted into the kernel but it isn't too difficult to do. I do wish Asus would look into it but I have no hopes there. Using this laptop as my daily driver and everything works as it should except the finger print reader and the fact that the sound with the patch is very low.
BlueskullWow thanks for the detailed explaination! From your explaination it only looks like patch is related to speakers voltage. Do you know of any way to get external microphone (microphone of earphone or headphone plugged in via jack) working?
That DSDT patch does not work perfectly either. The Cirrus chips each has an internal boost converter, which converts its input voltage to a higher value to drive the speaker louder. The laptop's speaker, cavity and driver chips are both designed for higher wattage of sound, but the driver voltage limits the maximum volume you can get from it. Thus, a boost converter which as the name suggests, boosts the voltage up, helps making it louder.
To boost the voltage, you need a component called an inductor (one of the many ways, the most common way), which temporarily stores electrical energy magnetically, then suddenly releases the energy, jacking up the voltage. This component is large and expensive, so it is better to size it according to your needs. If you drive an inductor with too high current, it will go into a state called saturation, then things can go very badly. For this reason, the Cirrus chips allow you to set current limit. Also, due to the dynamic nature of audio, the inductor's current must be feedforward controlled (predicted) rather than relying only on feedback control, thus the inductance value is also needed by the firmware.
Normally, the inductance and current limit values can be found in a configuration table from BIOS, called DSDT, for the driver to read and configure the Cirrus chips with. On this particular laptop, the BIOS is missing this data, thus a DSDT patch is needed. However, without support from Asus, we do not know the values mentioned above, so a convenient way to circumvent this is to bypass the boost converter and run the chips at a lower voltage. This is both what the driver patch and DSDT patch do. However, you loose volume by doing this, that's why the patches were rejected as they are not proper fixes.
Another way to do this is to teardown a unit, desolder the inductor, and measure its inductance (easy) and saturation current (hard), but this is invasive, and nobody is willing to do so on their own laptops. Even if someone does, if the measurement ends up being wrong, the wrong values can kill the amp chips rather quickly, rendering the laptop defective. The best way is to have Asus telling us the values, so we can write a proper DSDT patch or driver patch, or someone reverse engineer this value from the Windows driver.