Separate out the declaration of usb related function into another if/else condition in btmtk.h, avoiding function-declaration issue happened when CONFIG_BT_HCIBTUSB was defined but CONFIG_BT_HCIBTUSB_MTK wasn't. 'btmtk_usb_subsys_reset'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 'alloc_mtk_intr_urb'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 'btmtk_usb_setup'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 'btmtk_usb_shutdown';ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] Fixes: 52828ea60dfd ("Bluetooth: btmtk: Fix btmtk.c undefined reference build error") Reported-by: kernel test robot <lkp@xxxxxxxxx> Closes: https://lore.kernel.org/oe-kbuild-all/202407200904.hRqT3JKD-lkp@xxxxxxxxx/ Signed-off-by: Chris Lu <chris.lu@xxxxxxxxxxxx> --- drivers/bluetooth/btmtk.h | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/drivers/bluetooth/btmtk.h b/drivers/bluetooth/btmtk.h index 6fc69cd8636b..fcc44800cf29 100644 --- a/drivers/bluetooth/btmtk.h +++ b/drivers/bluetooth/btmtk.h @@ -201,23 +201,6 @@ int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb); void btmtk_fw_get_filename(char *buf, size_t size, u32 dev_id, u32 fw_ver, u32 fw_flavor); - -#if IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) -int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 dev_id); - -int btmtk_usb_recv_acl(struct hci_dev *hdev, struct sk_buff *skb); - -struct urb *alloc_mtk_intr_urb(struct hci_dev *hdev, struct sk_buff *skb, - usb_complete_t tx_complete); - -int btmtk_usb_resume(struct hci_dev *hdev); - -int btmtk_usb_suspend(struct hci_dev *hdev); - -int btmtk_usb_setup(struct hci_dev *hdev); - -int btmtk_usb_shutdown(struct hci_dev *hdev); -#endif #else static inline int btmtk_set_bdaddr(struct hci_dev *hdev, @@ -259,7 +242,25 @@ static inline void btmtk_fw_get_filename(char *buf, size_t size, u32 dev_id, u32 fw_ver, u32 fw_flavor) { } +#endif + +/* USB interface related functions */ +#if IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) +int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 dev_id); + +int btmtk_usb_recv_acl(struct hci_dev *hdev, struct sk_buff *skb); + +struct urb *alloc_mtk_intr_urb(struct hci_dev *hdev, struct sk_buff *skb, + usb_complete_t tx_complete); +int btmtk_usb_resume(struct hci_dev *hdev); + +int btmtk_usb_suspend(struct hci_dev *hdev); + +int btmtk_usb_setup(struct hci_dev *hdev); + +int btmtk_usb_shutdown(struct hci_dev *hdev); +#else static inline int btmtk_usb_subsys_reset(struct hci_dev *hdev, u32 dev_id) { return -EOPNOTSUPP; -- 2.18.0