Lines Matching refs:tegra
30 static void tegra_atomic_schedule(struct tegra_drm *tegra, in tegra_atomic_schedule() argument
33 tegra->commit.state = state; in tegra_atomic_schedule()
34 schedule_work(&tegra->commit.work); in tegra_atomic_schedule()
37 static void tegra_atomic_complete(struct tegra_drm *tegra, in tegra_atomic_complete() argument
40 struct drm_device *drm = tegra->drm; in tegra_atomic_complete()
70 struct tegra_drm *tegra = container_of(work, struct tegra_drm, in tegra_atomic_work() local
73 tegra_atomic_complete(tegra, tegra->commit.state); in tegra_atomic_work()
79 struct tegra_drm *tegra = drm->dev_private; in tegra_atomic_commit() local
87 mutex_lock(&tegra->commit.lock); in tegra_atomic_commit()
88 flush_work(&tegra->commit.work); in tegra_atomic_commit()
99 tegra_atomic_schedule(tegra, state); in tegra_atomic_commit()
101 tegra_atomic_complete(tegra, state); in tegra_atomic_commit()
103 mutex_unlock(&tegra->commit.lock); in tegra_atomic_commit()
119 struct tegra_drm *tegra; in tegra_drm_load() local
122 tegra = kzalloc(sizeof(*tegra), GFP_KERNEL); in tegra_drm_load()
123 if (!tegra) in tegra_drm_load()
127 tegra->domain = iommu_domain_alloc(&platform_bus_type); in tegra_drm_load()
128 if (!tegra->domain) { in tegra_drm_load()
134 drm_mm_init(&tegra->mm, 0, SZ_2G); in tegra_drm_load()
137 mutex_init(&tegra->clients_lock); in tegra_drm_load()
138 INIT_LIST_HEAD(&tegra->clients); in tegra_drm_load()
140 mutex_init(&tegra->commit.lock); in tegra_drm_load()
141 INIT_WORK(&tegra->commit.work, tegra_atomic_work); in tegra_drm_load()
143 drm->dev_private = tegra; in tegra_drm_load()
144 tegra->drm = drm; in tegra_drm_load()
198 if (tegra->domain) { in tegra_drm_load()
199 iommu_domain_free(tegra->domain); in tegra_drm_load()
200 drm_mm_takedown(&tegra->mm); in tegra_drm_load()
203 kfree(tegra); in tegra_drm_load()
210 struct tegra_drm *tegra = drm->dev_private; in tegra_drm_unload() local
222 if (tegra->domain) { in tegra_drm_unload()
223 iommu_domain_free(tegra->domain); in tegra_drm_unload()
224 drm_mm_takedown(&tegra->mm); in tegra_drm_unload()
227 kfree(tegra); in tegra_drm_unload()
255 struct tegra_drm *tegra = drm->dev_private; in tegra_drm_lastclose() local
257 tegra_fbdev_restore_mode(tegra->fbdev); in tegra_drm_lastclose()
520 struct tegra_drm *tegra = drm->dev_private; in tegra_open_channel() local
530 list_for_each_entry(client, &tegra->clients, list) in tegra_open_channel()
889 struct tegra_drm *tegra = drm->dev_private; in tegra_debugfs_iova() local
891 return drm_mm_dump_table(s, &tegra->mm); in tegra_debugfs_iova()
954 int tegra_drm_register_client(struct tegra_drm *tegra, in tegra_drm_register_client() argument
957 mutex_lock(&tegra->clients_lock); in tegra_drm_register_client()
958 list_add_tail(&client->list, &tegra->clients); in tegra_drm_register_client()
959 mutex_unlock(&tegra->clients_lock); in tegra_drm_register_client()
964 int tegra_drm_unregister_client(struct tegra_drm *tegra, in tegra_drm_unregister_client() argument
967 mutex_lock(&tegra->clients_lock); in tegra_drm_unregister_client()
969 mutex_unlock(&tegra->clients_lock); in tegra_drm_unregister_client()