diff options
author | Takashi Iwai <tiwai@suse.de> | 2017-02-02 16:03:22 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2017-02-05 02:46:45 -0500 |
commit | 412bbe7d5b8cdb103af82c3616149138c50d1efa (patch) | |
tree | 534d2c8f006b77cfe41b9b7c07b430c3f63e4ade /sound/x86 | |
parent | c1a7c40cff65719e0a5a2f101aa59868ff5eb8ce (diff) |
ALSA: x86: Explicit specify 32bit DMA
LPE audio is capable only up to 32bit address, as it seems.
Then we should limit the DMA addresses accordingly via dma-mapping
API.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/x86')
-rw-r--r-- | sound/x86/intel_hdmi_audio.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c index c83f02c2593e..fac30cf2794f 100644 --- a/sound/x86/intel_hdmi_audio.c +++ b/sound/x86/intel_hdmi_audio.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
29 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
30 | #include <linux/pm_runtime.h> | 30 | #include <linux/pm_runtime.h> |
31 | #include <linux/dma-mapping.h> | ||
31 | #include <asm/cacheflush.h> | 32 | #include <asm/cacheflush.h> |
32 | #include <sound/core.h> | 33 | #include <sound/core.h> |
33 | #include <sound/asoundef.h> | 34 | #include <sound/asoundef.h> |
@@ -1825,8 +1826,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) | |||
1825 | struct resource *res_mmio; | 1826 | struct resource *res_mmio; |
1826 | int i, ret; | 1827 | int i, ret; |
1827 | 1828 | ||
1828 | dev_dbg(&pdev->dev, "dma_mask: %p\n", pdev->dev.dma_mask); | ||
1829 | |||
1830 | pdata = pdev->dev.platform_data; | 1829 | pdata = pdev->dev.platform_data; |
1831 | if (!pdata) { | 1830 | if (!pdata) { |
1832 | dev_err(&pdev->dev, "%s: quit: pdata not allocated by i915!!\n", __func__); | 1831 | dev_err(&pdev->dev, "%s: quit: pdata not allocated by i915!!\n", __func__); |
@@ -1907,6 +1906,11 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) | |||
1907 | /* setup the ops for playabck */ | 1906 | /* setup the ops for playabck */ |
1908 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, | 1907 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, |
1909 | &snd_intelhad_playback_ops); | 1908 | &snd_intelhad_playback_ops); |
1909 | |||
1910 | /* only 32bit addressable */ | ||
1911 | dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||
1912 | dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||
1913 | |||
1910 | /* allocate dma pages for ALSA stream operations | 1914 | /* allocate dma pages for ALSA stream operations |
1911 | * memory allocated is based on size, not max value | 1915 | * memory allocated is based on size, not max value |
1912 | * thus using same argument for max & size | 1916 | * thus using same argument for max & size |