[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <s7tjuildazggjsuza53ixn3ts7t6rw2rwy2et4neijbnkx6ve7@nb4pyxmhhquj>
Date: Mon, 29 Jul 2024 08:21:20 -0500
From: Lucas De Marchi <lucas.demarchi@...el.com>
To: Geert Uytterhoeven <geert+renesas@...der.be>
CC: Thomas Hellström <thomas.hellstrom@...ux.intel.com>,
Rodrigo Vivi <rodrigo.vivi@...el.com>, Maarten Lankhorst
<maarten.lankhorst@...ux.intel.com>, Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>, David Airlie <airlied@...il.com>,
Daniel Vetter <daniel@...ll.ch>, Ashutosh Dixit <ashutosh.dixit@...el.com>,
Umesh Nerlige Ramappa <umesh.nerlige.ramappa@...el.com>, José
Roberto de Souza <jose.souza@...el.com>, <intel-xe@...ts.freedesktop.org>,
<dri-devel@...ts.freedesktop.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] drm/xe/oa/uapi: Make bit masks unsigned
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@...der.be>
Reviewed-by: Lucas De Marchi <lucas.demarchi@...el.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
>
Powered by blists - more mailing lists