| /* SPDX-License-Identifier: MIT */ |
| /* |
| * Copyright © 2023 Intel Corporation |
| */ |
| |
| #ifndef _XE_TILE_H_ |
| #define _XE_TILE_H_ |
| |
| #include "xe_device_types.h" |
| |
| struct xe_pagemap; |
| struct xe_tile; |
| |
| int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id); |
| int xe_tile_init_noalloc(struct xe_tile *tile); |
| int xe_tile_init(struct xe_tile *tile); |
| |
| int xe_tile_alloc_vram(struct xe_tile *tile); |
| |
| void xe_tile_migrate_wait(struct xe_tile *tile); |
| |
| static inline bool xe_tile_is_root(struct xe_tile *tile) |
| { |
| return tile->id == 0; |
| } |
| |
| /** |
| * xe_tile_to_vr() - Return the struct xe_vram_region pointer from a |
| * struct xe_tile pointer |
| * @tile: Pointer to the struct xe_tile. |
| * |
| * Return: Pointer to the struct xe_vram_region embedded in *@tile. |
| */ |
| static inline struct xe_vram_region *xe_tile_to_vr(struct xe_tile *tile) |
| { |
| return tile->mem.vram; |
| } |
| |
| #if IS_ENABLED(CONFIG_DRM_XE_PAGEMAP) |
| struct drm_pagemap *xe_tile_local_pagemap(struct xe_tile *tile); |
| #else |
| static inline struct drm_pagemap *xe_tile_local_pagemap(struct xe_tile *tile) |
| { |
| return NULL; |
| } |
| #endif |
| #endif |