Re: [PATCH v2] soc/tegra: fuse: use platform info with soc revision

From: Jon Hunter
Date: Wed Nov 09 2022 - 05:55:31 EST



On 09/11/2022 10:51, Jon Hunter wrote:


On 09/11/2022 06:26, Kartik wrote:
Tegra pre-silicon platforms do not have chip revisions. This makes the
revision soc attribute meaningless on these platforms.

Instead, populate the revision soc attribute with
"platform name + chip revision" for Silicon. For pre-silicon platforms
populate it with "platform name" instead.

Signed-off-by: Kartik <kkartik@xxxxxxxxxx>
---
v1->v2:
  * Updated commit message.

  drivers/soc/tegra/fuse/fuse-tegra.c    | 23 +++++++++++++++++++++--
  drivers/soc/tegra/fuse/tegra-apbmisc.c |  1 +
  include/soc/tegra/fuse.h               | 15 +++++++++++++++
  3 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
index ea25a1dcafc2..a20c9e0105dc 100644
--- a/drivers/soc/tegra/fuse/fuse-tegra.c
+++ b/drivers/soc/tegra/fuse/fuse-tegra.c
@@ -35,6 +35,19 @@ static const char *tegra_revision_name[TEGRA_REVISION_MAX] = {
      [TEGRA_REVISION_A04]     = "A04",
  };
+static const char *tegra_platform_name[TEGRA_PLATFORM_MAX] = {
+    [TEGRA_PLATFORM_SILICON]            = "Silicon",
+    [TEGRA_PLATFORM_QT]                = "QT",
+    [TEGRA_PLATFORM_SYSTEM_FPGA]            = "System FPGA",
+    [TEGRA_PLATFORM_UNIT_FPGA]            = "Unit FPGA",
+    [TEGRA_PLATFORM_ASIM_QT]            = "Asim QT",
+    [TEGRA_PLATFORM_ASIM_LINSIM]            = "Asim Linsim",
+    [TEGRA_PLATFORM_DSIM_ASIM_LINSIM]        = "Dsim Asim Linsim",
+    [TEGRA_PLATFORM_VERIFICATION_SIMULATION]    = "Verification Simulation",
+    [TEGRA_PLATFORM_VDK]                = "VDK",
+    [TEGRA_PLATFORM_VSP]                = "VSP",
+};
+
  static const struct of_device_id car_match[] __initconst = {
      { .compatible = "nvidia,tegra20-car", },
      { .compatible = "nvidia,tegra30-car", },
@@ -370,8 +383,14 @@ struct device * __init tegra_soc_device_register(void)
          return NULL;
      attr->family = kasprintf(GFP_KERNEL, "Tegra");
-    attr->revision = kasprintf(GFP_KERNEL, "%s",
-        tegra_revision_name[tegra_sku_info.revision]);
+    if (tegra_is_silicon()) {

curly braces are not needed.

+        attr->revision = kasprintf(GFP_KERNEL, "%s %s",
+                       tegra_platform_name[tegra_sku_info.platform],

Do we need to include platform here? Can't we just print the revision?

Actually, printing something like "Silicon A02" here is fine. No need to change.

Jon

--
nvpublic