aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/tegra/drm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/tegra/drm.c')
-rw-r--r--drivers/gpu/drm/tegra/drm.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index 07eba596d458..c71594754f46 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -104,9 +104,11 @@ static void tegra_drm_context_free(struct tegra_drm_context *context)
104 104
105static void tegra_drm_lastclose(struct drm_device *drm) 105static void tegra_drm_lastclose(struct drm_device *drm)
106{ 106{
107#ifdef CONFIG_DRM_TEGRA_FBDEV
107 struct tegra_drm *tegra = drm->dev_private; 108 struct tegra_drm *tegra = drm->dev_private;
108 109
109 tegra_fbdev_restore_mode(tegra->fbdev); 110 tegra_fbdev_restore_mode(tegra->fbdev);
111#endif
110} 112}
111 113
112static struct host1x_bo * 114static struct host1x_bo *
@@ -578,7 +580,7 @@ static void tegra_debugfs_cleanup(struct drm_minor *minor)
578#endif 580#endif
579 581
580static struct drm_driver tegra_drm_driver = { 582static struct drm_driver tegra_drm_driver = {
581 .driver_features = DRIVER_MODESET | DRIVER_GEM, 583 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME,
582 .load = tegra_drm_load, 584 .load = tegra_drm_load,
583 .unload = tegra_drm_unload, 585 .unload = tegra_drm_unload,
584 .open = tegra_drm_open, 586 .open = tegra_drm_open,
@@ -596,6 +598,12 @@ static struct drm_driver tegra_drm_driver = {
596 598
597 .gem_free_object = tegra_bo_free_object, 599 .gem_free_object = tegra_bo_free_object,
598 .gem_vm_ops = &tegra_bo_vm_ops, 600 .gem_vm_ops = &tegra_bo_vm_ops,
601
602 .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
603 .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
604 .gem_prime_export = tegra_gem_prime_export,
605 .gem_prime_import = tegra_gem_prime_import,
606
599 .dumb_create = tegra_bo_dumb_create, 607 .dumb_create = tegra_bo_dumb_create,
600 .dumb_map_offset = tegra_bo_dumb_map_offset, 608 .dumb_map_offset = tegra_bo_dumb_map_offset,
601 .dumb_destroy = drm_gem_dumb_destroy, 609 .dumb_destroy = drm_gem_dumb_destroy,
@@ -653,8 +661,10 @@ static const struct of_device_id host1x_drm_subdevs[] = {
653 { .compatible = "nvidia,tegra30-hdmi", }, 661 { .compatible = "nvidia,tegra30-hdmi", },
654 { .compatible = "nvidia,tegra30-gr2d", }, 662 { .compatible = "nvidia,tegra30-gr2d", },
655 { .compatible = "nvidia,tegra30-gr3d", }, 663 { .compatible = "nvidia,tegra30-gr3d", },
664 { .compatible = "nvidia,tegra114-dsi", },
656 { .compatible = "nvidia,tegra114-hdmi", }, 665 { .compatible = "nvidia,tegra114-hdmi", },
657 { .compatible = "nvidia,tegra114-gr3d", }, 666 { .compatible = "nvidia,tegra114-gr3d", },
667 { .compatible = "nvidia,tegra124-dc", },
658 { /* sentinel */ } 668 { /* sentinel */ }
659}; 669};
660 670
@@ -677,10 +687,14 @@ static int __init host1x_drm_init(void)
677 if (err < 0) 687 if (err < 0)
678 goto unregister_host1x; 688 goto unregister_host1x;
679 689
680 err = platform_driver_register(&tegra_hdmi_driver); 690 err = platform_driver_register(&tegra_dsi_driver);
681 if (err < 0) 691 if (err < 0)
682 goto unregister_dc; 692 goto unregister_dc;
683 693
694 err = platform_driver_register(&tegra_hdmi_driver);
695 if (err < 0)
696 goto unregister_dsi;
697
684 err = platform_driver_register(&tegra_gr2d_driver); 698 err = platform_driver_register(&tegra_gr2d_driver);
685 if (err < 0) 699 if (err < 0)
686 goto unregister_hdmi; 700 goto unregister_hdmi;
@@ -695,6 +709,8 @@ unregister_gr2d:
695 platform_driver_unregister(&tegra_gr2d_driver); 709 platform_driver_unregister(&tegra_gr2d_driver);
696unregister_hdmi: 710unregister_hdmi:
697 platform_driver_unregister(&tegra_hdmi_driver); 711 platform_driver_unregister(&tegra_hdmi_driver);
712unregister_dsi:
713 platform_driver_unregister(&tegra_dsi_driver);
698unregister_dc: 714unregister_dc:
699 platform_driver_unregister(&tegra_dc_driver); 715 platform_driver_unregister(&tegra_dc_driver);
700unregister_host1x: 716unregister_host1x:
@@ -708,6 +724,7 @@ static void __exit host1x_drm_exit(void)
708 platform_driver_unregister(&tegra_gr3d_driver); 724 platform_driver_unregister(&tegra_gr3d_driver);
709 platform_driver_unregister(&tegra_gr2d_driver); 725 platform_driver_unregister(&tegra_gr2d_driver);
710 platform_driver_unregister(&tegra_hdmi_driver); 726 platform_driver_unregister(&tegra_hdmi_driver);
727 platform_driver_unregister(&tegra_dsi_driver);
711 platform_driver_unregister(&tegra_dc_driver); 728 platform_driver_unregister(&tegra_dc_driver);
712 host1x_driver_unregister(&host1x_drm_driver); 729 host1x_driver_unregister(&host1x_drm_driver);
713} 730}