From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Kartik <kkartik@nvidia.com>
Cc: thierry.reding@gmail.com, jonathanh@nvidia.com,
sumitg@nvidia.com, arnd@arndb.de, pshete@nvidia.co,
digetx@gmail.com, petlozup@nvidia.com, windhl@126.com,
frank.li@vivo.com, robh@kernel.org, stefank@nvidia.com,
pdeschrijver@nvidia.com, linux-tegra@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/6] soc/tegra: fuse: Add ACPI support for Tegra194 and Tegra234
Date: Fri, 18 Aug 2023 18:07:54 +0300 [thread overview]
Message-ID: <ZN+JSrT1nH/XMnGu@smile.fi.intel.com> (raw)
In-Reply-To: <20230818093028.7807-6-kkartik@nvidia.com>
On Fri, Aug 18, 2023 at 03:00:27PM +0530, Kartik wrote:
> Add tegra_fuse_acpi_probe() to initialize Tegra fuse while using ACPI.
> Also, drop '__init' keyword for tegra_soc_device_register() as this is also
> used by tegra_fuse_acpi_probe().
>
> Note that as ACPI subsystem initialize at subsys init, function
> tegra_fuse_acpi_probe() also contains the necessary initialization
> that we are currently doing for device-tree boot as a part of
> early init.
...
> +#include <linux/acpi.h>
You meed mod_devicetable.h and possibly property.h, not this header
(see below).
...
> +static const struct acpi_device_id tegra_fuse_acpi_match[] = {
> + {
> + .id = "NVDA200F",
> + },
Single line, no inner comma.
> + { /* sentinel */ },
The idea of sentinel is to guard, the trailing comma ruins this contract.
> +};
...
> +static int tegra_fuse_acpi_probe(struct platform_device *pdev)
> +{
Why you need a separate function?
> + struct resource *res;
> + u8 chip;
> + int err;
> +
> + tegra_acpi_init_apbmisc();
> +
> + chip = tegra_get_chip_id();
> + switch (chip) {
> +#if defined(CONFIG_ARCH_TEGRA_194_SOC)
Can we avoid ugly ifdeffery?
> + case TEGRA194:
> + fuse->soc = &tegra194_fuse_soc;
> + break;
> +#endif
> +#if defined(CONFIG_ARCH_TEGRA_234_SOC)
Ditto.
> + case TEGRA234:
> + fuse->soc = &tegra234_fuse_soc;
> + break;
> +#endif
> + default:
> + dev_err(&pdev->dev, "Unsupported SoC: %02x\n", chip);
> + return -EINVAL;
return dev_err_probe(...);
> + }
> +
> + fuse->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
> + if (IS_ERR(fuse->base))
> + return PTR_ERR(fuse->base);
> + fuse->phys = res->start;
> + platform_set_drvdata(pdev, fuse);
Is it being used?
> + fuse->dev = &pdev->dev;
> +
> + err = tegra_fuse_nvmem_register(fuse, &pdev->dev);
> + if (err)
> + return err;
> +
> + fuse->soc->init(fuse);
> + tegra_soc_device_register();
> + tegra_fuse_pr_sku_info(&tegra_sku_info);
> +
> + err = tegra_fuse_add_lookups(fuse);
> + if (err) {
> + dev_err(&pdev->dev, "failed to add FUSE lookups\n");
> + return err;
return dev_err_probe(...);
> + }
> +
> + return 0;
> +}
...
> + if (has_acpi_companion(&pdev->dev))
> + return tegra_fuse_acpi_probe(pdev);
Why is the ACPI so special here? Why you can't go same flow?
...
> + /* fuse->clk is not required when ACPI is used. */
> + if (!fuse->read || (!fuse->clk && !has_acpi_companion(fuse->dev)))
No, just make CLK optional and that's it.
> return -EPROBE_DEFER;
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2023-08-18 15:09 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-18 9:30 [PATCH 0/6] soc/tegra: fuse: Add ACPI support Kartik
2023-08-18 9:30 ` [PATCH 1/6] soc/tegra: fuse: Add tegra_acpi_init_apbmisc() Kartik
2023-08-18 13:21 ` Andy Shevchenko
2023-08-21 11:32 ` Kartik
2023-08-21 12:32 ` Andy Shevchenko
2023-08-22 7:52 ` Thierry Reding
2023-08-22 3:12 ` kernel test robot
2023-08-22 4:01 ` kernel test robot
2023-08-18 9:30 ` [PATCH 2/6] soc/tegra: fuse: Add function to register nvmem Kartik
2023-08-18 13:50 ` Andy Shevchenko
2023-08-21 11:34 ` Kartik
2023-08-18 9:30 ` [PATCH 3/6] soc/tegra: fuse: Add function to add lookups Kartik
2023-08-18 14:06 ` Andy Shevchenko
2023-08-21 11:36 ` Kartik
2023-08-18 9:30 ` [PATCH 4/6] soc/tegra: fuse: Add function to print SKU info Kartik
2023-08-22 7:55 ` Thierry Reding
2023-08-18 9:30 ` [PATCH 5/6] soc/tegra: fuse: Add ACPI support for Tegra194 and Tegra234 Kartik
2023-08-18 15:07 ` Andy Shevchenko [this message]
2023-08-21 11:38 ` Kartik
2023-08-21 12:45 ` Andy Shevchenko
2023-08-18 9:30 ` [PATCH 6/6] soc/tegra: fuse: Add support for Tegra241 Kartik
2023-08-18 15:10 ` Andy Shevchenko
2023-08-21 11:40 ` Kartik
2023-08-21 12:47 ` Andy Shevchenko
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=ZN+JSrT1nH/XMnGu@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=digetx@gmail.com \
--cc=frank.li@vivo.com \
--cc=jonathanh@nvidia.com \
--cc=kkartik@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=pdeschrijver@nvidia.com \
--cc=petlozup@nvidia.com \
--cc=pshete@nvidia.co \
--cc=robh@kernel.org \
--cc=stefank@nvidia.com \
--cc=sumitg@nvidia.com \
--cc=thierry.reding@gmail.com \
--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.