[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1e428c8e-f4b5-0810-77f9-2c899c040fc7@kernel.org>
Date: Tue, 20 Aug 2019 23:38:02 +0200
From: Sylwester Nawrocki <snawrocki@...nel.org>
To: Krzysztof Kozlowski <krzk@...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 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.
--
Regards,
Sylwester
Powered by blists - more mailing lists