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); |