In btusb.c we have the following code. I interpret this in a way that once firmware was loaded the driver will never check for updated firmware. Shouldn't the driver always read the firmware file available on the system and check its version against the firmware version the device has (and apply it if it's newer)? But maybe I miss something .. bt_dev_info(hdev, "read Intel version: %02x%02x%02x%02x%02x%02x%02x%02x%02x", ver.hw_platform, ver.hw_variant, ver.hw_revision, ver.fw_variant, ver.fw_revision, ver.fw_build_num, ver.fw_build_ww, ver.fw_build_yy, ver.fw_patch_num); /* fw_patch_num indicates the version of patch the device currently * have. If there is no patch data in the device, it is always 0x00. * So, if it is other than 0x00, no need to patch the device again. */ if (ver.fw_patch_num) { bt_dev_info(hdev, "Intel device is already patched. " "patch num: %02x", ver.fw_patch_num); goto complete; }