Skip to content

peci: eSPI host stops responding #369

@crawfxrd

Description

@crawfxrd
  • Model: CONFIG_PECI_OVER_ESPI=y
  • EC version: dd555b9
  • OS: Pop!_OS 22.04
  • Kernel: 6.2.7-060207-generic

Cases:

  • Unplugging a display connected to the TBT port causes PECI GetTemp() timeouts
  • Suspend/resume causes PECI GetTemp() timeouts

Steps to reproduce

  1. Plug in a display to the TBT port
  2. Power on system, booting to OS
  3. Unplug the display

Expected behavior

  • PECI commands resume normal operation
  • CPU temp reporting is accurate

Actual behavior

  • PECI commands begin timing out and do not recover
  • CPU temp reported is always 0

Additional info

This specifically affects the PECI-over-eSPI implementation (CONFIG_PECI_OVER_ESPI=y).

Acknowledging the completion in #368 fixed it from hanging on shutdown.

Presumably, this could happen because of:

  • invalid/insufficient checks in peci_available()
  • missing the check to see if a transaction is currently in progress in peci_get_temp()
  • an issue specifically with eSPI usage?

Workaround when it gets in this state:

  • Completely power off system (not restart) and unplug from AC power

Blocks: #370

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions