<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

+
+#endif /* _XE_LATE_BIND_MEI_INTERFACE_H_ */

Reply via email to