On Wed, 25 Nov 2020 at 01:44, Adam Ford <aford173@xxxxxxxxx> wrote: > > On Mon, Nov 23, 2020 at 8:04 PM Alice Guo <alice.guo@xxxxxxx> 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 <alice.guo@xxxxxxx> > > --- > > > The patch reads V6, but the change log only shows V2. Can you > elaborate on what has changed between V2 and V6? > > adam > > > 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 Hi Adam, It says up to v6, just in unnatural order... I was also surprised. Best regards, Krzysztof