Message ID | 20240710092614.7297-1-chris.lu@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] Bluetooth: btmtk: Fix btmtk.c undefined reference build error | expand |
Dear Chris, Am 10.07.24 um 11:26 schrieb Chris Lu: > MediaTek move some usb interface related function to btmtk.c which move*d* Maybe add … in commit XXX ("yyy") … in that sentence. > may cause build failed if BT USB Kconfig wasn't enabled. Is not enabling BT USB Kconfig when using btmtk a valid use-case? > Fix undefined reference by adding config check. > > btmtk.c:(.text+0x89c): undefined reference to `usb_alloc_urb' > btmtk.c:(.text+0x8e3): undefined reference to `usb_free_urb' > btmtk.c:(.text+0x956): undefined reference to `usb_free_urb' > btmtk.c:(.text+0xa0e): undefined reference to `usb_anchor_urb' > btmtk.c:(.text+0xb43): undefined reference to `usb_autopm_get_interface' > btmtk.c:(.text+0xb7e): undefined reference to `usb_autopm_put_interface' > btmtk.c:(.text+0xf70): undefined reference to `usb_disable_autosuspend' > btmtk.c:(.text+0x133a): undefined reference to `usb_control_msg' > > Fixes: 39a9e1c69e74 ("Bluetooth: btmtk: move btusb_mtk_hci_wmt_sync to btmtk.c") > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202407091928.AH0aGZnx-lkp@intel.com/ > Co-developed-by: Sean Wang <sean.wang@mediatek.com> > Signed-off-by: Sean Wang <sean.wang@mediatek.com> > Signed-off-by: Chris Lu <chris.lu@mediatek.com> > --- > Change from v1 to v2: > -fix and update commit message warning > --- > drivers/bluetooth/btmtk.c | 2 ++ > drivers/bluetooth/btmtk.h | 4 ++++ > 2 files changed, 6 insertions(+) > > diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c > index b7c348687a77..9789296ad4f6 100644 > --- a/drivers/bluetooth/btmtk.c > +++ b/drivers/bluetooth/btmtk.c > @@ -437,6 +437,7 @@ int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb) > } > EXPORT_SYMBOL_GPL(btmtk_process_coredump); > > +#if IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) > static void btmtk_usb_wmt_recv(struct urb *urb) > { > struct hci_dev *hdev = urb->context; > @@ -1487,6 +1488,7 @@ int btmtk_usb_shutdown(struct hci_dev *hdev) > return 0; > } > EXPORT_SYMBOL_GPL(btmtk_usb_shutdown); > +#endif > > MODULE_AUTHOR("Sean Wang <sean.wang@mediatek.com>"); > MODULE_AUTHOR("Mark Chen <mark-yw.chen@mediatek.com>"); > diff --git a/drivers/bluetooth/btmtk.h b/drivers/bluetooth/btmtk.h > index 453ed5131a37..890dbe9beff8 100644 > --- a/drivers/bluetooth/btmtk.h > +++ b/drivers/bluetooth/btmtk.h > @@ -165,6 +165,7 @@ struct btmtk_data { > btmtk_reset_sync_func_t reset_sync; > struct btmtk_coredump_info cd_info; > > +#if IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) > struct usb_device *udev; > struct usb_interface *intf; > struct usb_anchor *ctrl_anchor; > @@ -177,6 +178,7 @@ struct btmtk_data { > > /* spinlock for ISO data transmission */ > spinlock_t isorxlock; > +#endif > }; > > typedef int (*wmt_cmd_sync_func_t)(struct hci_dev *, > @@ -202,6 +204,7 @@ 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); > @@ -216,6 +219,7 @@ 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, Kind regards, Paul
diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c index b7c348687a77..9789296ad4f6 100644 --- a/drivers/bluetooth/btmtk.c +++ b/drivers/bluetooth/btmtk.c @@ -437,6 +437,7 @@ int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb) } EXPORT_SYMBOL_GPL(btmtk_process_coredump); +#if IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) static void btmtk_usb_wmt_recv(struct urb *urb) { struct hci_dev *hdev = urb->context; @@ -1487,6 +1488,7 @@ int btmtk_usb_shutdown(struct hci_dev *hdev) return 0; } EXPORT_SYMBOL_GPL(btmtk_usb_shutdown); +#endif MODULE_AUTHOR("Sean Wang <sean.wang@mediatek.com>"); MODULE_AUTHOR("Mark Chen <mark-yw.chen@mediatek.com>"); diff --git a/drivers/bluetooth/btmtk.h b/drivers/bluetooth/btmtk.h index 453ed5131a37..890dbe9beff8 100644 --- a/drivers/bluetooth/btmtk.h +++ b/drivers/bluetooth/btmtk.h @@ -165,6 +165,7 @@ struct btmtk_data { btmtk_reset_sync_func_t reset_sync; struct btmtk_coredump_info cd_info; +#if IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) struct usb_device *udev; struct usb_interface *intf; struct usb_anchor *ctrl_anchor; @@ -177,6 +178,7 @@ struct btmtk_data { /* spinlock for ISO data transmission */ spinlock_t isorxlock; +#endif }; typedef int (*wmt_cmd_sync_func_t)(struct hci_dev *, @@ -202,6 +204,7 @@ 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); @@ -216,6 +219,7 @@ 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,