On Tue, Oct 8, 2019 at 6:51 PM Mark Brown broonie@kernel.org wrote:
On Tue, Oct 08, 2019 at 09:33:24AM +0000, Shuming [θζΈι] wrote:
In chromebook case, the machine driver will get the r0 calibration data and temperature from VPD. Therefore, the codec exports r0 and temperature config API for it.
Why will the machine driver do this?
Hi Mark, The calibration data (R0 values and temperature) were measured and written to VPD in the factory. When machine driver initializes sound card, it reads the value from VPD and uses the exported API to set calibration value for codec. The purpose is to protect speaker. This needs to be done before sound card is initialized. If, alternatively, this process is done in user space through mixer control after the sound card is initialized, user space may use audio before calibration is done, and this will allow the possibility to damage speakers. Hope this clarifies the intention of this patch. Thanks!