Comment 101 for bug 1730924

Revision history for this message
P.I.Julius (pijulius) wrote :

Hi Kai-Heng Feng,

I see you wrote me twice with the same suggestion and GOOD SOOOO as I have given it up to easily on the first try but I can say now that GOT IT WORKING!!!

So here is everything I found out and did to make it work on Fedora 29 (Kernel 4.18.11)

First of all of course rebuild the whole kernel with all the patches from here:
https://github.com/jakeday/linux-surface

FYI: it now supports Surface Pro 5 2017 (including battery and buttons once qzed's patch is accepted too)

Added pcie_aspm=off to the kernel (NOT Needed, instead please keep reading on) command but unfortunately that didn't do anything so started digging and realized drivers/pci/pcie/aspm.c doesn't even compiles when building the kernel so there is no code to check this command parameter for the kernel anyway.

Then dug around some more and found I don't even have "/sys/module/pcie_aspm/parameters/policy" file not even the directory "/sys/module/pcie_aspm" so it seems the kernel for whatever reason (as couldn't find PCIE_ASPM config related things in make menuconfig either).

So wanted to make sure ASPM is indeed turned on for the wireles so I did:
lspci -vvv

and found this device:
01:00.0 Ethernet controller: Marvell Technology Group Ltd. 88W8897 [AVASTAR] 802.11ac Wireless

with the following:
LnkCtl: ASPM L0s L1 Enabled;

Now I started to google around on how to disable ASPM on device basis as it seems these values are set from the firmware itself (if I understood things correctly) and found baybal's script (which enables ASPM on dell devices):
https://gist.github.com/baybal/b499fc5811a7073df0c03ab8da4be904

and instead of enabling I changed it to disable on the ethernet controller and that did the trick!!! Now doing lspci -s 01:00.0 -vvv shows me this instead:
LnkCtl: ASPM Disabled;

and since then I can play a YouTube video in 1440p and it never freezes (and was freezing like in first minute before that) also realized that if I changed to 720p it was dying out later bit did die out eventually but now with ASPM off even 1440p works just fine and plays trough the whole video.

I'm attaching the shell script that I quickly modified from baybal's code, it needs to be run every time on startup (not on resume as far as I could see/tested) and then all should be fine just please make sure you verify that your Marvell network device is indeed at 01:00.0 and if not just edit the file and change this.

So will keep on testing but it seems this fixed the problem and all working just great now so thanks again Kai-Heng Feng for the pointers if you give me the details I'm ready to send you over the small reward that I offered for help/solution and it seems yours was the one so just let me know the PayPal address and it will be on it's way.

Thanks again and hopefully this will be it and all the details/script will be helpful to the others too.

Regards,
Julius