Re: [PATCH v3 2/8] mfd: MT6397: Add support for PMIC MT6397 MFD
flat view
From: Lee Jones <hidden>
Date: 2014-12-08 08:46:40
Also in:
linux-arm-kernel, lkml
On Fri, 05 Dec 2014, Flora Fu wrote:
Add core files for MT6397 MFD driver. Signed-off-by: Flora Fu <flora.fu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org> --- drivers/mfd/Kconfig | 10 + drivers/mfd/Makefile | 1 + drivers/mfd/mt6397-core.c | 87 +++++++++ include/linux/mfd/mt6397/core.h | 23 +++ include/linux/mfd/mt6397/registers.h | 362 +++++++++++++++++++++++++++++++++++ 5 files changed, 483 insertions(+) create mode 100644 drivers/mfd/mt6397-core.c create mode 100644 include/linux/mfd/mt6397/core.h create mode 100644 include/linux/mfd/mt6397/registers.h
[...]
quoted hunk ↗ jump to hunk
+++ b/drivers/mfd/mt6397-core.c@@ -0,0 +1,87 @@ +/* + * Copyright (c) 2014 MediaTek Inc. + * Author: Flora Fu <flora.fu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/module.h> +#include <linux/of_device.h> +#include <linux/mfd/core.h> +#include <linux/mfd/mt6397/core.h> +#include <linux/soc/mediatek/mtk-pmic-wrap.h> + +static const struct mfd_cell mt6397_devs[] = { + { .name = "mt6397-rtc" }, + { + .name = "mt6397-regulator", + .of_compatible = "mediatek,mt6397-regulator", + }, + { + .name = "mt6397-codec", + .of_compatible = "mediatek,mt6397-codec", + }, +}; + +static int mt6397_probe(struct platform_device *pdev) +{ + u32 ret; + struct mt6397_chip *mt6397; + struct pmic_wrapper *wrp; + + /* mt6397 MFD is child device of soc pmic wrapper. */ + if (!pdev->dev.parent) + return -ENODEV; + + wrp = dev_get_drvdata(pdev->dev.parent);
You're _still_ not checking the return value prior to dereferencing.
quoted hunk ↗ jump to hunk
+ mt6397 = devm_kzalloc(&pdev->dev, sizeof(*mt6397), GFP_KERNEL); + if (!mt6397) + return -ENOMEM; + + mt6397->dev = &pdev->dev; + mt6397->regmap = wrp->regmap;
quoted hunk ↗ jump to hunk
+ platform_set_drvdata(pdev, mt6397); + + ret = mfd_add_devices(&pdev->dev, -1, &mt6397_devs[0],
Just mt6397_devs here.
quoted hunk ↗ jump to hunk
+ ARRAY_SIZE(mt6397_devs), NULL, 0, NULL); + if (ret) + dev_err(&pdev->dev, "failed to add child devices: %d\n", ret);
There is no point in printing ret. The kernel will do that for you. [...] -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html