162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright © 2021 Intel Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __I915_MM_H__
762306a36Sopenharmony_ci#define __I915_MM_H__
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/bug.h>
1062306a36Sopenharmony_ci#include <linux/types.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cistruct vm_area_struct;
1362306a36Sopenharmony_cistruct io_mapping;
1462306a36Sopenharmony_cistruct scatterlist;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#if IS_ENABLED(CONFIG_X86)
1762306a36Sopenharmony_ciint remap_io_mapping(struct vm_area_struct *vma,
1862306a36Sopenharmony_ci		     unsigned long addr, unsigned long pfn, unsigned long size,
1962306a36Sopenharmony_ci		     struct io_mapping *iomap);
2062306a36Sopenharmony_ci#else
2162306a36Sopenharmony_cistatic inline
2262306a36Sopenharmony_ciint remap_io_mapping(struct vm_area_struct *vma,
2362306a36Sopenharmony_ci		     unsigned long addr, unsigned long pfn, unsigned long size,
2462306a36Sopenharmony_ci		     struct io_mapping *iomap)
2562306a36Sopenharmony_ci{
2662306a36Sopenharmony_ci	WARN_ONCE(1, "Architecture has no drm_cache.c support\n");
2762306a36Sopenharmony_ci	return 0;
2862306a36Sopenharmony_ci}
2962306a36Sopenharmony_ci#endif
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciint remap_io_sg(struct vm_area_struct *vma,
3262306a36Sopenharmony_ci		unsigned long addr, unsigned long size,
3362306a36Sopenharmony_ci		struct scatterlist *sgl, resource_size_t iobase);
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#endif /* __I915_MM_H__ */
36