Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

authored by

Alexander Usyskin and committed by
Daniele Ceraolo Spurio
e7b05d95 8b2a7394

+55 -1
+2 -1
include/drm/i915_component.h
··· 29 29 enum i915_component_type { 30 30 I915_COMPONENT_AUDIO = 1, 31 31 I915_COMPONENT_HDCP, 32 - I915_COMPONENT_PXP 32 + I915_COMPONENT_PXP, 33 + I915_COMPONENT_GSC_PROXY, 33 34 }; 34 35 35 36 /* MAX_PORT is the number of port
+53
include/drm/i915_gsc_proxy_mei_interface.h
··· 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_ */