On Tue, Apr 12, 2016 at 11:39 AM, Jason Ekstrand <[email protected]> wrote: > > On Apr 11, 2016 9:49 AM, "Ben Widawsky" <[email protected]> wrote: >> >> This will fix the spurious error message: "Failed to query GPU >> properties." >> that was unintentionally added in cc01b63d730. >> >> 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. >> >> 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 <[email protected]> >> Signed-off-by: Ben Widawsky <[email protected]> >> --- >> src/mesa/drivers/dri/i965/intel_screen.c | 13 ++++++------- >> 1 file changed, 6 insertions(+), 7 deletions(-) >> >> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c >> b/src/mesa/drivers/dri/i965/intel_screen.c >> index 03e6852..d1e8b68 100644 >> --- a/src/mesa/drivers/dri/i965/intel_screen.c >> +++ b/src/mesa/drivers/dri/i965/intel_screen.c >> @@ -932,7 +932,7 @@ static const __DRIextension >> *intelRobustScreenExtensions[] = { >> NULL >> }; >> >> -static bool >> +static int >> intel_get_param(__DRIscreen *psp, int param, int *value) >> { >> int ret; >> @@ -946,17 +946,16 @@ intel_get_param(__DRIscreen *psp, int param, int >> *value) >> if (ret) { >> if (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 >> @@ -1089,12 +1088,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, >> @@ -1110,7 +1109,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 (%d).\n", ret); > > Isn't there some magic printf thing that will turn an error code into a > useful string? I know %m works for errno but is there one you can use when > the function returns the error?
Maybe strerror(3) + %s? > > Either way, > > Reviewed-by: Jason Ekstrand <[email protected]> > >> } >> >> static bool >> -- >> 2.8.0 >> >> _______________________________________________ >> mesa-dev mailing list >> [email protected] >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
