]> Git Repo - J-linux.git/blob - drivers/gpu/drm/i915/gt/intel_gsc.h
Merge tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[J-linux.git] / drivers / gpu / drm / i915 / gt / intel_gsc.h
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright(c) 2019-2022, Intel Corporation. All rights reserved.
4  */
5 #ifndef __INTEL_GSC_DEV_H__
6 #define __INTEL_GSC_DEV_H__
7
8 #include <linux/types.h>
9
10 struct drm_i915_private;
11 struct intel_gt;
12 struct mei_aux_device;
13
14 #define INTEL_GSC_NUM_INTERFACES 2
15 /*
16  * The HECI1 bit corresponds to bit15 and HECI2 to bit14.
17  * The reason for this is to allow growth for more interfaces in the future.
18  */
19 #define GSC_IRQ_INTF(_x)  BIT(15 - (_x))
20
21 /**
22  * struct intel_gsc - graphics security controller
23  *
24  * @intf: gsc interface
25  * @intf.adev: MEI aux. device for this @intf
26  * @intf.gem_obj: scratch memory GSC operations
27  * @intf.irq: IRQ for this device (%-1 for no IRQ)
28  * @intf.id: this interface's id number/index
29  */
30 struct intel_gsc {
31         struct intel_gsc_intf {
32                 struct mei_aux_device *adev;
33                 struct drm_i915_gem_object *gem_obj;
34                 int irq;
35                 unsigned int id;
36         } intf[INTEL_GSC_NUM_INTERFACES];
37 };
38
39 void intel_gsc_init(struct intel_gsc *gsc, struct drm_i915_private *i915);
40 void intel_gsc_fini(struct intel_gsc *gsc);
41 void intel_gsc_irq_handler(struct intel_gt *gt, u32 iir);
42
43 #endif /* __INTEL_GSC_DEV_H__ */
This page took 0.028996 seconds and 4 git commands to generate.