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()
130 tegra->domain = iommu_domain_alloc(&platform_bus_type); in tegra_drm_load()
131 if (!tegra->domain) { in tegra_drm_load()
136 geometry = &tegra->domain->geometry; in tegra_drm_load()
142 drm_mm_init(&tegra->mm, start, end - start + 1); in tegra_drm_load()
145 mutex_init(&tegra->clients_lock); in tegra_drm_load()
146 INIT_LIST_HEAD(&tegra->clients); in tegra_drm_load()
148 mutex_init(&tegra->commit.lock); in tegra_drm_load()
149 INIT_WORK(&tegra->commit.work, tegra_atomic_work); in tegra_drm_load()
151 drm->dev_private = tegra; in tegra_drm_load()
152 tegra->drm = drm; in tegra_drm_load()
207 if (tegra->domain) { in tegra_drm_load()
208 iommu_domain_free(tegra->domain); in tegra_drm_load()
209 drm_mm_takedown(&tegra->mm); in tegra_drm_load()
212 kfree(tegra); in tegra_drm_load()
219 struct tegra_drm *tegra = drm->dev_private; in tegra_drm_unload() local
231 if (tegra->domain) { in tegra_drm_unload()
232 iommu_domain_free(tegra->domain); in tegra_drm_unload()
233 drm_mm_takedown(&tegra->mm); in tegra_drm_unload()
236 kfree(tegra); in tegra_drm_unload()
264 struct tegra_drm *tegra = drm->dev_private; in tegra_drm_lastclose() local
266 tegra_fbdev_restore_mode(tegra->fbdev); in tegra_drm_lastclose()
529 struct tegra_drm *tegra = drm->dev_private; in tegra_open_channel() local
539 list_for_each_entry(client, &tegra->clients, list) in tegra_open_channel()
899 struct tegra_drm *tegra = drm->dev_private; in tegra_debugfs_iova() local
901 return drm_mm_dump_table(s, &tegra->mm); in tegra_debugfs_iova()
964 int tegra_drm_register_client(struct tegra_drm *tegra, in tegra_drm_register_client() argument
967 mutex_lock(&tegra->clients_lock); in tegra_drm_register_client()
968 list_add_tail(&client->list, &tegra->clients); in tegra_drm_register_client()
969 mutex_unlock(&tegra->clients_lock); in tegra_drm_register_client()
974 int tegra_drm_unregister_client(struct tegra_drm *tegra, in tegra_drm_unregister_client() argument
977 mutex_lock(&tegra->clients_lock); in tegra_drm_unregister_client()
979 mutex_unlock(&tegra->clients_lock); in tegra_drm_unregister_client()