mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
ASoC: rt5640: Move rt5640_disable_jack_detect() up in the rt5640.c file
Move rt5640_disable_jack_detect() to above rt5640_enable_jack_detect(). This is a preparation patch for reworking how the IRQ gets requested. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20210819190543.784415-2-hdegoede@redhat.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
5d925d9823
commit
5caab9f48b
@ -2362,6 +2362,29 @@ static void rt5640_cancel_work(void *data)
|
||||
cancel_delayed_work_sync(&rt5640->bp_work);
|
||||
}
|
||||
|
||||
static void rt5640_disable_jack_detect(struct snd_soc_component *component)
|
||||
{
|
||||
struct rt5640_priv *rt5640 = snd_soc_component_get_drvdata(component);
|
||||
|
||||
/*
|
||||
* soc_remove_component() force-disables jack and thus rt5640->jack
|
||||
* could be NULL at the time of driver's module unloading.
|
||||
*/
|
||||
if (!rt5640->jack)
|
||||
return;
|
||||
|
||||
disable_irq(rt5640->irq);
|
||||
rt5640_cancel_work(rt5640);
|
||||
|
||||
if (rt5640->jack->status & SND_JACK_MICROPHONE) {
|
||||
rt5640_disable_micbias1_ovcd_irq(component);
|
||||
rt5640_disable_micbias1_for_ovcd(component);
|
||||
snd_soc_jack_report(rt5640->jack, 0, SND_JACK_BTN_0);
|
||||
}
|
||||
|
||||
rt5640->jack = NULL;
|
||||
}
|
||||
|
||||
static void rt5640_enable_jack_detect(struct snd_soc_component *component,
|
||||
struct snd_soc_jack *jack)
|
||||
{
|
||||
@ -2428,29 +2451,6 @@ static void rt5640_enable_jack_detect(struct snd_soc_component *component,
|
||||
queue_work(system_long_wq, &rt5640->jack_work);
|
||||
}
|
||||
|
||||
static void rt5640_disable_jack_detect(struct snd_soc_component *component)
|
||||
{
|
||||
struct rt5640_priv *rt5640 = snd_soc_component_get_drvdata(component);
|
||||
|
||||
/*
|
||||
* soc_remove_component() force-disables jack and thus rt5640->jack
|
||||
* could be NULL at the time of driver's module unloading.
|
||||
*/
|
||||
if (!rt5640->jack)
|
||||
return;
|
||||
|
||||
disable_irq(rt5640->irq);
|
||||
rt5640_cancel_work(rt5640);
|
||||
|
||||
if (rt5640->jack->status & SND_JACK_MICROPHONE) {
|
||||
rt5640_disable_micbias1_ovcd_irq(component);
|
||||
rt5640_disable_micbias1_for_ovcd(component);
|
||||
snd_soc_jack_report(rt5640->jack, 0, SND_JACK_BTN_0);
|
||||
}
|
||||
|
||||
rt5640->jack = NULL;
|
||||
}
|
||||
|
||||
static int rt5640_set_jack(struct snd_soc_component *component,
|
||||
struct snd_soc_jack *jack, void *data)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user