On Sat, 2018-05-19 at 20:43 +0000, Mattias Jernberg wrote: > Hi > > With kernel 4.16 I experience a loss in signal strength on rtl8723be, > it is very similar to having the ant_sel parameter wrong (or missing), > iw scan shows only my own access point next to me and with a signal > strength of under -60 rather than above -30. > > I bisected this down to 874e837d67d0db179c9771f38fd21df07c703e93 being > the offending commit. > The commit 874e837d67d0 ("rtlwifi: fill FW version and subversion") set correct firmware version that is used by btcoex to collaborate with firmware properly. > I have also seen three BUGs that might be related. They appear when > setting ant_sel=1 > > * The first one occurred (both on Debians 4.16.5 kernel and on > mainline 4.17-rc5) when I did modprobe rtl8723be ant_sel=1, after a > modprobe -r rtl8723be. > * The second one when booting with ant_sel=1 in /etc/modprobe.d. > * The third one is when booting > 874e837d67d0db179c9771f38fd21df07c703e93 and having ant_sel=1. > > Correct (at least on 4.15.0) for this laptop is ant_sel=2. > With ant_sel=1, it will run into ex_btc8723b1ant_bt_info_notify() of btcoexist/halbtc8723b1ant.c, and cause the bugs you reported. With ant_sel=2, another function corresponding to 2ant is executed, so there is no bug message. I have sent a patchset to linux-wireless that will also fix this bug. If you want to fix it locally, please try below patch based on commit bf516e7d8b1c ("rtlwifi: remove duplicate definition of antenna number for btcoex") of wireless-drivers-next tree. diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c index 4b963fd27d64..868e78870029 100644 --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c @@ -762,10 +762,10 @@ void rtl8723be_c2h_packet_handler(struct ieee80211_hw *hw, u8 *buffer, u8 len) switch (c2h_cmd_id) { case C2H_8723B_BT_INFO: - case C2H_8723B_BT_MP: rtl_c2hcmd_enqueue(hw, c2h_cmd_id, c2h_cmd_len, tmp_buf); break; + case C2H_8723B_BT_MP: default: rtl8723be_c2h_content_parsing(hw, c2h_cmd_id, c2h_cmd_len, tmp_buf); Regards PK