Hi Daniel, >> Realtek RTL8822BE BT chip on ASUS X420FA cannot be turned on correctly >> after on-off several times. Bluetooth daemon sets BT mode failed when >> this issue happens. > > You could also mention that scanning must be active while turning off > for this bug to be hit. > >> bluetoothd[1576]: Failed to set mode: Failed (0x03) >> >> If BT is tunred off, then turned on again, it works correctly again. > > Typo: turned > >> According to the vendor driver, the HCI_QUIRK_RESET_ON_CLOSE flag is set >> during probing. So, this patch makes Realtek's BT reset on close to fix >> this issue. > > Checked the vendor driver - I see what you are referring to, so the > change seems correct. > > #if HCI_VERSION_CODE >= KERNEL_VERSION(3, 7, 1) > if (!reset) > set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks); > RTKBT_DBG("set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);"); > #endif > > However I'm pretty sure this is not saying that kernel 3.7.0 did not > need the reset. I think it just means that the flag did not exist > before Linux-3.7.1, so they added the ifdef to add some level of > compatibility with older kernel versions. I think you can remove > "since kernel v3.7.1." from the comment. > > After those changes you can add: > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=203429 > Reviewed-by: Daniel Drake <drake@xxxxxxxxxxxx> if someone wants to use HCI_Reset to ensure that all their connections and radio usage is reset, then they should do that via the hdev->shutdown handler. Look at btusb.c if you need an example. This quirk is for hardware that can not use HCI_Reset on init which is Bluetooth 1.0b hardware. Regards Marcel