[PATCH] drm/xe/oa/uapi: Make bit masks unsigned

Lucas De Marchi lucas.demarchi at intel.com
Mon Jul 29 13:21:20 UTC 2024


On Mon, Jul 29, 2024 at 11:26:34AM GMT, Geert Uytterhoeven wrote:
>When building with gcc-5:
>
>    In function ‘decode_oa_format.isra.26’,
>	inlined from ‘xe_oa_set_prop_oa_format’ at drivers/gpu/drm/xe/xe_oa.c:1664:6:
>    ././include/linux/compiler_types.h:510:38: error: call to ‘__compiletime_assert_1336’ declared with attribute error: FIELD_GET: mask is not constant
>    [...]
>    ./include/linux/bitfield.h:155:3: note: in expansion of macro ‘__BF_FIELD_CHECK’
>       __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
>       ^
>    drivers/gpu/drm/xe/xe_oa.c:1573:18: note: in expansion of macro ‘FIELD_GET’
>      u32 bc_report = FIELD_GET(DRM_XE_OA_FORMAT_MASK_BC_REPORT, fmt);
>		      ^
>
>Fixes: b6fd51c6211910b1 ("drm/xe/oa/uapi: Define and parse OA stream properties")
>Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>


Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>


That fixes the build, but question to Ashutosh: it's odd to tie the
format to a bspec. What happens on next platform if the HW changes?
Hopefully it doesn't change in an incompatible way, but looking at this
code it seems we could still keep the uapi by untying the HW from the
uapi in the documentation.

Lucas De Marchi

>---
>Compile-tested only.
>---
> include/uapi/drm/xe_drm.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>index 19619d4952a863f7..db232a25189eba9f 100644
>--- a/include/uapi/drm/xe_drm.h
>+++ b/include/uapi/drm/xe_drm.h
>@@ -1590,10 +1590,10 @@ enum drm_xe_oa_property_id {
> 	 * b. Counter select c. Counter size and d. BC report. Also refer to the
> 	 * oa_formats array in drivers/gpu/drm/xe/xe_oa.c.
> 	 */
>-#define DRM_XE_OA_FORMAT_MASK_FMT_TYPE		(0xff << 0)
>-#define DRM_XE_OA_FORMAT_MASK_COUNTER_SEL	(0xff << 8)
>-#define DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE	(0xff << 16)
>-#define DRM_XE_OA_FORMAT_MASK_BC_REPORT		(0xff << 24)
>+#define DRM_XE_OA_FORMAT_MASK_FMT_TYPE		(0xffu << 0)
>+#define DRM_XE_OA_FORMAT_MASK_COUNTER_SEL	(0xffu << 8)
>+#define DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE	(0xffu << 16)
>+#define DRM_XE_OA_FORMAT_MASK_BC_REPORT		(0xffu << 24)
>
> 	/**
> 	 * @DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT: Requests periodic OA unit
>-- 
>2.34.1
>


More information about the dri-devel mailing list