if (machine->spk_edp_client == NULL) {
if (machine->spk_reg) {
- if (SND_SOC_DAPM_EVENT_ON(event))
+ if (SND_SOC_DAPM_EVENT_ON(event)) {
+ sysedp_set_state(machine->sysedpc, 1);
err = regulator_enable(machine->spk_reg);
- else
+ } else {
regulator_disable(machine->spk_reg);
+ sysedp_set_state(machine->sysedpc, 0);
+ }
}
goto err_null_spk_edp_client;
}
ret = edp_update_client_request(machine->spk_edp_client,
TEGRA_SPK_EDP_NEG_1,
&approved);
- sysedp_set_state(machine->sysedpc, 1);
err = regulator_enable(machine->spk_reg);
if (ret || approved != TEGRA_SPK_EDP_NEG_1) {
if (approved == TEGRA_SPK_EDP_ZERO)
/* turn off codec volume,-46.5 dB, E1 state */
tegra_speaker_edp_set_volume(codec, 0x27, 0x27);
regulator_disable(machine->spk_reg);
- sysedp_set_state(machine->sysedpc, 0);
ret = edp_update_client_request(machine->spk_edp_client,
TEGRA_SPK_EDP_1,
NULL);