Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
ret = request_irq(headset->irq[HEADSET], headset_interrupt, headset->irq_type[HEADSET], "headset_input", NULL);
if (ret)
goto failed_free_dev;
ret = request_irq(headset->irq[HEADSET], headset_interrupt, headset->irq_type[HEADSET], "headset_input", NULL);
if (ret)
goto failed_free_dev;
- enable_irq_wake(headset->irq[HEADSET]);
+ if (pdata->headset_wakeup)
+ enable_irq_wake(headset->irq[HEADSET]);
}
else
goto failed_free_dev;
}
else
goto failed_free_dev;
unsigned int main_mic_io_value;
#endif
struct iio_channel *chan;
unsigned int main_mic_io_value;
#endif
struct iio_channel *chan;
};
#define HOOK_KEY_CODE KEY_MEDIA
};
#define HOOK_KEY_CODE KEY_MEDIA
ret = request_threaded_irq(headset->irq[HEADSET], NULL,headset_interrupt, headset->irq_type[HEADSET]|IRQF_NO_SUSPEND, "headset_input", NULL);
if (ret)
goto failed_free_dev;
ret = request_threaded_irq(headset->irq[HEADSET], NULL,headset_interrupt, headset->irq_type[HEADSET]|IRQF_NO_SUSPEND, "headset_input", NULL);
if (ret)
goto failed_free_dev;
- enable_irq_wake(headset->irq[HEADSET]);
+ if (pdata->headset_wakeup)
+ enable_irq_wake(headset->irq[HEADSET]);
}
else
goto failed_free_dev;
}
else
goto failed_free_dev;
+ ret = of_property_read_u32(node, "rockchip,headset_wakeup", &pdata->headset_wakeup);
+ if (ret < 0)
+ pdata->headset_wakeup = 1;
+
if(pdata->chan != NULL)
{//hook adc mode
printk("%s() headset have hook adc mode\n",__FUNCTION__);
if(pdata->chan != NULL)
{//hook adc mode
printk("%s() headset have hook adc mode\n",__FUNCTION__);