|
@@ -843,6 +843,11 @@ static void nau8824_jdet_work(struct work_struct *work)
|
|
event_mask |= SND_JACK_HEADSET;
|
|
event_mask |= SND_JACK_HEADSET;
|
|
snd_soc_jack_report(nau8824->jack, event, event_mask);
|
|
snd_soc_jack_report(nau8824->jack, event, event_mask);
|
|
|
|
|
|
|
|
+ /* Enable short key press and release interruption. */
|
|
|
|
+ regmap_update_bits(regmap, NAU8824_REG_INTERRUPT_SETTING,
|
|
|
|
+ NAU8824_IRQ_KEY_RELEASE_DIS |
|
|
|
|
+ NAU8824_IRQ_KEY_SHORT_PRESS_DIS, 0);
|
|
|
|
+
|
|
nau8824_sema_release(nau8824);
|
|
nau8824_sema_release(nau8824);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -850,13 +855,12 @@ static void nau8824_setup_auto_irq(struct nau8824 *nau8824)
|
|
{
|
|
{
|
|
struct regmap *regmap = nau8824->regmap;
|
|
struct regmap *regmap = nau8824->regmap;
|
|
|
|
|
|
- /* Enable jack ejection, short key press and release interruption. */
|
|
|
|
|
|
+ /* Enable jack ejection interruption. */
|
|
regmap_update_bits(regmap, NAU8824_REG_INTERRUPT_SETTING_1,
|
|
regmap_update_bits(regmap, NAU8824_REG_INTERRUPT_SETTING_1,
|
|
NAU8824_IRQ_INSERT_EN | NAU8824_IRQ_EJECT_EN,
|
|
NAU8824_IRQ_INSERT_EN | NAU8824_IRQ_EJECT_EN,
|
|
NAU8824_IRQ_EJECT_EN);
|
|
NAU8824_IRQ_EJECT_EN);
|
|
regmap_update_bits(regmap, NAU8824_REG_INTERRUPT_SETTING,
|
|
regmap_update_bits(regmap, NAU8824_REG_INTERRUPT_SETTING,
|
|
- NAU8824_IRQ_EJECT_DIS | NAU8824_IRQ_KEY_RELEASE_DIS |
|
|
|
|
- NAU8824_IRQ_KEY_SHORT_PRESS_DIS, 0);
|
|
|
|
|
|
+ NAU8824_IRQ_EJECT_DIS, 0);
|
|
/* Enable internal VCO needed for interruptions */
|
|
/* Enable internal VCO needed for interruptions */
|
|
nau8824_config_sysclk(nau8824, NAU8824_CLK_INTERNAL, 0);
|
|
nau8824_config_sysclk(nau8824, NAU8824_CLK_INTERNAL, 0);
|
|
regmap_update_bits(regmap, NAU8824_REG_ENA_CTRL,
|
|
regmap_update_bits(regmap, NAU8824_REG_ENA_CTRL,
|