My problem is the fact that I donâ??t understand the combination of enable and dsbr value in the HCI command parameter structure. It would be really beneficial if the EFI variable and the HCI command is actually documented in the code. > + > +static int btintel_apply_dsbr(struct hci_dev *hdev, > + struct intel_version_tlv *ver) > +{ > + /* For BlazarI + B0 step, DSBR command needs to be sent just after > + * downloading IML firmware > + */ > + return ver->img_type == BTINTEL_IMG_IML && > + ((ver->cnvi_top & 0xfff) == BTINTEL_CNVI_BLAZARI) && > + INTEL_CNVX_TOP_STEP(ver->cnvi_top) == 0x01; > +} > + > int btintel_bootloader_setup_tlv(struct hci_dev *hdev, > struct intel_version_tlv *ver) > { > @@ -2649,6 +2759,13 @@ int btintel_bootloader_setup_tlv(struct hci_dev *hdev, > if (err) > return err; > > + if (btintel_apply_dsbr(hdev, ver)) { > + /* set drive strength BRI response */ > + err = btintel_set_dsbr(hdev, ver); > + if (err) > + return err; > + } > + Here I would really just call the command: err = btintel_set_dsbr(hdev); And then let the command figure out what value needs to be read and if it is applicable to the hardware. The function btintel_apply_dsbr() is not acceptable. That will get out of control with the next hardware release. It is already for this hardware version unreadable. In addition the wording "drive strength of BRIâ?? make little sense to me. I donâ??t know what â??drive strengthâ?? actually means. When I google it then it talks about current and values in mA. So I really echo Pauls comments here. Please add documentation and comments in the code. Regards Marcel