On Sunday 11 May 2014 18:47:28 Olof Johansson wrote: > > > Also for platsmp.c and pm.c I can think of following approaches > > > 1: Keep these macros till we get generic solution? > > > 2: Allow chipid driver to expose APIs to check SoC id and SoC revisions > > > till we get > > > generic solution. So that at least we can remove #ifdef based macros > > > as soc_is_exynosXYZ. > > > 3: Use of "of_flat_dt_is_compatible" or similar APIs in these machine files > > > till we get > > > generic solution. For some cases where we want to know SoC revision let us > > > map chipid register and get revision there itself. > > > > > > Please let me know what approach you think will be good? > > > > I think 1 or 2 would be better than 3. Between those two, I'm undecided, > > but I think either way the SoC specific values would be better kept in the > > mach-samsung directory than in plat/cpu.h or linux/exynos-chipid.h. > > The generic solution is already there: of_machine_is_compatible() is perfectly > sensible to use for _some_ of these inits. Cpufreq is one of the few that comes > to mind, and maybe some of the platsmp and pm stuff. > > Note that none of them should be used in runtime, i.e. you should only use them > at probe/setup time and maybe have a local state in the driver if needed. > > I'd rather get people used to that format than everybody needing to implement > a chipid driver now too, especially on platforms that might not even have a > suitable chipid block to base a driver around -- not to mention having to > fill the namespace with is_soc_*() stuff. I was coming from the other angle: exynos is already using soc_is_*() in too many places. I'd like to first see the ones cleaned up that really should be doing something else because they have a device-local ID to look at. If we end up with a couple of instances that don't have a good alternative, we can use of_machine_is_compatible() for those, but I'd like to avoid doing a blind conversion because that would likely lead to more instances in the future, not fewer. I agree that we should have to introduce new chip ID drivers on other platforms for the purpose of finding out the SoC version, especially not with private APIs. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html