diff options
author | Daniel Mack <zonque@gmail.com> | 2014-03-05 20:12:47 +0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-03-07 17:04:45 +0400 |
commit | 9e4f9675be46d4aaa5832410f384b1b6e9c893a7 (patch) | |
tree | 8413ca2f4ad7b16b83995444d8d4bd53a5922083 | |
parent | 109393afc87388b6dbbdaa59a290c5a977841f8d (diff) | |
download | linux-9e4f9675be46d4aaa5832410f384b1b6e9c893a7.tar.xz |
video: pxa3xx-gcu: pass around struct device *
Instead of passing around struct platform_device, use struct device.
That saves one level of dereference. Also, call platform devices pdev,
and provide a shortcut for &pdev->dev.
Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r-- | drivers/video/pxa3xx-gcu.c | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/drivers/video/pxa3xx-gcu.c b/drivers/video/pxa3xx-gcu.c index 9cd48abadc35..f9961ba91430 100644 --- a/drivers/video/pxa3xx-gcu.c +++ b/drivers/video/pxa3xx-gcu.c @@ -528,7 +528,7 @@ static inline void pxa3xx_gcu_init_debug_timer(void) {} #endif static int -pxa3xx_gcu_add_buffer(struct platform_device *dev, +pxa3xx_gcu_add_buffer(struct device *dev, struct pxa3xx_gcu_priv *priv) { struct pxa3xx_gcu_batch *buffer; @@ -537,7 +537,7 @@ pxa3xx_gcu_add_buffer(struct platform_device *dev, if (!buffer) return -ENOMEM; - buffer->ptr = dma_alloc_coherent(&dev->dev, PXA3XX_GCU_BATCH_WORDS * 4, + buffer->ptr = dma_alloc_coherent(dev, PXA3XX_GCU_BATCH_WORDS * 4, &buffer->phys, GFP_KERNEL); if (!buffer->ptr) { kfree(buffer); @@ -551,7 +551,7 @@ pxa3xx_gcu_add_buffer(struct platform_device *dev, } static void -pxa3xx_gcu_free_buffers(struct platform_device *dev, +pxa3xx_gcu_free_buffers(struct device *dev, struct pxa3xx_gcu_priv *priv) { struct pxa3xx_gcu_batch *next, *buffer = priv->free; @@ -559,7 +559,7 @@ pxa3xx_gcu_free_buffers(struct platform_device *dev, while (buffer) { next = buffer->next; - dma_free_coherent(&dev->dev, PXA3XX_GCU_BATCH_WORDS * 4, + dma_free_coherent(dev, PXA3XX_GCU_BATCH_WORDS * 4, buffer->ptr, buffer->phys); kfree(buffer); @@ -576,11 +576,12 @@ static const struct file_operations pxa3xx_gcu_miscdev_fops = { .mmap = pxa3xx_gcu_mmap, }; -static int pxa3xx_gcu_probe(struct platform_device *dev) +static int pxa3xx_gcu_probe(struct platform_device *pdev) { int i, ret, irq; struct resource *r; struct pxa3xx_gcu_priv *priv; + struct device *dev = &pdev->dev; priv = kzalloc(sizeof(struct pxa3xx_gcu_priv), GFP_KERNEL); if (!priv) @@ -589,7 +590,7 @@ static int pxa3xx_gcu_probe(struct platform_device *dev) for (i = 0; i < 8; i++) { ret = pxa3xx_gcu_add_buffer(dev, priv); if (ret) { - dev_err(&dev->dev, "failed to allocate DMA memory\n"); + dev_err(dev, "failed to allocate DMA memory\n"); goto err_free_priv; } } @@ -610,60 +611,60 @@ static int pxa3xx_gcu_probe(struct platform_device *dev) /* register misc device */ ret = misc_register(&priv->misc_dev); if (ret < 0) { - dev_err(&dev->dev, "misc_register() for minor %d failed\n", + dev_err(dev, "misc_register() for minor %d failed\n", MISCDEV_MINOR); goto err_free_priv; } /* handle IO resources */ - r = platform_get_resource(dev, IORESOURCE_MEM, 0); + r = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (r == NULL) { - dev_err(&dev->dev, "no I/O memory resource defined\n"); + dev_err(dev, "no I/O memory resource defined\n"); ret = -ENODEV; goto err_misc_deregister; } - if (!request_mem_region(r->start, resource_size(r), dev->name)) { - dev_err(&dev->dev, "failed to request I/O memory\n"); + if (!request_mem_region(r->start, resource_size(r), pdev->name)) { + dev_err(dev, "failed to request I/O memory\n"); ret = -EBUSY; goto err_misc_deregister; } priv->mmio_base = ioremap_nocache(r->start, resource_size(r)); if (!priv->mmio_base) { - dev_err(&dev->dev, "failed to map I/O memory\n"); + dev_err(dev, "failed to map I/O memory\n"); ret = -EBUSY; goto err_free_mem_region; } /* allocate dma memory */ - priv->shared = dma_alloc_coherent(&dev->dev, SHARED_SIZE, + priv->shared = dma_alloc_coherent(dev, SHARED_SIZE, &priv->shared_phys, GFP_KERNEL); if (!priv->shared) { - dev_err(&dev->dev, "failed to allocate DMA memory\n"); + dev_err(dev, "failed to allocate DMA memory\n"); ret = -ENOMEM; goto err_free_io; } /* enable the clock */ - priv->clk = clk_get(&dev->dev, NULL); + priv->clk = clk_get(dev, NULL); if (IS_ERR(priv->clk)) { - dev_err(&dev->dev, "failed to get clock\n"); + dev_err(dev, "failed to get clock\n"); ret = -ENODEV; goto err_free_dma; } ret = clk_enable(priv->clk); if (ret < 0) { - dev_err(&dev->dev, "failed to enable clock\n"); + dev_err(dev, "failed to enable clock\n"); goto err_put_clk; } /* request the IRQ */ - irq = platform_get_irq(dev, 0); + irq = platform_get_irq(pdev, 0); if (irq < 0) { - dev_err(&dev->dev, "no IRQ defined\n"); + dev_err(dev, "no IRQ defined\n"); ret = -ENODEV; goto err_put_clk; } @@ -671,17 +672,17 @@ static int pxa3xx_gcu_probe(struct platform_device *dev) ret = request_irq(irq, pxa3xx_gcu_handle_irq, 0, DRV_NAME, priv); if (ret) { - dev_err(&dev->dev, "request_irq failed\n"); + dev_err(dev, "request_irq failed\n"); ret = -EBUSY; goto err_put_clk; } - platform_set_drvdata(dev, priv); + platform_set_drvdata(pdev, priv); priv->resource_mem = r; pxa3xx_gcu_reset(priv); pxa3xx_gcu_init_debug_timer(); - dev_info(&dev->dev, "registered @0x%p, DMA 0x%p (%d bytes), IRQ %d\n", + dev_info(dev, "registered @0x%p, DMA 0x%p (%d bytes), IRQ %d\n", (void *) r->start, (void *) priv->shared_phys, SHARED_SIZE, irq); return 0; @@ -691,7 +692,7 @@ err_put_clk: clk_put(priv->clk); err_free_dma: - dma_free_coherent(&dev->dev, SHARED_SIZE, + dma_free_coherent(dev, SHARED_SIZE, priv->shared, priv->shared_phys); err_free_io: @@ -709,16 +710,17 @@ err_free_priv: return ret; } -static int pxa3xx_gcu_remove(struct platform_device *dev) +static int pxa3xx_gcu_remove(struct platform_device *pdev) { - struct pxa3xx_gcu_priv *priv = platform_get_drvdata(dev); + struct pxa3xx_gcu_priv *priv = platform_get_drvdata(pdev); struct resource *r = priv->resource_mem; + struct device *dev = &pdev->dev; pxa3xx_gcu_wait_idle(priv); misc_deregister(&priv->misc_dev); - dma_free_coherent(&dev->dev, SHARED_SIZE, - priv->shared, priv->shared_phys); + dma_free_coherent(dev, SHARED_SIZE, + priv->shared, priv->shared_phys); iounmap(priv->mmio_base); release_mem_region(r->start, resource_size(r)); clk_disable(priv->clk); |