From: Takashi Iwai Date: Thu, 2 Feb 2017 21:03:22 +0000 (+0100) Subject: ALSA: x86: Explicit specify 32bit DMA X-Git-Tag: v4.11-rc1~100^2~10^2~33 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=412bbe7d5b8cdb103af82c3616149138c50d1efa;p=linux.git 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 --- 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 @@ #include #include #include +#include #include #include #include @@ -1825,8 +1826,6 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) struct resource *res_mmio; int i, ret; - dev_dbg(&pdev->dev, "dma_mask: %p\n", pdev->dev.dma_mask); - pdata = pdev->dev.platform_data; if (!pdata) { 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) /* setup the ops for playabck */ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_intelhad_playback_ops); + + /* only 32bit addressable */ + dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); + dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); + /* allocate dma pages for ALSA stream operations * memory allocated is based on size, not max value * thus using same argument for max & size