1
0
Fork 0
alistair23-linux/drivers/net/wireless/realtek/rtlwifi
Larry Finger c713fb071e rtlwifi: rtl8821ae: Fix connection lost problem correctly
There has been a coding error in rtl8821ae since it was first introduced,
namely that an 8-bit register was read using a 16-bit read in
_rtl8821ae_dbi_read(). This error was fixed with commit 40b368af4b
("rtlwifi: Fix alignment issues"); however, this change led to
instability in the connection. To restore stability, this change
was reverted in commit b8b8b16352 ("rtlwifi: rtl8821ae: Fix connection
lost problem").

Unfortunately, the unaligned access causes machine checks in ARM
architecture, and we were finally forced to find the actual cause of the
problem on x86 platforms. Following a suggestion from Pkshih
<pkshih@realtek.com>, it was found that increasing the ASPM L1
latency from 0 to 7 fixed the instability. This parameter was varied to
see if a smaller value would work; however, it appears that 7 is the
safest value. A new symbol is defined for this quantity, thus it can be
easily changed if necessary.

Fixes: b8b8b16352 ("rtlwifi: rtl8821ae: Fix connection lost problem")
Cc: Stable <stable@vger.kernel.org> # 4.14+
Fix-suggested-by: Pkshih <pkshih@realtek.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Tested-by: James Cameron <quozl@laptop.org>  # x86_64 OLPC NL3
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2018-02-07 15:38:37 +02:00
..
btcoexist rtlwifi: btcoex: Fix some static warnings from Sparse 2018-01-25 19:33:34 +02:00
rtl8188ee rtlwifi: fill FW version and subversion 2018-01-08 19:08:00 +02:00
rtl8192c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rtl8192ce rtlwifi: Convert individual interrupt results to struct 2017-12-07 15:13:32 +02:00
rtl8192cu Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
rtl8192de rtlwifi: Convert individual interrupt results to struct 2017-12-07 15:13:32 +02:00
rtl8192ee rtlwifi: cleanup the code that check whether TX ring is available 2017-12-07 15:14:52 +02:00
rtl8192se rtlwifi: Convert individual interrupt results to struct 2017-12-07 15:13:32 +02:00
rtl8723ae rtlwifi: Convert individual interrupt results to struct 2017-12-07 15:13:32 +02:00
rtl8723be wireless: use ARRAY_SIZE 2017-12-08 15:19:46 +02:00
rtl8723com rtlwifi: fill FW version and subversion 2018-01-08 19:08:00 +02:00
rtl8821ae rtlwifi: rtl8821ae: Fix connection lost problem correctly 2018-02-07 15:38:37 +02:00
Kconfig
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
base.c rtlwifi: Add spec_ver to check whether use new rate-id or not 2018-01-24 17:40:24 +02:00
base.h rtlwifi: Add spec_ver to check whether use new rate-id or not 2018-01-24 17:40:24 +02:00
cam.c rtlwifi: Fix programing CAM content sequence. 2017-02-07 09:25:08 +02:00
cam.h
core.c rtlwifi: btcoex: Add wifi_only series ops to control solo card 2018-01-24 17:40:04 +02:00
core.h
debug.c rtlwifi: Improve debugging by using debugfs 2018-01-08 19:07:45 +02:00
debug.h rtlwifi: Improve debugging by using debugfs 2018-01-08 19:07:45 +02:00
efuse.c rtlwifi: use kcalloc instead of multiply 2018-01-08 19:07:42 +02:00
efuse.h rtlwifi: rtl8723be: btcoex: add package_type function to btcoex 2017-02-07 09:25:08 +02:00
pci.c rtlwifi: btcoex: Add wifi_only series ops to control solo card 2018-01-24 17:40:04 +02:00
pci.h rtlwifi: cleanup the code that check whether TX ring is available 2017-12-07 15:14:52 +02:00
ps.c rtlwifi: fix scan channel 1 fail after IPS 2018-01-17 17:09:10 +02:00
ps.h rtlwifi: Remove unused parameter from rtl_ps_set_rf_state() 2016-07-05 17:31:41 +03:00
pwrseqcmd.h
rc.c rtlwifi: Remove unnecessary parentheses 2018-01-08 19:07:44 +02:00
rc.h
regd.c rtlwifi: fix spelling mistake: "conuntry" -> "country" 2017-03-08 17:07:32 +02:00
regd.h
stats.c rtlwifi: use s8 instead of char 2016-06-29 18:48:15 +03:00
stats.h rtlwifi: use s8 instead of char 2016-06-29 18:48:15 +03:00
usb.c rtlwifi: Use mutex to replace spin_lock to protect IPS and LPS 2018-01-17 17:09:10 +02:00
usb.h rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
wifi.h rtlwifi: rtl8821ae: Fix connection lost problem correctly 2018-02-07 15:38:37 +02:00