Return-path: Received: from mail-it0-f67.google.com ([209.85.214.67]:33030 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753212AbeGFHWV (ORCPT ); Fri, 6 Jul 2018 03:22:21 -0400 Received: by mail-it0-f67.google.com with SMTP id y124-v6so4476697itc.0 for ; Fri, 06 Jul 2018 00:22:21 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20180706054435.3732-1-pkshih@realtek.com> References: <20180706054435.3732-1-pkshih@realtek.com> From: Jian-Hong Pan Date: Fri, 6 Jul 2018 15:22:19 +0800 Message-ID: (sfid-20180706_092238_022802_2135F687) Subject: Re: [PATCH] staging: r8822be: Fix RTL8822be can't find any wireless AP To: Ping-Ke Shih Cc: Greg Kroah-Hartman , Larry Finger , Linux Kernel , linux-wireless@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-wireless-owner@vger.kernel.org List-ID: 2018-07-06 13:44 GMT+08:00 : > From: Ping-Ke Shih > > RTL8822be can't bring up properly on ASUS X530UN, and dmesg says: > [ 8.591333] r8822be: module is from the staging directory, the quality > is unknown, you have been warned. > [ 8.593122] r8822be 0000:02:00.0: enabling device (0000 -> 0003) > [ 8.669163] r8822be: Using firmware rtlwifi/rtl8822befw.bin > [ 9.289939] r8822be: rtlwifi: wireless switch is on > [ 10.056426] r8822be 0000:02:00.0 wlp2s0: renamed from wlan0 > ... > [ 11.952534] r8822be: halmac_init_hal failed > [ 11.955933] r8822be: halmac_init_hal failed > [ 11.956227] r8822be: halmac_init_hal failed > [ 22.007942] r8822be: halmac_init_hal failed > > Jian-Hong reported it works if turn off ASPM with module parameter aspm=0. > In order to fix this problem kindly, this commit don't turn off aspm but > enlarge ASPM L1 latency to 7. I also test this patch on another laptop ASUS X570ZD (AMD Ryzen 7 2700U with Radeon Vega Mobile Gfx) equipped with Realtek rtl8822be wireless. dev@endless:~$ sudo lspci -nnvvvs 02:00.0 02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b822] Subsystem: AzureWave Device [1a3b:2950] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- 0003) [ 19.681015] r8822be: Using firmware rtlwifi/rtl8822befw.bin [ 19.778437] r8822be: rtlwifi: wireless switch is on [ 19.779919] r8822be 0000:02:00.0 wlp2s0: renamed from wlan0 Here is the full dmesg https://gist.github.com/starnight/920950ca596916e393ce0534added83e > Reported-by: Jian-Hong Pan > Tested-by: Jian-Hong Pan > Signed-off-by: Ping-Ke Shih > --- > drivers/staging/rtlwifi/rtl8822be/hw.c | 2 +- > drivers/staging/rtlwifi/wifi.h | 1 + > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/staging/rtlwifi/rtl8822be/hw.c b/drivers/staging/rtlwifi/rtl8822be/hw.c > index 7947edb239a1..88ba5b2fea6a 100644 > --- a/drivers/staging/rtlwifi/rtl8822be/hw.c > +++ b/drivers/staging/rtlwifi/rtl8822be/hw.c > @@ -803,7 +803,7 @@ static void _rtl8822be_enable_aspm_back_door(struct ieee80211_hw *hw) > return; > > pci_read_config_byte(rtlpci->pdev, 0x70f, &tmp); > - pci_write_config_byte(rtlpci->pdev, 0x70f, tmp | BIT(7)); > + pci_write_config_byte(rtlpci->pdev, 0x70f, tmp | ASPM_L1_LATENCY << 3); > > pci_read_config_byte(rtlpci->pdev, 0x719, &tmp); > pci_write_config_byte(rtlpci->pdev, 0x719, tmp | BIT(3) | BIT(4)); > diff --git a/drivers/staging/rtlwifi/wifi.h b/drivers/staging/rtlwifi/wifi.h > index 012fb618840b..a45f0eb69d3f 100644 > --- a/drivers/staging/rtlwifi/wifi.h > +++ b/drivers/staging/rtlwifi/wifi.h > @@ -88,6 +88,7 @@ > #define RTL_USB_MAX_RX_COUNT 100 > #define QBSS_LOAD_SIZE 5 > #define MAX_WMMELE_LENGTH 64 > +#define ASPM_L1_LATENCY 7 > > #define TOTAL_CAM_ENTRY 32 > > -- > 2.15.1 >