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, we can export that and use it in the i915 driver
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.

v3: export the pci_id list directly from the mei driver instead of using
a wrapper function.

Cc: Rodrigo Vivi <[email protected]>
Cc: Alexander Usyskin <[email protected]>
Cc: Alan Previn <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>

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

 drivers/gpu/drm/i915/pxp/intel_pxp.c | 25 +++++++++++++++++++++++++
 drivers/misc/mei/pci-me.c            | 12 +++++++++++-
 include/linux/mei_me.h               | 15 +++++++++++++++
 3 files changed, 51 insertions(+), 1 deletion(-)
 create mode 100644 include/linux/mei_me.h

-- 
2.43.0

Reply via email to