i2c-designware stops working after S4 on CHT platforms

Bug #1810223 reported by Jesse Sung
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux-oem (Ubuntu)
Fix Released
Undecided
Jesse Sung
Nominated for Bionic by Jesse Sung

Bug Description

== Impact ==
The i2c-designware stops working after S4 thus I2C devices connected to it can't be accessed.
[ 272.628526] PM: Timekeeping suspended for 115.313 seconds
[ 272.633110] ACPI: Waking up from system sleep state S4
[ 272.655524] PM: noirq restore of devices complete after 19.377 msecs
[ 272.775692] i2c_designware 80860F41:00: Unknown Synopsys component type: 0xffffffff
[ 272.876322] PM: early restore of devices complete after 219.859 msecs
...
[ 273.060760] i2c_designware 80860F41:00: timeout waiting for bus ready
[ 274.214314] i2c_designware 80860F41:00: timeout in disabling adapter

== Fix ==
This happens after these two commits:
* 36c27d206b21 - PM: i2c-designware-platdrv: Optimize power management (2018-12-07 16:21:11 +0800)
* 489cd2fafa2d - PM: i2c-designware-platdrv: Use DPM_FLAG_SMART_PREPARE (2018-12-07 16:21:11 +0800)
Until there's a proper fix for them, both of them need to be reverted in order to make S4 works again.

== Test Case ==
Boot with the kernel, S4, and then wake the system up.

== Risk of Regression ==
Risk should be low since we're removing new features.

Jesse Sung (wenchien)
summary: - i2c-dw stops working after S4 on CHT platforms
+ i2c-designware stops working after S4 on CHT platforms
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (48.7 KiB)

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

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

  * linux-oem: 4.15.0-1033.38 -proposed tracker (LP: #1814241)

  * Packaging resync (LP: #1786013)
    - [Packaging] update update.conf

  [ Ubuntu: 4.15.0-45.48 ]

  * linux: 4.15.0-45.48 -proposed tracker (LP: #1813779)
  * External monitors does not work anymore 4.15.0-44 (LP: #1813663)
    - SAUCE: Revert "drm/i915/dp: Send DPCD ON for MST before phy_up"
  * kernel 4.15.0-44 cannot mount ext4 fs with meta_bg enabled (LP: #1813727)
    - ext4: fix false negatives *and* false positives in ext4_check_descriptors()

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

  * linux-oem: 4.15.0-1032.37 -proposed tracker (LP: #1811421)

  * Fix non-working pinctrl-intel (LP: #1811777)
    - pinctrl: intel: Implement intel_gpio_get_direction callback
    - pinctrl: intel: Do pin translation when lock IRQ
    - pinctrl: intel: Do pin translation in other GPIO operations as well
    - Revert "pinctrl: intel: Do pin translation when lock IRQ"

  * Fix not working Goodix touchpad (LP: #1811929)
    - HID: i2c-hid: Disable runtime PM on Goodix touchpad

  * Miscellaneous Ubuntu changes
    - [Config] update configs following rebase to 4.15.0-44.47

  [ Ubuntu: 4.15.0-44.47 ]

  * linux: 4.15.0-44.47 -proposed tracker (LP: #1811419)
  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts
  * CPU hard lockup with rigorous writes to NVMe drive (LP: #1810998)
    - blk-wbt: pass in enum wbt_flags to get_rq_wait()
    - blk-wbt: Avoid lock contention and thundering herd issue in wbt_wait
    - blk-wbt: move disable check into get_limit()
    - blk-wbt: use wq_has_sleeper() for wq active check
    - blk-wbt: fix has-sleeper queueing check
    - blk-wbt: abstract out end IO completion handler
    - blk-wbt: improve waking of tasks
  * To reduce the Realtek USB cardreader power consumption (LP: #1811337)
    - mmc: sdhci: Disable 1.8v modes (HS200/HS400/UHS) if controller can't support
      1.8v
    - mmc: core: Introduce MMC_CAP_SYNC_RUNTIME_PM
    - mmc: rtsx_usb_sdmmc: Don't runtime resume the device while changing led
    - mmc: rtsx_usb: Use MMC_CAP2_NO_SDIO
    - mmc: rtsx_usb: Enable MMC_CAP_ERASE to allow erase/discard/trim requests
    - mmc: rtsx_usb_sdmmc: Re-work runtime PM support
    - mmc: rtsx_usb_sdmmc: Re-work card detection/removal support
    - memstick: rtsx_usb_ms: Add missing pm_runtime_disable() in probe function
    - misc: rtsx_usb: Use USB remote wakeup signaling for card insertion detection
    - memstick: Prevent memstick host from getting runtime suspended during card
      detection
    - memstick: rtsx_usb_ms: Use ms_dev() helper
    - memstick: rtsx_usb_ms: Support runtime power management
  * Support non-strict iommu mode on arm64 (LP: #1806488)
    - iommu/io-pgtable-arm: Fix race handling in split_blk_unmap()
    - iommu/arm-smmu-v3: Implement flush_iotlb_all hook
    - iommu/dma: Add support for non-strict mode
    - iommu: Add "iommu.strict" command line option
    - iommu/io-pgtable-arm: Add support for non-strict mode
    - iommu/arm-smmu-v3: Add support for non-strict mode
  ...

Changed in linux-oem (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.