Skip to content

Commit

Permalink
soc: samsung: exynos-chipid: initialize later - with arch_initcall
Browse files Browse the repository at this point in the history
The Exynos ChipID driver on Exynos SoCs has 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.

Instead, initialize everything with arch_initcall which:
1. Allows to use dev_info() as the SoC bus is present (since
   core_initcall),
2. Could speed things up because of execution in a SMP environment
   (after bringing up secondary CPUs, unlike early_initcall),
3. Reduces the amount of work to be done early, when the kernel has to
   bring up critical devices.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20201202195955.128633-2-krzk@kernel.org
  • Loading branch information
Krzysztof Kozlowski committed Dec 5, 2020
1 parent 7136d6a commit 3b4c362
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/soc/samsung/exynos-chipid.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,9 @@ static int __init exynos_chipid_early_init(void)
goto err;
}

/* it is too early to use dev_info() here (soc_dev is NULL) */
pr_info("soc soc0: Exynos: CPU[%s] PRO_ID[0x%x] REV[0x%x] Detected\n",
soc_dev_attr->soc_id, product_id, revision);
dev_info(soc_device_to_device(soc_dev),
"Exynos: CPU[%s] PRO_ID[0x%x] REV[0x%x] Detected\n",
soc_dev_attr->soc_id, product_id, revision);

return 0;

Expand All @@ -111,4 +111,4 @@ static int __init exynos_chipid_early_init(void)
return ret;
}

early_initcall(exynos_chipid_early_init);
arch_initcall(exynos_chipid_early_init);

0 comments on commit 3b4c362

Please sign in to comment.