projects/linux·blob master · refs

32 lines · 716 B

1/* SPDX-License-Identifier: GPL-2.0-only */
2/* Copyright 2024-2025 Tomeu Vizoso <[email protected]> */
3
4#ifndef __ROCKET_DRV_H__
5#define __ROCKET_DRV_H__
6
7#include <drm/drm_mm.h>
8#include <drm/gpu_scheduler.h>
9
10#include "rocket_device.h"
11
12extern const struct dev_pm_ops rocket_pm_ops;
13
14struct rocket_iommu_domain {
15 struct iommu_domain *domain;
16 struct kref kref;
17};
18
19struct rocket_file_priv {
20 struct rocket_device *rdev;
21
22 struct rocket_iommu_domain *domain;
23 struct drm_mm mm;
24 struct mutex mm_lock;
25
26 struct drm_sched_entity sched_entity;
27};
28
29struct rocket_iommu_domain *rocket_iommu_domain_get(struct rocket_file_priv *rocket_priv);
30void rocket_iommu_domain_put(struct rocket_iommu_domain *domain);
31
32#endif