diff options
Diffstat (limited to 'drivers/video/tegra/dc/dc.c')
-rw-r--r-- | drivers/video/tegra/dc/dc.c | 12 |
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); |