linux/sound/soc
Hans de Goede 8d2d7bcdc1
ASoC: rt5651: Fix workqueue cancel vs irq free race on remove
On removal we must free the IRQ *before* cancelling the jack-detect work,
so that the jack-detect work cannot be rescheduled by the IRQ.

Before this commit we were cancelling the jack-detect work from the
driver remove callback, while relying on devm to free the IRQ, which
happens after the remove callback.

This is the wrong order. This commit uses a devm-action to register
a devm callback which cancels the work, before requesting the IRQ
(devm tears things down in reverse order). This also allows us to
remove the now empty remove driver callback.

Cc: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2018-07-10 18:49:24 +01:00
..
adi
amd ASoC: AMD: Simplify trigger handler 2018-07-03 16:15:32 +01:00
atmel ASoC: atmel-i2s: Remove unnecessary audio PLL clock (aclk) 2018-07-03 16:33:38 +01:00
au1x treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
bcm ASoC: Remove depends on HAS_DMA in case of platform dependency 2018-04-18 11:17:09 +01:00
cirrus ASoC: cirrus: i2s: IRQ-based stream watchdog 2018-05-11 11:27:33 +09:00
codecs ASoC: rt5651: Fix workqueue cancel vs irq free race on remove 2018-07-10 18:49:24 +01:00
davinci ASoC: davinci: Use snd_pcm_stop_xrun() helper 2018-07-04 15:41:33 +01:00
dwc Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/es7134', 'asoc/topic/es8316', 'asoc/topic/es8328' and 'asoc/topic/fsl' into asoc-next 2018-03-28 10:29:36 +08:00
fsl ASoC: fsl_spdif: Use 64-bit arithmetic instead of 32-bit 2018-07-05 11:07:59 +01:00
generic ASoC: audio-graph-scu-card.c: convert to SPDX identifiers 2018-07-02 10:53:33 +01:00
hisilicon ASoC: hisilicon: fix spelling mistake: "uknown" -> "unknown" 2018-05-13 10:08:11 +09:00
img treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
intel ASoC: Intel: bytcr_rt5651: Add support for externar amplifier enable GPIO 2018-07-10 18:49:23 +01:00
jz4740
kirkwood ASoC: Remove depends on HAS_DMA in case of platform dependency 2018-04-18 11:17:09 +01:00
mediatek ASoC: mt6797: sub dai use list_head 2018-06-29 13:31:53 +01:00
mxs Merge remote-tracking branches 'asoc/topic/mtk', 'asoc/topic/mxs', 'asoc/topic/mxs-sgtl5000', 'asoc/topic/nau8540' and 'asoc/topic/nau8824' into asoc-next 2018-01-26 15:27:22 +00:00
nuc900 ASoC: nuc900-pcm: replace platform to component 2018-02-12 11:45:37 +00:00
omap ASoC: twl6040: make pointer dmic_codec_dev static 2018-06-18 12:54:38 +01:00
pxa ASoC: pxa: make SND_PXA_SOC_SSP depend on PLAT_PXA 2018-07-09 12:27:16 +01:00
qcom ASoC: qdsp6: q6afe-dai: Do not overwrite slim dai num_channels 2018-07-04 15:41:40 +01:00
rockchip ASoC: rockchip: add config for rockchip dmaengine pcm register 2018-06-18 12:54:38 +01:00
samsung Merge remote-tracking branches 'asoc/topic/wm8991', 'asoc/topic/wm8994', 'asoc/topic/wm8995', 'asoc/topic/wm8996' and 'asoc/topic/wm9081' into asoc-next 2018-03-28 10:31:54 +08:00
sh ASoC: rsnd: cmd: Add missing newline to debug message 2018-07-05 11:08:03 +01:00
sirf ASoC: sirf: remove duplicated bit-wise or of USP_RXFIFO_THD_INT 2018-02-26 10:19:20 +00:00
spear
sti ASoC: sti: Use snd_pcm_stop_xrun() helper 2018-07-04 15:41:35 +01:00
stm ASoC: stm32: replace "%p" with "%pK" 2018-07-09 12:15:30 +01:00
sunxi Merge remote-tracking branches 'asoc/topic/sta529', 'asoc/topic/sti-sas', 'asoc/topic/stm32', 'asoc/topic/sun4i' and 'asoc/topic/sun8i' into asoc-next 2018-03-28 10:30:49 +08:00
tegra ASoC: tegra: fix device_node refcounting 2018-06-18 12:55:57 +01:00
txx9 ASoC: txx9aclc: replace platform to component 2018-02-12 11:45:38 +00:00
uniphier ASoC: uniphier: remove redundant check of PLL ID 2018-06-22 15:46:31 +01:00
ux500 ASoC: ux500: add MODULE_LICENSE tag 2018-01-10 16:42:10 +00:00
xtensa ASoC: xtfpga-i2s: replace platform to component 2018-02-12 11:45:32 +00:00
zte ASoC: zte: remove duplicate includes 2018-05-17 15:46:22 +09:00
Kconfig ASoC: remove blackfin drivers 2018-03-14 09:35:29 -07:00
Makefile ASoC: remove codec reg_cache 2018-05-09 18:38:23 +09:00
soc-ac97.c ASoC: ac97: convert to SPDX identifiers 2018-07-02 10:56:09 +01:00
soc-acpi.c ASoC: soc-acpi: convert to SPDX identifiers 2018-07-02 10:55:27 +01:00
soc-compress.c ASoC: soc-compress: convert to SPDX identifiers 2018-07-02 10:55:47 +01:00
soc-core.c ASoC: core: Allow topology to override machine driver FE DAI link config. 2018-07-03 16:38:29 +01:00
soc-dapm.c ASoC: soc-dapm: convert to SPDX identifiers 2018-07-02 10:55:38 +01:00
soc-devres.c ASoC: soc-devres.c: convert to SPDX identifiers 2018-07-02 10:55:22 +01:00
soc-generic-dmaengine-pcm.c ASoC: soc-generic-dmaengine-pcm: convert to SPDX identifiers 2018-07-02 10:55:52 +01:00
soc-io.c ASoC: soc-io.c: convert to SPDX identifiers 2018-07-02 10:53:55 +01:00
soc-jack.c ASoC: soc-jack.c: convert to SPDX identifiers 2018-07-02 10:55:12 +01:00
soc-ops.c ASoC: soc-ops.c: convert to SPDX identifiers 2018-07-02 10:54:40 +01:00
soc-pcm.c ASoC: core: Allow topology to override machine driver FE DAI link config. 2018-07-03 16:38:29 +01:00
soc-topology.c ASoC: soc-topology: convert to SPDX identifiers 2018-07-02 10:55:42 +01:00
soc-utils.c ASoC: soc-utils.c: convert to SPDX identifiers 2018-07-02 10:55:18 +01:00