pan/kmod: query and cache available context priorities from KMD

Priority values will be used later one when creating job contexts.

Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Ashley Smith <ashley.smith@collabora.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37075>
This commit is contained in:
Boris Brezillon 2025-08-28 23:20:55 +01:00 committed by Marge Bot
parent db2e1a4f23
commit f04dbf0bc0

View file

@ -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