[RFC 2/9] mei: late_bind: add late binding component driver

Usyskin, Alexander alexander.usyskin at intel.com
Thu May 8 05:41:25 UTC 2025


> 
> <snip>
> > diff --git a/include/drm/intel/xe_late_bind_mei_interface.h
> b/include/drm/intel/xe_late_bind_mei_interface.h
> > new file mode 100644
> > index 000000000000..4005c4c6184f
> > --- /dev/null
> > +++ b/include/drm/intel/xe_late_bind_mei_interface.h
> > @@ -0,0 +1,49 @@
> > +/* SPDX-License-Identifier: MIT */
> > +/*
> > + * Copyright (c) 2025 Intel Corporation
> > + */
> > +
> > +#ifndef _XE_LATE_BIND_MEI_INTERFACE_H_
> > +#define _XE_LATE_BIND_MEI_INTERFACE_H_
> > +
> > +#include <linux/types.h>
> > +
> > +struct device;
> > +struct module;
> > +
> > +/**
> > + * struct xe_late_bind_component_ops - ops for Late Binding services.
> > + * @owner: Module providing the ops
> > + * @push_config: Sends a config to FW.
> > + */
> > +struct xe_late_bind_component_ops {
> > +	struct module *owner;
> > +
> > +	/**
> > +	 * @push_config: Sends a config to FW.
> > +	 * @dev: device struct corresponding to the mei device
> > +	 * @type: payload type
> > +	 * @flags: payload flags
> > +	 * @payload: payload buffer
> > +	 * @payload_size: payload buffer size
> > +	 *
> > +	 * Return: 0 success, negative errno value on transport failure,
> > +	 *         positive status returned by FW
> > +	 */
> > +	int (*push_config)(struct device *dev, u32 type, u32 flags,
> > +			   const void *payload, size_t payload_size);
> > +};
> > +
> > +/**
> > + * struct xe_late_bind_component - Late Binding services component
> > + * @mei_dev: device that provide Late Binding service.
> > + * @ops: Ops implemented by Late Binding driver, used by Xe driver.
> > + *
> > + * Communication between Xe and MEI drivers for Late Binding services
> > + */
> > +struct xe_late_bind_component {
> > +	struct device *mei_dev;
> > +	const struct xe_late_bind_component_ops *ops;
> > +};
> 
> Does this structure actually need to be defined here? Differently from
> other components, for this component we're only passing the
> xe_late_bind_component_ops via the component_bind_all call, so in the Xe
> driver we should be free to use wherever type we want to store this info.
> 
> Daniele
> 

You are right, this struct may be dropped from this header.
Badal, let's move it out into Xe code.

- - 
Thanks,
Sasha


> > +
> > +#endif /* _XE_LATE_BIND_MEI_INTERFACE_H_ */



More information about the Intel-xe mailing list