static void vusb_enable(struct cpcap_whisper_data *data)
{
if (!data->is_vusb_enabled) {
- wake_lock(&data->wake_lock);
regulator_enable(data->regulator);
data->is_vusb_enabled = 1;
}
static void vusb_disable(struct cpcap_whisper_data *data)
{
if (data->is_vusb_enabled) {
- wake_unlock(&data->wake_lock);
regulator_disable(data->regulator);
data->is_vusb_enabled = 0;
}
memset(di->dock_prop, 0, CPCAP_WHISPER_PROP_SIZE);
tegra_cpcap_audio_dock_state(false);
}
+
+ wake_lock_timeout(&di->wake_lock, HZ / 2);
}
static void whisper_audio_check(struct cpcap_whisper_data *di)
switch (data->state) {
case CONFIG:
+ wake_lock(&data->wake_lock);
vusb_enable(data);
cpcap_irq_mask(data->cpcap, CPCAP_IRQ_CHRG_DET);
cpcap_irq_mask(data->cpcap, CPCAP_IRQ_IDFLOAT);