2024-03-05 20:55:38

by Heiner Kallweit

[permalink] [raw]
Subject: [PATCH] firmware: dmi: Add info message for number of populated and total memory slots

As part of adding support for calling i2c_register_spd() on muxed SMBUS
segments the same message has been removed from i2c_register_spd().
However users may find it useful, therefore reintroduce it as part of
the DMI scan code.

Signed-off-by: Heiner Kallweit <[email protected]>
---
drivers/firmware/dmi_scan.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 015c95a82..2c682b580 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -42,6 +42,7 @@ static struct dmi_memdev_info {
u8 type; /* DDR2, DDR3, DDR4 etc */
} *dmi_memdev;
static int dmi_memdev_nr;
+static int dmi_memdev_populated_nr;

static const char * __init dmi_string_nosave(const struct dmi_header *dm, u8 s)
{
@@ -448,6 +449,9 @@ static void __init save_mem_devices(const struct dmi_header *dm, void *v)
else
bytes = (u64)get_unaligned((u32 *)&d[0x1C]) << 20;

+ if (bytes)
+ dmi_memdev_populated_nr++;
+
dmi_memdev[nr].size = bytes;
nr++;
}
@@ -824,6 +828,8 @@ void __init dmi_setup(void)
return;

dmi_memdev_walk();
+ pr_info("DMI: Memory slots populated: %d/%d\n",
+ dmi_memdev_populated_nr, dmi_memdev_nr);
dump_stack_set_arch_desc("%s", dmi_ids_string);
}

--
2.44.0



2024-05-07 08:16:24

by Jean DELVARE

[permalink] [raw]
Subject: Re: [PATCH] firmware: dmi: Add info message for number of populated and total memory slots

Hi Heiner,

On Tue, 2024-03-05 at 21:55 +0100, Heiner Kallweit wrote:
> As part of adding support for calling i2c_register_spd() on muxed SMBUS
> segments the same message has been removed from i2c_register_spd().
> However users may find it useful, therefore reintroduce it as part of
> the DMI scan code.
>
> Signed-off-by: Heiner Kallweit <[email protected]>
> ---
>  drivers/firmware/dmi_scan.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
> index 015c95a82..2c682b580 100644
> --- a/drivers/firmware/dmi_scan.c
> +++ b/drivers/firmware/dmi_scan.c
> @@ -42,6 +42,7 @@ static struct dmi_memdev_info {
>         u8 type;                /* DDR2, DDR3, DDR4 etc */
>  } *dmi_memdev;
>  static int dmi_memdev_nr;
> +static int dmi_memdev_populated_nr;
>  
>  static const char * __init dmi_string_nosave(const struct dmi_header *dm, u8 s)
>  {
> @@ -448,6 +449,9 @@ static void __init save_mem_devices(const struct dmi_header *dm, void *v)
>         else
>                 bytes = (u64)get_unaligned((u32 *)&d[0x1C]) << 20;
>  
> +       if (bytes)
> +               dmi_memdev_populated_nr++;
> +
>         dmi_memdev[nr].size = bytes;
>         nr++;
>  }
> @@ -824,6 +828,8 @@ void __init dmi_setup(void)
>                 return;
>  
>         dmi_memdev_walk();
> +       pr_info("DMI: Memory slots populated: %d/%d\n",
> +               dmi_memdev_populated_nr, dmi_memdev_nr);
>         dump_stack_set_arch_desc("%s", dmi_ids_string);
>  }
>  

Applied, thanks.

--
Jean Delvare
SUSE L3 Support