[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJKOXPcdeb08-2Xsmjpw_CsJCTah03GJaLUjQYw6n7=Xhiwoow@mail.gmail.com>
Date: Wed, 21 Aug 2019 09:49:36 +0200
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Sylwester Nawrocki <snawrocki@...nel.org>
Cc: Jon Hunter <jonathanh@...dia.com>,
Sylwester Nawrocki <s.nawrocki@...sung.com>,
robh+dt@...nel.org, vireshk@...nel.org, devicetree@...r.kernel.org,
kgene@...nel.org, pankaj.dubey@...sung.com,
"linux-samsung-soc@...r.kernel.org"
<linux-samsung-soc@...r.kernel.org>,
linux-arm-kernel@...ts.infradead.org,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
linux-pm@...r.kernel.org,
Bartłomiej Żołnierkiewicz
<b.zolnierkie@...sung.com>,
Marek Szyprowski <m.szyprowski@...sung.com>,
linux-tegra <linux-tegra@...r.kernel.org>,
Arnd Bergmann <arnd@...db.de>
Subject: Re: [PATCH v3 2/9] soc: samsung: Convert exynos-chipid driver to use
the regmap API
On Tue, 20 Aug 2019 at 23:38, Sylwester Nawrocki <snawrocki@...nel.org> wrote:
>
> On 8/20/19 21:37, Krzysztof Kozlowski wrote:
> >>> diff --git a/drivers/soc/samsung/exynos-chipid.c b/drivers/soc/samsung/exynos-chipid.c
>
> >>> @@ -51,29 +48,24 @@ static const char * __init product_id_to_soc_id(unsigned int product_id)
> >>> int __init exynos_chipid_early_init(void)
> >>> {
> >>> struct soc_device_attribute *soc_dev_attr;
> >>> - void __iomem *exynos_chipid_base;
> >>> struct soc_device *soc_dev;
> >>> struct device_node *root;
> >>> - struct device_node *np;
> >>> + struct regmap *regmap;
> >>> u32 product_id;
> >>> u32 revision;
> >>> + int ret;
> >>>
> >>> - /* look up for chipid node */
> >>> - np = of_find_compatible_node(NULL, NULL, "samsung,exynos4210-chipid");
> >>> - if (!np)
> >>> - return -ENODEV;
> >>> -
> >>> - exynos_chipid_base = of_iomap(np, 0);
> >>> - of_node_put(np);
> >>> -
> >>> - if (!exynos_chipid_base) {
> >>> - pr_err("Failed to map SoC chipid\n");
> >>> - return -ENXIO;
> >>> + regmap = syscon_regmap_lookup_by_compatible("samsung,exynos4210-chipid");
> >>> + if (IS_ERR(regmap)) {
> >>> + pr_err("Failed to get CHIPID regmap\n");
> >>> + return PTR_ERR(regmap);
> >>> }
> >> Following this change, I am now seeing the above error on our Tegra
> >> boards where this driver is enabled. This is triggering a kernel
> >> warnings test we have to fail. Hence, I don't think that you can remove
> >> the compatible node test here, unless you have a better way to determine
> >> if this is a samsung device.
> >
> > Right, this is really wrong... I missed that it is not a probe but
> > early init. And this init will be called on every board... Probably it
> > should be converted to a regular driver.
>
> I'm also inclined to have it converted to a regular driver. We already
> have "exynos-asv" driver matching on the chipid node (patch 3/9).
> The ASV patches will not be merged soon anyway, all this needs some more
> thought. Krzysztof, can we abandon the chipid patches for now? Your
> pull request doesn't appear to be merged to arm-soc yet. Sorry about
> that.
Yes, let's abandon the pull request and rework the concept.
Best regards,
Krzysztof
Powered by blists - more mailing lists