1f3ba9122SRob Herring /* SPDX-License-Identifier: GPL-2.0 */
2f3ba9122SRob Herring /* Copyright 2019 Linaro, Ltd, Rob Herring <robh@kernel.org> */
3f3ba9122SRob Herring 
4f3ba9122SRob Herring #ifndef __PANFROST_MMU_H__
5f3ba9122SRob Herring #define __PANFROST_MMU_H__
6f3ba9122SRob Herring 
7bdefca2dSBoris Brezillon struct panfrost_gem_mapping;
87282f764SRob Herring struct panfrost_file_priv;
97282f764SRob Herring struct panfrost_mmu;
10f3ba9122SRob Herring 
11bdefca2dSBoris Brezillon int panfrost_mmu_map(struct panfrost_gem_mapping *mapping);
12bdefca2dSBoris Brezillon void panfrost_mmu_unmap(struct panfrost_gem_mapping *mapping);
13f3ba9122SRob Herring 
14f3ba9122SRob Herring int panfrost_mmu_init(struct panfrost_device *pfdev);
15f3ba9122SRob Herring void panfrost_mmu_fini(struct panfrost_device *pfdev);
1673e467f6SRob Herring void panfrost_mmu_reset(struct panfrost_device *pfdev);
17f3ba9122SRob Herring 
187282f764SRob Herring u32 panfrost_mmu_as_get(struct panfrost_device *pfdev, struct panfrost_mmu *mmu);
197282f764SRob Herring void panfrost_mmu_as_put(struct panfrost_device *pfdev, struct panfrost_mmu *mmu);
207282f764SRob Herring 
21*7fdc48ccSBoris Brezillon struct panfrost_mmu *panfrost_mmu_ctx_get(struct panfrost_mmu *mmu);
22*7fdc48ccSBoris Brezillon void panfrost_mmu_ctx_put(struct panfrost_mmu *mmu);
23*7fdc48ccSBoris Brezillon struct panfrost_mmu *panfrost_mmu_ctx_create(struct panfrost_device *pfdev);
247282f764SRob Herring 
25f3ba9122SRob Herring #endif
26