Commit 0e91438f authored by Lucas Tanure's avatar Lucas Tanure Committed by Mark Brown

ASoC: cs42l42: Check jack status before reporting button events

Jack must be connected before reporting button events and
if the jack is disconnected button release must be reported
Signed-off-by: default avatarLucas Tanure <tanureal@opensource.cirrus.com>
Reviewed-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
Message-Id: <20210525090822.64577-4-tanureal@opensource.cirrus.com>
Signed-off-by: default avatarMark Brown <broonie@sirena.org.uk>
parent 4b38da6f
...@@ -1478,6 +1478,10 @@ static irqreturn_t cs42l42_irq_thread(int irq, void *data) ...@@ -1478,6 +1478,10 @@ static irqreturn_t cs42l42_irq_thread(int irq, void *data)
default: default:
break; break;
} }
snd_soc_jack_report(cs42l42->jack, 0,
SND_JACK_BTN_0 | SND_JACK_BTN_1 |
SND_JACK_BTN_2 | SND_JACK_BTN_3);
dev_dbg(component->dev, "Unplug event\n"); dev_dbg(component->dev, "Unplug event\n");
} }
break; break;
...@@ -1489,7 +1493,7 @@ static irqreturn_t cs42l42_irq_thread(int irq, void *data) ...@@ -1489,7 +1493,7 @@ static irqreturn_t cs42l42_irq_thread(int irq, void *data)
} }
/* Check button detect status */ /* Check button detect status */
if ((~masks[7]) & irq_params_table[7].mask) { if (cs42l42->plug_state == CS42L42_TS_PLUG && ((~masks[7]) & irq_params_table[7].mask)) {
if (!(current_button_status & if (!(current_button_status &
CS42L42_M_HSBIAS_HIZ_MASK)) { CS42L42_M_HSBIAS_HIZ_MASK)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment