diff options
author | Mark Brown <broonie@linaro.org> | 2013-11-28 13:11:38 -0500 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-12-04 08:47:04 -0500 |
commit | 1552c32547ca807f0df7d9abca54468033df8764 (patch) | |
tree | 56367cfe4845808bff4770a22764bbd6018e8e34 /sound/soc/codecs/wm_adsp.c | |
parent | 6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae (diff) |
ASoC: adsp: Use async writes where possible
This will allow a marginal speed improvement when used with a bus that
supports async I/O by reducing the amount of context thrashing between
writes, allowing the bus to be more fully utilised.
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/codecs/wm_adsp.c')
-rw-r--r-- | sound/soc/codecs/wm_adsp.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index 46ec0e9744d4..6b1c01c66e64 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c | |||
@@ -1468,8 +1468,8 @@ static int wm_adsp2_ena(struct wm_adsp *dsp) | |||
1468 | unsigned int val; | 1468 | unsigned int val; |
1469 | int ret, count; | 1469 | int ret, count; |
1470 | 1470 | ||
1471 | ret = regmap_update_bits(dsp->regmap, dsp->base + ADSP2_CONTROL, | 1471 | ret = regmap_update_bits_async(dsp->regmap, dsp->base + ADSP2_CONTROL, |
1472 | ADSP2_SYS_ENA, ADSP2_SYS_ENA); | 1472 | ADSP2_SYS_ENA, ADSP2_SYS_ENA); |
1473 | if (ret != 0) | 1473 | if (ret != 0) |
1474 | return ret; | 1474 | return ret; |
1475 | 1475 | ||
@@ -1521,9 +1521,9 @@ int wm_adsp2_event(struct snd_soc_dapm_widget *w, | |||
1521 | val = (val & ARIZONA_SYSCLK_FREQ_MASK) | 1521 | val = (val & ARIZONA_SYSCLK_FREQ_MASK) |
1522 | >> ARIZONA_SYSCLK_FREQ_SHIFT; | 1522 | >> ARIZONA_SYSCLK_FREQ_SHIFT; |
1523 | 1523 | ||
1524 | ret = regmap_update_bits(dsp->regmap, | 1524 | ret = regmap_update_bits_async(dsp->regmap, |
1525 | dsp->base + ADSP2_CLOCKING, | 1525 | dsp->base + ADSP2_CLOCKING, |
1526 | ADSP2_CLK_SEL_MASK, val); | 1526 | ADSP2_CLK_SEL_MASK, val); |
1527 | if (ret != 0) { | 1527 | if (ret != 0) { |
1528 | adsp_err(dsp, "Failed to set clock rate: %d\n", | 1528 | adsp_err(dsp, "Failed to set clock rate: %d\n", |
1529 | ret); | 1529 | ret); |
@@ -1586,10 +1586,10 @@ int wm_adsp2_event(struct snd_soc_dapm_widget *w, | |||
1586 | if (ret != 0) | 1586 | if (ret != 0) |
1587 | goto err; | 1587 | goto err; |
1588 | 1588 | ||
1589 | ret = regmap_update_bits(dsp->regmap, | 1589 | ret = regmap_update_bits_async(dsp->regmap, |
1590 | dsp->base + ADSP2_CONTROL, | 1590 | dsp->base + ADSP2_CONTROL, |
1591 | ADSP2_CORE_ENA | ADSP2_START, | 1591 | ADSP2_CORE_ENA | ADSP2_START, |
1592 | ADSP2_CORE_ENA | ADSP2_START); | 1592 | ADSP2_CORE_ENA | ADSP2_START); |
1593 | if (ret != 0) | 1593 | if (ret != 0) |
1594 | goto err; | 1594 | goto err; |
1595 | 1595 | ||