]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
rtlwifi: rtl8821ae: Fix connection lost problem correctly
authorLarry Finger <Larry.Finger@lwfinger.net>
Mon, 5 Feb 2018 18:38:11 +0000 (12:38 -0600)
committerSeth Forshee <seth.forshee@canonical.com>
Fri, 23 Feb 2018 14:27:29 +0000 (08:27 -0600)
commit258711c57bc81962fd1548dc1bd1077572672d19
treefc216d166ba48fbdf2810c21329d9f182a8d6f6e
parent29a0a3836e7b9987f485ad003b53af762c2bb432
rtlwifi: rtl8821ae: Fix connection lost problem correctly

BugLink: http://bugs.launchpad.net/bugs/1751131
commit c713fb071edc0efc01a955f65a006b0e1795d2eb upstream.

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 40b368af4b75
("rtlwifi: Fix alignment issues"); however, this change led to
instability in the connection. To restore stability, this change
was reverted in commit b8b8b16352cd ("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: b8b8b16352cd ("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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
drivers/net/wireless/realtek/rtlwifi/wifi.h