Maintain BLE Connection active during Sleep on Jetson TX2

Hi,

I am working on a Jetson TX2 NX(L4T version: 32.6.1]) and need to maintain an active Bluetooth Low Energy (BLE) connection when the device enters suspend/sleep mode. Currently, the connection drops as soon as the system suspends.

Bluetooth is interfaced through usb:

  • Bus 001 Device 003: ID 13d3:3553 IMC Networks

Please suggest a correct method to prevent this USB Bluetooth controller from being powered down during system sleep?

Hi

I’m following up on the above query.

When device put to suspend, the kernel log shows:

rtk_btusb: rtkbt_pm_notify: pm_event 3
rtk_btusb: suspend prepare
rtk_btusb: Remote wakeup not support, set intf->needs_binding = 1

AW-CM421NF - Is the wifi/bt module used.

Could you please clarify:

  1. Is there any supported method to keep the USB Bluetooth controller powered during suspend on TX2 NX?

  2. Can we configure any USB or GPIO wake source to maintain BLE activity or trigger wake events?

  3. Are there kernel or device tree changes recommended to prevent USB power gating for this interface?

@ShaneCCC

Hello @sanu.m19,

Just out of curiosity, can you try running this command?

sudo bash -c ‘echo -1 > /sys/module/usbcore/parameters/autosuspend’

I am wondering if it might be USB auto suspend what is causing the behavior you are experiencing.

best regards,
Andrew
Embedded Software Engineer at ProventusNova

Hi @ShaneCCC , @proventusnova ,

I tested with USB autosuspend disabled using:
echo -1 | sudo tee /sys/module/usbcore/parameters/autosuspend

However, the BLE connection still drops when the system enters suspend using:
sudo systemctl suspend

Below are the dmesg logs on suspend:

[ 2097.311385] rtk_btcoex: HCI Disconnect, handle 0018, reason 0x15
[ 2097.396208] rtk_btcoex: disconn cmpl evt: status 0x00, handle 0018, reason 0x16
[ 2097.396219] rtk_btcoex: process disconn complete event.
[ 2097.396233] rtk_btcoex: update_profile_connection: is_add 0, profile_index 1
[ 2097.396266] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[1] = 0
[ 2097.396278] rtk_btcoex: update_profile_connection: btrtl_coex.profile_bitmap 0x00
[ 2097.396288] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[0] = 0
[ 2097.396297] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[1] = 0
[ 2097.396306] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[2] = 0
[ 2097.396314] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[3] = 0
[ 2097.396340] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[4] = 0
[ 2097.396348] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[5] = 0
[ 2097.396357] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[6] = 0
[ 2097.396365] rtk_btcoex: update_profile_connection: btrtl_coex.profile_refcount[7] = 0
[ 2097.396377] rtk_btcoex: rtk_notify_profileinfo_to_fw: BufferSize 2
[ 2097.396386] rtk_btcoex: rtk_notify_profileinfo_to_fw: NumberOfHandles 0
[ 2097.396395] rtk_btcoex: rtk_notify_profileinfo_to_fw: profile_status 0x00
[ 2097.396403] rtk_btcoex: HCI device is down
[ 2097.434273] rtk_btusb: btusb_notify: hci0 evt 2
[ 2097.434941] rtk_btusb: btusb_flush add delay 
[ 2097.455070] rtk_btusb: btusb_close
[ 2097.466915] rtk_btcoex: Close BTCOEX
[ 2097.466921] rtk_btcoex: -x
[ 2097.491937] PM: suspend entry 2025-10-13 05:11:34.751349472 UTC

Could you please confirm:

  1. Whether any mechanism exists on Jetson TX2 NX to keep the USB Bluetooth interface powered during suspend?
  2. If not, can we configure GPIO (BT_WAKE / HOST_WAKE) lines to act as wake sources for BLE activity?
  3. Are there kernel or device tree changes recommended to allow partial suspend (e.g., freeze mode) while maintaining BLE connectivity?

Thanks,
Sanu

Hello @sanu.m19,

Too bad the auto suspend fix didn’t work.

I think your idea of using a GPIO as a wake up source should work.

You can read about how to do this here.

best regards,
Andrew
Embedded Software Engineer at ProventusNova

Hi,
Please check information of sc7:

https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3276/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/power_management_tx2_32.html#wwpID0E0NT0HA

So in the mode, USB roothubs are suspended. If you have to keep USB on, please not to enter the mode.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.