| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* Copyright 2024-2025 Tomeu Vizoso <tomeu@tomeuvizoso.net> */ | |
| #ifndef __ROCKET_DRV_H__ | |
| #define __ROCKET_DRV_H__ | |
| #include <drm/drm_mm.h> | |
| #include <drm/gpu_scheduler.h> | |
| #include "rocket_device.h" | |
| extern const struct dev_pm_ops rocket_pm_ops; | |
| struct rocket_iommu_domain { | |
| struct iommu_domain *domain; | |
| struct kref kref; | |
| }; | |
| struct rocket_file_priv { | |
| struct rocket_device *rdev; | |
| struct rocket_iommu_domain *domain; | |
| struct drm_mm mm; | |
| struct mutex mm_lock; | |
| struct drm_sched_entity sched_entity; | |
| }; | |
| struct rocket_iommu_domain *rocket_iommu_domain_get(struct rocket_file_priv *rocket_priv); | |
| void rocket_iommu_domain_put(struct rocket_iommu_domain *domain); | |
| #endif |