61 lines · c
1/*2 * SPDX-License-Identifier: MIT3 *4 * Copyright © 2017-2018 Intel Corporation5 */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 structure30 *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 structure45 *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#endif61