To support PXP, i915 needs to interface with CSME, which is done via the
component interface. However, BIOS/Coreboot can hide the CSME device,
which leads to i915 timing out waiting for the component to bind. While
PXP failing to initialize is a supported scenario (and there are several
possible ways for it to happen), the particular case where the CSME is
not available at all is something we can easily detect in the driver
and therefore avoid entirely, which means userspace doesn't need to
handle the error in this case.

Given that mei_me owns the CSME and already has a list of possible PCI
IDs for the device, an exported function has been added to allow the
i915 driver to fetch it to perform the device availability check.

The plan is to merge both patches via the drm-intel tree.

v2: move the pci_dev_present check to i915, so that mei doesn't need to
care about locking. Also clarify why i915 does not require any locking.

Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
Cc: Alexander Usyskin <alexander.usys...@intel.com>
Cc: Alan Previn <alan.previn.teres.ale...@intel.com>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>

Daniele Ceraolo Spurio (2):
  mei: me: Add exported function to get the PCI ID list
  drm/i915/pxp: Do not support PXP if CSME is not available

 drivers/gpu/drm/i915/pxp/intel_pxp.c | 23 +++++++++++++++++++++++
 drivers/misc/mei/pci-me.c            | 22 ++++++++++++++++++++++
 include/linux/mei_me.h               | 20 ++++++++++++++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 include/linux/mei_me.h

-- 
2.43.0

Reply via email to