Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 53 lines 1.5 kB view raw
1// SPDX-License-Identifier: MIT 2/* 3 * Copyright © 2025 Intel Corporation 4 */ 5 6#include "regs/xe_soc_remapper_regs.h" 7#include "xe_device.h" 8#include "xe_mmio.h" 9#include "xe_soc_remapper.h" 10 11static void xe_soc_remapper_set_region(struct xe_device *xe, struct xe_reg reg, 12 u32 mask, u32 val) 13{ 14 guard(spinlock_irqsave)(&xe->soc_remapper.lock); 15 xe_mmio_rmw32(xe_root_tile_mmio(xe), reg, mask, val); 16} 17 18static void xe_soc_remapper_set_telem_region(struct xe_device *xe, u32 index) 19{ 20 xe_soc_remapper_set_region(xe, SG_REMAP_INDEX1, SG_REMAP_TELEM_MASK, 21 REG_FIELD_PREP(SG_REMAP_TELEM_MASK, index)); 22} 23 24static void xe_soc_remapper_set_sysctrl_region(struct xe_device *xe, u32 index) 25{ 26 xe_soc_remapper_set_region(xe, SG_REMAP_INDEX1, SG_REMAP_SYSCTRL_MASK, 27 REG_FIELD_PREP(SG_REMAP_SYSCTRL_MASK, index)); 28} 29 30/** 31 * xe_soc_remapper_init() - Initialize SoC remapper 32 * @xe: Pointer to xe device. 33 * 34 * Initialize SoC remapper. 35 * 36 * Return: 0 on success, error code on failure 37 */ 38int xe_soc_remapper_init(struct xe_device *xe) 39{ 40 bool has_soc_remapper = xe->info.has_soc_remapper_telem || 41 xe->info.has_soc_remapper_sysctrl; 42 43 if (has_soc_remapper) 44 spin_lock_init(&xe->soc_remapper.lock); 45 46 if (xe->info.has_soc_remapper_telem) 47 xe->soc_remapper.set_telem_region = xe_soc_remapper_set_telem_region; 48 49 if (xe->info.has_soc_remapper_sysctrl) 50 xe->soc_remapper.set_sysctrl_region = xe_soc_remapper_set_sysctrl_region; 51 52 return 0; 53}