summaryrefslogtreecommitdiffstats
path: root/sound/x86
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2017-02-02 16:03:22 -0500
committerTakashi Iwai <tiwai@suse.de>2017-02-05 02:46:45 -0500
commit412bbe7d5b8cdb103af82c3616149138c50d1efa (patch)
tree534d2c8f006b77cfe41b9b7c07b430c3f63e4ade /sound/x86
parentc1a7c40cff65719e0a5a2f101aa59868ff5eb8ce (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.c8
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