mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
i965: Make intel_get_param return an int
This will fix the spurious error message: "Failed to query GPU properties."
that was unintentionally added in cc01b63d73.
This patch changes the function to return an int so that the caller is able to
do stuff based on the return value.
The equivalent of this patch was in the original series that fixed up the
warning, but I dropped it at the last moment. It is required to make the desired
behavior of not warning when trying to query GPU properties from the kernel
unless there is something the user can do about it.
v2: Use strerror (Jason)
Make EINVAL check similar in all places (Ian)
NOTE: Broadwell appears to actually have some issue where the kernel returns
ENODEV when it shouldn't be. I will investigate this separately.
Reported-by: Chris Forbes <chrisf@ijw.co.nz>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
This commit is contained in:
parent
aed975d5c5
commit
a8975a91cc
1 changed files with 7 additions and 10 deletions
|
|
@ -932,7 +932,7 @@ static const __DRIextension *intelRobustScreenExtensions[] = {
|
|||
NULL
|
||||
};
|
||||
|
||||
static bool
|
||||
static int
|
||||
intel_get_param(__DRIscreen *psp, int param, int *value)
|
||||
{
|
||||
int ret;
|
||||
|
|
@ -943,20 +943,17 @@ intel_get_param(__DRIscreen *psp, int param, int *value)
|
|||
gp.value = value;
|
||||
|
||||
ret = drmCommandWriteRead(psp->fd, DRM_I915_GETPARAM, &gp, sizeof(gp));
|
||||
if (ret) {
|
||||
if (ret != -EINVAL)
|
||||
if (ret < 0 && ret != -EINVAL)
|
||||
_mesa_warning(NULL, "drm_i915_getparam: %d", ret);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool
|
||||
intel_get_boolean(__DRIscreen *psp, int param)
|
||||
{
|
||||
int value = 0;
|
||||
return intel_get_param(psp, param, &value) && value;
|
||||
return (intel_get_param(psp, param, &value) == 0) && value;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -1093,12 +1090,12 @@ intel_detect_sseu(struct intel_screen *intelScreen)
|
|||
|
||||
ret = intel_get_param(intelScreen->driScrnPriv, I915_PARAM_SUBSLICE_TOTAL,
|
||||
&intelScreen->subslice_total);
|
||||
if (ret != -EINVAL)
|
||||
if (ret < 0 && ret != -EINVAL)
|
||||
goto err_out;
|
||||
|
||||
ret = intel_get_param(intelScreen->driScrnPriv,
|
||||
I915_PARAM_EU_TOTAL, &intelScreen->eu_total);
|
||||
if (ret != -EINVAL)
|
||||
if (ret < 0 && ret != -EINVAL)
|
||||
goto err_out;
|
||||
|
||||
/* Without this information, we cannot get the right Braswell brandstrings,
|
||||
|
|
@ -1114,7 +1111,7 @@ intel_detect_sseu(struct intel_screen *intelScreen)
|
|||
err_out:
|
||||
intelScreen->subslice_total = -1;
|
||||
intelScreen->eu_total = -1;
|
||||
_mesa_warning(NULL, "Failed to query GPU properties.\n");
|
||||
_mesa_warning(NULL, "Failed to query GPU properties (%s).\n", strerror(ret));
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue