diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 1b0adf5c2376017b20417167c83ff571a3af1dfd..7188f0fb2e050bf69daf66b752ad458f25a9ac91 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -2595,6 +2595,11 @@ static int btusb_setup_qca_download_fw(struct hci_dev *hdev, sent += size; count -= size; + /* ep2 need time to switch from function acl to function dfu, + * so we add 20ms delay here. + */ + msleep(20); + while (count) { size = min_t(size_t, count, QCA_DFU_PACKET_LEN);