Takashi Iwai
f4fa968950
ALSA: core: Don't refer to snd_cards array directly
...
The snd_cards[] array holds the card pointers that have been currently
registered, and it's exported for the external modules that may need
to refer a card object. But accessing to this array can be racy
against the driver probe or removal, as the card registration or free
may happen concurrently.
This patch gets rid of the direct access to snd_cards[] array and
provides a helper function to give the card object from the index
number with a refcount management. Then the caller can access to the
given card object safely, and releases it via snd_card_unref().
While we're at it, add a proper comment to snd_card_unref() and make
it an inlined function for type-safety, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-04-17 07:16:15 +02:00
..
ac97
ASoC: ac97: convert to SPDX identifiers
2018-07-02 10:56:09 +01:00
ac97_codec.h
ASoC: ac97: convert to SPDX identifiers
2018-07-02 10:56:09 +01:00
aci.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
ad1816a.h
ad1843.h
adau1373.h
aess.h
ak4xxx-adda.h
ak4113.h
ALSA: ak411x: Use array instead of offsetof()
2017-05-17 07:13:03 +02:00
ak4114.h
ALSA: ak411x: Use array instead of offsetof()
2017-05-17 07:13:03 +02:00
ak4117.h
ALSA: ak411x: Use array instead of offsetof()
2017-05-17 07:13:03 +02:00
ak4531_codec.h
ak4641.h
alc5623.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
asequencer.h
asound.h
asoundef.h
compress_driver.h
ALSA: compress: Fix stop handling on compressed capture streams
2019-02-05 22:01:41 +01:00
control.h
ALSA: control: Hardening for potential Spectre v1
2018-04-25 10:37:46 +02:00
core.h
ALSA: core: Don't refer to snd_cards array directly
2019-04-17 07:16:15 +02:00
cs35l33.h
cs35l34.h
ASoC: cs35l34: Initial commit of the cs35l34 CODEC driver.
2016-10-21 12:02:44 +01:00
cs35l35.h
ASoC: cs35l35: Add Boost Inductor Calculation
2017-05-19 17:31:34 +01:00
cs35l36.h
ASoC: cs35l36: Add support for Cirrus CS35L36 Amplifier
2019-02-08 13:00:28 +00:00
cs42l52.h
cs42l56.h
cs42l73.h
cs4231-regs.h
cs4271.h
cs8403.h
cs8427.h
da7213.h
da7218.h
da7219-aad.h
da7219.h
ASoC: da7219: Add common clock usage for providing DAI clks
2018-03-09 17:40:41 +00:00
da9055.h
designware_i2s.h
ASoC: dwc: Added a quirk DW_I2S_QUIRK_16BIT_IDX_OVERRIDE to dwc driver
2017-06-28 19:01:12 +01:00
dmaengine_pcm.h
ASoC: dmaengine: Remove unused SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME flag
2019-02-14 16:17:35 +00:00
emu10k1.h
ALSA: emu10k1: Reduce GFP_ATOMIC allocation
2018-04-16 14:01:53 +02:00
emu10k1_synth.h
emu8000.h
emu8000_reg.h
emux_legacy.h
emux_synth.h
ALSA: seq: Allow the tristate build of OSS emulation
2017-06-09 22:09:45 +02:00
es1688.h
gus.h
hda_chmap.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
hda_codec.h
ALSA: hda - Serialize codec registrations
2019-02-01 11:30:09 +01:00
hda_component.h
i915/snd_hdac: I915 subcomponent for the snd_hdac
2019-02-08 16:58:59 +01:00
hda_hwdep.h
hda_i915.h
ALSA: hda: Make audio component support more generic
2018-07-17 22:25:48 +02:00
hda_register.h
ALSA: hda: add register offset for stripe control
2019-01-14 19:52:27 +01:00
hda_regmap.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
hda_verbs.h
ALSA: hda: add verbs for stripe control
2019-01-14 19:52:23 +01:00
hdaudio.h
ALSA: hda: Initialize ext-bus-specific fields in snd_hdac_bus_init(), too
2019-04-13 10:10:26 +02:00
hdaudio_ext.h
ALSA: hdac: add extended ops in the hdac_bus
2018-06-28 07:33:29 +02:00
hdmi-codec.h
ASoC: hdmi-codec: add .get_dai_id support
2017-05-24 18:45:29 +01:00
hwdep.h
->poll() methods should return __poll_t
2017-11-27 16:19:52 -05:00
i2c.h
info.h
ALSA: info: Drop unused snd_info_entry.card field
2019-02-06 18:11:58 +01:00
initval.h
jack.h
l3.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
max9768.h
max98088.h
max98090.h
max98095.h
memalloc.h
ALSA: Replace snd_malloc_pages() and snd_free_pages() with standard helpers, take#2
2019-03-27 17:15:01 +01:00
minors.h
mixer_oss.h
ALSA: Use IS_ENABLED() in common headers
2017-05-17 07:13:04 +02:00
mpu401.h
omap-hdmi-audio.h
drm: omapdrm: hdmi: Pass HDMI core version as integer to HDMI audio
2017-08-16 12:52:41 +03:00
opl3.h
ALSA: seq: Allow the tristate build of OSS emulation
2017-06-09 22:09:45 +02:00
opl4.h
pcm-indirect.h
ALSA: pcm: Fix negative appl_ptr handling in pcm-indirect helpers
2017-05-25 23:34:45 +02:00
pcm.h
ALSA: pcm: Fix function name in kernel-doc comment
2019-03-13 21:26:32 +01:00
pcm_drm_eld.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
pcm_iec958.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
pcm_oss.h
ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams
2018-03-23 22:18:05 +01:00
pcm_params.h
ALSA: pcm: Fix interval evaluation with openmin/max
2018-11-29 12:05:19 +01:00
pt2258.h
pxa2xx-lib.h
ASoC: pxa: move some functions to pxa2xx-lib
2018-06-29 12:05:04 +01:00
rawmidi.h
ALSA: rawmidi: A lightweight function to discard pending bytes
2018-10-04 20:13:17 +02:00
rt286.h
rt298.h
rt5514.h
ASoC: rt5514: The DSP clock can be calibrated by the other clock source
2017-11-07 11:23:36 +01:00
rt5645.h
ASoC: rt5645: Set card long_name for GPD win / pocket
2017-12-12 10:41:56 +00:00
rt5659.h
ASoC: rt5659: Add the support of Intel HDA Header
2018-02-12 09:31:26 +00:00
rt5660.h
ASoC: rt5660: add rt5660 codec driver
2016-09-24 19:51:57 +01:00
rt5663.h
ASoC: rt5663: Add the function of impedance sensing
2017-09-19 12:57:59 +01:00
rt5665.h
treewide: Remove remaining executable attributes from source files
2017-02-25 12:12:50 -08:00
rt5668.h
ASoC: rt5668: add rt5668B codec driver
2018-04-16 19:24:32 +01:00
rt5670.h
rt5682.h
ASoC: rt5682: add rt5682 codec driver
2018-06-18 12:54:38 +01:00
s3c24xx_uda134x.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
sb.h
sb16_csp.h
ALSA: sb: Fix sparse warning wrt PCM format type
2018-07-27 09:05:33 +02:00
seq_device.h
seq_kernel.h
ALSA: seq: Simplify snd_seq_kernel_client_enqueue() helper
2019-04-12 12:51:22 +02:00
seq_midi_emul.h
seq_midi_event.h
ALSA: seq: Minor cleanup of MIDI event parser helpers
2018-08-01 22:54:35 +02:00
seq_oss.h
seq_oss_legacy.h
seq_virmidi.h
ALSA: seq: virmidi: Use READ_ONCE/WRITE_ONCE() macros
2018-07-30 14:52:30 +02:00
sh_dac_audio.h
sh_fsi.h
ASoC: fsi: convert to SPDX identifiers
2018-08-02 10:56:59 +01:00
simple_card.h
ASoC: simple-card: convert to SPDX identifiers
2018-07-02 10:52:47 +01:00
simple_card_utils.h
ASoC: simple-card: rename to asoc_simple_card_canonicalize_platform()
2019-01-21 18:14:16 +00:00
snd_wavefront.h
ASoC: Updates for v4.15
2017-11-13 15:45:57 +01:00
soc-acpi-intel-match.h
ASoC: Intel: common: add ACPI matching tables for ICL
2018-12-03 12:02:13 +00:00
soc-acpi.h
ASoC: soc-acpi: remove new_mach_data field
2019-02-12 16:56:06 +00:00
soc-dai.h
ASoC: core: add support to snd_soc_dai_get_channel_map()
2018-07-24 12:06:43 +01:00
soc-dapm.h
ASoC: dapm: harden use of lookup tables
2019-02-06 17:32:02 +00:00
soc-dpcm.h
ASoC: add for_each_dpcm_be() macro
2018-09-20 10:31:20 -07:00
soc-topology.h
ASoC: topology: unload physical dai link in remove
2019-02-04 11:59:30 +01:00
soc.h
ASoC: core: conditionally increase module refcount on component open
2019-04-08 14:15:44 +07:00
soundfont.h
spear_dma.h
spear_spdif.h
sta32x.h
sta350.h
tas2552-plat.h
tas5086.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tea6330t.h
timer.h
ALSA: timer: Revert active callback sync check at close
2019-04-09 12:29:34 +02:00
tlv.h
ALSA: control: cage TLV_DB_RANGE_HEAD in kernel land because it was obsoleted
2016-09-25 22:16:49 +02:00
tlv320aic3x.h
tlv320aic32x4.h
ASoC: tlv320aic32x4: Add gpio configuration to the codec
2017-07-17 16:22:28 +01:00
tlv320dac33-plat.h
tpa6130a2-plat.h
uda134x.h
uda1380.h
util_mem.h
vx_core.h
wavefront.h
wm0010.h
wm1250-ev1.h
wm2000.h
wm2200.h
wm5100.h
wm8903.h
wm8904.h
wm8955.h
wm8960.h
wm8962.h
wm8993.h
wm8996.h
wm9081.h
wm9090.h
wss.h