diff options
| author | Aaro Koskinen <aaro.koskinen@iki.fi> | 2012-11-21 14:48:52 -0500 |
|---|---|---|
| committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-11-22 10:22:55 -0500 |
| commit | ee6352de51c0ee151f1825b5f06f2e6e8ef44594 (patch) | |
| tree | bde62231f59138bcb5946d52b65d2185d29a1502 /drivers/video | |
| parent | 264236f82ea4ee5ee418f3e57c33d9d3fc37008f (diff) | |
OMAPDSS: panel-n8x0: register the DSS driver after SPI probe
Register the DSS driver after SPI probe. This simplifies the
initialization. This is similar to what is being done e.g.
in panel-acx565akm.
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video')
| -rw-r--r-- | drivers/video/omap2/displays/panel-n8x0.c | 39 |
1 files changed, 9 insertions, 30 deletions
diff --git a/drivers/video/omap2/displays/panel-n8x0.c b/drivers/video/omap2/displays/panel-n8x0.c index 26532695555..d1cb722fcdb 100644 --- a/drivers/video/omap2/displays/panel-n8x0.c +++ b/drivers/video/omap2/displays/panel-n8x0.c | |||
| @@ -652,18 +652,25 @@ static struct omap_dss_driver n8x0_panel_driver = { | |||
| 652 | 652 | ||
| 653 | static int mipid_spi_probe(struct spi_device *spi) | 653 | static int mipid_spi_probe(struct spi_device *spi) |
| 654 | { | 654 | { |
| 655 | int r; | ||
| 656 | |||
| 655 | dev_dbg(&spi->dev, "mipid_spi_probe\n"); | 657 | dev_dbg(&spi->dev, "mipid_spi_probe\n"); |
| 656 | 658 | ||
| 657 | spi->mode = SPI_MODE_0; | 659 | spi->mode = SPI_MODE_0; |
| 658 | 660 | ||
| 659 | s_drv_data.spidev = spi; | 661 | s_drv_data.spidev = spi; |
| 660 | 662 | ||
| 661 | return 0; | 663 | r = omap_dss_register_driver(&n8x0_panel_driver); |
| 664 | if (r) | ||
| 665 | pr_err("n8x0_panel: dss driver registration failed\n"); | ||
| 666 | |||
| 667 | return r; | ||
| 662 | } | 668 | } |
| 663 | 669 | ||
| 664 | static int mipid_spi_remove(struct spi_device *spi) | 670 | static int mipid_spi_remove(struct spi_device *spi) |
| 665 | { | 671 | { |
| 666 | dev_dbg(&spi->dev, "mipid_spi_remove\n"); | 672 | dev_dbg(&spi->dev, "mipid_spi_remove\n"); |
| 673 | omap_dss_unregister_driver(&n8x0_panel_driver); | ||
| 667 | return 0; | 674 | return 0; |
| 668 | } | 675 | } |
| 669 | 676 | ||
| @@ -675,34 +682,6 @@ static struct spi_driver mipid_spi_driver = { | |||
| 675 | .probe = mipid_spi_probe, | 682 | .probe = mipid_spi_probe, |
| 676 | .remove = __devexit_p(mipid_spi_remove), | 683 | .remove = __devexit_p(mipid_spi_remove), |
| 677 | }; | 684 | }; |
| 685 | module_spi_driver(mipid_spi_driver); | ||
| 678 | 686 | ||
| 679 | static int __init n8x0_panel_drv_init(void) | ||
| 680 | { | ||
| 681 | int r; | ||
| 682 | |||
| 683 | r = spi_register_driver(&mipid_spi_driver); | ||
| 684 | if (r) { | ||
| 685 | pr_err("n8x0_panel: spi driver registration failed\n"); | ||
| 686 | return r; | ||
| 687 | } | ||
| 688 | |||
| 689 | r = omap_dss_register_driver(&n8x0_panel_driver); | ||
| 690 | if (r) { | ||
| 691 | pr_err("n8x0_panel: dss driver registration failed\n"); | ||
| 692 | spi_unregister_driver(&mipid_spi_driver); | ||
| 693 | return r; | ||
| 694 | } | ||
| 695 | |||
| 696 | return 0; | ||
| 697 | } | ||
| 698 | |||
| 699 | static void __exit n8x0_panel_drv_exit(void) | ||
| 700 | { | ||
| 701 | spi_unregister_driver(&mipid_spi_driver); | ||
| 702 | |||
| 703 | omap_dss_unregister_driver(&n8x0_panel_driver); | ||
| 704 | } | ||
| 705 | |||
| 706 | module_init(n8x0_panel_drv_init); | ||
| 707 | module_exit(n8x0_panel_drv_exit); | ||
| 708 | MODULE_LICENSE("GPL"); | 687 | MODULE_LICENSE("GPL"); |
