diff mbox series

[1/2] drm/etnaviv: add HWDB entry for GC7000 r6203

Message ID 20220826190728.3213793-1-l.stach@pengutronix.de (mailing list archive)
State New, archived
Headers show
Series [1/2] drm/etnaviv: add HWDB entry for GC7000 r6203 | expand

Commit Message

Lucas Stach Aug. 26, 2022, 7:07 p.m. UTC
From: Marco Felsch <m.felsch@pengutronix.de>

The GPU is found on the NXP i.MX8MN SoC. The feature bits are taken from
the NXP downstream kernel driver 6.4.3.p2.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 31 ++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

Comments

Adam Ford Aug. 28, 2022, 3:13 a.m. UTC | #1
On Fri, Aug 26, 2022 at 2:07 PM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> From: Marco Felsch <m.felsch@pengutronix.de>
>
> The GPU is found on the NXP i.MX8MN SoC. The feature bits are taken from
> the NXP downstream kernel driver 6.4.3.p2.
>

This series fixes an issue where I saw:
etnaviv-gpu 38000000.gpu: recover hung GPU!

With mesa-22.2.0-rc3, I am able to run 3D demos.

Tested-by: Adam Ford <aford173@gmail.com> #imx8mn-beacon-kit

> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> ---
>  drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 31 ++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
> index f2fc645c7956..eaed08a3d281 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
> @@ -68,6 +68,37 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = {
>                 .minor_features10 = 0x00004040,
>                 .minor_features11 = 0x00000024,
>         },
> +       {
> +               .model = 0x7000,
> +               .revision = 0x6203,
> +               .product_id = ~0U,
> +               .customer_id = ~0U,
> +               .eco_id = ~0U,
> +               .stream_count = 16,
> +               .register_max = 64,
> +               .thread_count = 512,
> +               .shader_core_count = 2,
> +               .vertex_cache_size = 16,
> +               .vertex_output_buffer_size = 1024,
> +               .pixel_pipes = 1,
> +               .instruction_count = 512,
> +               .num_constants = 320,
> +               .buffer_size = 0,
> +               .varyings_count = 16,
> +               .features = 0xe0287c8d,
> +               .minor_features0 = 0xc1589eff,
> +               .minor_features1 = 0xfefbfad9,
> +               .minor_features2 = 0xeb9d4fbf,
> +               .minor_features3 = 0xedfffced,
> +               .minor_features4 = 0xdb0dafc7,
> +               .minor_features5 = 0x3b5ac333,
> +               .minor_features6 = 0xfcce6000,
> +               .minor_features7 = 0xfffbfa6f,
> +               .minor_features8 = 0x00e10ef3,
> +               .minor_features9 = 0x00c8003c,
> +               .minor_features10 = 0x00004040,
> +               .minor_features11 = 0x00000024,
> +       },
>         {
>                 .model = 0x7000,
>                 .revision = 0x6204,
> --
> 2.30.2
>
Christian Gmeiner Sept. 3, 2022, 11:16 a.m. UTC | #2
Hi all

Am Fr., 26. Aug. 2022 um 21:07 Uhr schrieb Lucas Stach <l.stach@pengutronix.de>:
>
> From: Marco Felsch <m.felsch@pengutronix.de>
>
> The GPU is found on the NXP i.MX8MN SoC. The feature bits are taken from
> the NXP downstream kernel driver 6.4.3.p2.
>

Can we stop adding new entries to the kernel hwdb and start to
establish a hwdb in the userspace aka mesa?
The kernel provides all the needed information to the user space so
"all" that's left is to add the mesa side. You might
ask why? It is much simpler to maintain such a database in the user
space (thanks to stable patch releases of mesa) than
forcing users to update their kernels to get this new database entry.
Lucas Stach Sept. 5, 2022, 9:42 a.m. UTC | #3
H Christian,

Am Samstag, dem 03.09.2022 um 13:16 +0200 schrieb Christian Gmeiner:
> Hi all
> 
> Am Fr., 26. Aug. 2022 um 21:07 Uhr schrieb Lucas Stach <l.stach@pengutronix.de>:
> > 
> > From: Marco Felsch <m.felsch@pengutronix.de>
> > 
> > The GPU is found on the NXP i.MX8MN SoC. The feature bits are taken from
> > the NXP downstream kernel driver 6.4.3.p2.
> > 
> 
> Can we stop adding new entries to the kernel hwdb and start to
> establish a hwdb in the userspace aka mesa?
> The kernel provides all the needed information to the user space so
> "all" that's left is to add the mesa side. You might
> ask why? It is much simpler to maintain such a database in the user
> space (thanks to stable patch releases of mesa) than
> forcing users to update their kernels to get this new database entry.
> 
Some of the feature bits are also interesting to the kernel, so you
need to update the kernel anyways if you want a new GPU to work. HWDB
entries, same as PCI ID additions, could be picked up into the stable
kernel releases if anyone cares.

I'm not opposed to userspace having its own HWDB, but at this point we
can not remove the kernel HWDB, even just to keep API compatibility.

Regards,
Lucas
diff mbox series

Patch

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
index f2fc645c7956..eaed08a3d281 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
@@ -68,6 +68,37 @@  static const struct etnaviv_chip_identity etnaviv_chip_identities[] = {
 		.minor_features10 = 0x00004040,
 		.minor_features11 = 0x00000024,
 	},
+	{
+		.model = 0x7000,
+		.revision = 0x6203,
+		.product_id = ~0U,
+		.customer_id = ~0U,
+		.eco_id = ~0U,
+		.stream_count = 16,
+		.register_max = 64,
+		.thread_count = 512,
+		.shader_core_count = 2,
+		.vertex_cache_size = 16,
+		.vertex_output_buffer_size = 1024,
+		.pixel_pipes = 1,
+		.instruction_count = 512,
+		.num_constants = 320,
+		.buffer_size = 0,
+		.varyings_count = 16,
+		.features = 0xe0287c8d,
+		.minor_features0 = 0xc1589eff,
+		.minor_features1 = 0xfefbfad9,
+		.minor_features2 = 0xeb9d4fbf,
+		.minor_features3 = 0xedfffced,
+		.minor_features4 = 0xdb0dafc7,
+		.minor_features5 = 0x3b5ac333,
+		.minor_features6 = 0xfcce6000,
+		.minor_features7 = 0xfffbfa6f,
+		.minor_features8 = 0x00e10ef3,
+		.minor_features9 = 0x00c8003c,
+		.minor_features10 = 0x00004040,
+		.minor_features11 = 0x00000024,
+	},
 	{
 		.model = 0x7000,
 		.revision = 0x6204,