aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/rfbi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/omap2/dss/rfbi.c')
-rw-r--r--drivers/video/omap2/dss/rfbi.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/video/omap2/dss/rfbi.c b/drivers/video/omap2/dss/rfbi.c
index 58da146254ee..4c0a6c97d62b 100644
--- a/drivers/video/omap2/dss/rfbi.c
+++ b/drivers/video/omap2/dss/rfbi.c
@@ -930,10 +930,11 @@ int rfbi_init_display(struct omap_dss_device *dssdev)
930/* RFBI HW IP initialisation */ 930/* RFBI HW IP initialisation */
931static int __init omap_rfbihw_probe(struct platform_device *pdev) 931static int __init omap_rfbihw_probe(struct platform_device *pdev)
932{ 932{
933 struct omap_dss_board_info *pdata = pdev->dev.platform_data;
933 u32 rev; 934 u32 rev;
934 struct resource *rfbi_mem; 935 struct resource *rfbi_mem;
935 struct clk *clk; 936 struct clk *clk;
936 int r; 937 int r, i;
937 938
938 rfbi.pdev = pdev; 939 rfbi.pdev = pdev;
939 940
@@ -978,6 +979,18 @@ static int __init omap_rfbihw_probe(struct platform_device *pdev)
978 979
979 dss_debugfs_create_file("rfbi", rfbi_dump_regs); 980 dss_debugfs_create_file("rfbi", rfbi_dump_regs);
980 981
982 for (i = 0; i < pdata->num_devices; ++i) {
983 struct omap_dss_device *dssdev = pdata->devices[i];
984
985 if (dssdev->type != OMAP_DISPLAY_TYPE_DBI)
986 continue;
987
988 r = omap_dss_register_device(dssdev, &pdev->dev, i);
989 if (r)
990 DSSERR("device %s register failed: %d\n",
991 dssdev->name, r);
992 }
993
981 return 0; 994 return 0;
982 995
983err_runtime_get: 996err_runtime_get:
@@ -987,6 +1000,7 @@ err_runtime_get:
987 1000
988static int __exit omap_rfbihw_remove(struct platform_device *pdev) 1001static int __exit omap_rfbihw_remove(struct platform_device *pdev)
989{ 1002{
1003 omap_dss_unregister_child_devices(&pdev->dev);
990 pm_runtime_disable(&pdev->dev); 1004 pm_runtime_disable(&pdev->dev);
991 return 0; 1005 return 0;
992} 1006}