BZ: 31967
Currently, irrespective of vibra enable status, it'll process disable request.
Thus causing invalid pm_usage_count for SST. This breaks audio playback
during D0x states.
The solution is to disable vibra only in case it is enabled.
Change-Id: I767dacd82aed3bc0333e2773e8419e1723cd4091
Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@intel.com>
Reviewed-on: http://android.intel.com:8080/46557
Reviewed-by: Babu, Ramesh <ramesh.babu@intel.com>
Reviewed-by: Kp, Jeeja <jeeja.kp@intel.com>
Reviewed-by: Koul, Vinod <vinod.koul@intel.com>
Reviewed-by: Abdullah, Omair M <omair.m.abdullah@intel.com>
Reviewed-by: Neerebailoor, ShreyasX <shreyasx.neerebailoor@intel.com>
Reviewed-by: Gupta, ArvindX K <arvindx.k.gupta@intel.com>
Reviewed-by: M, Arulselvan <arulselvan.m@intel.com>
Tested-by: M, Arulselvan <arulselvan.m@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
static void vibra_disable(struct vibra_info *info)
{
- pr_debug("Disable gpio\n");
- gpio_set_value(PWM_ENABLE_GPIO, 0);
- gpio_set_value(VIBRA_ENABLE_GPIO, 0);
- info->enabled = false;
- intel_sst_pwm_suspend(true);
+ if (info->enabled) {
+ pr_debug("Disable gpio\n");
+ gpio_set_value(PWM_ENABLE_GPIO, 0);
+ gpio_set_value(VIBRA_ENABLE_GPIO, 0);
+ info->enabled = false;
+ intel_sst_pwm_suspend(true);
+ }
}
info->dev = &pdev->dev;
info->name = "intel_mid:vibrator";
+ info->enabled = false;
mutex_init(&info->lock);