static int msm_snddev_enable_dmic_power(void) { int ret; pr_aud_err("%s", __func__); s3 = regulator_get(NULL, "8058_s3"); if (IS_ERR(s3)) { ret = -EBUSY; goto fail_get_s3; } ret = regulator_set_voltage(s3, 1800000, 1800000); if (ret) { pr_err("%s: error setting voltage\n", __func__); goto fail_s3; } ret = regulator_enable(s3); if (ret) { pr_err("%s: error enabling regulator\n", __func__); goto fail_s3; } mvs = regulator_get(NULL, "8901_mvs0"); if (IS_ERR(mvs)) goto fail_mvs0_get; ret = regulator_enable(mvs); if (ret) { pr_err("%s: error setting regulator\n", __func__); goto fail_mvs0_enable; } stereo_mic_enable(); return ret; fail_mvs0_enable: regulator_put(mvs); mvs = NULL; fail_mvs0_get: regulator_disable(s3); fail_s3: regulator_put(s3); s3 = NULL; fail_get_s3: return ret; }
static void msm_snddev_disable_dmic_power(void) { int ret; pr_aud_err("%s", __func__); if (mvs) { ret = regulator_disable(mvs); if (ret < 0) pr_aud_err("%s: error disabling vreg mvs\n", __func__); regulator_put(mvs); mvs = NULL; } if (s3) { ret = regulator_disable(s3); if (ret < 0) pr_aud_err("%s: error disabling regulator s3\n", __func__); regulator_put(s3); s3 = NULL; } stereo_mic_enable(0); }