From 0f46409db8e556c82d392be89ceced7f9b591ee7 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Mon, 20 Feb 2012 16:57:37 +0200 Subject: [PATCH] --- yaml --- r: 310335 b: refs/heads/master c: a57dd4fe7bef557afaa1a6cdb77cd95b2cba094e h: refs/heads/master i: 310333: 528837e20fc89289799997c4088d8fcce6b7a9b9 310331: 2939fb351d5acbcb4e6ff66251e7667413a571bf 310327: fd9373d2940f009a7226a96d42013c881e5581f3 310319: 851a3af8d54a78e6e72bccc4ec3fefbbe1eed3d4 310303: 0f0194b6d2e40ea86d7276a35254a5a5e28d6869 310271: 97f304f4a8226edfd912cf0c1255e07e52537530 v: v3 --- [refs] | 2 +- trunk/drivers/video/omap2/dss/core.c | 18 ++++++++++++++++++ trunk/drivers/video/omap2/dss/dpi.c | 23 +++++++++++++++++++++-- trunk/drivers/video/omap2/dss/dss.c | 20 +------------------- trunk/drivers/video/omap2/dss/dss.h | 26 ++++++++------------------ trunk/drivers/video/omap2/dss/sdi.c | 25 +++++++++++++++++++++++-- 6 files changed, 72 insertions(+), 42 deletions(-) diff --git a/[refs] b/[refs] index 60de758807c3..3adca95cdb7a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 53f576a8dc5729e719c862aba2ed3430867bd5cb +refs/heads/master: a57dd4fe7bef557afaa1a6cdb77cd95b2cba094e diff --git a/trunk/drivers/video/omap2/dss/core.c b/trunk/drivers/video/omap2/dss/core.c index db45e6abe311..77fbd99295dc 100644 --- a/trunk/drivers/video/omap2/dss/core.c +++ b/trunk/drivers/video/omap2/dss/core.c @@ -536,6 +536,18 @@ static int __init omap_dss_register_drivers(void) goto err_dispc; } + r = dpi_init_platform_driver(); + if (r) { + DSSERR("Failed to initialize dpi platform driver\n"); + goto err_dpi; + } + + r = sdi_init_platform_driver(); + if (r) { + DSSERR("Failed to initialize sdi platform driver\n"); + goto err_sdi; + } + r = rfbi_init_platform_driver(); if (r) { DSSERR("Failed to initialize rfbi platform driver\n"); @@ -569,6 +581,10 @@ static int __init omap_dss_register_drivers(void) err_venc: rfbi_uninit_platform_driver(); err_rfbi: + sdi_uninit_platform_driver(); +err_sdi: + dpi_uninit_platform_driver(); +err_dpi: dispc_uninit_platform_driver(); err_dispc: dss_uninit_platform_driver(); @@ -584,6 +600,8 @@ static void __exit omap_dss_unregister_drivers(void) dsi_uninit_platform_driver(); venc_uninit_platform_driver(); rfbi_uninit_platform_driver(); + sdi_uninit_platform_driver(); + dpi_uninit_platform_driver(); dispc_uninit_platform_driver(); dss_uninit_platform_driver(); diff --git a/trunk/drivers/video/omap2/dss/dpi.c b/trunk/drivers/video/omap2/dss/dpi.c index d6e8fe776152..79d242a42607 100644 --- a/trunk/drivers/video/omap2/dss/dpi.c +++ b/trunk/drivers/video/omap2/dss/dpi.c @@ -379,12 +379,31 @@ int dpi_init_display(struct omap_dss_device *dssdev) return 0; } -int dpi_init(void) +static int omap_dpi_probe(struct platform_device *pdev) { return 0; } -void dpi_exit(void) +static int omap_dpi_remove(struct platform_device *pdev) { + return 0; } +static struct platform_driver omap_dpi_driver = { + .probe = omap_dpi_probe, + .remove = omap_dpi_remove, + .driver = { + .name = "omapdss_dpi", + .owner = THIS_MODULE, + }, +}; + +int dpi_init_platform_driver(void) +{ + return platform_driver_register(&omap_dpi_driver); +} + +void dpi_uninit_platform_driver(void) +{ + platform_driver_unregister(&omap_dpi_driver); +} diff --git a/trunk/drivers/video/omap2/dss/dss.c b/trunk/drivers/video/omap2/dss/dss.c index c849d8bd5256..7a7ddd8fbf5e 100644 --- a/trunk/drivers/video/omap2/dss/dss.c +++ b/trunk/drivers/video/omap2/dss/dss.c @@ -786,18 +786,6 @@ static int omap_dsshw_probe(struct platform_device *pdev) dss.lcd_clk_source[0] = OMAP_DSS_CLK_SRC_FCK; dss.lcd_clk_source[1] = OMAP_DSS_CLK_SRC_FCK; - r = dpi_init(); - if (r) { - DSSERR("Failed to initialize DPI\n"); - goto err_dpi; - } - - r = sdi_init(); - if (r) { - DSSERR("Failed to initialize SDI\n"); - goto err_sdi; - } - rev = dss_read_reg(DSS_REVISION); printk(KERN_INFO "OMAP DSS rev %d.%d\n", FLD_GET(rev, 7, 4), FLD_GET(rev, 3, 0)); @@ -805,10 +793,7 @@ static int omap_dsshw_probe(struct platform_device *pdev) dss_runtime_put(); return 0; -err_sdi: - dpi_exit(); -err_dpi: - dss_runtime_put(); + err_runtime_get: pm_runtime_disable(&pdev->dev); dss_put_clocks(); @@ -817,9 +802,6 @@ static int omap_dsshw_probe(struct platform_device *pdev) static int omap_dsshw_remove(struct platform_device *pdev) { - dpi_exit(); - sdi_exit(); - pm_runtime_disable(&pdev->dev); dss_put_clocks(); diff --git a/trunk/drivers/video/omap2/dss/dss.h b/trunk/drivers/video/omap2/dss/dss.h index 848fc9cd65d4..5496134c280b 100644 --- a/trunk/drivers/video/omap2/dss/dss.h +++ b/trunk/drivers/video/omap2/dss/dss.h @@ -272,17 +272,12 @@ int dss_calc_clock_div(bool is_tft, unsigned long req_pck, /* SDI */ #ifdef CONFIG_OMAP2_DSS_SDI -int sdi_init(void); -void sdi_exit(void); +int sdi_init_platform_driver(void); +void sdi_uninit_platform_driver(void); int sdi_init_display(struct omap_dss_device *display); #else -static inline int sdi_init(void) -{ - return 0; -} -static inline void sdi_exit(void) -{ -} +static inline int sdi_init_platform_driver(void) { return 0; } +static inline void sdi_uninit_platform_driver(void) { } #endif /* DSI */ @@ -384,17 +379,12 @@ static inline struct platform_device *dsi_get_dsidev_from_id(int module) /* DPI */ #ifdef CONFIG_OMAP2_DSS_DPI -int dpi_init(void); -void dpi_exit(void); +int dpi_init_platform_driver(void); +void dpi_uninit_platform_driver(void); int dpi_init_display(struct omap_dss_device *dssdev); #else -static inline int dpi_init(void) -{ - return 0; -} -static inline void dpi_exit(void) -{ -} +static inline int dpi_init_platform_driver(void) { return 0; } +static inline void dpi_uninit_platform_driver(void) { } #endif /* DISPC */ diff --git a/trunk/drivers/video/omap2/dss/sdi.c b/trunk/drivers/video/omap2/dss/sdi.c index 67fbe7cee412..4ae2d8f55048 100644 --- a/trunk/drivers/video/omap2/dss/sdi.c +++ b/trunk/drivers/video/omap2/dss/sdi.c @@ -24,6 +24,7 @@ #include #include #include +#include #include