Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 /*
0003  * Copyright © 2020 Intel Corporation
0004  */
0005 
0006 #ifndef _I915_PXP_TEE_INTERFACE_H_
0007 #define _I915_PXP_TEE_INTERFACE_H_
0008 
0009 #include <linux/mutex.h>
0010 #include <linux/device.h>
0011 
0012 /**
0013  * struct i915_pxp_component_ops - ops for PXP services.
0014  * @owner: Module providing the ops
0015  * @send: sends data to PXP
0016  * @receive: receives data from PXP
0017  */
0018 struct i915_pxp_component_ops {
0019     /**
0020      * @owner: owner of the module provding the ops
0021      */
0022     struct module *owner;
0023 
0024     int (*send)(struct device *dev, const void *message, size_t size);
0025     int (*recv)(struct device *dev, void *buffer, size_t size);
0026 };
0027 
0028 /**
0029  * struct i915_pxp_component - Used for communication between i915 and TEE
0030  * drivers for the PXP services
0031  * @tee_dev: device that provide the PXP service from TEE Bus.
0032  * @pxp_ops: Ops implemented by TEE driver, used by i915 driver.
0033  */
0034 struct i915_pxp_component {
0035     struct device *tee_dev;
0036     const struct i915_pxp_component_ops *ops;
0037 
0038     /* To protect the above members. */
0039     struct mutex mutex;
0040 };
0041 
0042 #endif /* _I915_TEE_PXP_INTERFACE_H_ */