[PATCH i-g-t v1.1] lib/igt_gt: Fallback on filenames in igt_open_forcewake_handle()
Matt Roper
matthew.d.roper at intel.com
Fri Sep 20 17:27:43 UTC 2024
On Wed, Sep 18, 2024 at 12:16:26PM -0700, Lucas De Marchi wrote:
> If fd is -1, we don't know what file should be used for forcewake.
> We could open the debugfs dir and figure out from there, but it's also
> cheap to just handle a fallback approach. Ideally fd == -1 wouldn't be
> passed and eventually this could be removed.
>
> v2: Fix copy-and-paste error s/XE/I915/
>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> lib/igt_gt.c | 24 +++++++++++++++++++-----
> 1 file changed, 19 insertions(+), 5 deletions(-)
>
> diff --git a/lib/igt_gt.c b/lib/igt_gt.c
> index c84368fbd..4b096768f 100644
> --- a/lib/igt_gt.c
> +++ b/lib/igt_gt.c
> @@ -502,17 +502,31 @@ void igt_stop_hang_helper(void)
> */
> int igt_open_forcewake_handle(int fd)
> {
> - const char *fn;
> + enum {
> + I915,
> + XE,
> + };
> + const char *fn[] = {
> + [I915] = "i915_forcewake_user",
> + [XE] = "forcewake_all",
> + };
>
> if (getenv("IGT_NO_FORCEWAKE"))
> return -1;
>
> if (is_xe_device(fd))
> - fn = "forcewake_all";
> - else
> - fn = "i915_forcewake_user";
> + return igt_debugfs_open(fd, fn[XE], O_RDONLY);
> + if (is_i915_device(fd))
> + return igt_debugfs_open(fd, fn[I915], O_RDONLY);
> +
> + for (unsigned int i = 0; i < ARRAY_SIZE(fn); i++) {
> + int ret = igt_debugfs_open(fd, fn[i], O_RDONLY);
> +
> + if (ret >= 0)
> + return ret;
> + }
>
> - return igt_debugfs_open(fd, fn, O_RDONLY);
> + return -ENOENT;
> }
>
> #if defined(__x86_64__) || defined(__i386__)
> --
> 2.46.1
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the igt-dev
mailing list