Changes:
- SAM:
- Fix bug in packet submission leading to a potential deadlock when
packets need to be resent in constested situations
- Misc. other fixes.
- Rename surface_aggregator_debugfs module to surface_aggregator_cdev
and make it a proper character device (miscdevice).
- Add copyright notices.
- Continued cleanup and code improvements.
- Change core from late to standard initialization
- Add sysfs attribute for SAM firmware version
- Register SAN consumers dynamically
- Misc. fixes and cleanup
- mwifiex:
- Revert auto_ds force-disablement
- Add enable_device_dump module parameter
- Try to improve suspend behavior
Links:
- SAM: 47bb8f0824
- kernel: f9183418ae
Changes:
- Fix a bug preventing the Surface Serial Hub driver from probing
successfully under certain conditions.
Links:
- SAM: f973e273e1
- kernel: c594ad2647
Changes:
- SAM:
- Fix a bug preventing SSAM client devices to be registered on the
Surface Book 3.
- Introduce SSAM device domains.
- Rename modules, drivers, and source directories.
- Split-up main header file.
- Update and improve Kconfig options and help texts.
- Internal restructuring, cleanup, and documentation.
Links:
- SAM: 4b3ee5ad71
- kernel: 47860ccd1d
Changes:
- SAM:
- Fix bug where second Surface Book 3 battery would be set up
incorrectly.
- Continued work on internal documentation and cleanup.
- Other minor bugfixes.
- SAM-over-HID:
- Add dGPU switch module for SB1.
- GPE:
- Cleanup and formatting.
Links:
- SAM: c5f84f1f9a
- SAM-over-HID: 9d2a927ac8
- GPE: a9d97ed280
- kernel: f26a027064
Changes:
- SAM
- Properly re-enable events after hibernation.
- Other bugfixes.
- Continued work on internal documentation.
- mwifiex
- Fix bug causing network connection failure on certain networks.
Links:
- SAM: 735a01f74b
- mwifiex: https://lkml.org/lkml/2020/8/27/642
- kernel: e83a20197d
Changes:
SAM:
- Fix false wanring when plugging in AC adapter.
- Fix includes for error injection.
- Other bug fixes and code improvements.
Links:
- kernel: ce875e1f82
- SAM: 4ca8b315e0
Changes:
SAM:
- Move lid/GPE workaround into separate independent module.
- A bus and device type has been implemented for SAM devices.
- Detach devices attached to the base when the cliboard is being
detached on the Surface Book 3.
- Internal restructuring.
Links:
- kernel: 2926c01232
- SAM: 08bbb7272a
Changes:
SAM:
- Fix bug that can cause IRQ storm when SSAM wake IRQ gets triggered.
- Continued internal restructuring.
- Other small bug fixes.
Links:
- kernel: 307c8337b9
- SAM: b9fe8f28b7
Changes:
SAM:
- Enable performance modes on Surface Laptop 1 and 2.
- Support for D0-exit/D0-entry notifications, sent to the SAM
controller when suspending (D0-exit) or resuming (D0-entry) on
newer (gen. 7+) devices.
- Replace sysfs-based debug device with new debugfs-based debug
device.
- More internal restructuring and internal API changes.
- Some small bug fixes.
SAM-over-HID:
- Add ACPI support for SAM-over-HID. This allows setting dGPU power
on the Surface Book 1 via ACPI calls.
Links:
- kernel: c03772c10e
- SAM: 89b8232d49
Changes:
surface3-spi:
- Dropped this patch in favor of the surface3-touchscreen-dma-fix
patch (which is taken from the upstream DMA fix). For details, take
a look at the commit history of kernel repo linked below.
surface3-touchscreen-dma-fix:
- Added this patch as a successor to the dropped surface3-spi patch.
For details, take a look at the commit history of kernel repo linked
below.
Note: currently, this patch is available upstream only on v5.8,
v5.7, and v5.4 and not backported to any older LTS kernels. So,
this patch was backported from upstream commit ourselves.
Links:
- kernel: 94678ca738
Signed-off-by: Tsuchiya Yuto <kitakar@gmail.com>
Changes:
SAM:
- Bugfix: Fix HID input for Surface Laptop 3. The driver now separates
devices by IID, using the same behavior as on the Surface Book 3.
- Bugfix: Minor fixes in SSH driver message system.
Links:
- kernel: c5f2f3b76d
- SAM: 99b0243136
Changes:
SAM:
- Add Surface Book 3 GPE LID fix.
- Add support for Surface Book 3 performance modes
- Add preliminary support for Surface Book 3 HID devices, i.e.
keyboard and touchpad. N.b.: There are still known issues
regarding device re-initialization when detaching/re-attaching.
- Add preliminary support for Surface Book 3 battery/AC.
- Bugfix: Initialize power-target in HPS driver on load.
- Bugfix: Fix out-of-space handling for SSH requests.
Links:
- kernel: 3d8315773f
- SAM: 27e54010b4
Changes:
SAM:
- Add support for Surface Book 3 in Surface HPS driver. The dGPU of
the Surface Book 3 can now be turned on and off via the same
mechanism already being used by the Surface Book 2.
- Add SID devices for Surface Pro 6 with MSHW0111 ID.
- Complete restructure of Surface Serial Hub driver internals. The
old synchronous communication core has been replaced by a
completely asynchronous implementation.
- Misc. code improvements and clean-up.
References:
kernel: ab0ac25c9e
SAM: 6715faf265
Update patches via linux-surface/kernel@fccd0a489e.
Updated patches:
pick ea097eb Add secureboot pre-signing to the kernel
pick b50d617 surface3-power
pick 71ab90b surface3-spi
pick f109cbf surface3-oemb
pick c924fb6 surface-buttons
f 1a44682d3bea Input: soc_button_array - fix Wdiscarded-qualifiers for kernels below 4.20
pick 91a78cc surface-sam
pick 263250b suspend
pick 5ae0ab6 ipts
f a5db77a8ad47 ipts: Simplify feedback implementation
f 22c959edeaf2 ipts: Remove no_feedback quirk
f 21a71ef429b4 ipts: Remove quirk implementation
f f28c0f7b64aa ipts: companion: improve comment for hardware id on SP4
pick df219c0 surface-lte
pick 3484574 ioremap_uc
pick 4f727ac wifi
f f86788d75e54 Revert "BACKPORT: wireless/mwifiex: Fix S0ix / suspend"
f 169bb34570af mwifiex: pcie: Use dev_get_drvdata
f 6e9eefbca821 mwifiex_pcie: remove()/probe() card on suspend()/resume()
f 3619cec06fdc mwifiex_pcie: disable parent bridge_d3
f fda9d444d14d mwifiex: sta_cmd: do not enable auto_ds by default
f 74ab58241354 mwifiex: sta_cmd: add comment for not enabling ps_mode by default
Note: almost all part of the ioremap_uc patch is now upstream. So, the
remaining unupstreamed patch is now only linux-surface/kernel@de067f5c12
("docs: driver-model: add devm_ioremap_uc")
Signed-off-by: Tsuchiya Yuto (kitakar5525) <kitakar@gmail.com>
On the Pro 7 and Laptop 3, intel_lpss_pci fails to probe and thus keeps
the system from booting. Add a patch to fix this.
Note: The added patch is on it's way upstream.
See: https://lkml.org/lkml/2019/10/16/1230
This commit will update suspend.patch for 4.19
Backported these two patches:
- torvalds/linux@4eaefe8c62
(nvme-pci: Allow PCI bus-level PM to be used if ASPM is disabled)
- torvalds/linux@accd2dd72c
(PCI/ASPM: Add pcie_aspm_enabled())
on top of these patches that are already backported by commit
qzed/linux-surface@e8a3d85b22
(Update NVMe part of suspend.patch):
- torvalds/linux@d916b1be94
(nvme-pci: use host managed power state for suspend)
- torvalds/linux@1a87ee657c
(nvme: export get and set features)
- torvalds/linux@d6135c3a1e
(nvme-pci: Sync queues on reset)
Tested and confirmed that suspend is working on Surface Book 1 with
THNSN5512GPU7 TOSHIBA NVMe SSD which has issue resuming from suspend
with PCI bus-level PM.
Link to issue: https://github.com/jakeday/linux-surface/issues/123
(Surface Book with Performance Base: NVMe SSD breaks suspend (s2idle))
- ipts: fix crash caused by calling ipts_send_feedback() repeatedly
(v2-ipts-fix-crash-caused-by-calling-ipts_send_feedback-.patch from kitakar5525/ipts-fix-crash)
- i915: ipts: add destroy_doorbell() when disabling ipts guc submission
(https://github.com/jakeday/linux-surface/issues/544#issuecomment-517626511)
- IPTS: Enable debug prints (qzed/linux-surface@a5e6433)
- IPTS: Do not call intel_ipts_cleanup on suspend (qzed/linux-surface@f52dae4)
- IPTS: Add device link for PM (qzed/linux-surface@cf887d8)
- Fix RCS0 GPU hang on module removing
(0001-Fix-RCS0-GPU-hang-on-module-removing.patch from kitakar5525/linux-surface-patches)
Note:
NVMe part will be merged into Linux 5.3. Remove the part in
0002-suspend.patch when it arrives.
For 5.2
- (Reverted NVMe part of 0002-suspend.patch to apply following patch set)
- nvme: export get and set features · torvalds/linux@1a87ee6torvalds/linux@1a87ee6
- nvme-pci: use host managed power state for suspend · torvalds/linux@d916b1b
torvalds/linux@d916b1b#diff-bc4c090f021c046a7d256a3fcf86b7da
For 4.19, this patch is also applied
- nvme-pci: Sync queues on reset · torvalds/linux@d6135c3
torvalds/linux@d6135c3#diff-bc4c090f021c046a7d256a3fcf86b7da
See
- Surface Book with Performance Base: NVMe SSD breaks suspend (s2idle) · Issue jakeday#123 · jakeday/linux-surface
jakeday#123
The newer surface devices Pro 4 and up do not define _PRW to specify
which GPE interrupt belongs to the lid. Thus they may not be marked as
wake-up sources automatically, so we have to do this manually.