Wifi/bluetooth issues

Yes, I think I see this behavior as well. And maybe others as well. I described here from a user perspective how it impacts me, and what I do to work around it.

Hope that it also will be mainlined now that there are no licensing issues.

I want to bump this thread, because to me is unclear how the driver Burn of Flash the firmware. Some research what i did today do not match with all of this thread comments about.
I will come back…

purism@gnu_os:~/RS911X-nLink-OSD-2.6.1/rsi$ make
-e Compiling RSI drivers...
make -C/lib/modules/6.6.0-1-librem5/build/ M=/home/purism/RS911X-nLink-OSD-2.6.1/rsi modules
make[1]: se entra en el directorio '/usr/src/linux-headers-6.6.0-1-librem5'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: aarch64-linux-gnu-gcc (Debian 12.2.0-14+deb12u1) 12.2.0
  You are using:           gcc (Debian 12.2.0-14+deb12u1) 12.2.0
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_sdio_ops.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_sdio.o
  LD [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_sdio.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_usb_ops.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_usb.o
  LD [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_usb.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_hal.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_main.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_mac80211.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_mgmt.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_core.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_ps.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_debugfs.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_nlsock.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_per.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_hci.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_coex.o
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x_zigb.o
  LD [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x.o
  MODPOST /home/purism/RS911X-nLink-OSD-2.6.1/rsi/Module.symvers
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_sdio.mod.o
  LD [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_sdio.ko
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_usb.mod.o
  LD [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_usb.ko
  CC [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x.mod.o
  LD [M]  /home/purism/RS911X-nLink-OSD-2.6.1/rsi/rsi_91x.ko
make[1]: se sale del directorio '/usr/src/linux-headers-6.6.0-1-librem5'
chmod 777 start_rs9116.sh
chmod 777 osd_common_insert.sh
make CC="cc" ROOT_DIR= -C /home/purism/RS911X-nLink-OSD-2.6.1/rsi/apps
make[1]: se entra en el directorio '/home/purism/RS911X-nLink-OSD-2.6.1/rsi/apps'
-e Compiling Application...
cc -o receive per_receive.c per_sock.c
cc -o bt_util bt_util.c per_sock.c
cc -o onebox_util update_wlan_gain_table.c onebox_util.c per_sock.c
cc -o bt_ble_gain_table_update update_bt_ble_gain_table.c per_sock.c
cc -o transmit transmit.c per_sock.c
cc -o transmit_packet transmit_packet.c per_sock.c
-e Copying to release folder....
cp -rf receive ../release/
cp -rf bt_util ../release/
cp -rf onebox_util ../release/
cp -rf transmit ../release/
cp -rf transmit_packet ../release/
cp -rf bt_ble_gain_table_update ../release/
make[1]: se sale del directorio '/home/purism/RS911X-nLink-OSD-2.6.1/rsi/apps'
-e Compilation done SUCCESSFULLY

:crossed_fingers:

So it not was easy to port driver 2.6.1 to GnuLinux 6.6, because 2.6.1 just support Gnulinux 5.15 same GnuLinux version that Angus Ainslie did for 2.5.1.

So at the moment the new driver compiled 2.6.1 do not work, beccause it need adaptation yet.
So in this aventure i learned a lot on this area, so on v2.6.1 silicon removed redpine_driver by RSI, i not sure if v2.5.1 is same on it, as i go for v2.6.1.
So now i need to brakedown redpine-purism to see what is going on and adapt to new v2.6.1.

Redpine module RS9116N is not die it just changed the name to Silicon module RS9116CC0-1-2 so RS9116CC0 endlife up to 2028 so we might see a new driver version to .2.7 supporting GnuLinux 6.6. or even on rsi Linux mainline.
Last Rv 1.2 from Redpine which Purism shipped support ULP on Suspend but not on Inactive mode or Active mode.
Rv 1.3(still redpine) under siliconLabs enabled ULP on Inactive Mode and dinamic power save on Active, so on old redpine module i not sure if we can get Dinamic powersave on Active mode, as ULP on Inactive Mode it need Hardware support which Rv1.2 lack.

To be honest all driver version under siliconLab it is for Rv1.3, which i not sure if work well on Rv1.2 without surgery, but yest v2.6.1 bring modern code, powersave and enable new features .

As Redpine is a Gnu module i will continue troubleshooting if get something good for my L5 it will take a while as i not fancy programmer like dos.

rsi_91x_ps.c: code Fragments diff:
v2.6.1

if (ps_sleep_type == ULP_POWER_SAVE)
    ps_info->deep_sleep_wakeup_period = 300; //300ms
else
    ps_info->deep_sleep_wakeup_period = 100;

Current Purism redpine version

ps_info->deep_sleep_wakeup_period = 10; // 10ms
ps_info->uapsd_wakeup_period = 10;

Also Redpine file .rps is a full RTOS-NetX system. (strings, cmd traces)