This bug was fixed in the package linux-oem - 4.15.0-1026.31

---------------
linux-oem (4.15.0-1026.31) bionic; urgency=medium

  * linux-oem: 4.15.0-1026.31 -proposed tracker (LP: #1800788)

  * Thunderbolt runtime D3 and PCIe D3 Cold support (LP: #1800770)
    - ACPI / hotplug / PCI: Don't scan bridges managed by native hotplug
    - ACPI / hotplug / PCI: Mark stale PCI devices disconnected
    - ACPI / hotplug / PCI: Drop unnecessary parentheses
    - PCI: Account for all bridges on bus when distributing bus numbers
    - PCI: Move resource distribution for single bridge outside loop
    - PCI: Improve pci_scan_bridge() and pci_scan_bridge_extend() doc
    - ACPICA: Recognize the Windows 10 version 1607 and 1703 OSI strings
    - ACPICA: Recognize the _OSI string "Windows 2017.2"
    - PCI: Do not skip power-managed bridges in pci_enable_wake()
    - PCI / ACPI: Enable wake automatically for power managed bridges
    - PCI: pciehp: Fix use-after-free on unplug
    - PCI: hotplug: Drop checking of PCI_BRIDGE_CONTROL in 
*_unconfigure_device()
    - PCI: Add SPDX GPL-2.0+ to replace GPL v2 or later boilerplate
    - PCI: pciehp: Declare pciehp_unconfigure_device() void
    - PCI: pciehp: Clear Presence Detect and Data Link Layer Status Changed on
      resume
    - PCI: pciehp: Document struct slot and struct controller
    - PCI: hotplug: Don't leak pci_slot on registration failure
    - PCI: pciehp: Fix unprotected list iteration in IRQ handler
    - PCI: pciehp: Drop unnecessary NULL pointer check
    - PCI: pciehp: Convert to threaded IRQ
    - PCI: pciehp: Convert to threaded polling
    - PCI: pciehp: Stop blinking on slot enable failure
    - PCI: pciehp: Handle events synchronously
    - PCI: pciehp: Drop slot workqueue
    - PCI/hotplug: ppc: correct a php_slot usage after free
    - PCI: hotplug: Demidlayer registration with the core
    - PCI: pciehp: Publish to user space last on probe
    - PCI: pciehp: Track enable/disable status
    - PCI: pciehp: Enable/disable exclusively from IRQ thread
    - PCI: pciehp: Drop enable/disable lock
    - PCI: pciehp: Declare pciehp_enable/disable_slot() static
    - PCI: pciehp: Tolerate initially unstable link
    - PCI: pciehp: Become resilient to missed events
    - PCI: pciehp: Always enable occupied slot on probe
    - PCI: pciehp: Avoid slot access during reset
    - PCI: portdrv: Deduplicate PM callback iterator
    - PCI/portdrv: Move pcieport_if.h to drivers/pci/pcie/
    - PCI/portdrv: Merge pcieport_if.h into portdrv.h
    - PCI/PM: Move pcie_clear_root_pme_status() to core
    - PCI/portdrv: Remove pcie_port_bus_type link order dependency
    - PCI/portdrv: Disable port driver in compat mode
    - PCI/portdrv: Remove unused PCIE_PORT_SERVICE_VC
    - PCI/portdrv: Remove "pcie_hp=nomsi" kernel parameter
    - PCI/portdrv: Remove unnecessary "pcie_ports=auto" parameter
    - PCI/portdrv: Encapsulate pcie_ports_auto inside the port driver
    - PCI: pciehp: Clear spurious events earlier on resume
    - PCI: pciehp: Obey compulsory command delay after resume
    - PCI: pciehp: Support interrupts sent from D3hot
    - PCI: pciehp: Resume to D0 on enable/disable
    - PCI: pciehp: Resume parent to D0 on config space access
    - PCI: sysfs: Resume to D0 on function reset
    - PCI: Whitelist native hotplug ports for runtime D3
    - PCI: Whitelist Thunderbolt ports for runtime D3
    - PCI: pciehp: Deduplicate presence check on probe & resume
    - PCI: pciehp: Disable hotplug interrupt during suspend
    - PCI: pciehp: Do not handle events if interrupts are masked
    - PCI: pciehp: Make pciehp_is_native() stricter
    - PCI: Clean up whitespace in linux/pci.h, pci/pci.h
    - PCI/portdrv: Simplify PCIe feature permission checking
    - PCI/AER: Handle ERR_FATAL with removal and re-enumeration of devices
    - PCI/AER: Rename error recovery interfaces to generic PCI naming
    - PCI/AER: Move pci_uevent_ers() out of pci.h
    - PCI/AER: Factor out error reporting to drivers/pci/pcie/err.c
    - PCI/portdrv: Rename and reverse sense of pcie_ports_auto
    - PCI: pciehp: Rename host->native_hotplug to host->native_pcie_hotplug
    - PCI: hotplug: Add hotplug_is_native()
    - PCI: shpchp: Remove acpi_get_hp_hw_control_from_firmware() flags
    - PCI: shpchp: Remove get_hp_hw_control_from_firmware() wrapper
    - PCI: shpchp: Rely on previous _OSC results
    - PCI: shpchp: Add shpchp_is_native()
    - PCI: Add wrappers for dev_printk()
    - PCI: pciehp: Request control of native hotplug only if supported
    - PCI: shpchp: Request SHPC control via _OSC when adding host bridge
    - PCI/DPC: Rename from pcie-dpc.c to dpc.c
    - PCI: Add generic pcie_wait_for_link() interface
    - PCI / PM: Use SMART_SUSPEND and LEAVE_SUSPENDED flags for PCIe ports
    - PCI/portdrv: Resume upon exit from system suspend if left runtime 
suspended
    - PCI/portdrv: Add runtime PM hooks for port service drivers
    - PCI: pciehp: Implement runtime PM callbacks
    - PCI/PME: Implement runtime PM callbacks
    - ACPI / property: Allow multiple property compatible _DSD entries
    - PCI / ACPI: Whitelist D3 for more PCIe hotplug ports
    - PCI: pciehp: Tolerate Presence Detect hardwired to zero
    - PCI: Simplify disconnected marking
    - PCI: pciehp: Differentiate between surprise and safe removal
    - PCI: pciehp: Drop unnecessary includes
    - PCI: pciehp: Drop hotplug_slot_ops wrappers
    - PCI: pciehp: Avoid implicit fallthroughs in switch statements
    - PCI: pciehp: Fix hot-add vs powerfault detection order
    - PCI: Remove unnecessary messages for memory allocation failures
    - PCI: pciehp: Unify controller and slot structs
    - powerpc/pseries: Add Initialization of VF Bars
    - PCI: Fix is_added/is_busmaster race condition
    - xhci: Add Intel extended cap / otg phy mux handling
    - xhci: Allow more than 32 quirks
    - xhci: Add quirk to zero 64bit registers on Renesas PCIe controllers
    - xhci-pci: allow host runtime PM as default for Intel Alpine and Titan 
Ridge
    - thunderbolt: Initialize after IOMMUs
    - ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot is not
      bridge
    - usb: Don't die twice if PCI xhci host is not responding in resume
    - thunderbolt: Do not handle ICM events after domain is stopped
    - xhci: refactor xhci_urb_enqueue a bit with minor changes
    - xhci: Clear the host side toggle manually when endpoint is soft reset
    - xhci: add helper to allocate command with input context
    - xhci: remove unnecessary boolean parameter from xhci_alloc_command
    - PCI: pciehp: Add quirk for Command Completed errata
    - PCI: Add vendor ID for Cadence
    - PCI: Add Qualcomm vendor ID
    - PCI: Add "pci=disable_acs_redir=" parameter for peer-to-peer support
    - PCI: Handle FLR failure and allow other reset types
    - PCI: Remove redundant probes for device reset support
    - PCI: Protect restore with device lock to be consistent
    - PCI: Make specifying PCI devices in kernel parameters reusable
    - PCI: Allow specifying devices using a base bus and path of devfns
    - PCI: Rename pci_flr_wait() to pci_dev_wait() and make it generic
    - PCI / PM: Do not clear state_saved for devices that remain suspended
    - PM: i2c-designware-platdrv: Use DPM_FLAG_SMART_PREPARE
    - PM: i2c-designware-platdrv: Optimize power management
    - PM / mfd: intel-lpss: Use DPM_FLAG_SMART_SUSPEND
    - PCI: Make pci_wakeup_bus() & pci_bus_set_current_state() public
    - PCI / ACPI / PM: Resume bridges w/o drivers on suspend-to-RAM
    - PCI / ACPI / PM: Resume all bridges on suspend-to-RAM
    - PCI: Remove messages about reassigning resources
    - ixgbe: Report PCIe link properties with pcie_print_link_status()
    - PCI: Add a return type for pci_reset_bridge_secondary_bus()
    - PCI: Add pcie_get_speed_cap() to find max supported link speed
    - PCI: Add pcie_get_width_cap() to find max supported link width
    - PCI: Add pcie_bandwidth_capable() to compute max supported link bandwidth
    - PCI/PM: Clear PCIe PME Status bit in core, not PCIe port driver
    - PCI/PM: Clear PCIe PME Status bit for Root Complex Event Collectors
    - PCI/portdrv: Remove unnecessary include of <linux/pci-aspm.h>
    - PCI/AER: Use cached AER Capability offset
    - PCI: shpchp: Convert SHPC to be builtin only
    - PCI: shpchp: Use dev_printk() for OSHP-related messages
    - PCI: Add pcie_bandwidth_available() to compute bandwidth available to 
device
    - PCI: Add pcie_print_link_status() to log link speed and whether it's 
limited
    - PCI: Add "PCIe" to pcie_print_link_status() messages
    - PCI: Add "pci=noats" boot parameter
    - PCI: Make pci_get_new_domain_nr() static
    - PCI / PM: Clean up outdated comments in pci_target_state()
    - bnx2x: Report PCIe link properties with pcie_print_link_status()
    - net/mlx4_core: Report PCIe link properties with pcie_print_link_status()
    - bnxt_en: Report PCIe link properties with pcie_print_link_status()
    - cxgb4: Report PCIe link properties with pcie_print_link_status()
    - fm10k: Report PCIe link properties with pcie_print_link_status()
    - net/mlx5e: Use pcie_bandwidth_available() to compute bandwidth
    - PCI: Remove unused pcie_get_minimum_link()
    - PCI: Wait for device to become ready after a power management reset
    - PCI: Wait for device to become ready after secondary bus reset
    - PCI: shpchp: Manage SHPC unconditionally on non-ACPI systems
    - PCI: shpchp: Separate existence of SHPC and permission to use it
    - driver core: Don't ignore class_dir_create_and_add() failure.
    - Merge branch 'tbt_rtd3' into oem-next
    - [Config] update configs and oem.modules changed from tbt_rtd3

 -- Chia-Lin Kao (AceLan) <acelan....@canonical.com>  Wed, 31 Oct 2018
17:32:19 +0800

** Changed in: linux-oem (Ubuntu)
       Status: Fix Committed => Fix Released

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

Title:
  Thunderbolt runtime D3 and PCIe D3 Cold support

Status in HWE Next:
  New
Status in linux-oem package in Ubuntu:
  Fix Released
Status in linux-oem source package in Bionic:
  Fix Released

Bug description:
  [Impact]
  Currently in Ubuntu Bionic 4.15 kernel, we already support thunderbolt to 
enter runtime D3 Hot, and require BIOS' assist to cut off the power of the 
thunderbolt.
  After OSI "Windows 2017.2" (Windows 10 version 1709), BIOS stop cutting off 
the power of thunderbolt, and leave it to OS to set thunderbolt to D3 Cold. It 
consumes more than 2+Watt during short/long idle when thunderbolt is in D3 Hot, 
instead of D3 Cold. 

  [Fix]
  To add D3 Cold support, we mainly require this patchset[1] which is targeted 
to enter v4.20. To avoid conflicts and solve error/warning message, I cherry 
picked 142 and backported 10 commit. I also cherry picked the "Windows 2017.2" 
OSI commit[2] as a whole.

  [Test]
  Verified on 2 machines with Alpine Ridge thunderbolt and 1 machine with Titan 
Ridge thunderbolt, after S3 30 times, hotplug the thunderbolt dockering, the 
HDMI output, Ethernet, USB disk are still working. And verified the SRU stress 
test on another Alpine Ridge thunderbolt machine, the result is positive.

  [Regression Potential]
  Medium. Although other engineers and I have done some testing on some 
machines, our QA will do a more thoroughly testing when the kernel is in 
proposed archive.

  1. https://www.spinics.net/lists/linux-acpi/msg83977.html
  2. 
https://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git/commit/?h=for-usb-next&id=140a6c8af798dfcc06796f907656604c6914

To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/1800770/+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