Charles Keepax
45a110a137
ASoC: dapm: Add cache to speed up adding of routes
...
Some CODECs have a significant number of DAPM routes and for each route,
when it is added to the card, the entire card widget list must be
searched. When adding routes it is very likely, however, that adjacent
routes will require adjacent widgets. For example all the routes for a
mux are likely added in a block and the sink widget will be the same
each time and it is also quite likely that the source widgets are
sequential located in the widget list.
This patch adds a cache to the DAPM context, this cache will hold the
source and sink widgets from the last call to snd_soc_dapm_add_route for
that context. A small search of the widget list will be made from those
points for both the sink and source. Currently this search only checks
both the last widget and the one adjacent to it.
On wm8280 which has approximately 500 widgets and 30000 routes (one of
the largest CODECs in mainline), the number of paths that hit the cache
is 24000, which significantly improves probe time.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2015-05-12 11:41:46 +01:00
..
ac97_codec.h
ALSA: Use const struct ac97_quirk
2015-04-05 08:41:05 +02:00
aci.h
ad1816a.h
ALSA: ad1816a: Remove always NULL parameters
2015-01-02 16:26:20 +01:00
ad1843.h
adau1373.h
aess.h
ASoC: TI AESS: add autogating-enable function, callable from architecture code
2013-02-10 11:22:23 -07:00
ak4xxx-adda.h
ak4113.h
ALSA: ak411x: Fix race of reinit() calls
2015-01-28 22:30:18 +01:00
ak4114.h
ALSA: ak411x: Fix race of reinit() calls
2015-01-28 22:30:18 +01:00
ak4117.h
ak4531_codec.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
ak4641.h
alc5623.h
asequencer.h
UAPI: (Scripted) Disintegrate include/sound
2012-10-09 09:49:13 +01:00
asound.h
UAPI: (Scripted) Disintegrate include/sound
2012-10-09 09:49:13 +01:00
asoundef.h
atmel-abdac.h
dmaengine: dw: move dw_dmac.h to where it belongs to
2014-09-11 11:48:12 +05:30
atmel-ac97c.h
dmaengine: dw: move dw_dmac.h to where it belongs to
2014-09-11 11:48:12 +05:30
compress_driver.h
ALSA: Fix spelling typo in Documentation/DocBook/alsa-driver-api.xml
2015-03-04 12:12:59 +01:00
control.h
ALSA: Fix spelling typo in Documentation/DocBook/alsa-driver-api.xml
2015-03-04 12:12:59 +01:00
core.h
ALSA: core: Re-add snd_device_disconnect()
2015-03-03 11:26:28 +01:00
cs42l52.h
ASoC: cs42l52: Make MICA/B mixer dependent on mic config
2013-11-28 10:20:51 +00:00
cs42l56.h
ASoC: Add support for CS42L56 CODEC
2014-05-05 18:20:22 -07:00
cs42l73.h
ASoC: cs42l73: Add platform data support for cs42l73 codec
2013-10-18 00:37:29 +01:00
cs4231-regs.h
cs4271.h
ALSA: ASoC: cs4271: add optional soft reset workaround
2012-12-24 15:53:28 +00:00
cs8403.h
cs8427.h
ALSA: cs8427: separate HW initialization
2014-04-03 14:59:48 +02:00
da7213.h
ASoC: codecs: Add da7213 codec
2013-02-14 17:27:17 +00:00
da9055.h
ASoC: codecs: Add DA9055 codec driver
2012-09-28 14:21:54 +01:00
designware_i2s.h
dmaengine_pcm.h
ASoC: dmaengine: add custom DMA config to snd_dmaengine_pcm_config
2013-12-09 18:45:01 +00:00
emu10k1.h
ALSA: Include linux/io.h instead of asm/io.h
2015-01-28 16:49:33 +01:00
emu10k1_synth.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
emu8000.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
emu8000_reg.h
emux_legacy.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
emux_synth.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
es1688.h
ALSA: es1688: Remove almost always NULL parameter
2015-01-02 16:27:03 +01:00
gus.h
ALSA: Include linux/io.h instead of asm/io.h
2015-01-28 16:49:33 +01:00
hda_hwdep.h
hda_regmap.h
ALSA: hda - Sync node attributes at resume from widget power saving
2015-04-04 12:22:52 +02:00
hda_verbs.h
ALSA: hda - Split verb definitions into sound/hda_verbs.h
2013-12-09 17:31:40 +01:00
hdaudio.h
ALSA: hda - Fix another race in runtime PM refcounting
2015-04-13 11:07:20 +02:00
hwdep.h
ALSA: hwdep: Embed struct device
2015-02-02 14:42:42 +01:00
i2c.h
info.h
initval.h
jack.h
ALSA: jack: Add dummy snd_jack_set_key() definition
2014-12-08 15:44:47 +01:00
l3.h
max9768.h
max98088.h
max98090.h
ASoC:: max98090: Remove executable bit
2013-03-20 10:54:12 +01:00
max98095.h
memalloc.h
ALSA: Remove memory reservation code from memalloc helper
2014-01-09 07:32:10 +01:00
minors.h
mixer_oss.h
mpu401.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
omap-hdmi-audio.h
ASoC: omap-hdmi-audio: Add platform device for OMAP HDMI audio support
2014-12-01 11:09:23 +02:00
omap-pcm.h
ASoC: omap-pcm: Move omap-pcm under include/sound
2014-05-26 15:32:32 +01:00
opl3.h
opl4.h
pcm-indirect.h
pcm.h
ALSA: core: remove .wall_clock
2015-02-20 17:30:07 +01:00
pcm_oss.h
pcm_params.h
ALSA: Add params_set_format helper
2015-02-24 00:43:18 +09:00
pt2258.h
pxa2xx-lib.h
ASoC: pxa: use snd_dmaengine_dai_dma_data
2013-08-15 11:29:07 +01:00
rawmidi.h
ALSA: rawmidi: Embed struct device
2015-02-02 14:42:43 +01:00
rcar_snd.h
ASoC: rsnd: add recovery support for under/over flow error on SRC
2015-01-12 12:59:32 +00:00
rt286.h
ASoC: add RT286 CODEC driver
2014-07-04 18:50:51 +01:00
rt5640.h
ASoC: rt5640: Use the platform data for DMIC settings
2014-04-14 17:27:41 +01:00
rt5645.h
ASoC: rt5645: multiple JD mode support
2014-11-25 12:09:48 +00:00
rt5651.h
ASoC: add RT5651 CODEC driver
2014-04-18 18:52:18 +01:00
rt5670.h
ASoC: rt5670: Add IRQ function
2015-03-11 12:08:20 +00:00
rt5677.h
ASoC: rt5677: Add the MICBIAS VDD setting in the platform data
2015-01-08 18:36:02 +00:00
s3c24xx_uda134x.h
sb.h
ALSA: Include linux/io.h instead of asm/io.h
2015-01-28 16:49:33 +01:00
sb16_csp.h
UAPI: (Scripted) Disintegrate include/sound
2012-10-09 09:49:13 +01:00
seq_device.h
ALSA: seq: Define driver object in each driver
2015-02-12 14:15:54 +01:00
seq_kernel.h
ALSA: seq: Drop snd_seq_autoload_lock() and _unlock()
2015-02-12 14:42:31 +01:00
seq_midi_emul.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
seq_midi_event.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
seq_oss.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
seq_oss_legacy.h
seq_virmidi.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
sh_dac_audio.h
sh_fsi.h
ASoC: fsi: cleanup sh_fsi.h
2012-12-24 15:57:20 +00:00
simple_card.h
ASoC: simple-card: Remove support for setting differing DAI formats
2015-03-26 18:35:48 -07:00
snd_wavefront.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
soc-dai.h
Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ad193x', 'asoc/topic/adau1373' and 'asoc/topic/adau17x1' into asoc-next
2014-12-08 13:11:45 +00:00
soc-dapm.h
ASoC: dapm: Add cache to speed up adding of routes
2015-05-12 11:41:46 +01:00
soc-dpcm.h
ASoC: Make soc_dpcm_debugfs_add() non-fatal
2015-04-09 11:32:29 +01:00
soc.h
ASoC: dapm: Add support for autodisable mux controls
2015-05-06 17:13:01 +01:00
soundfont.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
spear_dma.h
ASoC: SPEAr: remove custom DMA alloc compat function
2013-12-18 18:55:06 +00:00
spear_spdif.h
sta32x.h
ASoC: sta32x: add device tree binding.
2015-01-27 17:13:25 +00:00
sta350.h
ASoC: sta350: add support for bits in miscellaneous registers
2014-05-05 12:52:59 -07:00
tas2552-plat.h
ASoC: tas2552: Support TI TAS2552 Amplifier
2014-07-17 17:57:05 +01:00
tas5086.h
ALSA: ASoC: add codec driver for TI TAS5086
2013-03-08 21:06:09 +08:00
tea6330t.h
UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers
2012-10-02 18:01:25 +01:00
timer.h
tlv.h
ALSA: Add comment for control TLV API
2013-05-08 15:43:56 +02:00
tlv320aic3x.h
ASoC: tlv320aic3x: Convert mic bias to a supply widget
2013-02-04 18:35:19 +00:00
tlv320aic32x4.h
ASoC: tlv320aic32x4: Add rstn gpio to platform data.
2012-11-01 14:35:56 +00:00
tlv320dac33-plat.h
tpa6130a2-plat.h
uda134x.h
ASoC: uda134x: Remove is_powered_on_standby from platform data
2014-11-24 18:04:49 +00:00
uda1380.h
util_mem.h
vx_core.h
ALSA: vx: Use nonatomic PCM ops
2014-09-15 15:52:03 +02:00
wavefront.h
wm0010.h
ASoC: wm0010: Add initial wm0010 DSP driver
2012-08-23 16:12:12 +01:00
wm1250-ev1.h
wm2000.h
ASoC: wm2000: Use clock API integration to configure MCLK divisor
2012-12-24 15:42:35 +00:00
wm2200.h
ASoC: wm2200: Provide platform data for MICBIAS configuration
2013-02-05 15:53:07 +00:00
wm5100.h
wm8903.h
wm8904.h
wm8955.h
wm8960.h
ASoC: wm8960: remove 'dres' field from platform data structure
2012-09-21 08:35:06 -04:00
wm8962.h
ASoC: wm8962: Let CODEC driver enable and disable its own MCLK
2014-07-31 20:51:26 +01:00
wm8993.h
wm8996.h
wm9081.h
wm9090.h
wss.h
ALSA: wss: Remove (almost) always NULL parameters
2015-01-02 16:30:08 +01:00