Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2023 Intel Corporation
4 */
5
6#ifndef _XE_TILE_H_
7#define _XE_TILE_H_
8
9#include "xe_tile_types.h"
10
11struct xe_device;
12struct xe_pagemap;
13
14int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id);
15int xe_tile_init_noalloc(struct xe_tile *tile);
16int xe_tile_init(struct xe_tile *tile);
17
18int xe_tile_alloc_vram(struct xe_tile *tile);
19
20void xe_tile_migrate_wait(struct xe_tile *tile);
21
22static inline bool xe_tile_is_root(struct xe_tile *tile)
23{
24 return tile->id == 0;
25}
26
27/**
28 * xe_tile_to_vr() - Return the struct xe_vram_region pointer from a
29 * struct xe_tile pointer
30 * @tile: Pointer to the struct xe_tile.
31 *
32 * Return: Pointer to the struct xe_vram_region embedded in *@tile.
33 */
34static inline struct xe_vram_region *xe_tile_to_vr(struct xe_tile *tile)
35{
36 return tile->mem.vram;
37}
38
39#if IS_ENABLED(CONFIG_DRM_XE_PAGEMAP)
40struct drm_pagemap *xe_tile_local_pagemap(struct xe_tile *tile);
41#else
42static inline struct drm_pagemap *xe_tile_local_pagemap(struct xe_tile *tile)
43{
44 return NULL;
45}
46#endif
47#endif