diff options
-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) {} | |||
528 | #endif | 528 | #endif |
529 | 529 | ||
530 | static int | 530 | static int |
531 | pxa3xx_gcu_add_buffer(struct platform_device *dev, | 531 | pxa3xx_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 | ||
553 | static void | 553 | static void |
554 | pxa3xx_gcu_free_buffers(struct platform_device *dev, | 554 | pxa3xx_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 | ||
579 | static int pxa3xx_gcu_probe(struct platform_device *dev) | 579 | static 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 | ||
693 | err_free_dma: | 694 | err_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 | ||
697 | err_free_io: | 698 | err_free_io: |
@@ -709,16 +710,17 @@ err_free_priv: | |||
709 | return ret; | 710 | return ret; |
710 | } | 711 | } |
711 | 712 | ||
712 | static int pxa3xx_gcu_remove(struct platform_device *dev) | 713 | static 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); |