Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1371801
| From | Jose Abreu <Jose.Abreu@synopsys.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 3/3 v3] ASoC: dwc: Unmask I2S interrupts only for enabled channels |
| Date | 2016-04-05 19:10 +0200 |
| Message-ID | <rkCEk-7qs-37@gated-at.bofh.it> (permalink) |
| References | <rkCEj-7qs-25@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
There is no need to unmask all interrupts at I2S start. This
can cause performance issues in slower platforms.
Unmask only the interrupts for the used channels.
Signed-off-by: Jose Abreu <joabreu@synopsys.com>
---
Changes v2 -> v3:
* Dropped custom platform driver, using now ALSA DMA engine
* Dropped IRQ handler for I2S
* Removed pll_config functions (as suggested by Alexey Brodkin)
No changes v1 -> v2.
sound/soc/dwc/designware_i2s.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/soc/dwc/designware_i2s.c b/sound/soc/dwc/designware_i2s.c
index bff258d..3effcd1 100644
--- a/sound/soc/dwc/designware_i2s.c
+++ b/sound/soc/dwc/designware_i2s.c
@@ -147,17 +147,18 @@ static inline void i2s_clear_irqs(struct dw_i2s_dev *dev, u32 stream)
static void i2s_start(struct dw_i2s_dev *dev,
struct snd_pcm_substream *substream)
{
+ struct i2s_clk_config_data *config = &dev->config;
u32 i, irq;
i2s_write_reg(dev->i2s_base, IER, 1);
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < (config->chan_nr / 2); i++) {
irq = i2s_read_reg(dev->i2s_base, IMR(i));
i2s_write_reg(dev->i2s_base, IMR(i), irq & ~0x30);
}
i2s_write_reg(dev->i2s_base, ITER, 1);
} else {
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < (config->chan_nr / 2); i++) {
irq = i2s_read_reg(dev->i2s_base, IMR(i));
i2s_write_reg(dev->i2s_base, IMR(i), irq & ~0x03);
}
--
1.9.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/3 v3] Add I2S/ADV7511 audio support for ARC AXS10x boards Jose Abreu <Jose.Abreu@synopsys.com> - 2016-04-05 19:10 +0200
[PATCH 2/3 v3] drm/i2c/adv7511: Add audio support Jose Abreu <Jose.Abreu@synopsys.com> - 2016-04-05 19:10 +0200
[PATCH 1/3 v3] drm/i2c/adv7511: Rename and move to separate folder Jose Abreu <Jose.Abreu@synopsys.com> - 2016-04-05 19:10 +0200
[PATCH 3/3 v3] ASoC: dwc: Unmask I2S interrupts only for enabled channels Jose Abreu <Jose.Abreu@synopsys.com> - 2016-04-05 19:10 +0200
Re: [PATCH 3/3 v3] ASoC: dwc: Unmask I2S interrupts only for enabled channels Mark Brown <broonie@kernel.org> - 2016-04-05 21:00 +0200
csiph-web