linux/sound/soc
Hans de Goede 15d54840ec
ASoC: rt5640: Delay requesting IRQ until the machine-drv calls set_jack
Delay requesting the IRQ until the machine-drv calls set_jack.

The main reason for this is that the codec's IRQ is unused on some boards,
in which case we really should not call request_irq at all.

On some boards there is an IRQ listed at index 0 for the codec, but
this is not connected to the codec, but rather is directly connected
to the jack's jack-detect pin. These special setups will be handled
by the machine-driver, but the machine driver can only request the IRQ
if it is not first requested by the codec driver. Moving the request_irq
to the set_jack callback (which will not get called in this case) avoids
the codec-driver clobbering the IRQ.

Moving the request_irq also removes the need to disable the IRQ immediately
after requesting it, avoiding a small race (this could also have been fixed
by using the new IRQF_NO_AUTOEN flag when requesting the IRQ).

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-3-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2021-08-19 23:27:56 +01:00
..
adi ASoC: axi-i2s: Use devm_platform_get_and_ioremap_resource() 2021-06-14 15:01:03 +01:00
amd Merge some cs42l42 patches into asoc-5.15 2021-08-06 01:46:24 +01:00
atmel ASoC: atmel: ATMEL drivers don't need HAS_DMA 2021-07-11 23:48:35 +01:00
au1x
bcm ASoC: bcm: cygnus-pcm: Fix unused assignment about 'rc' 2021-07-28 16:39:28 +01:00
cirrus ASoC: cirrus: sync parameter naming (rate/sample_bits) 2021-01-21 12:37:48 +00:00
codecs ASoC: rt5640: Delay requesting IRQ until the machine-drv calls set_jack 2021-08-19 23:27:56 +01:00
dwc sound updates for 5.14 2021-07-02 15:25:23 -07:00
fsl ASoC: fsl_rpmsg: Check -EPROBE_DEFER for getting clocks 2021-08-18 13:55:18 +01:00
generic ASoC: simple-card-utils: Avoid over-allocating DLCs 2021-08-05 15:38:56 +01:00
hisilicon ASoC: hisilicon: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:49 +01:00
img ASoC: img-spdif-out: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:47 +01:00
intel ASoC: Intel: bytcr_rt5640: Use cfg-lineout:2 in the components string 2021-08-17 13:35:02 +01:00
jz4740 ASoC: jz4740-i2s: Use devm_platform_get_and_ioremap_resource() 2021-06-15 16:39:48 +01:00
kirkwood ASoC: kirkwood: Fix reference to PCM buffer address 2021-07-30 17:20:51 +01:00
mediatek ASoC: mediatek: mt8183: Fix Unbalanced pm_runtime_enable in mt8183_afe_pcm_dev_probe 2021-07-11 23:47:35 +01:00
meson ASoC: meson: switch to use snd_soc_daifmt_parse_format/clock_provider() 2021-06-21 13:05:20 +01:00
mxs ASoC: mxs-saif: drop unneeded snd_soc_dai_set_drvdata 2021-03-10 13:07:06 +00:00
pxa spi: pxa2xx: Use pxa_ssp_enable()/pxa_ssp_disable() in the driver 2021-05-11 09:35:06 +01:00
qcom ASoC: qdsp6: q6adm: fix cppcheck warnings for unnecessary initialization 2021-08-09 13:49:13 +01:00
rockchip sound updates for 5.14 2021-07-02 15:25:23 -07:00
samsung ASoC: samsung: Constify static snd_soc_ops 2021-07-29 15:35:48 +01:00
sh ASoC: sh: rz-ssi: Improve error handling in rz_ssi_dma_request function 2021-08-19 18:21:22 +01:00
sof ASoC: SOF: Intel: make DMI L1 selection more robust 2021-08-13 13:16:16 +01:00
spear ASoC: spear: spdif_out: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:06 +01:00
sprd ASoC: sprd: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:05 +01:00
sti ASoC: sti: sti_uniperif: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:03 +01:00
stm ASoC: stm32: spdifrx: Use devm_platform_get_and_ioremap_resource() 2021-06-17 13:47:02 +01:00
sunxi ASoC: sunxi: sun4i-spdif: Use devm_platform_get_and_ioremap_resource() 2021-06-21 13:04:18 +01:00
tegra ASoC: tegra30: i2s: Fix incorrect usage of of_device_get_match_data 2021-08-17 13:35:00 +01:00
ti Merge some cs42l42 patches into asoc-5.15 2021-08-06 01:46:24 +01:00
uniphier ASoC: uniphier: make arrays mul and div static const, makes object smaller 2021-08-19 18:21:23 +01:00
ux500 ASoC: ux500: mop500: align function prototype 2021-03-31 18:03:28 +01:00
xilinx ASoC: xilinx: Fix reference to PCM buffer address 2021-07-30 17:20:50 +01:00
xtensa
Kconfig ASoC: topology: Select SND_DYNAMIC_MINORS 2021-07-27 13:13:04 +01:00
Makefile ASoC: topology: adhere to KUNIT formatting standard 2021-04-14 15:26:24 +01:00
soc-ac97.c ASoC: soc-ac97: cleanup cppcheck warning 2021-08-16 13:29:36 +01:00
soc-acpi.c ASoC: soc-acpi: remove useless initialization 2021-04-19 14:03:29 +01:00
soc-card.c
soc-component.c ASoC: soc-component: cleanup cppcheck warning at snd_soc_pcm_component_pm_runtime_get() 2021-08-16 13:29:35 +01:00
soc-compress.c ASoC: soc-compress: lock pcm_mutex to resolve lockdep error 2021-04-09 13:39:44 +01:00
soc-core.c ASoC: soc-core: cleanup cppcheck warning at snd_soc_of_parse_audio_routing() 2021-07-29 15:35:45 +01:00
soc-dai.c ASoC: soc-dai: cleanup cppcheck warning at snd_soc_pcm_dai_new() 2021-08-16 13:29:32 +01:00
soc-dapm.c ASoC: soc-dapm: cleanup cppcheck warning at soc_dapm_dai_stream_event() 2021-08-05 15:37:40 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: soc-generic-dmaengine-pcm: cleanup cppcheck warning at dmaengine_copy_user() 2021-08-16 13:29:30 +01:00
soc-jack.c ASoC: soc-jack: cleanup cppcheck warning for CONFIG_GPIOLIB 2021-08-16 13:29:34 +01:00
soc-link.c
soc-ops.c ASoC: soc-ops: cleanup cppcheck warning at snd_soc_put_xr_sx() 2021-08-03 18:27:14 +01:00
soc-pcm.c Merge some cs42l42 patches into asoc-5.15 2021-08-06 01:46:24 +01:00
soc-topology-test.c ASoC: topology: KUnit: Convert from cpu to data format 2021-02-02 17:08:21 +00:00
soc-topology.c ASoC: soc-topology: cleanup cppcheck warning at snd_soc_find_dai_link() 2021-08-02 12:21:31 +01:00
soc-utils.c ASoC: soc-core: add snd_soc_runtime_get_dai_fmt() 2021-06-07 15:55:12 +01:00