mirror of
https://github.com/torvalds/linux.git
synced 2024-11-18 18:11:56 +00:00
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>
This commit is contained in:
parent
f5a1a1f8e4
commit
ede9269572
@ -3692,7 +3692,7 @@ static void _omap_dispc_initial_config(void)
|
|||||||
dispc_init_mflag();
|
dispc_init_mflag();
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct dispc_features omap24xx_dispc_feats __initconst = {
|
static const struct dispc_features omap24xx_dispc_feats = {
|
||||||
.sw_start = 5,
|
.sw_start = 5,
|
||||||
.fp_start = 15,
|
.fp_start = 15,
|
||||||
.bp_start = 27,
|
.bp_start = 27,
|
||||||
@ -3711,7 +3711,7 @@ static const struct dispc_features omap24xx_dispc_feats __initconst = {
|
|||||||
.set_max_preload = false,
|
.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,
|
.sw_start = 5,
|
||||||
.fp_start = 15,
|
.fp_start = 15,
|
||||||
.bp_start = 27,
|
.bp_start = 27,
|
||||||
@ -3731,7 +3731,7 @@ static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
|
|||||||
.set_max_preload = false,
|
.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,
|
.sw_start = 7,
|
||||||
.fp_start = 19,
|
.fp_start = 19,
|
||||||
.bp_start = 31,
|
.bp_start = 31,
|
||||||
@ -3751,7 +3751,7 @@ static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
|
|||||||
.set_max_preload = false,
|
.set_max_preload = false,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct dispc_features omap44xx_dispc_feats __initconst = {
|
static const struct dispc_features omap44xx_dispc_feats = {
|
||||||
.sw_start = 7,
|
.sw_start = 7,
|
||||||
.fp_start = 19,
|
.fp_start = 19,
|
||||||
.bp_start = 31,
|
.bp_start = 31,
|
||||||
@ -3771,7 +3771,7 @@ static const struct dispc_features omap44xx_dispc_feats __initconst = {
|
|||||||
.set_max_preload = true,
|
.set_max_preload = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct dispc_features omap54xx_dispc_feats __initconst = {
|
static const struct dispc_features omap54xx_dispc_feats = {
|
||||||
.sw_start = 7,
|
.sw_start = 7,
|
||||||
.fp_start = 19,
|
.fp_start = 19,
|
||||||
.bp_start = 31,
|
.bp_start = 31,
|
||||||
@ -3792,7 +3792,7 @@ static const struct dispc_features omap54xx_dispc_feats __initconst = {
|
|||||||
.set_max_preload = true,
|
.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;
|
const struct dispc_features *src;
|
||||||
struct dispc_features *dst;
|
struct dispc_features *dst;
|
||||||
@ -3882,7 +3882,7 @@ void dispc_free_irq(void *dev_id)
|
|||||||
EXPORT_SYMBOL(dispc_free_irq);
|
EXPORT_SYMBOL(dispc_free_irq);
|
||||||
|
|
||||||
/* DISPC HW IP initialisation */
|
/* 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;
|
u32 rev;
|
||||||
int r = 0;
|
int r = 0;
|
||||||
@ -3955,7 +3955,7 @@ err_runtime_get:
|
|||||||
return r;
|
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);
|
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 = {
|
static struct platform_driver omap_dispchw_driver = {
|
||||||
.remove = __exit_p(omap_dispchw_remove),
|
.remove = omap_dispchw_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_dispc",
|
.name = "omapdss_dispc",
|
||||||
.pm = &dispc_pm_ops,
|
.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);
|
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);
|
platform_driver_unregister(&omap_dispchw_driver);
|
||||||
}
|
}
|
||||||
|
@ -731,7 +731,7 @@ static void dpi_init_output(struct platform_device *pdev)
|
|||||||
omapdss_register_output(out);
|
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 dpi_data *dpi = dpi_get_data_from_pdev(pdev);
|
||||||
struct omap_dss_device *out = &dpi->output;
|
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);
|
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 dpi_data *dpi = port->data;
|
||||||
struct omap_dss_device *out = &dpi->output;
|
struct omap_dss_device *out = &dpi->output;
|
||||||
@ -802,7 +802,7 @@ static int omap_dpi_probe(struct platform_device *pdev)
|
|||||||
return 0;
|
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);
|
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 = {
|
static struct platform_driver omap_dpi_driver = {
|
||||||
.probe = omap_dpi_probe,
|
.probe = omap_dpi_probe,
|
||||||
.remove = __exit_p(omap_dpi_remove),
|
.remove = omap_dpi_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_dpi",
|
.name = "omapdss_dpi",
|
||||||
.suppress_bind_attrs = true,
|
.suppress_bind_attrs = true,
|
||||||
@ -823,12 +823,12 @@ int __init dpi_init_platform_driver(void)
|
|||||||
return platform_driver_register(&omap_dpi_driver);
|
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);
|
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 dpi_data *dpi;
|
||||||
struct device_node *ep;
|
struct device_node *ep;
|
||||||
@ -870,7 +870,7 @@ err_datalines:
|
|||||||
return r;
|
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;
|
struct dpi_data *dpi = port->data;
|
||||||
|
|
||||||
|
@ -5484,7 +5484,7 @@ err_runtime_get:
|
|||||||
return r;
|
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);
|
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 = {
|
static struct platform_driver omap_dsihw_driver = {
|
||||||
.probe = omap_dsihw_probe,
|
.probe = omap_dsihw_probe,
|
||||||
.remove = __exit_p(omap_dsihw_remove),
|
.remove = omap_dsihw_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_dsi",
|
.name = "omapdss_dsi",
|
||||||
.pm = &dsi_pm_ops,
|
.pm = &dsi_pm_ops,
|
||||||
@ -5584,7 +5584,7 @@ int __init dsi_init_platform_driver(void)
|
|||||||
return platform_driver_register(&omap_dsihw_driver);
|
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);
|
platform_driver_unregister(&omap_dsihw_driver);
|
||||||
}
|
}
|
||||||
|
@ -819,7 +819,7 @@ static const enum omap_display_type dra7xx_ports[] = {
|
|||||||
OMAP_DISPLAY_TYPE_DPI,
|
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
|
* 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.
|
* 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),
|
.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,
|
.fck_div_max = 16,
|
||||||
.dss_fck_multiplier = 2,
|
.dss_fck_multiplier = 2,
|
||||||
.parent_clk_name = "dpll4_ck",
|
.parent_clk_name = "dpll4_ck",
|
||||||
@ -841,7 +841,7 @@ static const struct dss_features omap34xx_dss_feats __initconst = {
|
|||||||
.num_ports = ARRAY_SIZE(omap34xx_ports),
|
.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,
|
.fck_div_max = 32,
|
||||||
.dss_fck_multiplier = 1,
|
.dss_fck_multiplier = 1,
|
||||||
.parent_clk_name = "dpll4_ck",
|
.parent_clk_name = "dpll4_ck",
|
||||||
@ -850,7 +850,7 @@ static const struct dss_features omap3630_dss_feats __initconst = {
|
|||||||
.num_ports = ARRAY_SIZE(omap2plus_ports),
|
.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,
|
.fck_div_max = 32,
|
||||||
.dss_fck_multiplier = 1,
|
.dss_fck_multiplier = 1,
|
||||||
.parent_clk_name = "dpll_per_x2_ck",
|
.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),
|
.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,
|
.fck_div_max = 64,
|
||||||
.dss_fck_multiplier = 1,
|
.dss_fck_multiplier = 1,
|
||||||
.parent_clk_name = "dpll_per_x2_ck",
|
.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),
|
.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,
|
.fck_div_max = 0,
|
||||||
.dss_fck_multiplier = 0,
|
.dss_fck_multiplier = 0,
|
||||||
.parent_clk_name = NULL,
|
.parent_clk_name = NULL,
|
||||||
@ -877,7 +877,7 @@ static const struct dss_features am43xx_dss_feats __initconst = {
|
|||||||
.num_ports = ARRAY_SIZE(omap2plus_ports),
|
.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,
|
.fck_div_max = 64,
|
||||||
.dss_fck_multiplier = 1,
|
.dss_fck_multiplier = 1,
|
||||||
.parent_clk_name = "dpll_per_x2_ck",
|
.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),
|
.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;
|
const struct dss_features *src;
|
||||||
struct dss_features *dst;
|
struct dss_features *dst;
|
||||||
@ -940,7 +940,7 @@ static int __init dss_init_features(struct platform_device *pdev)
|
|||||||
return 0;
|
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 *parent = pdev->dev.of_node;
|
||||||
struct device_node *port;
|
struct device_node *port;
|
||||||
@ -984,7 +984,7 @@ static int __init dss_init_ports(struct platform_device *pdev)
|
|||||||
return 0;
|
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 *parent = pdev->dev.of_node;
|
||||||
struct device_node *port;
|
struct device_node *port;
|
||||||
@ -1088,7 +1088,7 @@ static int dss_video_pll_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* DSS HW IP initialisation */
|
/* 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;
|
struct resource *dss_mem;
|
||||||
u32 rev;
|
u32 rev;
|
||||||
@ -1182,7 +1182,7 @@ err_setup_clocks:
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __exit omap_dsshw_remove(struct platform_device *pdev)
|
static int omap_dsshw_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
dss_initialized = false;
|
dss_initialized = false;
|
||||||
|
|
||||||
@ -1243,7 +1243,7 @@ static const struct of_device_id dss_of_match[] = {
|
|||||||
MODULE_DEVICE_TABLE(of, dss_of_match);
|
MODULE_DEVICE_TABLE(of, dss_of_match);
|
||||||
|
|
||||||
static struct platform_driver omap_dsshw_driver = {
|
static struct platform_driver omap_dsshw_driver = {
|
||||||
.remove = __exit_p(omap_dsshw_remove),
|
.remove = omap_dsshw_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_dss",
|
.name = "omapdss_dss",
|
||||||
.pm = &dss_pm_ops,
|
.pm = &dss_pm_ops,
|
||||||
|
@ -309,18 +309,18 @@ bool dss_div_calc(unsigned long pck, unsigned long fck_min,
|
|||||||
|
|
||||||
/* SDI */
|
/* SDI */
|
||||||
int sdi_init_platform_driver(void) __init;
|
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
|
#ifdef CONFIG_OMAP2_DSS_SDI
|
||||||
int sdi_init_port(struct platform_device *pdev, struct device_node *port) __init;
|
int sdi_init_port(struct platform_device *pdev, struct device_node *port);
|
||||||
void sdi_uninit_port(struct device_node *port) __exit;
|
void sdi_uninit_port(struct device_node *port);
|
||||||
#else
|
#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)
|
struct device_node *port)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static inline void __exit sdi_uninit_port(struct device_node *port)
|
static inline void sdi_uninit_port(struct device_node *port)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -333,7 +333,7 @@ struct dentry;
|
|||||||
struct file_operations;
|
struct file_operations;
|
||||||
|
|
||||||
int dsi_init_platform_driver(void) __init;
|
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);
|
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 */
|
/* DPI */
|
||||||
int dpi_init_platform_driver(void) __init;
|
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
|
#ifdef CONFIG_OMAP2_DSS_DPI
|
||||||
int dpi_init_port(struct platform_device *pdev, struct device_node *port) __init;
|
int dpi_init_port(struct platform_device *pdev, struct device_node *port);
|
||||||
void dpi_uninit_port(struct device_node *port) __exit;
|
void dpi_uninit_port(struct device_node *port);
|
||||||
#else
|
#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)
|
struct device_node *port)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static inline void __exit dpi_uninit_port(struct device_node *port)
|
static inline void dpi_uninit_port(struct device_node *port)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* DISPC */
|
/* DISPC */
|
||||||
int dispc_init_platform_driver(void) __init;
|
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_dump_clocks(struct seq_file *s);
|
||||||
|
|
||||||
void dispc_enable_sidle(void);
|
void dispc_enable_sidle(void);
|
||||||
@ -418,18 +418,18 @@ int dispc_wb_setup(const struct omap_dss_writeback_info *wi,
|
|||||||
|
|
||||||
/* VENC */
|
/* VENC */
|
||||||
int venc_init_platform_driver(void) __init;
|
int venc_init_platform_driver(void) __init;
|
||||||
void venc_uninit_platform_driver(void) __exit;
|
void venc_uninit_platform_driver(void);
|
||||||
|
|
||||||
/* HDMI */
|
/* HDMI */
|
||||||
int hdmi4_init_platform_driver(void) __init;
|
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;
|
int hdmi5_init_platform_driver(void) __init;
|
||||||
void hdmi5_uninit_platform_driver(void) __exit;
|
void hdmi5_uninit_platform_driver(void);
|
||||||
|
|
||||||
/* RFBI */
|
/* RFBI */
|
||||||
int rfbi_init_platform_driver(void) __init;
|
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
|
#ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
|
||||||
|
@ -713,7 +713,7 @@ err:
|
|||||||
return r;
|
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)
|
if (hdmi.audio_pdev)
|
||||||
platform_device_unregister(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 = {
|
static struct platform_driver omapdss_hdmihw_driver = {
|
||||||
.probe = omapdss_hdmihw_probe,
|
.probe = omapdss_hdmihw_probe,
|
||||||
.remove = __exit_p(omapdss_hdmihw_remove),
|
.remove = omapdss_hdmihw_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_hdmi",
|
.name = "omapdss_hdmi",
|
||||||
.pm = &hdmi_pm_ops,
|
.pm = &hdmi_pm_ops,
|
||||||
@ -771,7 +771,7 @@ int __init hdmi4_init_platform_driver(void)
|
|||||||
return platform_driver_register(&omapdss_hdmihw_driver);
|
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);
|
platform_driver_unregister(&omapdss_hdmihw_driver);
|
||||||
}
|
}
|
||||||
|
@ -748,7 +748,7 @@ err:
|
|||||||
return r;
|
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)
|
if (hdmi.audio_pdev)
|
||||||
platform_device_unregister(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 = {
|
static struct platform_driver omapdss_hdmihw_driver = {
|
||||||
.probe = omapdss_hdmihw_probe,
|
.probe = omapdss_hdmihw_probe,
|
||||||
.remove = __exit_p(omapdss_hdmihw_remove),
|
.remove = omapdss_hdmihw_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_hdmi5",
|
.name = "omapdss_hdmi5",
|
||||||
.pm = &hdmi_pm_ops,
|
.pm = &hdmi_pm_ops,
|
||||||
@ -807,7 +807,7 @@ int __init hdmi5_init_platform_driver(void)
|
|||||||
return platform_driver_register(&omapdss_hdmihw_driver);
|
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);
|
platform_driver_unregister(&omapdss_hdmihw_driver);
|
||||||
}
|
}
|
||||||
|
@ -938,7 +938,7 @@ static void rfbi_init_output(struct platform_device *pdev)
|
|||||||
omapdss_register_output(out);
|
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;
|
struct omap_dss_device *out = &rfbi.output;
|
||||||
|
|
||||||
@ -1005,7 +1005,7 @@ err_runtime_get:
|
|||||||
return r;
|
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);
|
rfbi_uninit_output(pdev);
|
||||||
|
|
||||||
@ -1039,7 +1039,7 @@ static const struct dev_pm_ops rfbi_pm_ops = {
|
|||||||
|
|
||||||
static struct platform_driver omap_rfbihw_driver = {
|
static struct platform_driver omap_rfbihw_driver = {
|
||||||
.probe = omap_rfbihw_probe,
|
.probe = omap_rfbihw_probe,
|
||||||
.remove = __exit_p(omap_rfbihw_remove),
|
.remove = omap_rfbihw_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_rfbi",
|
.name = "omapdss_rfbi",
|
||||||
.pm = &rfbi_pm_ops,
|
.pm = &rfbi_pm_ops,
|
||||||
@ -1052,7 +1052,7 @@ int __init rfbi_init_platform_driver(void)
|
|||||||
return platform_driver_register(&omap_rfbihw_driver);
|
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);
|
platform_driver_unregister(&omap_rfbihw_driver);
|
||||||
}
|
}
|
||||||
|
@ -350,7 +350,7 @@ static void sdi_init_output(struct platform_device *pdev)
|
|||||||
omapdss_register_output(out);
|
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;
|
struct omap_dss_device *out = &sdi.output;
|
||||||
|
|
||||||
@ -366,7 +366,7 @@ static int omap_sdi_probe(struct platform_device *pdev)
|
|||||||
return 0;
|
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);
|
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 = {
|
static struct platform_driver omap_sdi_driver = {
|
||||||
.probe = omap_sdi_probe,
|
.probe = omap_sdi_probe,
|
||||||
.remove = __exit_p(omap_sdi_remove),
|
.remove = omap_sdi_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_sdi",
|
.name = "omapdss_sdi",
|
||||||
.suppress_bind_attrs = true,
|
.suppress_bind_attrs = true,
|
||||||
@ -387,12 +387,12 @@ int __init sdi_init_platform_driver(void)
|
|||||||
return platform_driver_register(&omap_sdi_driver);
|
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);
|
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;
|
struct device_node *ep;
|
||||||
u32 datapairs;
|
u32 datapairs;
|
||||||
@ -426,7 +426,7 @@ err_datapairs:
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __exit sdi_uninit_port(struct device_node *port)
|
void sdi_uninit_port(struct device_node *port)
|
||||||
{
|
{
|
||||||
if (!sdi.port_initialized)
|
if (!sdi.port_initialized)
|
||||||
return;
|
return;
|
||||||
|
@ -802,7 +802,7 @@ static void venc_init_output(struct platform_device *pdev)
|
|||||||
omapdss_register_output(out);
|
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;
|
struct omap_dss_device *out = &venc.output;
|
||||||
|
|
||||||
@ -912,7 +912,7 @@ err_runtime_get:
|
|||||||
return r;
|
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);
|
venc_uninit_output(pdev);
|
||||||
|
|
||||||
@ -960,7 +960,7 @@ static const struct of_device_id venc_of_match[] = {
|
|||||||
|
|
||||||
static struct platform_driver omap_venchw_driver = {
|
static struct platform_driver omap_venchw_driver = {
|
||||||
.probe = omap_venchw_probe,
|
.probe = omap_venchw_probe,
|
||||||
.remove = __exit_p(omap_venchw_remove),
|
.remove = omap_venchw_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "omapdss_venc",
|
.name = "omapdss_venc",
|
||||||
.pm = &venc_pm_ops,
|
.pm = &venc_pm_ops,
|
||||||
@ -974,7 +974,7 @@ int __init venc_init_platform_driver(void)
|
|||||||
return platform_driver_register(&omap_venchw_driver);
|
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);
|
platform_driver_unregister(&omap_venchw_driver);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user