Skip to content

WiFi Power-Management/Firmware issue (mwifiex) #20

Closed

Description

@spokV

I'm running latest release (5.3) and after x minutes getting:

[ 6828.584671] mwifiex_pcie 0000:02:00.0: PREP_CMD: FW in reset state
[ 6828.584687] mwifiex_pcie 0000:02:00.0: failed to get signal information
[ 6828.584755] mwifiex_pcie 0000:02:00.0: PREP_CMD: FW in reset state
[ 6828.584763] mwifiex_pcie 0000:02:00.0: failed to get signal information
[ 6834.587608] mwifiex_pcie 0000:02:00.0: PREP_CMD: FW in reset state
[ 6834.587623] mwifiex_pcie 0000:02:00.0: failed to get signal information
[ 6834.587698] mwifiex_pcie 0000:02:00.0: PREP_CMD: FW in reset state
[ 6834.587706] mwifiex_pcie 0000:02:00.0: failed to get signal information

only reboot solve the wifi crash for me....
I'm running sp 2017 ubuntu 19.10

Activity

  1. GrayHatter commented on Dec 4, 2019

    @GrayHatter

    Retracted, it's the Surface Pro... I swear, I can read....

  2. qzed commented on Dec 4, 2019

    @qzed
    Member

    As far as I know. pretty much every device is affected by this in some way, except for the 7th generation models which have Intel WiFi chips. It seems to be some sort of (runtime) power-management/suspend issue.

    I think it has been discussed on jakeday/linux-surface a couple of times by now. So maybe let's keep this issue to try and collect all that information.

    Links

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109681
    Ubuntu Bugs: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1730924

    Other issues:

    (will update this with more links to relevant jakeday/linux-surface issues)

    Possible Work-Arounds

  3. added
    P: mediumPriority: Medium priority
    A: mwifiexArea: Issue in marvel/mwifiex driver
    C: bugCategory: Bug - Something isn't working
    on Dec 4, 2019
  4. changed the title [-]wifi dropouts on sp 2017[/-] [+]WiFi Power-Management/Firmware issue (mwifiex)[/+] on Dec 4, 2019
  5. kitakar5525 commented on Dec 5, 2019

    @kitakar5525
    Member

    (Copy from https://gitter.im/linux-surface/support?at=5de7a513f65fec1c8ebe1b00)

    Regarding wifi dropouts while using or idle (not after suspend):
    SP2017 owner reported on Gitter linux-surface/community room that disabling L1 substates (IIRC) fixed the issue.
    (Disable L1 substates for all ASPM capable devices: echo powersave | sudo tee /sys/module/pcie_aspm/parameters/policy)
    (I don't know an easy way to disable the substates only for wifi device)
    For my Surface 3 (non-pro), disabling L1 states (disabling only substates is not enough) for wifi device is needed (jakeday/linux-surface#456)

    Is there any influence on power consumption doing that?

    Unfortunately, yes. Bad impact on power consumption when idle or suspend (s2idle). (not sure when using) Especially, if you disable ASPM L1 state, it will break S0ix on suspend (you can check the residency: sudo cat /sys/kernel/debug/pmc_core/slp_s0_residency_usec).

    You might need a patch from sebanc (jakeday/linux-surface#420 (comment)) to achieve S0ix states on suspend when you disable L1 state. At least it's the case on my Surface 3.

  6. kitakar5525 commented on Dec 6, 2019

    @kitakar5525
    Member

    You might need a patch from sebanc (jakeday/linux-surface#420 (comment)) to achieve S0ix states on suspend when you disable L1 state. At least it's the case on my Surface 3.

    Sorry but I may have said incorrect thing.
    (It seems to be true only on my Chromium OS 4.19 kernel… (The kernel may have other power management patches). Sorry to make everyone confused.)
    (On Arch Linux kernel (both 5.4 and 4.19) + Surface patches, I need to re-enable L1 state before suspend to achieve S0ix even with the patch from sebanc.)

    If you are going to disable L1 state when you use your device, re-enabling the L1 state before suspend may be the best idea to achieve S0ix again. And disable L1 state again after suspend.

  7. qzed commented on Dec 9, 2019

    @qzed
    Member

    Thanks! I yet have to find the time to look into that

  8. spokV commented on Dec 11, 2019

    @spokV
    Author

    You might need a patch from sebanc (jakeday/linux-surface#420 (comment)) to achieve S0ix states on suspend when you disable L1 state. At least it's the case on my Surface 3.

    Sorry but I may have said incorrect thing.
    (It seems to be true only on my Chromium OS 4.19 kernel… (The kernel may have other power management patches). Sorry to make everyone confused.)
    (On Arch Linux kernel (both 5.4 and 4.19) + Surface patches, I need to re-enable L1 state before suspend to achieve S0ix even with the patch from sebanc.)

    If you are going to disable L1 state when you use your device, re-enabling the L1 state before suspend may be the best idea to achieve S0ix again. And disable L1 state again after suspend.

    How do i re-enable it again?

  9. kitakar5525 commented on Dec 11, 2019

    @kitakar5525
    Member

    On the script which you used to disable ASPM (ASPM_SETTING=0 means you disabled both L0s and L1), set ASPM_SETTING=3 instead to enable L0s and L1.

    You can check ASPM state:

    # 11ab:2b38 is marvell 88W8897 wifi controller
    
    # ASPM disabled for both L0s and L1
    $ sudo lspci -nnvvv -d 11ab:2b38 | grep "LnkCtl:"
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
    
    # ASPM disabled for L1 (L0s still enabled)
    $ sudo lspci -nnvvv -d 11ab:2b38 | grep "LnkCtl:"
                    LnkCtl: ASPM L0s Enabled; RCB 64 bytes Disabled- CommClk+
    
    # ASPM enabled for both L0s and L1
    $ sudo lspci -nnvvv -d 11ab:2b38 | grep "LnkCtl:"
                    LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
  10. spokV commented on Dec 11, 2019

    @spokV
    Author

    On the script which you used to disable ASPM (ASPM_SETTING=0 means you disabled both L0s and L1), set ASPM_SETTING=3 instead to enable L0s and L1.

    You can check ASPM state:

    # 11ab:2b38 is marvell 88W8897 wifi controller
    
    # ASPM disabled for both L0s and L1
    $ sudo lspci -nnvvv -d 11ab:2b38 | grep "LnkCtl:"
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
    
    # ASPM disabled for L1 (L0s still enabled)
    $ sudo lspci -nnvvv -d 11ab:2b38 | grep "LnkCtl:"
                    LnkCtl: ASPM L0s Enabled; RCB 64 bytes Disabled- CommClk+
    
    # ASPM enabled for both L0s and L1
    $ sudo lspci -nnvvv -d 11ab:2b38 | grep "LnkCtl:"
                    LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+

    just need to call it from the sleep script?

  11. 148 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A: mwifiexArea: Issue in marvel/mwifiex driverC: bugCategory: Bug - Something isn't workingD: Surface Book 2Device: Surface Book 2D: Surface Laptop 1Device: Surface Laptop 1D: Surface Pro 2017Device: Surface Pro 2017 (5)D: Surface Pro 4Device: Surface Pro 4P: mediumPriority: Medium priority

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions