intel_wopcm.h (1205B)
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 */ 19struct 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 */ 37static inline u32 intel_wopcm_guc_base(struct intel_wopcm *wopcm) 38{ 39 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 */ 52static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm) 53{ 54 return wopcm->guc.size; 55} 56 57void intel_wopcm_init_early(struct intel_wopcm *wopcm); 58void intel_wopcm_init(struct intel_wopcm *wopcm); 59 60#endif