aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2015-06-04 07:12:16 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2015-06-17 06:44:47 -0400
commitede9269572da9206249f02ebe031ded025b84fd3 (patch)
tree024b2c3e33732aca92358bafa2ed1dbc25cd096d
parentf5a1a1f8e41e93584935d4ae62a84280dcdbe778 (diff)
OMAPDSS: remove uses of __init/__exit
The following patches will add component handling to omapdss, improving the handling of deferred probing. However, at the moment we're using quite a lot of __inits and __exits in the driver, which prevent normal dynamic probing and removal. This patch removes most of the uses of __init and __exit, so that we can register drivers after module init, and so that we can unregister drivers even if the module is built-in. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--drivers/video/fbdev/omap2/dss/dispc.c20
-rw-r--r--drivers/video/fbdev/omap2/dss/dpi.c14
-rw-r--r--drivers/video/fbdev/omap2/dss/dsi.c6
-rw-r--r--drivers/video/fbdev/omap2/dss/dss.c26
-rw-r--r--drivers/video/fbdev/omap2/dss/dss.h32
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi4.c6
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi5.c6
-rw-r--r--drivers/video/fbdev/omap2/dss/rfbi.c8
-rw-r--r--drivers/video/fbdev/omap2/dss/sdi.c12
-rw-r--r--drivers/video/fbdev/omap2/dss/venc.c8
10 files changed, 69 insertions, 69 deletions
diff --git a/drivers/video/fbdev/omap2/dss/dispc.c b/drivers/video/fbdev/omap2/dss/dispc.c
index f4fc77d9d3bf..e3417af63451 100644
--- a/drivers/video/fbdev/omap2/dss/dispc.c
+++ b/drivers/video/fbdev/omap2/dss/dispc.c
@@ -3692,7 +3692,7 @@ static void _omap_dispc_initial_config(void)
3692 dispc_init_mflag(); 3692 dispc_init_mflag();
3693} 3693}
3694 3694
3695static const struct dispc_features omap24xx_dispc_feats __initconst = { 3695static const struct dispc_features omap24xx_dispc_feats = {
3696 .sw_start = 5, 3696 .sw_start = 5,
3697 .fp_start = 15, 3697 .fp_start = 15,
3698 .bp_start = 27, 3698 .bp_start = 27,
@@ -3711,7 +3711,7 @@ static const struct dispc_features omap24xx_dispc_feats __initconst = {
3711 .set_max_preload = false, 3711 .set_max_preload = false,
3712}; 3712};
3713 3713
3714static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = { 3714static const struct dispc_features omap34xx_rev1_0_dispc_feats = {
3715 .sw_start = 5, 3715 .sw_start = 5,
3716 .fp_start = 15, 3716 .fp_start = 15,
3717 .bp_start = 27, 3717 .bp_start = 27,
@@ -3731,7 +3731,7 @@ static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
3731 .set_max_preload = false, 3731 .set_max_preload = false,
3732}; 3732};
3733 3733
3734static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = { 3734static const struct dispc_features omap34xx_rev3_0_dispc_feats = {
3735 .sw_start = 7, 3735 .sw_start = 7,
3736 .fp_start = 19, 3736 .fp_start = 19,
3737 .bp_start = 31, 3737 .bp_start = 31,
@@ -3751,7 +3751,7 @@ static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
3751 .set_max_preload = false, 3751 .set_max_preload = false,
3752}; 3752};
3753 3753
3754static const struct dispc_features omap44xx_dispc_feats __initconst = { 3754static const struct dispc_features omap44xx_dispc_feats = {
3755 .sw_start = 7, 3755 .sw_start = 7,
3756 .fp_start = 19, 3756 .fp_start = 19,
3757 .bp_start = 31, 3757 .bp_start = 31,
@@ -3771,7 +3771,7 @@ static const struct dispc_features omap44xx_dispc_feats __initconst = {
3771 .set_max_preload = true, 3771 .set_max_preload = true,
3772}; 3772};
3773 3773
3774static const struct dispc_features omap54xx_dispc_feats __initconst = { 3774static const struct dispc_features omap54xx_dispc_feats = {
3775 .sw_start = 7, 3775 .sw_start = 7,
3776 .fp_start = 19, 3776 .fp_start = 19,
3777 .bp_start = 31, 3777 .bp_start = 31,
@@ -3792,7 +3792,7 @@ static const struct dispc_features omap54xx_dispc_feats __initconst = {
3792 .set_max_preload = true, 3792 .set_max_preload = true,
3793}; 3793};
3794 3794
3795static int __init dispc_init_features(struct platform_device *pdev) 3795static int dispc_init_features(struct platform_device *pdev)
3796{ 3796{
3797 const struct dispc_features *src; 3797 const struct dispc_features *src;
3798 struct dispc_features *dst; 3798 struct dispc_features *dst;
@@ -3882,7 +3882,7 @@ void dispc_free_irq(void *dev_id)
3882EXPORT_SYMBOL(dispc_free_irq); 3882EXPORT_SYMBOL(dispc_free_irq);
3883 3883
3884/* DISPC HW IP initialisation */ 3884/* DISPC HW IP initialisation */
3885static int __init omap_dispchw_probe(struct platform_device *pdev) 3885static int omap_dispchw_probe(struct platform_device *pdev)
3886{ 3886{
3887 u32 rev; 3887 u32 rev;
3888 int r = 0; 3888 int r = 0;
@@ -3955,7 +3955,7 @@ err_runtime_get:
3955 return r; 3955 return r;
3956} 3956}
3957 3957
3958static int __exit omap_dispchw_remove(struct platform_device *pdev) 3958static int omap_dispchw_remove(struct platform_device *pdev)
3959{ 3959{
3960 pm_runtime_disable(&pdev->dev); 3960 pm_runtime_disable(&pdev->dev);
3961 3961
@@ -4013,7 +4013,7 @@ static const struct of_device_id dispc_of_match[] = {
4013}; 4013};
4014 4014
4015static struct platform_driver omap_dispchw_driver = { 4015static struct platform_driver omap_dispchw_driver = {
4016 .remove = __exit_p(omap_dispchw_remove), 4016 .remove = omap_dispchw_remove,
4017 .driver = { 4017 .driver = {
4018 .name = "omapdss_dispc", 4018 .name = "omapdss_dispc",
4019 .pm = &dispc_pm_ops, 4019 .pm = &dispc_pm_ops,
@@ -4027,7 +4027,7 @@ int __init dispc_init_platform_driver(void)
4027 return platform_driver_probe(&omap_dispchw_driver, omap_dispchw_probe); 4027 return platform_driver_probe(&omap_dispchw_driver, omap_dispchw_probe);
4028} 4028}
4029 4029
4030void __exit dispc_uninit_platform_driver(void) 4030void dispc_uninit_platform_driver(void)
4031{ 4031{
4032 platform_driver_unregister(&omap_dispchw_driver); 4032 platform_driver_unregister(&omap_dispchw_driver);
4033} 4033}
diff --git a/drivers/video/fbdev/omap2/dss/dpi.c b/drivers/video/fbdev/omap2/dss/dpi.c
index f83e7b030249..a06e7558280f 100644
--- a/drivers/video/fbdev/omap2/dss/dpi.c
+++ b/drivers/video/fbdev/omap2/dss/dpi.c
@@ -731,7 +731,7 @@ static void dpi_init_output(struct platform_device *pdev)
731 omapdss_register_output(out); 731 omapdss_register_output(out);
732} 732}
733 733
734static void __exit dpi_uninit_output(struct platform_device *pdev) 734static void dpi_uninit_output(struct platform_device *pdev)
735{ 735{
736 struct dpi_data *dpi = dpi_get_data_from_pdev(pdev); 736 struct dpi_data *dpi = dpi_get_data_from_pdev(pdev);
737 struct omap_dss_device *out = &dpi->output; 737 struct omap_dss_device *out = &dpi->output;
@@ -775,7 +775,7 @@ static void dpi_init_output_port(struct platform_device *pdev,
775 omapdss_register_output(out); 775 omapdss_register_output(out);
776} 776}
777 777
778static void __exit dpi_uninit_output_port(struct device_node *port) 778static void dpi_uninit_output_port(struct device_node *port)
779{ 779{
780 struct dpi_data *dpi = port->data; 780 struct dpi_data *dpi = port->data;
781 struct omap_dss_device *out = &dpi->output; 781 struct omap_dss_device *out = &dpi->output;
@@ -802,7 +802,7 @@ static int omap_dpi_probe(struct platform_device *pdev)
802 return 0; 802 return 0;
803} 803}
804 804
805static int __exit omap_dpi_remove(struct platform_device *pdev) 805static int omap_dpi_remove(struct platform_device *pdev)
806{ 806{
807 dpi_uninit_output(pdev); 807 dpi_uninit_output(pdev);
808 808
@@ -811,7 +811,7 @@ static int __exit omap_dpi_remove(struct platform_device *pdev)
811 811
812static struct platform_driver omap_dpi_driver = { 812static struct platform_driver omap_dpi_driver = {
813 .probe = omap_dpi_probe, 813 .probe = omap_dpi_probe,
814 .remove = __exit_p(omap_dpi_remove), 814 .remove = omap_dpi_remove,
815 .driver = { 815 .driver = {
816 .name = "omapdss_dpi", 816 .name = "omapdss_dpi",
817 .suppress_bind_attrs = true, 817 .suppress_bind_attrs = true,
@@ -823,12 +823,12 @@ int __init dpi_init_platform_driver(void)
823 return platform_driver_register(&omap_dpi_driver); 823 return platform_driver_register(&omap_dpi_driver);
824} 824}
825 825
826void __exit dpi_uninit_platform_driver(void) 826void dpi_uninit_platform_driver(void)
827{ 827{
828 platform_driver_unregister(&omap_dpi_driver); 828 platform_driver_unregister(&omap_dpi_driver);
829} 829}
830 830
831int __init dpi_init_port(struct platform_device *pdev, struct device_node *port) 831int dpi_init_port(struct platform_device *pdev, struct device_node *port)
832{ 832{
833 struct dpi_data *dpi; 833 struct dpi_data *dpi;
834 struct device_node *ep; 834 struct device_node *ep;
@@ -870,7 +870,7 @@ err_datalines:
870 return r; 870 return r;
871} 871}
872 872
873void __exit dpi_uninit_port(struct device_node *port) 873void dpi_uninit_port(struct device_node *port)
874{ 874{
875 struct dpi_data *dpi = port->data; 875 struct dpi_data *dpi = port->data;
876 876
diff --git a/drivers/video/fbdev/omap2/dss/dsi.c b/drivers/video/fbdev/omap2/dss/dsi.c
index 28b0bc11669d..c4c27c09c62f 100644
--- a/drivers/video/fbdev/omap2/dss/dsi.c
+++ b/drivers/video/fbdev/omap2/dss/dsi.c
@@ -5484,7 +5484,7 @@ err_runtime_get:
5484 return r; 5484 return r;
5485} 5485}
5486 5486
5487static int __exit omap_dsihw_remove(struct platform_device *dsidev) 5487static int omap_dsihw_remove(struct platform_device *dsidev)
5488{ 5488{
5489 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev); 5489 struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
5490 5490
@@ -5570,7 +5570,7 @@ static const struct of_device_id dsi_of_match[] = {
5570 5570
5571static struct platform_driver omap_dsihw_driver = { 5571static struct platform_driver omap_dsihw_driver = {
5572 .probe = omap_dsihw_probe, 5572 .probe = omap_dsihw_probe,
5573 .remove = __exit_p(omap_dsihw_remove), 5573 .remove = omap_dsihw_remove,
5574 .driver = { 5574 .driver = {
5575 .name = "omapdss_dsi", 5575 .name = "omapdss_dsi",
5576 .pm = &dsi_pm_ops, 5576 .pm = &dsi_pm_ops,
@@ -5584,7 +5584,7 @@ int __init dsi_init_platform_driver(void)
5584 return platform_driver_register(&omap_dsihw_driver); 5584 return platform_driver_register(&omap_dsihw_driver);
5585} 5585}
5586 5586
5587void __exit dsi_uninit_platform_driver(void) 5587void dsi_uninit_platform_driver(void)
5588{ 5588{
5589 platform_driver_unregister(&omap_dsihw_driver); 5589 platform_driver_unregister(&omap_dsihw_driver);
5590} 5590}
diff --git a/drivers/video/fbdev/omap2/dss/dss.c b/drivers/video/fbdev/omap2/dss/dss.c
index 28e6ff053b47..3397cbf484b0 100644
--- a/drivers/video/fbdev/omap2/dss/dss.c
+++ b/drivers/video/fbdev/omap2/dss/dss.c
@@ -819,7 +819,7 @@ static const enum omap_display_type dra7xx_ports[] = {
819 OMAP_DISPLAY_TYPE_DPI, 819 OMAP_DISPLAY_TYPE_DPI,
820}; 820};
821 821
822static const struct dss_features omap24xx_dss_feats __initconst = { 822static const struct dss_features omap24xx_dss_feats = {
823 /* 823 /*
824 * fck div max is really 16, but the divider range has gaps. The range 824 * fck div max is really 16, but the divider range has gaps. The range
825 * from 1 to 6 has no gaps, so let's use that as a max. 825 * from 1 to 6 has no gaps, so let's use that as a max.
@@ -832,7 +832,7 @@ static const struct dss_features omap24xx_dss_feats __initconst = {
832 .num_ports = ARRAY_SIZE(omap2plus_ports), 832 .num_ports = ARRAY_SIZE(omap2plus_ports),
833}; 833};
834 834
835static const struct dss_features omap34xx_dss_feats __initconst = { 835static const struct dss_features omap34xx_dss_feats = {
836 .fck_div_max = 16, 836 .fck_div_max = 16,
837 .dss_fck_multiplier = 2, 837 .dss_fck_multiplier = 2,
838 .parent_clk_name = "dpll4_ck", 838 .parent_clk_name = "dpll4_ck",
@@ -841,7 +841,7 @@ static const struct dss_features omap34xx_dss_feats __initconst = {
841 .num_ports = ARRAY_SIZE(omap34xx_ports), 841 .num_ports = ARRAY_SIZE(omap34xx_ports),
842}; 842};
843 843
844static const struct dss_features omap3630_dss_feats __initconst = { 844static const struct dss_features omap3630_dss_feats = {
845 .fck_div_max = 32, 845 .fck_div_max = 32,
846 .dss_fck_multiplier = 1, 846 .dss_fck_multiplier = 1,
847 .parent_clk_name = "dpll4_ck", 847 .parent_clk_name = "dpll4_ck",
@@ -850,7 +850,7 @@ static const struct dss_features omap3630_dss_feats __initconst = {
850 .num_ports = ARRAY_SIZE(omap2plus_ports), 850 .num_ports = ARRAY_SIZE(omap2plus_ports),
851}; 851};
852 852
853static const struct dss_features omap44xx_dss_feats __initconst = { 853static const struct dss_features omap44xx_dss_feats = {
854 .fck_div_max = 32, 854 .fck_div_max = 32,
855 .dss_fck_multiplier = 1, 855 .dss_fck_multiplier = 1,
856 .parent_clk_name = "dpll_per_x2_ck", 856 .parent_clk_name = "dpll_per_x2_ck",
@@ -859,7 +859,7 @@ static const struct dss_features omap44xx_dss_feats __initconst = {
859 .num_ports = ARRAY_SIZE(omap2plus_ports), 859 .num_ports = ARRAY_SIZE(omap2plus_ports),
860}; 860};
861 861
862static const struct dss_features omap54xx_dss_feats __initconst = { 862static const struct dss_features omap54xx_dss_feats = {
863 .fck_div_max = 64, 863 .fck_div_max = 64,
864 .dss_fck_multiplier = 1, 864 .dss_fck_multiplier = 1,
865 .parent_clk_name = "dpll_per_x2_ck", 865 .parent_clk_name = "dpll_per_x2_ck",
@@ -868,7 +868,7 @@ static const struct dss_features omap54xx_dss_feats __initconst = {
868 .num_ports = ARRAY_SIZE(omap2plus_ports), 868 .num_ports = ARRAY_SIZE(omap2plus_ports),
869}; 869};
870 870
871static const struct dss_features am43xx_dss_feats __initconst = { 871static const struct dss_features am43xx_dss_feats = {
872 .fck_div_max = 0, 872 .fck_div_max = 0,
873 .dss_fck_multiplier = 0, 873 .dss_fck_multiplier = 0,
874 .parent_clk_name = NULL, 874 .parent_clk_name = NULL,
@@ -877,7 +877,7 @@ static const struct dss_features am43xx_dss_feats __initconst = {
877 .num_ports = ARRAY_SIZE(omap2plus_ports), 877 .num_ports = ARRAY_SIZE(omap2plus_ports),
878}; 878};
879 879
880static const struct dss_features dra7xx_dss_feats __initconst = { 880static const struct dss_features dra7xx_dss_feats = {
881 .fck_div_max = 64, 881 .fck_div_max = 64,
882 .dss_fck_multiplier = 1, 882 .dss_fck_multiplier = 1,
883 .parent_clk_name = "dpll_per_x2_ck", 883 .parent_clk_name = "dpll_per_x2_ck",
@@ -886,7 +886,7 @@ static const struct dss_features dra7xx_dss_feats __initconst = {
886 .num_ports = ARRAY_SIZE(dra7xx_ports), 886 .num_ports = ARRAY_SIZE(dra7xx_ports),
887}; 887};
888 888
889static int __init dss_init_features(struct platform_device *pdev) 889static int dss_init_features(struct platform_device *pdev)
890{ 890{
891 const struct dss_features *src; 891 const struct dss_features *src;
892 struct dss_features *dst; 892 struct dss_features *dst;
@@ -940,7 +940,7 @@ static int __init dss_init_features(struct platform_device *pdev)
940 return 0; 940 return 0;
941} 941}
942 942
943static int __init dss_init_ports(struct platform_device *pdev) 943static int dss_init_ports(struct platform_device *pdev)
944{ 944{
945 struct device_node *parent = pdev->dev.of_node; 945 struct device_node *parent = pdev->dev.of_node;
946 struct device_node *port; 946 struct device_node *port;
@@ -984,7 +984,7 @@ static int __init dss_init_ports(struct platform_device *pdev)
984 return 0; 984 return 0;
985} 985}
986 986
987static void __exit dss_uninit_ports(struct platform_device *pdev) 987static void dss_uninit_ports(struct platform_device *pdev)
988{ 988{
989 struct device_node *parent = pdev->dev.of_node; 989 struct device_node *parent = pdev->dev.of_node;
990 struct device_node *port; 990 struct device_node *port;
@@ -1088,7 +1088,7 @@ static int dss_video_pll_probe(struct platform_device *pdev)
1088} 1088}
1089 1089
1090/* DSS HW IP initialisation */ 1090/* DSS HW IP initialisation */
1091static int __init omap_dsshw_probe(struct platform_device *pdev) 1091static int omap_dsshw_probe(struct platform_device *pdev)
1092{ 1092{
1093 struct resource *dss_mem; 1093 struct resource *dss_mem;
1094 u32 rev; 1094 u32 rev;
@@ -1182,7 +1182,7 @@ err_setup_clocks:
1182 return r; 1182 return r;
1183} 1183}
1184 1184
1185static int __exit omap_dsshw_remove(struct platform_device *pdev) 1185static int omap_dsshw_remove(struct platform_device *pdev)
1186{ 1186{
1187 dss_initialized = false; 1187 dss_initialized = false;
1188 1188
@@ -1243,7 +1243,7 @@ static const struct of_device_id dss_of_match[] = {
1243MODULE_DEVICE_TABLE(of, dss_of_match); 1243MODULE_DEVICE_TABLE(of, dss_of_match);
1244 1244
1245static struct platform_driver omap_dsshw_driver = { 1245static struct platform_driver omap_dsshw_driver = {
1246 .remove = __exit_p(omap_dsshw_remove), 1246 .remove = omap_dsshw_remove,
1247 .driver = { 1247 .driver = {
1248 .name = "omapdss_dss", 1248 .name = "omapdss_dss",
1249 .pm = &dss_pm_ops, 1249 .pm = &dss_pm_ops,
diff --git a/drivers/video/fbdev/omap2/dss/dss.h b/drivers/video/fbdev/omap2/dss/dss.h
index 4812eee2622a..2406bcdb831a 100644
--- a/drivers/video/fbdev/omap2/dss/dss.h
+++ b/drivers/video/fbdev/omap2/dss/dss.h
@@ -309,18 +309,18 @@ bool dss_div_calc(unsigned long pck, unsigned long fck_min,
309 309
310/* SDI */ 310/* SDI */
311int sdi_init_platform_driver(void) __init; 311int sdi_init_platform_driver(void) __init;
312void sdi_uninit_platform_driver(void) __exit; 312void sdi_uninit_platform_driver(void);
313 313
314#ifdef CONFIG_OMAP2_DSS_SDI 314#ifdef CONFIG_OMAP2_DSS_SDI
315int sdi_init_port(struct platform_device *pdev, struct device_node *port) __init; 315int sdi_init_port(struct platform_device *pdev, struct device_node *port);
316void sdi_uninit_port(struct device_node *port) __exit; 316void sdi_uninit_port(struct device_node *port);
317#else 317#else
318static inline int __init sdi_init_port(struct platform_device *pdev, 318static inline int sdi_init_port(struct platform_device *pdev,
319 struct device_node *port) 319 struct device_node *port)
320{ 320{
321 return 0; 321 return 0;
322} 322}
323static inline void __exit sdi_uninit_port(struct device_node *port) 323static inline void sdi_uninit_port(struct device_node *port)
324{ 324{
325} 325}
326#endif 326#endif
@@ -333,7 +333,7 @@ struct dentry;
333struct file_operations; 333struct file_operations;
334 334
335int dsi_init_platform_driver(void) __init; 335int dsi_init_platform_driver(void) __init;
336void dsi_uninit_platform_driver(void) __exit; 336void dsi_uninit_platform_driver(void);
337 337
338void dsi_dump_clocks(struct seq_file *s); 338void dsi_dump_clocks(struct seq_file *s);
339 339
@@ -350,25 +350,25 @@ static inline u8 dsi_get_pixel_size(enum omap_dss_dsi_pixel_format fmt)
350 350
351/* DPI */ 351/* DPI */
352int dpi_init_platform_driver(void) __init; 352int dpi_init_platform_driver(void) __init;
353void dpi_uninit_platform_driver(void) __exit; 353void dpi_uninit_platform_driver(void);
354 354
355#ifdef CONFIG_OMAP2_DSS_DPI 355#ifdef CONFIG_OMAP2_DSS_DPI
356int dpi_init_port(struct platform_device *pdev, struct device_node *port) __init; 356int dpi_init_port(struct platform_device *pdev, struct device_node *port);
357void dpi_uninit_port(struct device_node *port) __exit; 357void dpi_uninit_port(struct device_node *port);
358#else 358#else
359static inline int __init dpi_init_port(struct platform_device *pdev, 359static inline int dpi_init_port(struct platform_device *pdev,
360 struct device_node *port) 360 struct device_node *port)
361{ 361{
362 return 0; 362 return 0;
363} 363}
364static inline void __exit dpi_uninit_port(struct device_node *port) 364static inline void dpi_uninit_port(struct device_node *port)
365{ 365{
366} 366}
367#endif 367#endif
368 368
369/* DISPC */ 369/* DISPC */
370int dispc_init_platform_driver(void) __init; 370int dispc_init_platform_driver(void) __init;
371void dispc_uninit_platform_driver(void) __exit; 371void dispc_uninit_platform_driver(void);
372void dispc_dump_clocks(struct seq_file *s); 372void dispc_dump_clocks(struct seq_file *s);
373 373
374void dispc_enable_sidle(void); 374void dispc_enable_sidle(void);
@@ -418,18 +418,18 @@ int dispc_wb_setup(const struct omap_dss_writeback_info *wi,
418 418
419/* VENC */ 419/* VENC */
420int venc_init_platform_driver(void) __init; 420int venc_init_platform_driver(void) __init;
421void venc_uninit_platform_driver(void) __exit; 421void venc_uninit_platform_driver(void);
422 422
423/* HDMI */ 423/* HDMI */
424int hdmi4_init_platform_driver(void) __init; 424int hdmi4_init_platform_driver(void) __init;
425void hdmi4_uninit_platform_driver(void) __exit; 425void hdmi4_uninit_platform_driver(void);
426 426
427int hdmi5_init_platform_driver(void) __init; 427int hdmi5_init_platform_driver(void) __init;
428void hdmi5_uninit_platform_driver(void) __exit; 428void hdmi5_uninit_platform_driver(void);
429 429
430/* RFBI */ 430/* RFBI */
431int rfbi_init_platform_driver(void) __init; 431int rfbi_init_platform_driver(void) __init;
432void rfbi_uninit_platform_driver(void) __exit; 432void rfbi_uninit_platform_driver(void);
433 433
434 434
435#ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS 435#ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
diff --git a/drivers/video/fbdev/omap2/dss/hdmi4.c b/drivers/video/fbdev/omap2/dss/hdmi4.c
index 916d47978f41..31deebbc32dc 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi4.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi4.c
@@ -713,7 +713,7 @@ err:
713 return r; 713 return r;
714} 714}
715 715
716static int __exit omapdss_hdmihw_remove(struct platform_device *pdev) 716static int omapdss_hdmihw_remove(struct platform_device *pdev)
717{ 717{
718 if (hdmi.audio_pdev) 718 if (hdmi.audio_pdev)
719 platform_device_unregister(hdmi.audio_pdev); 719 platform_device_unregister(hdmi.audio_pdev);
@@ -757,7 +757,7 @@ static const struct of_device_id hdmi_of_match[] = {
757 757
758static struct platform_driver omapdss_hdmihw_driver = { 758static struct platform_driver omapdss_hdmihw_driver = {
759 .probe = omapdss_hdmihw_probe, 759 .probe = omapdss_hdmihw_probe,
760 .remove = __exit_p(omapdss_hdmihw_remove), 760 .remove = omapdss_hdmihw_remove,
761 .driver = { 761 .driver = {
762 .name = "omapdss_hdmi", 762 .name = "omapdss_hdmi",
763 .pm = &hdmi_pm_ops, 763 .pm = &hdmi_pm_ops,
@@ -771,7 +771,7 @@ int __init hdmi4_init_platform_driver(void)
771 return platform_driver_register(&omapdss_hdmihw_driver); 771 return platform_driver_register(&omapdss_hdmihw_driver);
772} 772}
773 773
774void __exit hdmi4_uninit_platform_driver(void) 774void hdmi4_uninit_platform_driver(void)
775{ 775{
776 platform_driver_unregister(&omapdss_hdmihw_driver); 776 platform_driver_unregister(&omapdss_hdmihw_driver);
777} 777}
diff --git a/drivers/video/fbdev/omap2/dss/hdmi5.c b/drivers/video/fbdev/omap2/dss/hdmi5.c
index 3f0b34a7031a..a57f5e8f9aea 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi5.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi5.c
@@ -748,7 +748,7 @@ err:
748 return r; 748 return r;
749} 749}
750 750
751static int __exit omapdss_hdmihw_remove(struct platform_device *pdev) 751static int omapdss_hdmihw_remove(struct platform_device *pdev)
752{ 752{
753 if (hdmi.audio_pdev) 753 if (hdmi.audio_pdev)
754 platform_device_unregister(hdmi.audio_pdev); 754 platform_device_unregister(hdmi.audio_pdev);
@@ -793,7 +793,7 @@ static const struct of_device_id hdmi_of_match[] = {
793 793
794static struct platform_driver omapdss_hdmihw_driver = { 794static struct platform_driver omapdss_hdmihw_driver = {
795 .probe = omapdss_hdmihw_probe, 795 .probe = omapdss_hdmihw_probe,
796 .remove = __exit_p(omapdss_hdmihw_remove), 796 .remove = omapdss_hdmihw_remove,
797 .driver = { 797 .driver = {
798 .name = "omapdss_hdmi5", 798 .name = "omapdss_hdmi5",
799 .pm = &hdmi_pm_ops, 799 .pm = &hdmi_pm_ops,
@@ -807,7 +807,7 @@ int __init hdmi5_init_platform_driver(void)
807 return platform_driver_register(&omapdss_hdmihw_driver); 807 return platform_driver_register(&omapdss_hdmihw_driver);
808} 808}
809 809
810void __exit hdmi5_uninit_platform_driver(void) 810void hdmi5_uninit_platform_driver(void)
811{ 811{
812 platform_driver_unregister(&omapdss_hdmihw_driver); 812 platform_driver_unregister(&omapdss_hdmihw_driver);
813} 813}
diff --git a/drivers/video/fbdev/omap2/dss/rfbi.c b/drivers/video/fbdev/omap2/dss/rfbi.c
index 065effca9236..8ec810bce0b6 100644
--- a/drivers/video/fbdev/omap2/dss/rfbi.c
+++ b/drivers/video/fbdev/omap2/dss/rfbi.c
@@ -938,7 +938,7 @@ static void rfbi_init_output(struct platform_device *pdev)
938 omapdss_register_output(out); 938 omapdss_register_output(out);
939} 939}
940 940
941static void __exit rfbi_uninit_output(struct platform_device *pdev) 941static void rfbi_uninit_output(struct platform_device *pdev)
942{ 942{
943 struct omap_dss_device *out = &rfbi.output; 943 struct omap_dss_device *out = &rfbi.output;
944 944
@@ -1005,7 +1005,7 @@ err_runtime_get:
1005 return r; 1005 return r;
1006} 1006}
1007 1007
1008static int __exit omap_rfbihw_remove(struct platform_device *pdev) 1008static int omap_rfbihw_remove(struct platform_device *pdev)
1009{ 1009{
1010 rfbi_uninit_output(pdev); 1010 rfbi_uninit_output(pdev);
1011 1011
@@ -1039,7 +1039,7 @@ static const struct dev_pm_ops rfbi_pm_ops = {
1039 1039
1040static struct platform_driver omap_rfbihw_driver = { 1040static struct platform_driver omap_rfbihw_driver = {
1041 .probe = omap_rfbihw_probe, 1041 .probe = omap_rfbihw_probe,
1042 .remove = __exit_p(omap_rfbihw_remove), 1042 .remove = omap_rfbihw_remove,
1043 .driver = { 1043 .driver = {
1044 .name = "omapdss_rfbi", 1044 .name = "omapdss_rfbi",
1045 .pm = &rfbi_pm_ops, 1045 .pm = &rfbi_pm_ops,
@@ -1052,7 +1052,7 @@ int __init rfbi_init_platform_driver(void)
1052 return platform_driver_register(&omap_rfbihw_driver); 1052 return platform_driver_register(&omap_rfbihw_driver);
1053} 1053}
1054 1054
1055void __exit rfbi_uninit_platform_driver(void) 1055void rfbi_uninit_platform_driver(void)
1056{ 1056{
1057 platform_driver_unregister(&omap_rfbihw_driver); 1057 platform_driver_unregister(&omap_rfbihw_driver);
1058} 1058}
diff --git a/drivers/video/fbdev/omap2/dss/sdi.c b/drivers/video/fbdev/omap2/dss/sdi.c
index 5c2ccab5a958..a873118f1e0e 100644
--- a/drivers/video/fbdev/omap2/dss/sdi.c
+++ b/drivers/video/fbdev/omap2/dss/sdi.c
@@ -350,7 +350,7 @@ static void sdi_init_output(struct platform_device *pdev)
350 omapdss_register_output(out); 350 omapdss_register_output(out);
351} 351}
352 352
353static void __exit sdi_uninit_output(struct platform_device *pdev) 353static void sdi_uninit_output(struct platform_device *pdev)
354{ 354{
355 struct omap_dss_device *out = &sdi.output; 355 struct omap_dss_device *out = &sdi.output;
356 356
@@ -366,7 +366,7 @@ static int omap_sdi_probe(struct platform_device *pdev)
366 return 0; 366 return 0;
367} 367}
368 368
369static int __exit omap_sdi_remove(struct platform_device *pdev) 369static int omap_sdi_remove(struct platform_device *pdev)
370{ 370{
371 sdi_uninit_output(pdev); 371 sdi_uninit_output(pdev);
372 372
@@ -375,7 +375,7 @@ static int __exit omap_sdi_remove(struct platform_device *pdev)
375 375
376static struct platform_driver omap_sdi_driver = { 376static struct platform_driver omap_sdi_driver = {
377 .probe = omap_sdi_probe, 377 .probe = omap_sdi_probe,
378 .remove = __exit_p(omap_sdi_remove), 378 .remove = omap_sdi_remove,
379 .driver = { 379 .driver = {
380 .name = "omapdss_sdi", 380 .name = "omapdss_sdi",
381 .suppress_bind_attrs = true, 381 .suppress_bind_attrs = true,
@@ -387,12 +387,12 @@ int __init sdi_init_platform_driver(void)
387 return platform_driver_register(&omap_sdi_driver); 387 return platform_driver_register(&omap_sdi_driver);
388} 388}
389 389
390void __exit sdi_uninit_platform_driver(void) 390void sdi_uninit_platform_driver(void)
391{ 391{
392 platform_driver_unregister(&omap_sdi_driver); 392 platform_driver_unregister(&omap_sdi_driver);
393} 393}
394 394
395int __init sdi_init_port(struct platform_device *pdev, struct device_node *port) 395int sdi_init_port(struct platform_device *pdev, struct device_node *port)
396{ 396{
397 struct device_node *ep; 397 struct device_node *ep;
398 u32 datapairs; 398 u32 datapairs;
@@ -426,7 +426,7 @@ err_datapairs:
426 return r; 426 return r;
427} 427}
428 428
429void __exit sdi_uninit_port(struct device_node *port) 429void sdi_uninit_port(struct device_node *port)
430{ 430{
431 if (!sdi.port_initialized) 431 if (!sdi.port_initialized)
432 return; 432 return;
diff --git a/drivers/video/fbdev/omap2/dss/venc.c b/drivers/video/fbdev/omap2/dss/venc.c
index ef7fd925e7f2..e7fad0e19d43 100644
--- a/drivers/video/fbdev/omap2/dss/venc.c
+++ b/drivers/video/fbdev/omap2/dss/venc.c
@@ -802,7 +802,7 @@ static void venc_init_output(struct platform_device *pdev)
802 omapdss_register_output(out); 802 omapdss_register_output(out);
803} 803}
804 804
805static void __exit venc_uninit_output(struct platform_device *pdev) 805static void venc_uninit_output(struct platform_device *pdev)
806{ 806{
807 struct omap_dss_device *out = &venc.output; 807 struct omap_dss_device *out = &venc.output;
808 808
@@ -912,7 +912,7 @@ err_runtime_get:
912 return r; 912 return r;
913} 913}
914 914
915static int __exit omap_venchw_remove(struct platform_device *pdev) 915static int omap_venchw_remove(struct platform_device *pdev)
916{ 916{
917 venc_uninit_output(pdev); 917 venc_uninit_output(pdev);
918 918
@@ -960,7 +960,7 @@ static const struct of_device_id venc_of_match[] = {
960 960
961static struct platform_driver omap_venchw_driver = { 961static struct platform_driver omap_venchw_driver = {
962 .probe = omap_venchw_probe, 962 .probe = omap_venchw_probe,
963 .remove = __exit_p(omap_venchw_remove), 963 .remove = omap_venchw_remove,
964 .driver = { 964 .driver = {
965 .name = "omapdss_venc", 965 .name = "omapdss_venc",
966 .pm = &venc_pm_ops, 966 .pm = &venc_pm_ops,
@@ -974,7 +974,7 @@ int __init venc_init_platform_driver(void)
974 return platform_driver_register(&omap_venchw_driver); 974 return platform_driver_register(&omap_venchw_driver);
975} 975}
976 976
977void __exit venc_uninit_platform_driver(void) 977void venc_uninit_platform_driver(void)
978{ 978{
979 platform_driver_unregister(&omap_venchw_driver); 979 platform_driver_unregister(&omap_venchw_driver);
980} 980}