Re: [PATCH v6 4/4] soc: imx8m: change to use platform driver
From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2020-11-24 09:48:46
Also in:
linux-arm-kernel, lkml
On Tue, Nov 24, 2020 at 09:59:49AM +0800, Alice Guo wrote:
Directly reading ocotp register depends on that bootloader enables ocotp clk, which is not always effective, so change to use nvmem API. Using nvmem API requires to support driver defer probe and thus change soc-imx8m.c to use platform driver. The other reason is that directly reading ocotp register causes kexec kernel hang because the 1st kernel running will disable unused clks after kernel boots up, and then ocotp clk will be disabled even if bootloader enables it. When kexec kernel, ocotp clk needs to be enabled before reading ocotp registers, and nvmem API with platform driver supported can accomplish this. Signed-off-by: Alice Guo <redacted>
I already reviewed it. You skipped all my review tags from v5. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof
---
v2: remove the subject prefix "LF-2571-4"
v3: Keep the original way which uses device_initcall to read soc unique
ID, and add the other way which uses module_platform_driver and
nvmem API, so that it will not break the old version DTBs.
v4: delete "__maybe_unused"
delete MODULE_DEVICE_TABLE(of, imx8m_soc_match);
rename match table, "fsl,imx8mm/n/q/p" is actually a machine
compabile and "fsl,imx8mm/n/q/p-soc" is a compabile of soc@0
delete "flag" and change to determine whether the pointer is NULL
ues of_find_matching_node_and_match()
delete of_match_ptr()
v5: add cleanup part "of_node_put"
add note to explain that why device_initcall still exists
v6: none