View | Details | Raw Unified | Return to bug 216112 | Differences between
and this patch

Collapse All | Expand All

(-)a/sound/core/memalloc.c (-3 / +7 lines)
Lines 435-442 static void *snd_dma_dev_alloc(struct snd_dma_buffer *dmab, size_t size) Link Here
435
435
436
	p = dma_alloc_coherent(dmab->dev.dev, size, &dmab->addr, DEFAULT_GFP);
436
	p = dma_alloc_coherent(dmab->dev.dev, size, &dmab->addr, DEFAULT_GFP);
437
#ifdef CONFIG_X86
437
#ifdef CONFIG_X86
438
	if (p && dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC)
438
	if (p && dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC) {
439
		set_memory_wc((unsigned long)p, PAGE_ALIGN(size) >> PAGE_SHIFT);
439
		dev_info(dmab->dev.dev, "XXX dma alloc addr=%p, addr=0x%lx\n",
440
			 dmab->area, (unsigned long)dmab->addr);
441
		set_memory_wc((unsigned long)dmab->addr,
442
			      PAGE_ALIGN(size) >> PAGE_SHIFT);
443
	}
440
#endif
444
#endif
441
	return p;
445
	return p;
442
}
446
}
Lines 445-451 static void snd_dma_dev_free(struct snd_dma_buffer *dmab) Link Here
445
{
449
{
446
#ifdef CONFIG_X86
450
#ifdef CONFIG_X86
447
	if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC)
451
	if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC)
448
		set_memory_wb((unsigned long)dmab->area,
452
		set_memory_wb((unsigned long)dmab->addr,
449
			      PAGE_ALIGN(dmab->bytes) >> PAGE_SHIFT);
453
			      PAGE_ALIGN(dmab->bytes) >> PAGE_SHIFT);
450
#endif
454
#endif
451
	dma_free_coherent(dmab->dev.dev, dmab->bytes, dmab->area, dmab->addr);
455
	dma_free_coherent(dmab->dev.dev, dmab->bytes, dmab->area, dmab->addr);

Return to bug 216112