All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Hunter <jonathanh@nvidia.com>
To: Kartik <kkartik@nvidia.com>,
	thierry.reding@gmail.com, digetx@gmail.com,
	ndesaulniers@google.com, ulf.hansson@linaro.org, arnd@arndb.de,
	skamble@nvidia.com, windhl@126.com, sumitg@nvidia.com,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] soc/tegra: fuse: use platform info with soc revision
Date: Wed, 9 Nov 2022 10:51:39 +0000	[thread overview]
Message-ID: <62cc53ae-a615-e138-e22c-fe3a4018efde@nvidia.com> (raw)
In-Reply-To: <1667975179-11136-1-git-send-email-kkartik@nvidia.com>



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@nvidia.com>
> ---
> 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?

> +					   tegra_revision_name[tegra_sku_info.revision]);
> +	} else {
> +		attr->revision = kasprintf(GFP_KERNEL, "%s",
> +					   tegra_platform_name[tegra_sku_info.platform]);
> +	}
>   	attr->soc_id = kasprintf(GFP_KERNEL, "%u", tegra_get_chip_id());
>   	attr->custom_attr_group = fuse->soc->soc_attr_group;
>   
> diff --git a/drivers/soc/tegra/fuse/tegra-apbmisc.c b/drivers/soc/tegra/fuse/tegra-apbmisc.c
> index 3351bd872ab2..4591c5bcb690 100644
> --- a/drivers/soc/tegra/fuse/tegra-apbmisc.c
> +++ b/drivers/soc/tegra/fuse/tegra-apbmisc.c
> @@ -156,6 +156,7 @@ void __init tegra_init_revision(void)
>   	}
>   
>   	tegra_sku_info.sku_id = tegra_fuse_read_early(FUSE_SKU_INFO);
> +	tegra_sku_info.platform = tegra_get_platform();
>   }
>   
>   void __init tegra_init_apbmisc(void)
> diff --git a/include/soc/tegra/fuse.h b/include/soc/tegra/fuse.h
> index 977c334136e9..a63de5da8124 100644
> --- a/include/soc/tegra/fuse.h
> +++ b/include/soc/tegra/fuse.h
> @@ -34,6 +34,20 @@ enum tegra_revision {
>   	TEGRA_REVISION_MAX,
>   };
>   
> +enum tegra_platform {
> +	TEGRA_PLATFORM_SILICON = 0,
> +	TEGRA_PLATFORM_QT,
> +	TEGRA_PLATFORM_SYSTEM_FPGA,
> +	TEGRA_PLATFORM_UNIT_FPGA,
> +	TEGRA_PLATFORM_ASIM_QT,
> +	TEGRA_PLATFORM_ASIM_LINSIM,
> +	TEGRA_PLATFORM_DSIM_ASIM_LINSIM,
> +	TEGRA_PLATFORM_VERIFICATION_SIMULATION,
> +	TEGRA_PLATFORM_VDK,
> +	TEGRA_PLATFORM_VSP,
> +	TEGRA_PLATFORM_MAX,
> +};
> +
>   struct tegra_sku_info {
>   	int sku_id;
>   	int cpu_process_id;
> @@ -47,6 +61,7 @@ struct tegra_sku_info {
>   	int gpu_speedo_id;
>   	int gpu_speedo_value;
>   	enum tegra_revision revision;
> +	enum tegra_platform platform;
>   };
>   
>   #ifdef CONFIG_ARCH_TEGRA

-- 
nvpublic

  reply	other threads:[~2022-11-09 10:52 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-09  6:26 [PATCH v2] soc/tegra: fuse: use platform info with soc revision Kartik
2022-11-09 10:51 ` Jon Hunter [this message]
2022-11-09 10:53   ` Jon Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=62cc53ae-a615-e138-e22c-fe3a4018efde@nvidia.com \
    --to=jonathanh@nvidia.com \
    --cc=arnd@arndb.de \
    --cc=digetx@gmail.com \
    --cc=kkartik@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=skamble@nvidia.com \
    --cc=sumitg@nvidia.com \
    --cc=thierry.reding@gmail.com \
    --cc=ulf.hansson@linaro.org \
    --cc=windhl@126.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.