Hi everyone,

so Tsuchiya and I have been looking into this quite a lot for the last
few weeks and we've identified several issues and tried to find the
underlying reasons as far as possible.

We hope this information will be helpful for you in indentifying issues
with the firmware and the driver so you don't have to take a shot in the
dark. Because most issues and their reproducers are already extensively
explained in this bugreport, we've listed what we suspect to be some of
the root causes for those issues here:

1) The LTR (Latency Tolerance Reporting) messages sent by the firmware
might be incorrect. With the newest firmware, the card always reports
the maximum latency, which prevents the System from entering the lowest
C-States (pc10 and slp_s0). I'm not sure whether that actually prevents
ASPM L1.2 from working, because the command timeouts I see when ASPM
L1.2 is enabled (other devices see them only with (Surface 3) L1 or
(Surface Pro 6) L0s) are still happening.

2) Performing a PCI function level reset of the card with firmware
redownloading only works when power-cycling the card by switching it to
D3cold and then to D0 again, see [1], which implements this. As
mentioned in that commit, this is a quirk that's also done by Windows
and seems to be specific to only Surface devices.

3) For avoid a crash of the firmware when resuming from suspend, it's
important to disable D3 for the PCI bridge, see [2]. This is another
quirk that also seems to be applied by Windows.

4) There's also a bluetooth powersaving issue, which makes the bluetooth
device never enter USB the suspend state as long as no LE device is
connected: That's because (assuming the linux bluetooth stack works
correctly) the firmware never stops sending interrupts with LE
advertising reports, which can easily be confirmed by using the btmon
utility and by disabling Bluetooth LE functionality in
/etc/bluettoth/main.conf.

[1] https://github.com/kitakar5525/linux-surface-
kernel/commit/6eba36073e85a64200f2c28e2a6ba0dbeb120bf2

[2] https://github.com/kitakar5525/linux-surface-
kernel/commit/4606706679bf81ef41e701fc5e4d5b87adb983dd

Thank you!

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1730924

Title:
  Wifi does down "crash" in Surface Pro 4

Status in Linux:
  Confirmed
Status in linux package in Ubuntu:
  Incomplete

Bug description:
  I have a Surface Pro 4. The wifi works well in principle, but unfortunately 
it drops every x minutes. The only way to fix it I've found is to reboot the 
computer.
  lsb_release -rd
  Description:    Ubuntu 17.10
  Release:        17.10

  ProblemType: Bug
  DistroRelease: Ubuntu 17.10
  Package: linux-image-4.13.0-16-generic 4.13.0-16.19
  ProcVersionSignature: Ubuntu 4.13.0-16.19-generic 4.13.4
  Uname: Linux 4.13.0-16-generic x86_64
  ApportVersion: 2.20.7-0ubuntu3.1
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  predatux   1537 F.... pulseaudio
  CurrentDesktop: KDE
  Date: Wed Nov  8 10:41:26 2017
  HibernationDevice: RESUME=UUID=147af4ba-a4ce-41fe-a176-b36a1f6a590b
  Lsusb:
   Bus 002 Device 002: ID 045e:090c Microsoft Corp. 
   Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
   Bus 001 Device 002: ID 045e:07e8 Microsoft Corp. 
   Bus 001 Device 003: ID 1286:204c Marvell Semiconductor, Inc. 
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  MachineType: Microsoft Corporation Surface Pro 4
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.13.0-16-generic 
root=UUID=125200b0-7377-4985-a217-15503781a525 ro quiet splash vt.handoff=7
  RelatedPackageVersions:
   linux-restricted-modules-4.13.0-16-generic N/A
   linux-backports-modules-4.13.0-16-generic  N/A
   linux-firmware                             1.169
  SourcePackage: linux
  UpgradeStatus: Upgraded to artful on 2017-10-22 (16 days ago)
  dmi.bios.date: 02/24/2017
  dmi.bios.vendor: Microsoft Corporation
  dmi.bios.version: 106.1624.768
  dmi.board.name: Surface Pro 4
  dmi.board.vendor: Microsoft Corporation
  dmi.chassis.type: 9
  dmi.chassis.vendor: Microsoft Corporation
  dmi.modalias: 
dmi:bvnMicrosoftCorporation:bvr106.1624.768:bd02/24/2017:svnMicrosoftCorporation:pnSurfacePro4:pvrD0B08F1C03P38:rvnMicrosoftCorporation:rnSurfacePro4:rvr:cvnMicrosoftCorporation:ct9:cvr:
  dmi.product.family: Surface
  dmi.product.name: Surface Pro 4
  dmi.product.version: D:0B:08F:1C:03P:38
  dmi.sys.vendor: Microsoft Corporation

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1730924/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to