}
 #endif
 
+#ifdef CONFIG_DEV_COREDUMP
+static void btusb_coredump(struct device *dev)
+{
+       struct btusb_data *data = dev_get_drvdata(dev);
+       struct hci_dev *hdev = data->hdev;
+
+       if (hdev->dump.coredump)
+               hdev->dump.coredump(hdev);
+}
+#endif
+
 static struct usb_driver btusb_driver = {
        .name           = "btusb",
        .probe          = btusb_probe,
        .id_table       = btusb_table,
        .supports_autosuspend = 1,
        .disable_hub_initiated_lpm = 1,
+
+#ifdef CONFIG_DEV_COREDUMP
+       .drvwrap = {
+               .driver = {
+                       .coredump = btusb_coredump,
+               },
+       },
+#endif
 };
 
 module_usb_driver(btusb_driver);