On Fri, Mar 11, 2022 at 11:15 AM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote: > > On 11/03/2022 02:42, Medad CChien wrote: > > Add support for Nuvoton NPCM SoC. > > > > Signed-off-by: Medad CChien <ctcchien@xxxxxxxxxxx> > > --- > > drivers/edac/Kconfig | 9 + > > drivers/edac/Makefile | 1 + > > drivers/edac/npcm_edac.c | 714 +++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 724 insertions(+) > > create mode 100644 drivers/edac/npcm_edac.c > > > > diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig > > index 58ab63642e72..757e1d160640 100644 > > --- a/drivers/edac/Kconfig > > +++ b/drivers/edac/Kconfig > > @@ -539,4 +539,13 @@ config EDAC_DMC520 > > Support for error detection and correction on the > > SoCs with ARM DMC-520 DRAM controller. > > > > +config EDAC_NPCM > > + tristate "Nuvoton NPCM DDR Memory Controller" > > + depends on ARCH_NPCM > > || COMPILE_TEST > (and test if it compiles) > > (...) > > > + > > +MODULE_DEVICE_TABLE(of, npcm_edac_of_match); > > + > > +static int npcm_edac_mc_probe(struct platform_device *pdev) > > +{ > > + const struct npcm_edac_platform_data *npcm_chip; > > + struct device *dev = &pdev->dev; > > + struct edac_mc_layer layers[1]; > > + const struct of_device_id *id; > > + struct priv_data *priv_data; > > + struct mem_ctl_info *mci; > > + struct resource *res; > > + void __iomem *reg; > > + int ret = -ENODEV; > > + int irq; > > + > > + id = of_match_device(npcm_edac_of_match, &pdev->dev); > > + if (!id) > > + return -ENODEV; > > Why do you need it? How such case is even possible? > > > + > > + npcm_chip = of_device_get_match_data(&pdev->dev); > > + if (!npcm_chip) > > + return -ENODEV; > > I wonder, how is it possible to have here NULL? > Both of_match_device() and of_device_get_match_data() can return NULL, are we missing something? > Best regards, > Krzysztof -- Regards, Avi