OMAPDSS: remove uses of __init/__exit
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 4 Jun 2015 11:12:16 +0000 (14:12 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 17 Jun 2015 10:44:47 +0000 (13:44 +0300)
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>
drivers/video/fbdev/omap2/dss/dispc.c
drivers/video/fbdev/omap2/dss/dpi.c
drivers/video/fbdev/omap2/dss/dsi.c
drivers/video/fbdev/omap2/dss/dss.c
drivers/video/fbdev/omap2/dss/dss.h
drivers/video/fbdev/omap2/dss/hdmi4.c
drivers/video/fbdev/omap2/dss/hdmi5.c
drivers/video/fbdev/omap2/dss/rfbi.c
drivers/video/fbdev/omap2/dss/sdi.c
drivers/video/fbdev/omap2/dss/venc.c

index f4fc77d9d3bfcb02f807f8781142d43d22840630..e3417af63451a434a918d05da9674ca2c8256451 100644 (file)
@@ -3692,7 +3692,7 @@ static void _omap_dispc_initial_config(void)
                dispc_init_mflag();
 }
 
-static const struct dispc_features omap24xx_dispc_feats __initconst = {
+static const struct dispc_features omap24xx_dispc_feats = {
        .sw_start               =       5,
        .fp_start               =       15,
        .bp_start               =       27,
@@ -3711,7 +3711,7 @@ static const struct dispc_features omap24xx_dispc_feats __initconst = {
        .set_max_preload        =       false,
 };
 
-static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
+static const struct dispc_features omap34xx_rev1_0_dispc_feats = {
        .sw_start               =       5,
        .fp_start               =       15,
        .bp_start               =       27,
@@ -3731,7 +3731,7 @@ static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
        .set_max_preload        =       false,
 };
 
-static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
+static const struct dispc_features omap34xx_rev3_0_dispc_feats = {
        .sw_start               =       7,
        .fp_start               =       19,
        .bp_start               =       31,
@@ -3751,7 +3751,7 @@ static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
        .set_max_preload        =       false,
 };
 
-static const struct dispc_features omap44xx_dispc_feats __initconst = {
+static const struct dispc_features omap44xx_dispc_feats = {
        .sw_start               =       7,
        .fp_start               =       19,
        .bp_start               =       31,
@@ -3771,7 +3771,7 @@ static const struct dispc_features omap44xx_dispc_feats __initconst = {
        .set_max_preload        =       true,
 };
 
-static const struct dispc_features omap54xx_dispc_feats __initconst = {
+static const struct dispc_features omap54xx_dispc_feats = {
        .sw_start               =       7,
        .fp_start               =       19,
        .bp_start               =       31,
@@ -3792,7 +3792,7 @@ static const struct dispc_features omap54xx_dispc_feats __initconst = {
        .set_max_preload        =       true,
 };
 
-static int __init dispc_init_features(struct platform_device *pdev)
+static int dispc_init_features(struct platform_device *pdev)
 {
        const struct dispc_features *src;
        struct dispc_features *dst;
@@ -3882,7 +3882,7 @@ void dispc_free_irq(void *dev_id)
 EXPORT_SYMBOL(dispc_free_irq);
 
 /* DISPC HW IP initialisation */
-static int __init omap_dispchw_probe(struct platform_device *pdev)
+static int omap_dispchw_probe(struct platform_device *pdev)
 {
        u32 rev;
        int r = 0;
@@ -3955,7 +3955,7 @@ err_runtime_get:
        return r;
 }
 
-static int __exit omap_dispchw_remove(struct platform_device *pdev)
+static int omap_dispchw_remove(struct platform_device *pdev)
 {
        pm_runtime_disable(&pdev->dev);
 
@@ -4013,7 +4013,7 @@ static const struct of_device_id dispc_of_match[] = {
 };
 
 static struct platform_driver omap_dispchw_driver = {
-       .remove         = __exit_p(omap_dispchw_remove),
+       .remove         = omap_dispchw_remove,
        .driver         = {
                .name   = "omapdss_dispc",
                .pm     = &dispc_pm_ops,
@@ -4027,7 +4027,7 @@ int __init dispc_init_platform_driver(void)
        return platform_driver_probe(&omap_dispchw_driver, omap_dispchw_probe);
 }
 
-void __exit dispc_uninit_platform_driver(void)
+void dispc_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omap_dispchw_driver);
 }
index f83e7b030249dd49727e0f081b732cf28a62ee9f..a06e7558280fe757dac874488916a3405bfe97f1 100644 (file)
@@ -731,7 +731,7 @@ static void dpi_init_output(struct platform_device *pdev)
        omapdss_register_output(out);
 }
 
-static void __exit dpi_uninit_output(struct platform_device *pdev)
+static void dpi_uninit_output(struct platform_device *pdev)
 {
        struct dpi_data *dpi = dpi_get_data_from_pdev(pdev);
        struct omap_dss_device *out = &dpi->output;
@@ -775,7 +775,7 @@ static void dpi_init_output_port(struct platform_device *pdev,
        omapdss_register_output(out);
 }
 
-static void __exit dpi_uninit_output_port(struct device_node *port)
+static void dpi_uninit_output_port(struct device_node *port)
 {
        struct dpi_data *dpi = port->data;
        struct omap_dss_device *out = &dpi->output;
@@ -802,7 +802,7 @@ static int omap_dpi_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int __exit omap_dpi_remove(struct platform_device *pdev)
+static int omap_dpi_remove(struct platform_device *pdev)
 {
        dpi_uninit_output(pdev);
 
@@ -811,7 +811,7 @@ static int __exit omap_dpi_remove(struct platform_device *pdev)
 
 static struct platform_driver omap_dpi_driver = {
        .probe          = omap_dpi_probe,
-       .remove         = __exit_p(omap_dpi_remove),
+       .remove         = omap_dpi_remove,
        .driver         = {
                .name   = "omapdss_dpi",
                .suppress_bind_attrs = true,
@@ -823,12 +823,12 @@ int __init dpi_init_platform_driver(void)
        return platform_driver_register(&omap_dpi_driver);
 }
 
-void __exit dpi_uninit_platform_driver(void)
+void dpi_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omap_dpi_driver);
 }
 
-int __init dpi_init_port(struct platform_device *pdev, struct device_node *port)
+int dpi_init_port(struct platform_device *pdev, struct device_node *port)
 {
        struct dpi_data *dpi;
        struct device_node *ep;
@@ -870,7 +870,7 @@ err_datalines:
        return r;
 }
 
-void __exit dpi_uninit_port(struct device_node *port)
+void dpi_uninit_port(struct device_node *port)
 {
        struct dpi_data *dpi = port->data;
 
index 28b0bc11669d59d42c16a7e51d731af87dc7a2f3..c4c27c09c62f8e2eaed2d95bc100116c25f70272 100644 (file)
@@ -5484,7 +5484,7 @@ err_runtime_get:
        return r;
 }
 
-static int __exit omap_dsihw_remove(struct platform_device *dsidev)
+static int omap_dsihw_remove(struct platform_device *dsidev)
 {
        struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
 
@@ -5570,7 +5570,7 @@ static const struct of_device_id dsi_of_match[] = {
 
 static struct platform_driver omap_dsihw_driver = {
        .probe          = omap_dsihw_probe,
-       .remove         = __exit_p(omap_dsihw_remove),
+       .remove         = omap_dsihw_remove,
        .driver         = {
                .name   = "omapdss_dsi",
                .pm     = &dsi_pm_ops,
@@ -5584,7 +5584,7 @@ int __init dsi_init_platform_driver(void)
        return platform_driver_register(&omap_dsihw_driver);
 }
 
-void __exit dsi_uninit_platform_driver(void)
+void dsi_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omap_dsihw_driver);
 }
index 28e6ff053b476fb44756dd13bf6a62286001560b..3397cbf484b0c175d10b347b2c682b7cefb10f92 100644 (file)
@@ -819,7 +819,7 @@ static const enum omap_display_type dra7xx_ports[] = {
        OMAP_DISPLAY_TYPE_DPI,
 };
 
-static const struct dss_features omap24xx_dss_feats __initconst = {
+static const struct dss_features omap24xx_dss_feats = {
        /*
         * fck div max is really 16, but the divider range has gaps. The range
         * 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 = {
        .num_ports              =       ARRAY_SIZE(omap2plus_ports),
 };
 
-static const struct dss_features omap34xx_dss_feats __initconst = {
+static const struct dss_features omap34xx_dss_feats = {
        .fck_div_max            =       16,
        .dss_fck_multiplier     =       2,
        .parent_clk_name        =       "dpll4_ck",
@@ -841,7 +841,7 @@ static const struct dss_features omap34xx_dss_feats __initconst = {
        .num_ports              =       ARRAY_SIZE(omap34xx_ports),
 };
 
-static const struct dss_features omap3630_dss_feats __initconst = {
+static const struct dss_features omap3630_dss_feats = {
        .fck_div_max            =       32,
        .dss_fck_multiplier     =       1,
        .parent_clk_name        =       "dpll4_ck",
@@ -850,7 +850,7 @@ static const struct dss_features omap3630_dss_feats __initconst = {
        .num_ports              =       ARRAY_SIZE(omap2plus_ports),
 };
 
-static const struct dss_features omap44xx_dss_feats __initconst = {
+static const struct dss_features omap44xx_dss_feats = {
        .fck_div_max            =       32,
        .dss_fck_multiplier     =       1,
        .parent_clk_name        =       "dpll_per_x2_ck",
@@ -859,7 +859,7 @@ static const struct dss_features omap44xx_dss_feats __initconst = {
        .num_ports              =       ARRAY_SIZE(omap2plus_ports),
 };
 
-static const struct dss_features omap54xx_dss_feats __initconst = {
+static const struct dss_features omap54xx_dss_feats = {
        .fck_div_max            =       64,
        .dss_fck_multiplier     =       1,
        .parent_clk_name        =       "dpll_per_x2_ck",
@@ -868,7 +868,7 @@ static const struct dss_features omap54xx_dss_feats __initconst = {
        .num_ports              =       ARRAY_SIZE(omap2plus_ports),
 };
 
-static const struct dss_features am43xx_dss_feats __initconst = {
+static const struct dss_features am43xx_dss_feats = {
        .fck_div_max            =       0,
        .dss_fck_multiplier     =       0,
        .parent_clk_name        =       NULL,
@@ -877,7 +877,7 @@ static const struct dss_features am43xx_dss_feats __initconst = {
        .num_ports              =       ARRAY_SIZE(omap2plus_ports),
 };
 
-static const struct dss_features dra7xx_dss_feats __initconst = {
+static const struct dss_features dra7xx_dss_feats = {
        .fck_div_max            =       64,
        .dss_fck_multiplier     =       1,
        .parent_clk_name        =       "dpll_per_x2_ck",
@@ -886,7 +886,7 @@ static const struct dss_features dra7xx_dss_feats __initconst = {
        .num_ports              =       ARRAY_SIZE(dra7xx_ports),
 };
 
-static int __init dss_init_features(struct platform_device *pdev)
+static int dss_init_features(struct platform_device *pdev)
 {
        const struct dss_features *src;
        struct dss_features *dst;
@@ -940,7 +940,7 @@ static int __init dss_init_features(struct platform_device *pdev)
        return 0;
 }
 
-static int __init dss_init_ports(struct platform_device *pdev)
+static int dss_init_ports(struct platform_device *pdev)
 {
        struct device_node *parent = pdev->dev.of_node;
        struct device_node *port;
@@ -984,7 +984,7 @@ static int __init dss_init_ports(struct platform_device *pdev)
        return 0;
 }
 
-static void __exit dss_uninit_ports(struct platform_device *pdev)
+static void dss_uninit_ports(struct platform_device *pdev)
 {
        struct device_node *parent = pdev->dev.of_node;
        struct device_node *port;
@@ -1088,7 +1088,7 @@ static int dss_video_pll_probe(struct platform_device *pdev)
 }
 
 /* DSS HW IP initialisation */
-static int __init omap_dsshw_probe(struct platform_device *pdev)
+static int omap_dsshw_probe(struct platform_device *pdev)
 {
        struct resource *dss_mem;
        u32 rev;
@@ -1182,7 +1182,7 @@ err_setup_clocks:
        return r;
 }
 
-static int __exit omap_dsshw_remove(struct platform_device *pdev)
+static int omap_dsshw_remove(struct platform_device *pdev)
 {
        dss_initialized = false;
 
@@ -1243,7 +1243,7 @@ static const struct of_device_id dss_of_match[] = {
 MODULE_DEVICE_TABLE(of, dss_of_match);
 
 static struct platform_driver omap_dsshw_driver = {
-       .remove         = __exit_p(omap_dsshw_remove),
+       .remove         = omap_dsshw_remove,
        .driver         = {
                .name   = "omapdss_dss",
                .pm     = &dss_pm_ops,
index 4812eee2622a5dcdb07285533b7758db7cb5b013..2406bcdb831a3db1f20bb25f927bfee6fbaed241 100644 (file)
@@ -309,18 +309,18 @@ bool dss_div_calc(unsigned long pck, unsigned long fck_min,
 
 /* SDI */
 int sdi_init_platform_driver(void) __init;
-void sdi_uninit_platform_driver(void) __exit;
+void sdi_uninit_platform_driver(void);
 
 #ifdef CONFIG_OMAP2_DSS_SDI
-int sdi_init_port(struct platform_device *pdev, struct device_node *port) __init;
-void sdi_uninit_port(struct device_node *port) __exit;
+int sdi_init_port(struct platform_device *pdev, struct device_node *port);
+void sdi_uninit_port(struct device_node *port);
 #else
-static inline int __init sdi_init_port(struct platform_device *pdev,
+static inline int sdi_init_port(struct platform_device *pdev,
                struct device_node *port)
 {
        return 0;
 }
-static inline void __exit sdi_uninit_port(struct device_node *port)
+static inline void sdi_uninit_port(struct device_node *port)
 {
 }
 #endif
@@ -333,7 +333,7 @@ struct dentry;
 struct file_operations;
 
 int dsi_init_platform_driver(void) __init;
-void dsi_uninit_platform_driver(void) __exit;
+void dsi_uninit_platform_driver(void);
 
 void dsi_dump_clocks(struct seq_file *s);
 
@@ -350,25 +350,25 @@ static inline u8 dsi_get_pixel_size(enum omap_dss_dsi_pixel_format fmt)
 
 /* DPI */
 int dpi_init_platform_driver(void) __init;
-void dpi_uninit_platform_driver(void) __exit;
+void dpi_uninit_platform_driver(void);
 
 #ifdef CONFIG_OMAP2_DSS_DPI
-int dpi_init_port(struct platform_device *pdev, struct device_node *port) __init;
-void dpi_uninit_port(struct device_node *port) __exit;
+int dpi_init_port(struct platform_device *pdev, struct device_node *port);
+void dpi_uninit_port(struct device_node *port);
 #else
-static inline int __init dpi_init_port(struct platform_device *pdev,
+static inline int dpi_init_port(struct platform_device *pdev,
                struct device_node *port)
 {
        return 0;
 }
-static inline void __exit dpi_uninit_port(struct device_node *port)
+static inline void dpi_uninit_port(struct device_node *port)
 {
 }
 #endif
 
 /* DISPC */
 int dispc_init_platform_driver(void) __init;
-void dispc_uninit_platform_driver(void) __exit;
+void dispc_uninit_platform_driver(void);
 void dispc_dump_clocks(struct seq_file *s);
 
 void dispc_enable_sidle(void);
@@ -418,18 +418,18 @@ int dispc_wb_setup(const struct omap_dss_writeback_info *wi,
 
 /* VENC */
 int venc_init_platform_driver(void) __init;
-void venc_uninit_platform_driver(void) __exit;
+void venc_uninit_platform_driver(void);
 
 /* HDMI */
 int hdmi4_init_platform_driver(void) __init;
-void hdmi4_uninit_platform_driver(void) __exit;
+void hdmi4_uninit_platform_driver(void);
 
 int hdmi5_init_platform_driver(void) __init;
-void hdmi5_uninit_platform_driver(void) __exit;
+void hdmi5_uninit_platform_driver(void);
 
 /* RFBI */
 int rfbi_init_platform_driver(void) __init;
-void rfbi_uninit_platform_driver(void) __exit;
+void rfbi_uninit_platform_driver(void);
 
 
 #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
index 916d47978f4118f95e76b337e2fb1df8d0298f1c..31deebbc32dc50d6da637b09dec91ba3e986e826 100644 (file)
@@ -713,7 +713,7 @@ err:
        return r;
 }
 
-static int __exit omapdss_hdmihw_remove(struct platform_device *pdev)
+static int omapdss_hdmihw_remove(struct platform_device *pdev)
 {
        if (hdmi.audio_pdev)
                platform_device_unregister(hdmi.audio_pdev);
@@ -757,7 +757,7 @@ static const struct of_device_id hdmi_of_match[] = {
 
 static struct platform_driver omapdss_hdmihw_driver = {
        .probe          = omapdss_hdmihw_probe,
-       .remove         = __exit_p(omapdss_hdmihw_remove),
+       .remove         = omapdss_hdmihw_remove,
        .driver         = {
                .name   = "omapdss_hdmi",
                .pm     = &hdmi_pm_ops,
@@ -771,7 +771,7 @@ int __init hdmi4_init_platform_driver(void)
        return platform_driver_register(&omapdss_hdmihw_driver);
 }
 
-void __exit hdmi4_uninit_platform_driver(void)
+void hdmi4_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omapdss_hdmihw_driver);
 }
index 3f0b34a7031adc85bea15eb87fde380645d5f498..a57f5e8f9aea43be29220a437ca463e9737fb10d 100644 (file)
@@ -748,7 +748,7 @@ err:
        return r;
 }
 
-static int __exit omapdss_hdmihw_remove(struct platform_device *pdev)
+static int omapdss_hdmihw_remove(struct platform_device *pdev)
 {
        if (hdmi.audio_pdev)
                platform_device_unregister(hdmi.audio_pdev);
@@ -793,7 +793,7 @@ static const struct of_device_id hdmi_of_match[] = {
 
 static struct platform_driver omapdss_hdmihw_driver = {
        .probe          = omapdss_hdmihw_probe,
-       .remove         = __exit_p(omapdss_hdmihw_remove),
+       .remove         = omapdss_hdmihw_remove,
        .driver         = {
                .name   = "omapdss_hdmi5",
                .pm     = &hdmi_pm_ops,
@@ -807,7 +807,7 @@ int __init hdmi5_init_platform_driver(void)
        return platform_driver_register(&omapdss_hdmihw_driver);
 }
 
-void __exit hdmi5_uninit_platform_driver(void)
+void hdmi5_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omapdss_hdmihw_driver);
 }
index 065effca9236b2845658b8ed007143fc4f1b2367..8ec810bce0b66f539a6f2af26f55f366b06340b4 100644 (file)
@@ -938,7 +938,7 @@ static void rfbi_init_output(struct platform_device *pdev)
        omapdss_register_output(out);
 }
 
-static void __exit rfbi_uninit_output(struct platform_device *pdev)
+static void rfbi_uninit_output(struct platform_device *pdev)
 {
        struct omap_dss_device *out = &rfbi.output;
 
@@ -1005,7 +1005,7 @@ err_runtime_get:
        return r;
 }
 
-static int __exit omap_rfbihw_remove(struct platform_device *pdev)
+static int omap_rfbihw_remove(struct platform_device *pdev)
 {
        rfbi_uninit_output(pdev);
 
@@ -1039,7 +1039,7 @@ static const struct dev_pm_ops rfbi_pm_ops = {
 
 static struct platform_driver omap_rfbihw_driver = {
        .probe          = omap_rfbihw_probe,
-       .remove         = __exit_p(omap_rfbihw_remove),
+       .remove         = omap_rfbihw_remove,
        .driver         = {
                .name   = "omapdss_rfbi",
                .pm     = &rfbi_pm_ops,
@@ -1052,7 +1052,7 @@ int __init rfbi_init_platform_driver(void)
        return platform_driver_register(&omap_rfbihw_driver);
 }
 
-void __exit rfbi_uninit_platform_driver(void)
+void rfbi_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omap_rfbihw_driver);
 }
index 5c2ccab5a958f6d41a68cbab3a48e78e8514cbda..a873118f1e0ec7929f986ae59372c0591aaaec2e 100644 (file)
@@ -350,7 +350,7 @@ static void sdi_init_output(struct platform_device *pdev)
        omapdss_register_output(out);
 }
 
-static void __exit sdi_uninit_output(struct platform_device *pdev)
+static void sdi_uninit_output(struct platform_device *pdev)
 {
        struct omap_dss_device *out = &sdi.output;
 
@@ -366,7 +366,7 @@ static int omap_sdi_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int __exit omap_sdi_remove(struct platform_device *pdev)
+static int omap_sdi_remove(struct platform_device *pdev)
 {
        sdi_uninit_output(pdev);
 
@@ -375,7 +375,7 @@ static int __exit omap_sdi_remove(struct platform_device *pdev)
 
 static struct platform_driver omap_sdi_driver = {
        .probe          = omap_sdi_probe,
-       .remove         = __exit_p(omap_sdi_remove),
+       .remove         = omap_sdi_remove,
        .driver         = {
                .name   = "omapdss_sdi",
                .suppress_bind_attrs = true,
@@ -387,12 +387,12 @@ int __init sdi_init_platform_driver(void)
        return platform_driver_register(&omap_sdi_driver);
 }
 
-void __exit sdi_uninit_platform_driver(void)
+void sdi_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omap_sdi_driver);
 }
 
-int __init sdi_init_port(struct platform_device *pdev, struct device_node *port)
+int sdi_init_port(struct platform_device *pdev, struct device_node *port)
 {
        struct device_node *ep;
        u32 datapairs;
@@ -426,7 +426,7 @@ err_datapairs:
        return r;
 }
 
-void __exit sdi_uninit_port(struct device_node *port)
+void sdi_uninit_port(struct device_node *port)
 {
        if (!sdi.port_initialized)
                return;
index ef7fd925e7f290645b69fbd6ec1538fa8602ee22..e7fad0e19d4315a7f4aec8f6a1ae8421ceba3e1e 100644 (file)
@@ -802,7 +802,7 @@ static void venc_init_output(struct platform_device *pdev)
        omapdss_register_output(out);
 }
 
-static void __exit venc_uninit_output(struct platform_device *pdev)
+static void venc_uninit_output(struct platform_device *pdev)
 {
        struct omap_dss_device *out = &venc.output;
 
@@ -912,7 +912,7 @@ err_runtime_get:
        return r;
 }
 
-static int __exit omap_venchw_remove(struct platform_device *pdev)
+static int omap_venchw_remove(struct platform_device *pdev)
 {
        venc_uninit_output(pdev);
 
@@ -960,7 +960,7 @@ static const struct of_device_id venc_of_match[] = {
 
 static struct platform_driver omap_venchw_driver = {
        .probe          = omap_venchw_probe,
-       .remove         = __exit_p(omap_venchw_remove),
+       .remove         = omap_venchw_remove,
        .driver         = {
                .name   = "omapdss_venc",
                .pm     = &venc_pm_ops,
@@ -974,7 +974,7 @@ int __init venc_init_platform_driver(void)
        return platform_driver_register(&omap_venchw_driver);
 }
 
-void __exit venc_uninit_platform_driver(void)
+void venc_uninit_platform_driver(void)
 {
        platform_driver_unregister(&omap_venchw_driver);
 }