Bug 297257 - usr.sbin/bluetooth/iwmbtfw: libusb_interrupt_transfer timeout (err=-7) during HCI reset on Intel Wireless 7260/3160
Summary: usr.sbin/bluetooth/iwmbtfw: libusb_interrupt_transfer timeout (err=-7) during...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 15.1-RELEASE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-bluetooth (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-08-04 05:30 UTC by jimm popkow
Modified: 2026-08-04 13:32 UTC (History)
0 users

See Also:


Attachments
usbconfig -d ugen0.2 dump_device_desc (515 bytes, text/plain)
2026-08-04 05:30 UTC, jimm popkow
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description jimm popkow 2026-08-04 05:30:51 UTC
Created attachment 273429 [details]
usbconfig -d ugen0.2 dump_device_desc

The iwmbtfw(8) utility fails to initialize Intel Wireless 7260 Bluetooth controller on FreeBSD 15.0-CURRENT. During the identification phase, iwmbt_bt_reset() fails due to a USB interrupt transfer timeout (libusb_interrupt_transfer error -7).

[Hardware]
Device: Intel Wireless 7260 / 3160 Bluetooth adapter
PCI/USB Node: ugen0.2 (Intel Corp. Bluetooth wireless interface)

[Environment]
OS: FreeBSD 15.0-CURRENT
Utility: /usr/src/usr.sbin/bluetooth/iwmbtfw

[Steps to Reproduce]
1. Run iwmbtfw in debug mode:
   # iwmbtfw -D -I -d ugen0.2

[Expected Behavior]
The device undergoes HCI reset, firmware is downloaded and loaded into the controller.

[Actual Behavior]
HCI reset times out while communicating via libusb:

main: opening dev 0.2
iwmbt_is_supported: found iwmbtfw compatible
iwmbtfw: iwmbt_hci_command: libusb_interrupt_transfer() failed: err=Timeout
iwmbt_bt_reset: HCI reset command failed: code=-7
iwmbt_identify: iwmbt_bt_reset() failed!
iwmbtfw: main: Failed to identify device
iwmbtfw: main: Firmware download failed!

[Additional Notes & Troubleshooting Attempted]
- Increasing IWMBT_HCI_CMD_TIMEOUT from 1000ms to 5000ms in iwmbt_hw.h does not resolve the issue.
- Adding a delay (e.g. sleep(2)) before iwmbt_bt_reset() in main.c inside the `if (device == IWMBT_DEVICE_7260)` block still results in libusb timeout (code -7 / LIBUSB_ERROR_TIMEOUT).
Comment 1 jimm popkow 2026-08-04 07:35:58 UTC
Correction for [Environment]: OS: FreeBSD 15.1