Re: [PATCH v3 3/7] drm: nova: Add chipid enum to nova-drm UAPI

"Danilo Krummrich" <[email protected]> Tue, 28 Jul 2026 23:29:43 +0200
Newsgroups dev.linux.lists.nova-gpu,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel,org.kernel.vger.rust-for-linux
Message-ID <[email protected]>
On Tue Jul 28, 2026 at 10:00 AM CEST, Alistair Popple wrote:
> On 2026-07-26 at 01:23 +1000, Danilo Krummrich <[email protected]> wrote...
>> On Thu Jul 23, 2026 at 8:30 AM CEST, Alistair Popple wrote:
>> > diff --git a/include/uapi/drm/nova_drm.h b/include/uapi/drm/nova_drm.h
>> > index 3ca90ed9d2bb..cb13fba6b952 100644
>> > --- a/include/uapi/drm/nova_drm.h
>> > +++ b/include/uapi/drm/nova_drm.h
>> > @@ -25,6 +25,39 @@ extern "C" {
>> >   */
>> >  #define NOVA_GETPARAM_VRAM_BAR_SIZE	0x1
>> > =20
>> > +enum drm_nova_chipid {
>>=20
>> It seems trivial, but let's add at least some documentation.
>
> No, good idea.
>
>> For instance, what's valid for userspace to extract from this? Given chi=
pid is a
>> composed value, is userspace e.g. allowed to make assumptions on extract=
ing the
>> architecture? Or is this something we want to expose separately and tell
>> userspace that the chipid is an opaque value identifying a specific chip=
 only?
>
> I _think_ it makes sense for this to just be an opaque value, but it's a =
good
> question that I should probably try and get some internal feedback on as =
well.
> Reading the arch would then be a separate parameter.

I'd prefer exposing it as an opaque value and provide other information
separately; the kernel already does the work anyway, so why duplicate it in
userspace. It would also remain much cleaner if encoding details ever chang=
e.

>> > +	/* Turing */
>> > +	NOVA_DRM_CHIPID_TU102 =3D 0x162,
>> > +	NOVA_DRM_CHIPID_TU104 =3D 0x164,
>> > +	NOVA_DRM_CHIPID_TU106 =3D 0x166,
>> > +	NOVA_DRM_CHIPID_TU117 =3D 0x167,
>> > +	NOVA_DRM_CHIPID_TU116 =3D 0x168,
>> > +	/* Ampere */
>> > +	NOVA_DRM_CHIPID_GA100 =3D 0x170,
>> > +	NOVA_DRM_CHIPID_GA102 =3D 0x172,
>> > +	NOVA_DRM_CHIPID_GA103 =3D 0x173,
>> > +	NOVA_DRM_CHIPID_GA104 =3D 0x174,
>> > +	NOVA_DRM_CHIPID_GA106 =3D 0x176,
>> > +	NOVA_DRM_CHIPID_GA107 =3D 0x177,
>> > +	/* Hopper */
>> > +	NOVA_DRM_CHIPID_GH100 =3D 0x180,
>> > +	/* Ada */
>> > +	NOVA_DRM_CHIPID_AD102 =3D 0x192,
>> > +	NOVA_DRM_CHIPID_AD103 =3D 0x193,
>> > +	NOVA_DRM_CHIPID_AD104 =3D 0x194,
>> > +	NOVA_DRM_CHIPID_AD106 =3D 0x196,
>> > +	NOVA_DRM_CHIPID_AD107 =3D 0x197,
>> > +	/* Blackwell GB10x */
>> > +	NOVA_DRM_CHIPID_GB100 =3D 0x1a0,
>> > +	NOVA_DRM_CHIPID_GB102 =3D 0x1a2,
>> > +	/* Blackwell GB20x */
>> > +	NOVA_DRM_CHIPID_GB202 =3D 0x1b2,
>> > +	NOVA_DRM_CHIPID_GB203 =3D 0x1b3,
>> > +	NOVA_DRM_CHIPID_GB205 =3D 0x1b5,
>> > +	NOVA_DRM_CHIPID_GB206 =3D 0x1b6,
>> > +	NOVA_DRM_CHIPID_GB207 =3D 0x1b7,
>> > +};