drm/i915/pxp: Use drm_dbg if arb session failed due to fw version
authorAlan Previn <alan.previn.teres.alexis@intel.com>
Wed, 21 Dec 2022 17:49:01 +0000 (09:49 -0800)
committerJohn Harrison <John.C.Harrison@Intel.com>
Fri, 13 Jan 2023 02:16:32 +0000 (18:16 -0800)
If PXP arb-session is being attempted on older hardware SKUs or
on hardware with older, unsupported, firmware versions, then don't
report the failure with a drm_error. Instead, look specifically for
the API-version error reply and drm_dbg that reply. In this case, the
user-space will eventually get a -ENODEV for the protected context
creation which is the correct behavior and we don't create unnecessary
drm_error's in our dmesg (for what is unsupported platforms).

Changes from prio revs:
   v2 : - remove unnecessary newline. (Jani)
   v1 : - print incorrect version from input packet, not output.

Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221221174901.2703954-1-alan.previn.teres.alexis@intel.com
drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_cmn.h
drivers/gpu/drm/i915/pxp/intel_pxp_tee.c

index c2f23394f9b84ec5d8be6bf4d31dd5d4b8ff68fc..aaa8187a0afbc40317bffff18b4652c76a4dbef0 100644 (file)
@@ -17,6 +17,7 @@
  */
 enum pxp_status {
        PXP_STATUS_SUCCESS = 0x0,
+       PXP_STATUS_ERROR_API_VERSION = 0x1002,
        PXP_STATUS_OP_NOT_PERMITTED = 0x4013
 };
 
index d50354bfb9938758d7d89f0b39ddd5054fecaa8a..73aa8015f828fceed298c5966c9eb036c52574b2 100644 (file)
@@ -298,6 +298,10 @@ int intel_pxp_tee_cmd_create_arb_session(struct intel_pxp *pxp,
 
        if (ret)
                drm_err(&i915->drm, "Failed to send tee msg ret=[%d]\n", ret);
+       else if (msg_out.header.status == PXP_STATUS_ERROR_API_VERSION)
+               drm_dbg(&i915->drm, "PXP firmware version unsupported, requested: "
+                       "CMD-ID-[0x%08x] on API-Ver-[0x%08x]\n",
+                       msg_in.header.command_id, msg_in.header.api_version);
        else if (msg_out.header.status != 0x0)
                drm_warn(&i915->drm, "PXP firmware failed arb session init request ret=[0x%08x]\n",
                         msg_out.header.status);