Before moving greybus core out of staging and moving header files to include/linux some greybus header files were missing the necessary includes. This would trigger compilation faillures with some example errors logged bellow for with CONFIG_KERNEL_HEADER_TEST=y.
So, add the necessary headers to compile clean before relocating the header files.
./include/linux/greybus/hd.h:23:50: error: unknown type name 'u16' int (*cport_disable)(struct gb_host_device *hd, u16 cport_id); ^~~ ./include/linux/greybus/greybus_protocols.h:1314:2: error: unknown type name '__u8' __u8 data[0]; ^~~~ ./include/linux/greybus/hd.h:24:52: error: unknown type name 'u16' int (*cport_connected)(struct gb_host_device *hd, u16 cport_id); ^~~ ./include/linux/greybus/hd.h:25:48: error: unknown type name 'u16' int (*cport_flush)(struct gb_host_device *hd, u16 cport_id); ^~~ ./include/linux/greybus/hd.h:26:51: error: unknown type name 'u16' int (*cport_shutdown)(struct gb_host_device *hd, u16 cport_id, ^~~ ./include/linux/greybus/hd.h:27:5: error: unknown type name 'u8' u8 phase, unsigned int timeout); ^~ ./include/linux/greybus/hd.h:28:50: error: unknown type name 'u16' int (*cport_quiesce)(struct gb_host_device *hd, u16 cport_id, ^~~ ./include/linux/greybus/hd.h:29:5: error: unknown type name 'size_t' size_t peer_space, unsigned int timeout); ^~~~~~ ./include/linux/greybus/hd.h:29:5: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'? ./include/linux/greybus/hd.h:1:1: +#include <stddef.h> /* SPDX-License-Identifier: GPL-2.0 */ ./include/linux/greybus/hd.h:29:5: size_t peer_space, unsigned int timeout); ^~~~~~ ./include/linux/greybus/hd.h:30:48: error: unknown type name 'u16' int (*cport_clear)(struct gb_host_device *hd, u16 cport_id); ^~~ ./include/linux/greybus/hd.h:32:49: error: unknown type name 'u16' int (*message_send)(struct gb_host_device *hd, u16 dest_cport_id, ^~~ ./include/linux/greybus/hd.h:33:32: error: unknown type name 'gfp_t' struct gb_message *message, gfp_t gfp_mask); ^~~~~ ./include/linux/greybus/hd.h:35:55: error: unknown type name 'u16' int (*latency_tag_enable)(struct gb_host_device *hd, u16 cport_id);
Reported-by: kbuild test robot lkp@intel.com Reported-by: Gao Xiang hsiangkao@aol.com Signed-off-by: Rui Miguel Silva rui.silva@linaro.org Acked-by: Alex Elder elder@kernel.org ---
v1->v2: lkp@intel: - added greybus_protocols.h include to svc.h header Alex Elder: - remove extra line in operation.h
Looks like lkp can now find missing headers that we can not :), it must be the config. but it is right.
Greg please note the new include in svc.h may need to be changed when moving headers to include/linux
drivers/staging/greybus/bundle.h | 3 +++ drivers/staging/greybus/connection.h | 3 +++ drivers/staging/greybus/control.h | 3 +++ drivers/staging/greybus/greybus_manifest.h | 3 +++ drivers/staging/greybus/greybus_protocols.h | 2 ++ drivers/staging/greybus/hd.h | 3 +++ drivers/staging/greybus/interface.h | 3 +++ drivers/staging/greybus/manifest.h | 2 ++ drivers/staging/greybus/module.h | 3 +++ drivers/staging/greybus/operation.h | 4 ++++ drivers/staging/greybus/svc.h | 5 +++++ 11 files changed, 34 insertions(+)
diff --git a/drivers/staging/greybus/bundle.h b/drivers/staging/greybus/bundle.h index 8734d2055657..69fe5610bb42 100644 --- a/drivers/staging/greybus/bundle.h +++ b/drivers/staging/greybus/bundle.h @@ -9,7 +9,10 @@ #ifndef __BUNDLE_H #define __BUNDLE_H
+#include <linux/device.h> #include <linux/list.h> +#include <linux/pm_runtime.h> +#include <linux/types.h>
#define BUNDLE_ID_NONE U8_MAX
diff --git a/drivers/staging/greybus/connection.h b/drivers/staging/greybus/connection.h index 5ca3befc0636..d59b7fc1de3e 100644 --- a/drivers/staging/greybus/connection.h +++ b/drivers/staging/greybus/connection.h @@ -9,8 +9,11 @@ #ifndef __CONNECTION_H #define __CONNECTION_H
+#include <linux/bits.h> #include <linux/list.h> #include <linux/kfifo.h> +#include <linux/kref.h> +#include <linux/workqueue.h>
#define GB_CONNECTION_FLAG_CSD BIT(0) #define GB_CONNECTION_FLAG_NO_FLOWCTRL BIT(1) diff --git a/drivers/staging/greybus/control.h b/drivers/staging/greybus/control.h index 3a29ec05f631..0d4e2ed20fe4 100644 --- a/drivers/staging/greybus/control.h +++ b/drivers/staging/greybus/control.h @@ -9,6 +9,9 @@ #ifndef __CONTROL_H #define __CONTROL_H
+#include <linux/device.h> +#include <linux/types.h> + struct gb_control { struct device dev; struct gb_interface *intf; diff --git a/drivers/staging/greybus/greybus_manifest.h b/drivers/staging/greybus/greybus_manifest.h index 2cec5cf7a846..1cb60af4febd 100644 --- a/drivers/staging/greybus/greybus_manifest.h +++ b/drivers/staging/greybus/greybus_manifest.h @@ -14,6 +14,9 @@ #ifndef __GREYBUS_MANIFEST_H #define __GREYBUS_MANIFEST_H
+#include <linux/bits.h> +#include <linux/types.h> + enum greybus_descriptor_type { GREYBUS_TYPE_INVALID = 0x00, GREYBUS_TYPE_INTERFACE = 0x01, diff --git a/drivers/staging/greybus/greybus_protocols.h b/drivers/staging/greybus/greybus_protocols.h index ddc73f10eb22..e883edb50ed8 100644 --- a/drivers/staging/greybus/greybus_protocols.h +++ b/drivers/staging/greybus/greybus_protocols.h @@ -53,6 +53,8 @@ #ifndef __GREYBUS_PROTOCOLS_H #define __GREYBUS_PROTOCOLS_H
+#include <linux/types.h> + /* Fixed IDs for control/svc protocols */
/* SVC switch-port device ids */ diff --git a/drivers/staging/greybus/hd.h b/drivers/staging/greybus/hd.h index 6cf024a20a58..7be5c065e7c4 100644 --- a/drivers/staging/greybus/hd.h +++ b/drivers/staging/greybus/hd.h @@ -9,6 +9,9 @@ #ifndef __HD_H #define __HD_H
+#include <linux/device.h> +#include <linux/types.h> + struct gb_host_device; struct gb_message;
diff --git a/drivers/staging/greybus/interface.h b/drivers/staging/greybus/interface.h index 1c00c5bb3ec9..f5ab937348f6 100644 --- a/drivers/staging/greybus/interface.h +++ b/drivers/staging/greybus/interface.h @@ -9,6 +9,9 @@ #ifndef __INTERFACE_H #define __INTERFACE_H
+#include <linux/device.h> +#include <linux/types.h> + enum gb_interface_type { GB_INTERFACE_TYPE_INVALID = 0, GB_INTERFACE_TYPE_UNKNOWN, diff --git a/drivers/staging/greybus/manifest.h b/drivers/staging/greybus/manifest.h index f3c95a255631..b101af4c2c72 100644 --- a/drivers/staging/greybus/manifest.h +++ b/drivers/staging/greybus/manifest.h @@ -9,6 +9,8 @@ #ifndef __MANIFEST_H #define __MANIFEST_H
+#include <linux/types.h> + struct gb_interface; bool gb_manifest_parse(struct gb_interface *intf, void *data, size_t size);
diff --git a/drivers/staging/greybus/module.h b/drivers/staging/greybus/module.h index b1ebcc6636db..722c344a3a5a 100644 --- a/drivers/staging/greybus/module.h +++ b/drivers/staging/greybus/module.h @@ -9,6 +9,9 @@ #ifndef __MODULE_H #define __MODULE_H
+#include <linux/device.h> +#include <linux/types.h> + struct gb_module { struct device dev; struct gb_host_device *hd; diff --git a/drivers/staging/greybus/operation.h b/drivers/staging/greybus/operation.h index 40b7b02fff88..96cb99e89034 100644 --- a/drivers/staging/greybus/operation.h +++ b/drivers/staging/greybus/operation.h @@ -10,6 +10,10 @@ #define __OPERATION_H
#include <linux/completion.h> +#include <linux/kref.h> +#include <linux/timer.h> +#include <linux/types.h> +#include <linux/workqueue.h>
struct gb_operation;
diff --git a/drivers/staging/greybus/svc.h b/drivers/staging/greybus/svc.h index ad01783bac9c..5e400e0c27c8 100644 --- a/drivers/staging/greybus/svc.h +++ b/drivers/staging/greybus/svc.h @@ -9,6 +9,11 @@ #ifndef __SVC_H #define __SVC_H
+#include <linux/device.h> +#include <linux/types.h> + +#include "greybus_protocols.h" + #define GB_SVC_CPORT_FLAG_E2EFC BIT(0) #define GB_SVC_CPORT_FLAG_CSD_N BIT(1) #define GB_SVC_CPORT_FLAG_CSV_N BIT(2)