Skip to content

Commit e7b05d9

Browse files
ausyskindceraolo
authored andcommitted
drm/i915/mtl: Define GSC Proxy component interface
GSC Proxy component is used for communication between the Intel graphics driver and MEI driver. Cc: Alan Previn <alan.previn.teres.alexis@intel.com> Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230502163854.317653-2-daniele.ceraolospurio@intel.com
1 parent 8b2a739 commit e7b05d9

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

include/drm/i915_component.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
enum i915_component_type {
3030
I915_COMPONENT_AUDIO = 1,
3131
I915_COMPONENT_HDCP,
32-
I915_COMPONENT_PXP
32+
I915_COMPONENT_PXP,
33+
I915_COMPONENT_GSC_PROXY,
3334
};
3435

3536
/* MAX_PORT is the number of port
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/* SPDX-License-Identifier: MIT */
2+
/*
3+
* Copyright (c) 2022-2023 Intel Corporation
4+
*/
5+
6+
#ifndef _I915_GSC_PROXY_MEI_INTERFACE_H_
7+
#define _I915_GSC_PROXY_MEI_INTERFACE_H_
8+
9+
#include <linux/types.h>
10+
11+
struct device;
12+
struct module;
13+
14+
/**
15+
* struct i915_gsc_proxy_component_ops - ops for GSC Proxy services.
16+
* @owner: Module providing the ops
17+
* @send: sends a proxy message from GSC FW to ME FW
18+
* @recv: receives a proxy message for GSC FW from ME FW
19+
*/
20+
struct i915_gsc_proxy_component_ops {
21+
struct module *owner;
22+
23+
/**
24+
* send - Sends a proxy message to ME FW.
25+
* @dev: device struct corresponding to the mei device
26+
* @buf: message buffer to send
27+
* @size: size of the message
28+
* Return: bytes sent on success, negative errno value on failure
29+
*/
30+
int (*send)(struct device *dev, const void *buf, size_t size);
31+
32+
/**
33+
* recv - Receives a proxy message from ME FW.
34+
* @dev: device struct corresponding to the mei device
35+
* @buf: message buffer to contain the received message
36+
* @size: size of the buffer
37+
* Return: bytes received on success, negative errno value on failure
38+
*/
39+
int (*recv)(struct device *dev, void *buf, size_t size);
40+
};
41+
42+
/**
43+
* struct i915_gsc_proxy_component - Used for communication between i915 and
44+
* MEI drivers for GSC proxy services
45+
* @mei_dev: device that provide the GSC proxy service.
46+
* @ops: Ops implemented by GSC proxy driver, used by i915 driver.
47+
*/
48+
struct i915_gsc_proxy_component {
49+
struct device *mei_dev;
50+
const struct i915_gsc_proxy_component_ops *ops;
51+
};
52+
53+
#endif /* _I915_GSC_PROXY_MEI_INTERFACE_H_ */

0 commit comments

Comments
 (0)