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