On Wed, 28 Jul 2021, Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> wrote: > This will be used for communication between the i915 driver and the mei > one. Defining it in a stand-alone patch to avoid circualr dependedencies > between the patches modifying the 2 drivers. > > Split out from an original patch from Huang, Sean Z > > v2: rename the component struct (Rodrigo) > > Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx> > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > --- > include/drm/i915_component.h | 1 + > include/drm/i915_pxp_tee_interface.h | 45 ++++++++++++++++++++++++++++ > 2 files changed, 46 insertions(+) > create mode 100644 include/drm/i915_pxp_tee_interface.h > > diff --git a/include/drm/i915_component.h b/include/drm/i915_component.h > index 55c3b123581b..c1e2a43d2d1e 100644 > --- a/include/drm/i915_component.h > +++ b/include/drm/i915_component.h > @@ -29,6 +29,7 @@ > enum i915_component_type { > I915_COMPONENT_AUDIO = 1, > I915_COMPONENT_HDCP, > + I915_COMPONENT_PXP > }; > > /* MAX_PORT is the number of port > diff --git a/include/drm/i915_pxp_tee_interface.h b/include/drm/i915_pxp_tee_interface.h > new file mode 100644 > index 000000000000..09b8389152af > --- /dev/null > +++ b/include/drm/i915_pxp_tee_interface.h > @@ -0,0 +1,45 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2020 Intel Corporation > + * > + * Authors: > + * Vitaly Lubart <vitaly.lubart@xxxxxxxxx> IMO we should avoid adding new authors lists in code comments. Git log provides accurate and up-to-date information, and I don't want patches where people add their names to authors lists. BR, Jani. > + */ > + > +#ifndef _I915_PXP_TEE_INTERFACE_H_ > +#define _I915_PXP_TEE_INTERFACE_H_ > + > +#include <linux/mutex.h> > +#include <linux/device.h> > + > +/** > + * struct i915_pxp_component_ops - ops for PXP services. > + * @owner: Module providing the ops > + * @send: sends data to PXP > + * @receive: receives data from PXP > + */ > +struct i915_pxp_component_ops { > + /** > + * @owner: owner of the module provding the ops > + */ > + struct module *owner; > + > + int (*send)(struct device *dev, const void *message, size_t size); > + int (*recv)(struct device *dev, void *buffer, size_t size); > +}; > + > +/** > + * struct i915_pxp_component - Used for communication between i915 and TEE > + * drivers for the PXP services > + * @tee_dev: device that provide the PXP service from TEE Bus. > + * @pxp_ops: Ops implemented by TEE driver, used by i915 driver. > + */ > +struct i915_pxp_component { > + struct device *tee_dev; > + const struct i915_pxp_component_ops *ops; > + > + /* To protect the above members. */ > + struct mutex mutex; > +}; > + > +#endif /* _I915_TEE_PXP_INTERFACE_H_ */ -- Jani Nikula, Intel Open Source Graphics Center