sparc: Make SBUS DMA interfaces take struct device.
This is the first step in converting all the SBUS drivers over to generic dma_*(). Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -101,7 +101,7 @@ static int __devinit esp_sbus_map_command_block(struct esp *esp)
|
||||
{
|
||||
struct sbus_dev *sdev = esp->dev;
|
||||
|
||||
esp->command_block = sbus_alloc_consistent(sdev, 16,
|
||||
esp->command_block = sbus_alloc_consistent(&sdev->ofdev.dev, 16,
|
||||
&esp->command_block_dma);
|
||||
if (!esp->command_block)
|
||||
return -ENOMEM;
|
||||
@@ -223,25 +223,33 @@ static u8 sbus_esp_read8(struct esp *esp, unsigned long reg)
|
||||
static dma_addr_t sbus_esp_map_single(struct esp *esp, void *buf,
|
||||
size_t sz, int dir)
|
||||
{
|
||||
return sbus_map_single(esp->dev, buf, sz, dir);
|
||||
struct sbus_dev *sdev = esp->dev;
|
||||
|
||||
return sbus_map_single(&sdev->ofdev.dev, buf, sz, dir);
|
||||
}
|
||||
|
||||
static int sbus_esp_map_sg(struct esp *esp, struct scatterlist *sg,
|
||||
int num_sg, int dir)
|
||||
{
|
||||
return sbus_map_sg(esp->dev, sg, num_sg, dir);
|
||||
struct sbus_dev *sdev = esp->dev;
|
||||
|
||||
return sbus_map_sg(&sdev->ofdev.dev, sg, num_sg, dir);
|
||||
}
|
||||
|
||||
static void sbus_esp_unmap_single(struct esp *esp, dma_addr_t addr,
|
||||
size_t sz, int dir)
|
||||
{
|
||||
sbus_unmap_single(esp->dev, addr, sz, dir);
|
||||
struct sbus_dev *sdev = esp->dev;
|
||||
|
||||
sbus_unmap_single(&sdev->ofdev.dev, addr, sz, dir);
|
||||
}
|
||||
|
||||
static void sbus_esp_unmap_sg(struct esp *esp, struct scatterlist *sg,
|
||||
int num_sg, int dir)
|
||||
{
|
||||
sbus_unmap_sg(esp->dev, sg, num_sg, dir);
|
||||
struct sbus_dev *sdev = esp->dev;
|
||||
|
||||
sbus_unmap_sg(&sdev->ofdev.dev, sg, num_sg, dir);
|
||||
}
|
||||
|
||||
static int sbus_esp_irq_pending(struct esp *esp)
|
||||
@@ -550,7 +558,7 @@ static int __devinit esp_sbus_probe_one(struct device *dev,
|
||||
fail_free_irq:
|
||||
free_irq(host->irq, esp);
|
||||
fail_unmap_command_block:
|
||||
sbus_free_consistent(esp->dev, 16,
|
||||
sbus_free_consistent(&esp_dev->ofdev.dev, 16,
|
||||
esp->command_block,
|
||||
esp->command_block_dma);
|
||||
fail_unmap_regs:
|
||||
@@ -589,6 +597,7 @@ static int __devinit esp_sbus_probe(struct of_device *dev, const struct of_devic
|
||||
static int __devexit esp_sbus_remove(struct of_device *dev)
|
||||
{
|
||||
struct esp *esp = dev_get_drvdata(&dev->dev);
|
||||
struct sbus_dev *sdev = esp->dev;
|
||||
struct of_device *dma_of = esp->dma;
|
||||
unsigned int irq = esp->host->irq;
|
||||
u32 val;
|
||||
@@ -600,7 +609,7 @@ static int __devexit esp_sbus_remove(struct of_device *dev)
|
||||
dma_write32(val & ~DMA_INT_ENAB, DMA_CSR);
|
||||
|
||||
free_irq(irq, esp);
|
||||
sbus_free_consistent(esp->dev, 16,
|
||||
sbus_free_consistent(&sdev->ofdev.dev, 16,
|
||||
esp->command_block,
|
||||
esp->command_block_dma);
|
||||
sbus_iounmap(esp->regs, SBUS_ESP_REG_SIZE);
|
||||
|
Reference in New Issue
Block a user