diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2013-07-29 17:14:00 +0200 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-07-29 18:41:00 +0100 |
commit | 5106b92f80a2cd37c52cffed80b4f5acfb77ccfd (patch) | |
tree | 609669cf0003ada313400b64be82feaa37b317ec /include/sound/soc-dapm.h | |
parent | cf7c1de20c576477d42deae255cbc6e439bb5dc0 (diff) | |
download | linux-5106b92f80a2cd37c52cffed80b4f5acfb77ccfd.tar.gz linux-5106b92f80a2cd37c52cffed80b4f5acfb77ccfd.tar.bz2 linux-5106b92f80a2cd37c52cffed80b4f5acfb77ccfd.zip |
ASoC: dapm: Keep a list of paths per kcontrol
Currently we store for each path which control (if any at all) is associated
with that control. But we are only ever interested in the reverse relationship,
i.e. we want to know all the paths a certain control is associated with. This is
currently implemented by always iterating over all paths. This patch updates the
code to keep a list for each control which contains all the paths that are
associated with that control. This improves the run time of e.g.
soc_dapm_mixer_update_power() and soc_dapm_mux_update_power() from O(n) (with n
being the number of paths for the card) to O(1).
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'include/sound/soc-dapm.h')
-rw-r--r-- | include/sound/soc-dapm.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h index d7d26cc8e3fc..693c75bbd5d1 100644 --- a/include/sound/soc-dapm.h +++ b/include/sound/soc-dapm.h @@ -490,7 +490,6 @@ struct snd_soc_dapm_path { /* source (input) and sink (output) widgets */ struct snd_soc_dapm_widget *source; struct snd_soc_dapm_widget *sink; - struct snd_kcontrol *kcontrol; /* status */ u32 connect:1; /* source and sink widgets are connected */ @@ -503,6 +502,7 @@ struct snd_soc_dapm_path { struct list_head list_source; struct list_head list_sink; + struct list_head list_kcontrol; struct list_head list; }; |