1 1.1 riastrad /* $NetBSD: intel_wopcm.h,v 1.2 2021/12/18 23:45:29 riastradh Exp $ */ 2 1.1 riastrad 3 1.1 riastrad /* 4 1.1 riastrad * SPDX-License-Identifier: MIT 5 1.1 riastrad * 6 1.1 riastrad * Copyright 2017-2018 Intel Corporation 7 1.1 riastrad */ 8 1.1 riastrad 9 1.1 riastrad #ifndef _INTEL_WOPCM_H_ 10 1.1 riastrad #define _INTEL_WOPCM_H_ 11 1.1 riastrad 12 1.1 riastrad #include <linux/types.h> 13 1.1 riastrad 14 1.1 riastrad /** 15 1.1 riastrad * struct intel_wopcm - Overall WOPCM info and WOPCM regions. 16 1.1 riastrad * @size: Size of overall WOPCM. 17 1.1 riastrad * @guc: GuC WOPCM Region info. 18 1.1 riastrad * @guc.base: GuC WOPCM base which is offset from WOPCM base. 19 1.1 riastrad * @guc.size: Size of the GuC WOPCM region. 20 1.1 riastrad */ 21 1.1 riastrad struct intel_wopcm { 22 1.1 riastrad u32 size; 23 1.1 riastrad struct { 24 1.1 riastrad u32 base; 25 1.1 riastrad u32 size; 26 1.1 riastrad } guc; 27 1.1 riastrad }; 28 1.1 riastrad 29 1.1 riastrad /** 30 1.1 riastrad * intel_wopcm_guc_base() 31 1.1 riastrad * @wopcm: intel_wopcm structure 32 1.1 riastrad * 33 1.1 riastrad * Returns the base of the WOPCM shadowed region. 34 1.1 riastrad * 35 1.1 riastrad * Returns: 36 1.1 riastrad * 0 if GuC is not present or not in use. 37 1.1 riastrad * Otherwise, the GuC WOPCM base. 38 1.1 riastrad */ 39 1.1 riastrad static inline u32 intel_wopcm_guc_base(struct intel_wopcm *wopcm) 40 1.1 riastrad { 41 1.1 riastrad return wopcm->guc.base; 42 1.1 riastrad } 43 1.1 riastrad 44 1.1 riastrad /** 45 1.1 riastrad * intel_wopcm_guc_size() 46 1.1 riastrad * @wopcm: intel_wopcm structure 47 1.1 riastrad * 48 1.1 riastrad * Returns size of the WOPCM shadowed region. 49 1.1 riastrad * 50 1.1 riastrad * Returns: 51 1.1 riastrad * 0 if GuC is not present or not in use. 52 1.1 riastrad * Otherwise, the GuC WOPCM size. 53 1.1 riastrad */ 54 1.1 riastrad static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm) 55 1.1 riastrad { 56 1.1 riastrad return wopcm->guc.size; 57 1.1 riastrad } 58 1.1 riastrad 59 1.1 riastrad void intel_wopcm_init_early(struct intel_wopcm *wopcm); 60 1.1 riastrad void intel_wopcm_init(struct intel_wopcm *wopcm); 61 1.1 riastrad 62 1.1 riastrad #endif 63