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

Nilawar, Badal badal.nilawar at intel.com
Tue Jun 3 12:01:03 UTC 2025


On 08-05-2025 11:11, Usyskin, Alexander wrote:
>> <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.

Sure, I will move this structure to xe code.

Thanks,
Badal

>
> - -
> Thanks,
> Sasha
>
>
>>> +
>>> +#endif /* _XE_LATE_BIND_MEI_INTERFACE_H_ */


More information about the Intel-xe mailing list