diff options
| author | David S. Miller <davem@davemloft.net> | 2008-08-27 18:09:11 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2008-08-29 02:13:15 -0700 | 
| commit | 738f2b7b813913e651f39387d007dd961755dee2 (patch) | |
| tree | 022ca4d144cba51495e6f26a8f55d3046d16c2e3 /sound | |
| parent | 944c67dff7a88f0a775e5b604937f9e30d2de555 (diff) | |
| download | kernel_samsung_tuna-738f2b7b813913e651f39387d007dd961755dee2.zip kernel_samsung_tuna-738f2b7b813913e651f39387d007dd961755dee2.tar.gz kernel_samsung_tuna-738f2b7b813913e651f39387d007dd961755dee2.tar.bz2  | |
sparc: Convert all SBUS drivers to dma_*() interfaces.
And all the SBUS dma interfaces are deleted.
A private implementation remains inside of the 32-bit sparc port which
exists only for the sake of the implementation of dma_*().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'sound')
| -rw-r--r-- | sound/core/memalloc.c | 8 | ||||
| -rw-r--r-- | sound/sparc/dbri.c | 41 | 
2 files changed, 25 insertions, 24 deletions
diff --git a/sound/core/memalloc.c b/sound/core/memalloc.c index cc80397..ccaaac4 100644 --- a/sound/core/memalloc.c +++ b/sound/core/memalloc.c @@ -192,8 +192,8 @@ static void *snd_malloc_sbus_pages(struct device *dev, size_t size,  	snd_assert(size > 0, return NULL);  	snd_assert(dma_addr != NULL, return NULL);  	pg = get_order(size); -	res = sbus_alloc_consistent(&sdev->ofdev.dev, PAGE_SIZE * (1 << pg), -				    dma_addr); +	res = dma_alloc_coherent(&sdev->ofdev.dev, PAGE_SIZE * (1 << pg), +				 dma_addr, GFP_ATOMIC);  	if (res != NULL)  		inc_snd_pages(pg);  	return res; @@ -209,8 +209,8 @@ static void snd_free_sbus_pages(struct device *dev, size_t size,  		return;  	pg = get_order(size);  	dec_snd_pages(pg); -	sbus_free_consistent(&sdev->ofdev.dev, PAGE_SIZE * (1 << pg), -			     ptr, dma_addr); +	dma_free_coherent(&sdev->ofdev.dev, PAGE_SIZE * (1 << pg), +			  ptr, dma_addr);  }  #endif /* CONFIG_SBUS */ diff --git a/sound/sparc/dbri.c b/sound/sparc/dbri.c index a6b32ec..5242ecb 100644 --- a/sound/sparc/dbri.c +++ b/sound/sparc/dbri.c @@ -57,6 +57,7 @@  #include <linux/delay.h>  #include <linux/irq.h>  #include <linux/io.h> +#include <linux/dma-mapping.h>  #include <sound/core.h>  #include <sound/pcm.h> @@ -2093,15 +2094,15 @@ static int snd_dbri_hw_params(struct snd_pcm_substream *substream,  	 */  	if (info->dvma_buffer == 0) {  		if (DBRI_STREAMNO(substream) == DBRI_PLAY) -			direction = SBUS_DMA_TODEVICE; +			direction = DMA_TO_DEVICE;  		else -			direction = SBUS_DMA_FROMDEVICE; +			direction = DMA_FROM_DEVICE;  		info->dvma_buffer = -			sbus_map_single(&dbri->sdev->ofdev.dev, -					runtime->dma_area, -					params_buffer_bytes(hw_params), -					direction); +			dma_map_single(&dbri->sdev->ofdev.dev, +				       runtime->dma_area, +				       params_buffer_bytes(hw_params), +				       direction);  	}  	direction = params_buffer_bytes(hw_params); @@ -2122,12 +2123,12 @@ static int snd_dbri_hw_free(struct snd_pcm_substream *substream)  	 */  	if (info->dvma_buffer) {  		if (DBRI_STREAMNO(substream) == DBRI_PLAY) -			direction = SBUS_DMA_TODEVICE; +			direction = DMA_TO_DEVICE;  		else -			direction = SBUS_DMA_FROMDEVICE; +			direction = DMA_FROM_DEVICE; -		sbus_unmap_single(&dbri->sdev->ofdev.dev, info->dvma_buffer, -				  substream->runtime->buffer_size, direction); +		dma_unmap_single(&dbri->sdev->ofdev.dev, info->dvma_buffer, +				 substream->runtime->buffer_size, direction);  		info->dvma_buffer = 0;  	}  	if (info->pipe != -1) { @@ -2525,9 +2526,9 @@ static int __devinit snd_dbri_create(struct snd_card *card,  	dbri->sdev = sdev;  	dbri->irq = irq; -	dbri->dma = sbus_alloc_consistent(&sdev->ofdev.dev, -					  sizeof(struct dbri_dma), -					  &dbri->dma_dvma); +	dbri->dma = dma_alloc_coherent(&sdev->ofdev.dev, +				       sizeof(struct dbri_dma), +				       &dbri->dma_dvma, GFP_ATOMIC);  	memset((void *)dbri->dma, 0, sizeof(struct dbri_dma));  	dprintk(D_GEN, "DMA Cmd Block 0x%p (0x%08x)\n", @@ -2539,8 +2540,8 @@ static int __devinit snd_dbri_create(struct snd_card *card,  				  dbri->regs_size, "DBRI Registers");  	if (!dbri->regs) {  		printk(KERN_ERR "DBRI: could not allocate registers\n"); -		sbus_free_consistent(&sdev->ofdev.dev, sizeof(struct dbri_dma), -				     (void *)dbri->dma, dbri->dma_dvma); +		dma_free_coherent(&sdev->ofdev.dev, sizeof(struct dbri_dma), +				  (void *)dbri->dma, dbri->dma_dvma);  		return -EIO;  	} @@ -2549,8 +2550,8 @@ static int __devinit snd_dbri_create(struct snd_card *card,  	if (err) {  		printk(KERN_ERR "DBRI: Can't get irq %d\n", dbri->irq);  		sbus_iounmap(dbri->regs, dbri->regs_size); -		sbus_free_consistent(&sdev->ofdev.dev, sizeof(struct dbri_dma), -				     (void *)dbri->dma, dbri->dma_dvma); +		dma_free_coherent(&sdev->ofdev.dev, sizeof(struct dbri_dma), +				  (void *)dbri->dma, dbri->dma_dvma);  		return err;  	} @@ -2577,9 +2578,9 @@ static void snd_dbri_free(struct snd_dbri *dbri)  		sbus_iounmap(dbri->regs, dbri->regs_size);  	if (dbri->dma) -		sbus_free_consistent(&dbri->sdev->ofdev.dev, -				     sizeof(struct dbri_dma), -				     (void *)dbri->dma, dbri->dma_dvma); +		dma_free_coherent(&dbri->sdev->ofdev.dev, +				  sizeof(struct dbri_dma), +				  (void *)dbri->dma, dbri->dma_dvma);  }  static int __devinit dbri_probe(struct of_device *of_dev,  | 
