Re: git: 24ae172a5035 - main - ng_ubt(4): do not attach Realtek 87XX/88XX adaptors in bootloader mode.

From: Vladimir Kondratyev <vladimir_at_kondratyev.su>
Date: Sat, 28 Dec 2024 19:47:47 UTC
On 2024-12-27 17:41, Andriy Gapon wrote:
> On 07/11/2024 01:31, Vladimir Kondratyev wrote:
>> The branch main has been updated by wulf:
>> 
>> URL: 
>> https://cgit.FreeBSD.org/src/commit/?id=24ae172a50352ad4fd22989477f29ecca5aed6e3
>> 
>> commit 24ae172a50352ad4fd22989477f29ecca5aed6e3
>> Author:     Vladimir Kondratyev <wulf@FreeBSD.org>
>> AuthorDate: 2024-11-06 23:28:11 +0000
>> Commit:     Vladimir Kondratyev <wulf@FreeBSD.org>
>> CommitDate: 2024-11-06 23:28:11 +0000
>> 
>>      ng_ubt(4): do not attach Realtek 87XX/88XX adaptors in bootloader 
>> mode.
> 
> Perhaps this change deserves an UPDATING entry?
> 
> Today I upgraded only to find out that my bluetooth related things
> stopped working.  It turned out that ng_ubt didn't attach to my USB
> bluetooth adapter.

Definitelly it deserves an UPDATING entry.

I did not know that such an adaptors exist. I do have only couple of BT
dongles and both of them requires external firmware to be loaded to 
operate.

I think it will be good to print a hint to user if firmware file is 
missing too.

I will add both after ruturning back from vacations in a month.

> Only then I discovered this change, installed the firmware package, 
> etc.
> 
> As strange as it may seem, previously my adapter worked without
> uploading any extra firmware.
> 
> Some data points, just in case:
>   idVendor = 0x0b05
>   idProduct = 0x190e
>   bcdDevice = 0x0200
>   iManufacturer = 0x0001  <Realtek>
>   iProduct = 0x0002  <ASUS USB-BT500>
> 
> rtlbt_is_realtek: found USB Realtek
> rtlbt_dump_version: hci_version    0x0a
> rtlbt_dump_version: hci_revision   0x000b
> rtlbt_dump_version: lmp_version    0x0a
> rtlbt_dump_version: lmp_subversion 0x8761
> main: loading firmware /usr/local/share/rtlbt-firmware/rtl8761bu_fw.bin
> main: loading config 
> /usr/local/share/rtlbt-firmware/rtl8761bu_config.bin
> main: Firmware download complete
> rtlbt_dump_version: hci_version    0x0a
> rtlbt_dump_version: hci_revision   0xdfc6
> rtlbt_dump_version: lmp_version    0x0a
> rtlbt_dump_version: lmp_subversion 0xd922
> main: Firmware download is successful!

It is obviously that firmware has been upgraded but I do not know 
benefits
of this action.

Also May be some some values of hci_revision or lmp_subversion means 
"Firmware
is in operationl state, not upgraded". May be no...

> 
>>      Attempt to initialize FreeBSD bluetooth stack while such a device 
>> is in
>>      bootloader mode locks the adapter hardly so it requires power 
>> on/off
>>      cycle to restore.
>>           This change blocks ng_ubt attachment unless operational 
>> firmware is
>>      loaded thus preventing the lock up.
>>           Sponsored by:   Future Crew LLC
>>      MFC after:      1 month
>>      Differential Revision:  https://reviews.freebsd.org/D46738

-- 
WBR
Vladimir Kondratyev