summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc/dc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/tegra/dc/dc.c')
-rw-r--r--drivers/video/tegra/dc/dc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index f6488ad7699e..a0e8c45098ef 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -2371,6 +2371,12 @@ static int tegra_dc_probe(struct nvhost_device *ndev)
if (dc->out && dc->out->hotplug_init)
dc->out->hotplug_init();
+ dc->ext = tegra_dc_ext_register(ndev, dc);
+ if (IS_ERR_OR_NULL(dc->ext)) {
+ dev_warn(&ndev->dev, "Failed to enable Tegra DC extensions.\n");
+ dc->ext = NULL;
+ }
+
if (dc->out_ops && dc->out_ops->detect)
dc->out_ops->detect(dc);
@@ -2413,6 +2419,8 @@ static int tegra_dc_remove(struct nvhost_device *ndev)
release_resource(dc->fb_mem);
}
+ if (dc->ext)
+ tegra_dc_ext_unregister(dc->ext);
if (dc->enabled)
_tegra_dc_disable(dc);
@@ -2522,12 +2530,16 @@ struct nvhost_driver tegra_dc_driver = {
static int __init tegra_dc_module_init(void)
{
+ int ret = tegra_dc_ext_module_init();
+ if (ret)
+ return ret;
return nvhost_driver_register(&tegra_dc_driver);
}
static void __exit tegra_dc_module_exit(void)
{
nvhost_driver_unregister(&tegra_dc_driver);
+ tegra_dc_ext_module_exit();
}
module_exit(tegra_dc_module_exit);