diff mbox series

[v2] soc: renesas: Add support for reading product revision for RZ/G2L family

Message ID 20220121014117.21248-1-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive)
State Mainlined
Commit 92dfff382af0ce65216e05f056e7cb7f18ef6f78
Delegated to: Geert Uytterhoeven
Headers show
Series [v2] soc: renesas: Add support for reading product revision for RZ/G2L family | expand

Commit Message

Prabhakar Jan. 21, 2022, 1:41 a.m. UTC
From: Biju Das <biju.das.jz@bp.renesas.com>

As per RZ/G2L HW manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates
product revision. Use this information to populate the revision info
for RZ/G2L family.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v1->v2
* Fixed freeing up soc_dev_attr in error path.

Output from SMARC RZ/G2L:
root@smarc-rzg2l:~# for i in machine family soc_id revision; do echo -n "$i: ";cat /sys/devices/soc0/$i; done
machine: Renesas SMARC EVK based on r9a07g044l2
family: RZ/G2L
soc_id: r9a07g044
revision: Rev 1
root@smarc-rzg2l:~#
root@smarc-rzg2l:~#
---
 drivers/soc/renesas/renesas-soc.c | 49 ++++++++++++++++++-------------
 1 file changed, 29 insertions(+), 20 deletions(-)

Comments

Geert Uytterhoeven Jan. 27, 2022, 10:12 a.m. UTC | #1
Hi Prabhakar,

On Fri, Jan 21, 2022 at 2:41 AM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> As per RZ/G2L HW manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates
> product revision. Use this information to populate the revision info
> for RZ/G2L family.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> ---
> v1->v2
> * Fixed freeing up soc_dev_attr in error path.

Thanks for the update!

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
i.e. will queue in renesas-devel for v5.18.

> --- a/drivers/soc/renesas/renesas-soc.c
> +++ b/drivers/soc/renesas/renesas-soc.c
> @@ -405,41 +417,38 @@ static int __init renesas_soc_init(void)
>
>                         eshi = ((product >> 4) & 0x0f) + 1;
>                         eslo = product & 0xf;
> +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u",
> +                                                          eshi, eslo);
> +               }  else if (id == &id_rzg2l) {
> +                       eshi =  ((product >> 28) & 0x0f);
> +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "Rev %u",
> +                                                          eshi);

Would you mind if I would drop the "Rev " while applying?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Lad, Prabhakar Jan. 27, 2022, 11:26 a.m. UTC | #2
Hi Geert,

Thank you for the review.

On Thu, Jan 27, 2022 at 10:12 AM Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
>
> Hi Prabhakar,
>
> On Fri, Jan 21, 2022 at 2:41 AM Lad Prabhakar
> <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> > From: Biju Das <biju.das.jz@bp.renesas.com>
> >
> > As per RZ/G2L HW manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates
> > product revision. Use this information to populate the revision info
> > for RZ/G2L family.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > ---
> > v1->v2
> > * Fixed freeing up soc_dev_attr in error path.
>
> Thanks for the update!
>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> i.e. will queue in renesas-devel for v5.18.
>
> > --- a/drivers/soc/renesas/renesas-soc.c
> > +++ b/drivers/soc/renesas/renesas-soc.c
> > @@ -405,41 +417,38 @@ static int __init renesas_soc_init(void)
> >
> >                         eshi = ((product >> 4) & 0x0f) + 1;
> >                         eslo = product & 0xf;
> > +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u",
> > +                                                          eshi, eslo);
> > +               }  else if (id == &id_rzg2l) {
> > +                       eshi =  ((product >> 28) & 0x0f);
> > +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "Rev %u",
> > +                                                          eshi);
>
> Would you mind if I would drop the "Rev " while applying?
>
Fine by me as it's already assigned to revision so there isn't any
point having "Rev" prepended to it.

Cheers,
Prabhakar
Biju Das Feb. 2, 2022, 9:51 a.m. UTC | #3
Hi Geert,

> Subject: Re: [PATCH v2] soc: renesas: Add support for reading product
> revision for RZ/G2L family
> 
> Hi Prabhakar,
> 
> On Fri, Jan 21, 2022 at 2:41 AM Lad Prabhakar <prabhakar.mahadev-
> lad.rj@bp.renesas.com> wrote:
> > From: Biju Das <biju.das.jz@bp.renesas.com>
> >
> > As per RZ/G2L HW manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates
> > product revision. Use this information to populate the revision info
> > for RZ/G2L family.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > ---
> > v1->v2
> > * Fixed freeing up soc_dev_attr in error path.
> 
> Thanks for the update!
> 
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> i.e. will queue
> in renesas-devel for v5.18.
> 
> > --- a/drivers/soc/renesas/renesas-soc.c
> > +++ b/drivers/soc/renesas/renesas-soc.c
> > @@ -405,41 +417,38 @@ static int __init renesas_soc_init(void)
> >
> >                         eshi = ((product >> 4) & 0x0f) + 1;
> >                         eslo = product & 0xf;
> > +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL,
> "ES%u.%u",
> > +                                                          eshi, eslo);
> > +               }  else if (id == &id_rzg2l) {
> > +                       eshi =  ((product >> 28) & 0x0f);
> > +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL,
> "Rev %u",
> > +                                                          eshi);
> 
> Would you mind if I would drop the "Rev " while applying?

Kernel reports the below message after dropping Rev. Is it OK? 

[    0.018297] Detected Renesas RZ/G2L r9a07g044 1

Cheers,
Biju
Geert Uytterhoeven Feb. 2, 2022, 10:38 a.m. UTC | #4
Hi Biju,

On Wed, Feb 2, 2022 at 10:51 AM Biju Das <biju.das.jz@bp.renesas.com> wrote:
> > Subject: Re: [PATCH v2] soc: renesas: Add support for reading product
> > revision for RZ/G2L family
> > On Fri, Jan 21, 2022 at 2:41 AM Lad Prabhakar <prabhakar.mahadev-
> > lad.rj@bp.renesas.com> wrote:
> > > From: Biju Das <biju.das.jz@bp.renesas.com>
> > > As per RZ/G2L HW manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates
> > > product revision. Use this information to populate the revision info
> > > for RZ/G2L family.
> > >
> > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

> > > --- a/drivers/soc/renesas/renesas-soc.c
> > > +++ b/drivers/soc/renesas/renesas-soc.c
> > > @@ -405,41 +417,38 @@ static int __init renesas_soc_init(void)
> > >
> > >                         eshi = ((product >> 4) & 0x0f) + 1;
> > >                         eslo = product & 0xf;
> > > +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL,
> > "ES%u.%u",
> > > +                                                          eshi, eslo);
> > > +               }  else if (id == &id_rzg2l) {
> > > +                       eshi =  ((product >> 28) & 0x0f);
> > > +                       soc_dev_attr->revision = kasprintf(GFP_KERNEL,
> > "Rev %u",
> > > +                                                          eshi);
> >
> > Would you mind if I would drop the "Rev " while applying?
>
> Kernel reports the below message after dropping Rev. Is it OK?
>
> [    0.018297] Detected Renesas RZ/G2L r9a07g044 1

That's indeed not so nice...

Either we have to add it back, or do something like:

-       pr_info("Detected Renesas %s %s %s\n", soc_dev_attr->family,
-               soc_dev_attr->soc_id, soc_dev_attr->revision ?: "");
+       pr_info("Detected Renesas %s %s%s%s\n", soc_dev_attr->family,
+               soc_dev_attr->soc_id, soc_dev_attr->revision ? " Rev " : "",
+               soc_dev_attr->revision ?: "");

Any other options?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Biju Das Feb. 2, 2022, 11:20 a.m. UTC | #5
Hi Geert,


> Subject: Re: [PATCH v2] soc: renesas: Add support for reading product
> revision for RZ/G2L family
> 
> Hi Biju,
> 
> On Wed, Feb 2, 2022 at 10:51 AM Biju Das <biju.das.jz@bp.renesas.com>
> wrote:
> > > Subject: Re: [PATCH v2] soc: renesas: Add support for reading
> > > product revision for RZ/G2L family On Fri, Jan 21, 2022 at 2:41 AM
> > > Lad Prabhakar <prabhakar.mahadev- lad.rj@bp.renesas.com> wrote:
> > > > From: Biju Das <biju.das.jz@bp.renesas.com> As per RZ/G2L HW
> > > > manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates product
> > > > revision. Use this information to populate the revision info for
> > > > RZ/G2L family.
> > > >
> > > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > > Signed-off-by: Lad Prabhakar
> > > > <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> > > > --- a/drivers/soc/renesas/renesas-soc.c
> > > > +++ b/drivers/soc/renesas/renesas-soc.c
> > > > @@ -405,41 +417,38 @@ static int __init renesas_soc_init(void)
> > > >
> > > >                         eshi = ((product >> 4) & 0x0f) + 1;
> > > >                         eslo = product & 0xf;
> > > > +                       soc_dev_attr->revision =
> > > > + kasprintf(GFP_KERNEL,
> > > "ES%u.%u",
> > > > +                                                          eshi,
> eslo);
> > > > +               }  else if (id == &id_rzg2l) {
> > > > +                       eshi =  ((product >> 28) & 0x0f);
> > > > +                       soc_dev_attr->revision =
> > > > + kasprintf(GFP_KERNEL,
> > > "Rev %u",
> > > > +                                                          eshi);
> > >
> > > Would you mind if I would drop the "Rev " while applying?
> >
> > Kernel reports the below message after dropping Rev. Is it OK?
> >
> > [    0.018297] Detected Renesas RZ/G2L r9a07g044 1
> 
> That's indeed not so nice...
> 
> Either we have to add it back, or do something like:

This is much better.

[    0.003427] Detected Renesas RZ/G2L r9a07g044 Rev 1
root@smarc-rzg2l:~# for i in machine family soc_id revision; do echo -n "$i: ";cat /sys/devices/soc0/$i; done
machine: Renesas SMARC EVK based on r9a07g044l2
family: RZ/G2L
soc_id: r9a07g044
revision: 1
root@smarc-rzg2l:~#

> 
> -       pr_info("Detected Renesas %s %s %s\n", soc_dev_attr->family,
> -               soc_dev_attr->soc_id, soc_dev_attr->revision ?: "");
> +       pr_info("Detected Renesas %s %s%s%s\n", soc_dev_attr->family,
> +               soc_dev_attr->soc_id, soc_dev_attr->revision ? " Rev " :
> "",
> +               soc_dev_attr->revision ?: "");
> 

Will you post this change or Do you want me to send the patch?

Please let me know.

Cheers,
Biju
Geert Uytterhoeven Feb. 2, 2022, 1:36 p.m. UTC | #6
Hi Biju,

On Wed, Feb 2, 2022 at 12:20 PM Biju Das <biju.das.jz@bp.renesas.com> wrote:
> > Subject: Re: [PATCH v2] soc: renesas: Add support for reading product
> > revision for RZ/G2L family
> > On Wed, Feb 2, 2022 at 10:51 AM Biju Das <biju.das.jz@bp.renesas.com>
> > wrote:
> > > > Subject: Re: [PATCH v2] soc: renesas: Add support for reading
> > > > product revision for RZ/G2L family On Fri, Jan 21, 2022 at 2:41 AM
> > > > Lad Prabhakar <prabhakar.mahadev- lad.rj@bp.renesas.com> wrote:
> > > > > From: Biju Das <biju.das.jz@bp.renesas.com> As per RZ/G2L HW
> > > > > manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates product
> > > > > revision. Use this information to populate the revision info for
> > > > > RZ/G2L family.
> > > > >
> > > > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > > > Signed-off-by: Lad Prabhakar
> > > > > <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > > > > --- a/drivers/soc/renesas/renesas-soc.c
> > > > > +++ b/drivers/soc/renesas/renesas-soc.c
> > > > > @@ -405,41 +417,38 @@ static int __init renesas_soc_init(void)
> > > > >
> > > > >                         eshi = ((product >> 4) & 0x0f) + 1;
> > > > >                         eslo = product & 0xf;
> > > > > +                       soc_dev_attr->revision =
> > > > > + kasprintf(GFP_KERNEL,
> > > > "ES%u.%u",
> > > > > +                                                          eshi,
> > eslo);
> > > > > +               }  else if (id == &id_rzg2l) {
> > > > > +                       eshi =  ((product >> 28) & 0x0f);
> > > > > +                       soc_dev_attr->revision =
> > > > > + kasprintf(GFP_KERNEL,
> > > > "Rev %u",
> > > > > +                                                          eshi);
> > > >
> > > > Would you mind if I would drop the "Rev " while applying?
> > >
> > > Kernel reports the below message after dropping Rev. Is it OK?
> > >
> > > [    0.018297] Detected Renesas RZ/G2L r9a07g044 1
> >
> > That's indeed not so nice...
> >
> > Either we have to add it back, or do something like:
>
> This is much better.
>
> [    0.003427] Detected Renesas RZ/G2L r9a07g044 Rev 1
> root@smarc-rzg2l:~# for i in machine family soc_id revision; do echo -n "$i: ";cat /sys/devices/soc0/$i; done
> machine: Renesas SMARC EVK based on r9a07g044l2
> family: RZ/G2L
> soc_id: r9a07g044
> revision: 1
> root@smarc-rzg2l:~#
>
> >
> > -       pr_info("Detected Renesas %s %s %s\n", soc_dev_attr->family,
> > -               soc_dev_attr->soc_id, soc_dev_attr->revision ?: "");
> > +       pr_info("Detected Renesas %s %s%s%s\n", soc_dev_attr->family,
> > +               soc_dev_attr->soc_id, soc_dev_attr->revision ? " Rev " :
> > "",
> > +               soc_dev_attr->revision ?: "");
> >
>
> Will you post this change or Do you want me to send the patch?
>
> Please let me know.

I'll send a patch, to be folded in to the original.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Biju Das Feb. 2, 2022, 1:51 p.m. UTC | #7
Hi Geert,

> Subject: Re: [PATCH v2] soc: renesas: Add support for reading product
> revision for RZ/G2L family
> 
> Hi Biju,
> 
> On Wed, Feb 2, 2022 at 12:20 PM Biju Das <biju.das.jz@bp.renesas.com>
> wrote:
> > > Subject: Re: [PATCH v2] soc: renesas: Add support for reading
> > > product revision for RZ/G2L family On Wed, Feb 2, 2022 at 10:51 AM
> > > Biju Das <biju.das.jz@bp.renesas.com>
> > > wrote:
> > > > > Subject: Re: [PATCH v2] soc: renesas: Add support for reading
> > > > > product revision for RZ/G2L family On Fri, Jan 21, 2022 at 2:41
> > > > > AM Lad Prabhakar <prabhakar.mahadev- lad.rj@bp.renesas.com> wrote:
> > > > > > From: Biju Das <biju.das.jz@bp.renesas.com> As per RZ/G2L HW
> > > > > > manual (Rev.1.00 Sep, 2021) DEV_ID [31:28] indicates product
> > > > > > revision. Use this information to populate the revision info
> > > > > > for RZ/G2L family.
> > > > > >
> > > > > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > > > > Signed-off-by: Lad Prabhakar
> > > > > > <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > >
> > > > > > --- a/drivers/soc/renesas/renesas-soc.c
> > > > > > +++ b/drivers/soc/renesas/renesas-soc.c
> > > > > > @@ -405,41 +417,38 @@ static int __init renesas_soc_init(void)
> > > > > >
> > > > > >                         eshi = ((product >> 4) & 0x0f) + 1;
> > > > > >                         eslo = product & 0xf;
> > > > > > +                       soc_dev_attr->revision =
> > > > > > + kasprintf(GFP_KERNEL,
> > > > > "ES%u.%u",
> > > > > > +
> > > > > > + eshi,
> > > eslo);
> > > > > > +               }  else if (id == &id_rzg2l) {
> > > > > > +                       eshi =  ((product >> 28) & 0x0f);
> > > > > > +                       soc_dev_attr->revision =
> > > > > > + kasprintf(GFP_KERNEL,
> > > > > "Rev %u",
> > > > > > +
> > > > > > + eshi);
> > > > >
> > > > > Would you mind if I would drop the "Rev " while applying?
> > > >
> > > > Kernel reports the below message after dropping Rev. Is it OK?
> > > >
> > > > [    0.018297] Detected Renesas RZ/G2L r9a07g044 1
> > >
> > > That's indeed not so nice...
> > >
> > > Either we have to add it back, or do something like:
> >
> > This is much better.
> >
> > [    0.003427] Detected Renesas RZ/G2L r9a07g044 Rev 1
> > root@smarc-rzg2l:~# for i in machine family soc_id revision; do echo
> > -n "$i: ";cat /sys/devices/soc0/$i; done
> > machine: Renesas SMARC EVK based on r9a07g044l2
> > family: RZ/G2L
> > soc_id: r9a07g044
> > revision: 1
> > root@smarc-rzg2l:~#
> >
> > >
> > > -       pr_info("Detected Renesas %s %s %s\n", soc_dev_attr->family,
> > > -               soc_dev_attr->soc_id, soc_dev_attr->revision ?: "");
> > > +       pr_info("Detected Renesas %s %s%s%s\n", soc_dev_attr->family,
> > > +               soc_dev_attr->soc_id, soc_dev_attr->revision ? " Rev "
> :
> > > "",
> > > +               soc_dev_attr->revision ?: "");
> > >
> >
> > Will you post this change or Do you want me to send the patch?
> >
> > Please let me know.
> 
> I'll send a patch, to be folded in to the original.

Thanks,

Biju
diff mbox series

Patch

diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c
index 7da0ea3587c4..44e365b36b26 100644
--- a/drivers/soc/renesas/renesas-soc.c
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -371,6 +371,7 @@  static int __init renesas_soc_init(void)
 	struct soc_device *soc_dev;
 	struct device_node *np;
 	const char *soc_id;
+	int ret;
 
 	match = of_match_node(renesas_socs, of_root);
 	if (!match)
@@ -391,6 +392,17 @@  static int __init renesas_soc_init(void)
 		chipid = ioremap(family->reg, 4);
 	}
 
+	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+	if (!soc_dev_attr)
+		return -ENOMEM;
+
+	np = of_find_node_by_path("/");
+	of_property_read_string(np, "model", &soc_dev_attr->machine);
+	of_node_put(np);
+
+	soc_dev_attr->family = kstrdup_const(family->name, GFP_KERNEL);
+	soc_dev_attr->soc_id = kstrdup_const(soc_id, GFP_KERNEL);
+
 	if (chipid) {
 		product = readl(chipid + id->offset);
 		iounmap(chipid);
@@ -405,41 +417,38 @@  static int __init renesas_soc_init(void)
 
 			eshi = ((product >> 4) & 0x0f) + 1;
 			eslo = product & 0xf;
+			soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u",
+							   eshi, eslo);
+		}  else if (id == &id_rzg2l) {
+			eshi =  ((product >> 28) & 0x0f);
+			soc_dev_attr->revision = kasprintf(GFP_KERNEL, "Rev %u",
+							   eshi);
 		}
 
 		if (soc->id &&
 		    ((product & id->mask) >> __ffs(id->mask)) != soc->id) {
 			pr_warn("SoC mismatch (product = 0x%x)\n", product);
-			return -ENODEV;
+			ret = -ENODEV;
+			goto free_soc_dev_attr;
 		}
 	}
 
-	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
-	if (!soc_dev_attr)
-		return -ENOMEM;
-
-	np = of_find_node_by_path("/");
-	of_property_read_string(np, "model", &soc_dev_attr->machine);
-	of_node_put(np);
-
-	soc_dev_attr->family = kstrdup_const(family->name, GFP_KERNEL);
-	soc_dev_attr->soc_id = kstrdup_const(soc_id, GFP_KERNEL);
-	if (eshi)
-		soc_dev_attr->revision = kasprintf(GFP_KERNEL, "ES%u.%u", eshi,
-						   eslo);
-
 	pr_info("Detected Renesas %s %s %s\n", soc_dev_attr->family,
 		soc_dev_attr->soc_id, soc_dev_attr->revision ?: "");
 
 	soc_dev = soc_device_register(soc_dev_attr);
 	if (IS_ERR(soc_dev)) {
-		kfree(soc_dev_attr->revision);
-		kfree_const(soc_dev_attr->soc_id);
-		kfree_const(soc_dev_attr->family);
-		kfree(soc_dev_attr);
-		return PTR_ERR(soc_dev);
+		ret = PTR_ERR(soc_dev);
+		goto free_soc_dev_attr;
 	}
 
 	return 0;
+
+free_soc_dev_attr:
+	kfree(soc_dev_attr->revision);
+	kfree_const(soc_dev_attr->soc_id);
+	kfree_const(soc_dev_attr->family);
+	kfree(soc_dev_attr);
+	return ret;
 }
 early_initcall(renesas_soc_init);