Hi, I was looking at the code. I do not have documentation for the device, but it looks relatively ordinary. Hence this piece of code caught my eye: /* Set the doorbell to notify the device */ btintel_pcie_set_tx_db(data, tfd_index); Requesting an interrupt. However, are you sure the IO can be processed and trigger an interrupt only after the PCI write, which this triggers? /* Wait for the complete interrupt - URBD0 */ ret = wait_event_timeout(data->tx_wait_q, data->tx_wait_done, msecs_to_jiffies(BTINTEL_PCIE_TX_WAIT_TIMEOUT_MS)); Regards Oliver