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
