On Wed, 2018-07-04 at 10:33 -0500, Daniel Drake wrote: > On Wed, Jul 4, 2018 at 10:13 AM, Larry Finger <Larry.Finger@xxxxxxxxxxxx> wrote: > > We will have to agree to disagree. > > > > I have no idea what the vendors are doing that cause some motherboards to > > need a different aspm value. What I do know is that we have had to live with > > the idiocy of some vendors saving a few pennies by only including a single > > antenna, rather than two, and then making a problem by miscoding the EFUSE > > bit that indicates which connector is actually in use. As we have no means > > that I know about to detect which boxes have the problem, a module parameter > > was created, just as in this case. > > > > I agree that drivers should work "out of the box", but finite resources and > > lack of vendor cooperation make this a goal that may not be attainable. > > As you touched on, the ideal situation is that Realtek solve the > issue. Ping-Ke Shih is on CC and I am adding a few more contacts from > the commit log. The context is that the r8822 driver fails on several > platforms unless setting aspm=0 (the default is 1). It's hard to have all laptop or motherboards and all rtl8822be modules in my side, so what I can do is to analyze the issue when user encountered. > > https://gist.github.com/dsd/20c05f0c6d66ee2ef9bfbb17f93f18ba > https://bugzilla.kernel.org/show_bug.cgi?id=199651 > > > If we don't get a timely fix from Realtek though, I think there is a > key difference between the antenna selection headache and this one. In > the antenna case, there isn't a good value that you can set that will > work on all systems. If you change the default behaviour you will > solve the issue for some users while simultanously introducing the > problem on other systems that were previously fine. > > However in this case, it's highly likely that setting aspm=0 (off) by > default would work for everyone. It has the disadvantage of using a > bit more power, but especially with the indications that this issue > affects a significant number of systems, I think that having the > driver working out of the box everywhere is more important. The module > parameter can be left in place so that unaffected users that want to > save power can set aspm=1. > I think this issue may be due to L1 latency, so below patch would be helpful but not sure because I don't have the same laptop. Is there anyone can help to test? 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 --- PK