From f04dbf0bc0bf34818c7cdb1852154b396c81de99 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Thu, 28 Aug 2025 23:20:55 +0100 Subject: [PATCH] pan/kmod: query and cache available context priorities from KMD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Priority values will be used later one when creating job contexts. Reviewed-by: Daniel Stone Reviewed-by: Ashley Smith Signed-off-by: Boris Brezillon Signed-off-by: Adrián Larumbe Part-of: --- src/panfrost/lib/kmod/panfrost_kmod.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/panfrost/lib/kmod/panfrost_kmod.c b/src/panfrost/lib/kmod/panfrost_kmod.c index 37a02441731..82587c90ca4 100644 --- a/src/panfrost/lib/kmod/panfrost_kmod.c +++ b/src/panfrost/lib/kmod/panfrost_kmod.c @@ -211,9 +211,20 @@ panfrost_dev_query_props(const struct pan_kmod_dev *dev, fd, DRM_PANFROST_PARAM_SYSTEM_TIMESTAMP_FREQUENCY, true, 0); } - /* Panfrost currently doesn't support priorities, assumes default priority as - * medium */ - props->allowed_group_priorities_mask = PAN_KMOD_GROUP_ALLOW_PRIORITY_MEDIUM; + /* Support for priorities was added in panfrost 1.5, assumes default + * priority as medium if the param doesn't exist. */ + uint64_t prios = + panfrost_query_raw(fd, DRM_PANFROST_PARAM_ALLOWED_JM_CTX_PRIORITIES, + false, PANFROST_JM_CTX_PRIORITY_MEDIUM); + + if (prios & PANFROST_JM_CTX_PRIORITY_LOW) + props->allowed_group_priorities_mask |= PAN_KMOD_GROUP_ALLOW_PRIORITY_LOW; + if (prios & PANFROST_JM_CTX_PRIORITY_MEDIUM) + props->allowed_group_priorities_mask |= + PAN_KMOD_GROUP_ALLOW_PRIORITY_MEDIUM; + if (prios & PANFROST_JM_CTX_PRIORITY_HIGH) + props->allowed_group_priorities_mask |= + PAN_KMOD_GROUP_ALLOW_PRIORITY_HIGH; } static uint32_t