| /* |
| * SPDX-License-Identifier: MIT |
| * |
| * Copyright © 2017-2018 Intel Corporation |
| */ |
| |
| #ifndef _INTEL_WOPCM_H_ |
| #define _INTEL_WOPCM_H_ |
| |
| #include <linux/types.h> |
| |
| /** |
| * struct intel_wopcm - Overall WOPCM info and WOPCM regions. |
| * @size: Size of overall WOPCM. |
| * @guc: GuC WOPCM Region info. |
| * @guc.base: GuC WOPCM base which is offset from WOPCM base. |
| * @guc.size: Size of the GuC WOPCM region. |
| */ |
| struct intel_wopcm { |
| u32 size; |
| struct { |
| u32 base; |
| u32 size; |
| } guc; |
| }; |
| |
| /** |
| * intel_wopcm_guc_base() |
| * @wopcm: intel_wopcm structure |
| * |
| * Returns the base of the WOPCM shadowed region. |
| * |
| * Returns: |
| * 0 if GuC is not present or not in use. |
| * Otherwise, the GuC WOPCM base. |
| */ |
| static inline u32 intel_wopcm_guc_base(struct intel_wopcm *wopcm) |
| { |
| return wopcm->guc.base; |
| } |
| |
| /** |
| * intel_wopcm_guc_size() |
| * @wopcm: intel_wopcm structure |
| * |
| * Returns size of the WOPCM shadowed region. |
| * |
| * Returns: |
| * 0 if GuC is not present or not in use. |
| * Otherwise, the GuC WOPCM size. |
| */ |
| static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm) |
| { |
| return wopcm->guc.size; |
| } |
| |
| void intel_wopcm_init_early(struct intel_wopcm *wopcm); |
| void intel_wopcm_init(struct intel_wopcm *wopcm); |
| |
| #endif |