Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / intel_wopcm.h
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_size()
29  * @wopcm:      intel_wopcm structure
30  *
31  * Returns size of the WOPCM shadowed region.
32  *
33  * Returns:
34  * 0 if GuC is not present or not in use.
35  * Otherwise, the GuC WOPCM size.
36  */
37 static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm)
38 {
39         return wopcm->guc.size;
40 }
41
42 void intel_wopcm_init_early(struct intel_wopcm *wopcm);
43 int intel_wopcm_init(struct intel_wopcm *wopcm);
44 int intel_wopcm_init_hw(struct intel_wopcm *wopcm);
45
46 #endif