Re: [PATCH v2 4/4] soc: samsung: exynos-chipid: convert to driver and merge exynos-asv
From: 'Krzysztof Kozlowski'
Date: Tue Dec 08 2020 - 03:48:51 EST
On Tue, Dec 08, 2020 at 12:31:23PM +0530, Pankaj Dubey wrote:
>
>
> > -----Original Message-----
> > From: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> > Sent: Tuesday, December 8, 2020 12:35 AM
> > To: Krzysztof Kozlowski <krzk@xxxxxxxxxx>; linux-arm-
> > kernel@xxxxxxxxxxxxxxxxxxx; linux-samsung-soc@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx
> > Cc: Sylwester Nawrocki <snawrocki@xxxxxxxxxx>; Marek Szyprowski
> > <m.szyprowski@xxxxxxxxxxx>; Bartlomiej Zolnierkiewicz
> > <b.zolnierkie@xxxxxxxxxxx>; Arnd Bergmann <arnd@xxxxxxxx>; Chanwoo
> > Choi <cw00.choi@xxxxxxxxxxx>; Alim Akhtar <alim.akhtar@xxxxxxxxxxx>;
> > Pankaj Dubey <pankaj.dubey@xxxxxxxxxxx>
> > Subject: [PATCH v2 4/4] soc: samsung: exynos-chipid: convert to driver and
> > merge exynos-asv
> >
> > The Exynos Chip ID driver on Exynos SoCs has so far only informational
> > purpose - to expose the SoC device in sysfs. No other drivers depend on
> it
> > so there is really no benefit of initializing it early.
> >
>
> One of the intention behind initializing Exynos Chip ID driver in early
> stage was to simplify code in arch/arm/mach-exynos specifically calls such
> as soc_is_exynosXXXX.
> But there were lot of resistance from community to add any such calls (or
> exported function) from mach-exynos files to the driver file. Whereas some
> other SoC code is using the same, e.g. tegra_get_chip_id being called from
> mach-tegra files to drivers/soc/tegra/. Unfortunately we could not accept
> similar solution for Exynos SoC and hence could not get rid of
> soc_is_exynosxXXX and similar macros from various file in mach-exynos and
> eventually converting those files into a full-fledged driver files.
>
> Any opinion how can we achieve this if we convert Exynos Chip ID driver to a
> regular driver?
a. Some parts of mach code can be moved to drivers and then use OF calls.
b. The ones which cannot be moved, could use soc_device_match() assuming
they are called after the soc-bus is operational - so after
core_initcalls.
c. The ones which are called early or without cache coherency
(soc_device_match() uses krefs()), cannot be converted.
This chip ID conversion indeed kills case (b) above... which I am not
sure is worth bothering. Which parts of code could be moved like this?
Not mentioning that none of this work have happened since few years...
Best regards,
Krzysztof