aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/pxa3xx-gcu.c56
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) {}
528#endif 528#endif
529 529
530static int 530static int
531pxa3xx_gcu_add_buffer(struct platform_device *dev, 531pxa3xx_gcu_add_buffer(struct device *dev,
532 struct pxa3xx_gcu_priv *priv) 532 struct pxa3xx_gcu_priv *priv)
533{ 533{
534 struct pxa3xx_gcu_batch *buffer; 534 struct pxa3xx_gcu_batch *buffer;
@@ -537,7 +537,7 @@ pxa3xx_gcu_add_buffer(struct platform_device *dev,
537 if (!buffer) 537 if (!buffer)
538 return -ENOMEM; 538 return -ENOMEM;
539 539
540 buffer->ptr = dma_alloc_coherent(&dev->dev, PXA3XX_GCU_BATCH_WORDS * 4, 540 buffer->ptr = dma_alloc_coherent(dev, PXA3XX_GCU_BATCH_WORDS * 4,
541 &buffer->phys, GFP_KERNEL); 541 &buffer->phys, GFP_KERNEL);
542 if (!buffer->ptr) { 542 if (!buffer->ptr) {
543 kfree(buffer); 543 kfree(buffer);
@@ -551,7 +551,7 @@ pxa3xx_gcu_add_buffer(struct platform_device *dev,
551} 551}
552 552
553static void 553static void
554pxa3xx_gcu_free_buffers(struct platform_device *dev, 554pxa3xx_gcu_free_buffers(struct device *dev,
555 struct pxa3xx_gcu_priv *priv) 555 struct pxa3xx_gcu_priv *priv)
556{ 556{
557 struct pxa3xx_gcu_batch *next, *buffer = priv->free; 557 struct pxa3xx_gcu_batch *next, *buffer = priv->free;
@@ -559,7 +559,7 @@ pxa3xx_gcu_free_buffers(struct platform_device *dev,
559 while (buffer) { 559 while (buffer) {
560 next = buffer->next; 560 next = buffer->next;
561 561
562 dma_free_coherent(&dev->dev, PXA3XX_GCU_BATCH_WORDS * 4, 562 dma_free_coherent(dev, PXA3XX_GCU_BATCH_WORDS * 4,
563 buffer->ptr, buffer->phys); 563 buffer->ptr, buffer->phys);
564 564
565 kfree(buffer); 565 kfree(buffer);
@@ -576,11 +576,12 @@ static const struct file_operations pxa3xx_gcu_miscdev_fops = {
576 .mmap = pxa3xx_gcu_mmap, 576 .mmap = pxa3xx_gcu_mmap,
577}; 577};
578 578
579static int pxa3xx_gcu_probe(struct platform_device *dev) 579static int pxa3xx_gcu_probe(struct platform_device *pdev)
580{ 580{
581 int i, ret, irq; 581 int i, ret, irq;
582 struct resource *r; 582 struct resource *r;
583 struct pxa3xx_gcu_priv *priv; 583 struct pxa3xx_gcu_priv *priv;
584 struct device *dev = &pdev->dev;
584 585
585 priv = kzalloc(sizeof(struct pxa3xx_gcu_priv), GFP_KERNEL); 586 priv = kzalloc(sizeof(struct pxa3xx_gcu_priv), GFP_KERNEL);
586 if (!priv) 587 if (!priv)
@@ -589,7 +590,7 @@ static int pxa3xx_gcu_probe(struct platform_device *dev)
589 for (i = 0; i < 8; i++) { 590 for (i = 0; i < 8; i++) {
590 ret = pxa3xx_gcu_add_buffer(dev, priv); 591 ret = pxa3xx_gcu_add_buffer(dev, priv);
591 if (ret) { 592 if (ret) {
592 dev_err(&dev->dev, "failed to allocate DMA memory\n"); 593 dev_err(dev, "failed to allocate DMA memory\n");
593 goto err_free_priv; 594 goto err_free_priv;
594 } 595 }
595 } 596 }
@@ -610,60 +611,60 @@ static int pxa3xx_gcu_probe(struct platform_device *dev)
610 /* register misc device */ 611 /* register misc device */
611 ret = misc_register(&priv->misc_dev); 612 ret = misc_register(&priv->misc_dev);
612 if (ret < 0) { 613 if (ret < 0) {
613 dev_err(&dev->dev, "misc_register() for minor %d failed\n", 614 dev_err(dev, "misc_register() for minor %d failed\n",
614 MISCDEV_MINOR); 615 MISCDEV_MINOR);
615 goto err_free_priv; 616 goto err_free_priv;
616 } 617 }
617 618
618 /* handle IO resources */ 619 /* handle IO resources */
619 r = platform_get_resource(dev, IORESOURCE_MEM, 0); 620 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
620 if (r == NULL) { 621 if (r == NULL) {
621 dev_err(&dev->dev, "no I/O memory resource defined\n"); 622 dev_err(dev, "no I/O memory resource defined\n");
622 ret = -ENODEV; 623 ret = -ENODEV;
623 goto err_misc_deregister; 624 goto err_misc_deregister;
624 } 625 }
625 626
626 if (!request_mem_region(r->start, resource_size(r), dev->name)) { 627 if (!request_mem_region(r->start, resource_size(r), pdev->name)) {
627 dev_err(&dev->dev, "failed to request I/O memory\n"); 628 dev_err(dev, "failed to request I/O memory\n");
628 ret = -EBUSY; 629 ret = -EBUSY;
629 goto err_misc_deregister; 630 goto err_misc_deregister;
630 } 631 }
631 632
632 priv->mmio_base = ioremap_nocache(r->start, resource_size(r)); 633 priv->mmio_base = ioremap_nocache(r->start, resource_size(r));
633 if (!priv->mmio_base) { 634 if (!priv->mmio_base) {
634 dev_err(&dev->dev, "failed to map I/O memory\n"); 635 dev_err(dev, "failed to map I/O memory\n");
635 ret = -EBUSY; 636 ret = -EBUSY;
636 goto err_free_mem_region; 637 goto err_free_mem_region;
637 } 638 }
638 639
639 /* allocate dma memory */ 640 /* allocate dma memory */
640 priv->shared = dma_alloc_coherent(&dev->dev, SHARED_SIZE, 641 priv->shared = dma_alloc_coherent(dev, SHARED_SIZE,
641 &priv->shared_phys, GFP_KERNEL); 642 &priv->shared_phys, GFP_KERNEL);
642 643
643 if (!priv->shared) { 644 if (!priv->shared) {
644 dev_err(&dev->dev, "failed to allocate DMA memory\n"); 645 dev_err(dev, "failed to allocate DMA memory\n");
645 ret = -ENOMEM; 646 ret = -ENOMEM;
646 goto err_free_io; 647 goto err_free_io;
647 } 648 }
648 649
649 /* enable the clock */ 650 /* enable the clock */
650 priv->clk = clk_get(&dev->dev, NULL); 651 priv->clk = clk_get(dev, NULL);
651 if (IS_ERR(priv->clk)) { 652 if (IS_ERR(priv->clk)) {
652 dev_err(&dev->dev, "failed to get clock\n"); 653 dev_err(dev, "failed to get clock\n");
653 ret = -ENODEV; 654 ret = -ENODEV;
654 goto err_free_dma; 655 goto err_free_dma;
655 } 656 }
656 657
657 ret = clk_enable(priv->clk); 658 ret = clk_enable(priv->clk);
658 if (ret < 0) { 659 if (ret < 0) {
659 dev_err(&dev->dev, "failed to enable clock\n"); 660 dev_err(dev, "failed to enable clock\n");
660 goto err_put_clk; 661 goto err_put_clk;
661 } 662 }
662 663
663 /* request the IRQ */ 664 /* request the IRQ */
664 irq = platform_get_irq(dev, 0); 665 irq = platform_get_irq(pdev, 0);
665 if (irq < 0) { 666 if (irq < 0) {
666 dev_err(&dev->dev, "no IRQ defined\n"); 667 dev_err(dev, "no IRQ defined\n");
667 ret = -ENODEV; 668 ret = -ENODEV;
668 goto err_put_clk; 669 goto err_put_clk;
669 } 670 }
@@ -671,17 +672,17 @@ static int pxa3xx_gcu_probe(struct platform_device *dev)
671 ret = request_irq(irq, pxa3xx_gcu_handle_irq, 672 ret = request_irq(irq, pxa3xx_gcu_handle_irq,
672 0, DRV_NAME, priv); 673 0, DRV_NAME, priv);
673 if (ret) { 674 if (ret) {
674 dev_err(&dev->dev, "request_irq failed\n"); 675 dev_err(dev, "request_irq failed\n");
675 ret = -EBUSY; 676 ret = -EBUSY;
676 goto err_put_clk; 677 goto err_put_clk;
677 } 678 }
678 679
679 platform_set_drvdata(dev, priv); 680 platform_set_drvdata(pdev, priv);
680 priv->resource_mem = r; 681 priv->resource_mem = r;
681 pxa3xx_gcu_reset(priv); 682 pxa3xx_gcu_reset(priv);
682 pxa3xx_gcu_init_debug_timer(); 683 pxa3xx_gcu_init_debug_timer();
683 684
684 dev_info(&dev->dev, "registered @0x%p, DMA 0x%p (%d bytes), IRQ %d\n", 685 dev_info(dev, "registered @0x%p, DMA 0x%p (%d bytes), IRQ %d\n",
685 (void *) r->start, (void *) priv->shared_phys, 686 (void *) r->start, (void *) priv->shared_phys,
686 SHARED_SIZE, irq); 687 SHARED_SIZE, irq);
687 return 0; 688 return 0;
@@ -691,7 +692,7 @@ err_put_clk:
691 clk_put(priv->clk); 692 clk_put(priv->clk);
692 693
693err_free_dma: 694err_free_dma:
694 dma_free_coherent(&dev->dev, SHARED_SIZE, 695 dma_free_coherent(dev, SHARED_SIZE,
695 priv->shared, priv->shared_phys); 696 priv->shared, priv->shared_phys);
696 697
697err_free_io: 698err_free_io:
@@ -709,16 +710,17 @@ err_free_priv:
709 return ret; 710 return ret;
710} 711}
711 712
712static int pxa3xx_gcu_remove(struct platform_device *dev) 713static int pxa3xx_gcu_remove(struct platform_device *pdev)
713{ 714{
714 struct pxa3xx_gcu_priv *priv = platform_get_drvdata(dev); 715 struct pxa3xx_gcu_priv *priv = platform_get_drvdata(pdev);
715 struct resource *r = priv->resource_mem; 716 struct resource *r = priv->resource_mem;
717 struct device *dev = &pdev->dev;
716 718
717 pxa3xx_gcu_wait_idle(priv); 719 pxa3xx_gcu_wait_idle(priv);
718 720
719 misc_deregister(&priv->misc_dev); 721 misc_deregister(&priv->misc_dev);
720 dma_free_coherent(&dev->dev, SHARED_SIZE, 722 dma_free_coherent(dev, SHARED_SIZE,
721 priv->shared, priv->shared_phys); 723 priv->shared, priv->shared_phys);
722 iounmap(priv->mmio_base); 724 iounmap(priv->mmio_base);
723 release_mem_region(r->start, resource_size(r)); 725 release_mem_region(r->start, resource_size(r));
724 clk_disable(priv->clk); 726 clk_disable(priv->clk);