diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/core/pcm_dmaengine.c | 9 | ||||
-rw-r--r-- | sound/pci/es1968.c | 4 | ||||
-rw-r--r-- | sound/pci/fm801.c | 4 |
3 files changed, 10 insertions, 7 deletions
diff --git a/sound/core/pcm_dmaengine.c b/sound/core/pcm_dmaengine.c index fba365a78390..697c166acf05 100644 --- a/sound/core/pcm_dmaengine.c +++ b/sound/core/pcm_dmaengine.c @@ -202,13 +202,13 @@ int snd_dmaengine_pcm_trigger(struct snd_pcm_substream *substream, int cmd) if (runtime->info & SNDRV_PCM_INFO_PAUSE) dmaengine_pause(prtd->dma_chan); else - dmaengine_terminate_all(prtd->dma_chan); + dmaengine_terminate_async(prtd->dma_chan); break; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: dmaengine_pause(prtd->dma_chan); break; case SNDRV_PCM_TRIGGER_STOP: - dmaengine_terminate_all(prtd->dma_chan); + dmaengine_terminate_async(prtd->dma_chan); break; default: return -EINVAL; @@ -346,6 +346,7 @@ int snd_dmaengine_pcm_close(struct snd_pcm_substream *substream) { struct dmaengine_pcm_runtime_data *prtd = substream_to_prtd(substream); + dmaengine_synchronize(prtd->dma_chan); kfree(prtd); return 0; @@ -362,9 +363,11 @@ int snd_dmaengine_pcm_close_release_chan(struct snd_pcm_substream *substream) { struct dmaengine_pcm_runtime_data *prtd = substream_to_prtd(substream); + dmaengine_synchronize(prtd->dma_chan); dma_release_channel(prtd->dma_chan); + kfree(prtd); - return snd_dmaengine_pcm_close(substream); + return 0; } EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_close_release_chan); diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index e0d9363dc7fd..514f2604086e 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c @@ -113,7 +113,7 @@ #include <sound/initval.h> #ifdef CONFIG_SND_ES1968_RADIO -#include <media/tea575x.h> +#include <media/drv-intf/tea575x.h> #endif #define CARD_NAME "ESS Maestro1/2" @@ -2605,7 +2605,7 @@ static void snd_es1968_tea575x_set_direction(struct snd_tea575x *tea, bool outpu } } -static struct snd_tea575x_ops snd_es1968_tea_ops = { +static const struct snd_tea575x_ops snd_es1968_tea_ops = { .set_pins = snd_es1968_tea575x_set_pins, .get_pins = snd_es1968_tea575x_get_pins, .set_direction = snd_es1968_tea575x_set_direction, diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index 1fdd92b6f18f..759295aa8366 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c @@ -30,7 +30,7 @@ #include <sound/initval.h> #ifdef CONFIG_SND_FM801_TEA575X_BOOL -#include <media/tea575x.h> +#include <media/drv-intf/tea575x.h> #endif MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>"); @@ -815,7 +815,7 @@ static void snd_fm801_tea575x_set_direction(struct snd_tea575x *tea, bool output fm801_writew(chip, GPIO_CTRL, reg); } -static struct snd_tea575x_ops snd_fm801_tea_ops = { +static const struct snd_tea575x_ops snd_fm801_tea_ops = { .set_pins = snd_fm801_tea575x_set_pins, .get_pins = snd_fm801_tea575x_get_pins, .set_direction = snd_fm801_tea575x_set_direction, |