diff options
Diffstat (limited to 'sound/arm')
-rw-r--r-- | sound/arm/pxa2xx-pcm.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/sound/arm/pxa2xx-pcm.c b/sound/arm/pxa2xx-pcm.c index 69a2455b4472..e6c727b317fb 100644 --- a/sound/arm/pxa2xx-pcm.c +++ b/sound/arm/pxa2xx-pcm.c | |||
@@ -11,6 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/module.h> | 13 | #include <linux/module.h> |
14 | #include <linux/dma-mapping.h> | ||
14 | #include <linux/dmaengine.h> | 15 | #include <linux/dmaengine.h> |
15 | 16 | ||
16 | #include <sound/core.h> | 17 | #include <sound/core.h> |
@@ -83,8 +84,6 @@ static struct snd_pcm_ops pxa2xx_pcm_ops = { | |||
83 | .mmap = pxa2xx_pcm_mmap, | 84 | .mmap = pxa2xx_pcm_mmap, |
84 | }; | 85 | }; |
85 | 86 | ||
86 | static u64 pxa2xx_pcm_dmamask = 0xffffffff; | ||
87 | |||
88 | int pxa2xx_pcm_new(struct snd_card *card, struct pxa2xx_pcm_client *client, | 87 | int pxa2xx_pcm_new(struct snd_card *card, struct pxa2xx_pcm_client *client, |
89 | struct snd_pcm **rpcm) | 88 | struct snd_pcm **rpcm) |
90 | { | 89 | { |
@@ -100,10 +99,9 @@ int pxa2xx_pcm_new(struct snd_card *card, struct pxa2xx_pcm_client *client, | |||
100 | pcm->private_data = client; | 99 | pcm->private_data = client; |
101 | pcm->private_free = pxa2xx_pcm_free_dma_buffers; | 100 | pcm->private_free = pxa2xx_pcm_free_dma_buffers; |
102 | 101 | ||
103 | if (!card->dev->dma_mask) | 102 | ret = dma_coerce_mask_and_coherent(card->dev, DMA_BIT_MASK(32)); |
104 | card->dev->dma_mask = &pxa2xx_pcm_dmamask; | 103 | if (ret) |
105 | if (!card->dev->coherent_dma_mask) | 104 | goto out; |
106 | card->dev->coherent_dma_mask = 0xffffffff; | ||
107 | 105 | ||
108 | if (play) { | 106 | if (play) { |
109 | int stream = SNDRV_PCM_STREAM_PLAYBACK; | 107 | int stream = SNDRV_PCM_STREAM_PLAYBACK; |