Re: [PATCH] soc/tegra: fuse: Export tegra_get_platform() & tegra_is_silicon()

Thierry Reding
2022-10-20T14:25:30Z

[-- Attachment #1.1: Type: text/plain, Size: 2343 bytes --]

On Thu, Oct 20, 2022 at 11:57:39AM +0200, Arnd Bergmann wrote:
> On Thu, Oct 20, 2022, at 11:54, Thierry Reding wrote:
> > On Mon, Sep 26, 2022 at 03:35:59PM +0530, Kartik wrote:
> >> Functions tegra_get_platform() and tegra_is_silicon() are required
> >> for pre-silicon development to correctly identify the platform on
> >> which the software is running.
> >>
> >> Export tegra_get_platform() and tegra_is_silicon(), so they can be
> >> used for pre-slicon development of device drivers and kernel space
> >> tests.
> >>
> >> Signed-off-by: Kartik <kkartik@nvidia.com>
> >> ---
> >> drivers/soc/tegra/fuse/tegra-apbmisc.c | 2 ++
> >> 1 file changed, 2 insertions(+)
> >
> > Hi Arnd, Olof,
> >
> > can you take a quick look at this and provide some feedback regarding
> > acceptance? It's slightly unorthodox because the only in-tree users of
> > these functions are built-in drivers and early code, so they don't
> > technically need to be exported for strictly in-kernel users. However,
> > we do see these used quite frequently in pre-silicon development and
> > having these available upstream would help with internal kernel
> > transitions and so on. We may also see them used more commonly in
> > upstream drivers in the future.
>
> Hi Thierry and Kartik,
>
> Have you looked at using soc_device_match() instead?
>
> As long as the information is part of the soc_device_attribute
> prvoided by the soc info driver, any other kernel driver should
> be able to just use string matching to get what you need here.

The values that we stash into the struct soc_device_attribute for Tegra
are not very useful for this purpose. If there's no concern about back-
wards compatibility, perhaps that could be changed. I could imagine that
we could store some "simulation" string as a special case into the
revision attribute. Any "revision" that doesn't match "simulation" could
then be considered to be "silicon".

We don't populate "machine" at all it seems, but I'm not sure it would
be a good fit for this anyway.

Kartik, Jon, I wonder if we're really also interested in the platform or
if we export that primarily because it's needed by tegra_is_silicon(). I
see derivatives used in certain cases, but perhaps they can be
represented by other special "revision" strings?

Thierry

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]