Message ID | 20210328225709.18541-2-daniele.ceraolospurio@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Introduce Intel PXP | expand |
On 29.03.2021 00:56, Daniele Ceraolo Spurio 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 typos > 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@intel.com> > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > 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@intel.com> shouldn't be at least on cc: ? > + */ > + > +#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 typo > + */ > + struct module *owner; hmm, usually ops structs have only function pointers, why do we need owner here ? and are you sure is it a right place if still needed ? > + > + 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_ */ >
On Mon, Mar 29, 2021 at 03:55:03PM +0200, Michal Wajdeczko wrote: > > > On 29.03.2021 00:56, Daniele Ceraolo Spurio 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 > > typos > > > 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@intel.com> > > Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > > --- > > 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@intel.com> > > shouldn't be at least on cc: ? yeap, good idea... let's start cc'ing now... > > > + */ > > + > > +#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 > > typo > > > + */ > > + struct module *owner; > > hmm, usually ops structs have only function pointers, why do we need > owner here ? and are you sure is it a right place if still needed ? it is indeed not used here and for this series it could be removed. I haven't considered this earlier because this came from TEE directly, but for now, let's remove if not used. > > > + > > + 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_ */ > > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
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@intel.com> + */ + +#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_ */