Hello, On Tue, Jun 28, 2016 at 10:18:15AM +0200, Quentin Schulz wrote: > diff --git a/drivers/mfd/sunxi-gpadc-mfd.c b/drivers/mfd/sunxi-gpadc-mfd.c > new file mode 100644 > index 0000000..710e297 > --- /dev/null > +++ b/drivers/mfd/sunxi-gpadc-mfd.c > @@ -0,0 +1,188 @@ [...] > + if (of_device_is_compatible(pdev->dev.of_node, > + "allwinner,sun4i-a10-ts")) > + ret = mfd_add_devices(sunxi_gpadc_mfd_dev->dev, 0, > + sun4i_gpadc_mfd_cells, > + ARRAY_SIZE(sun4i_gpadc_mfd_cells), NULL, > + 0, NULL); > + else if (of_device_is_compatible(pdev->dev.of_node, > + "allwinner,sun5i-a13-ts")) > + ret = mfd_add_devices(sunxi_gpadc_mfd_dev->dev, 0, > + sun5i_gpadc_mfd_cells, > + ARRAY_SIZE(sun5i_gpadc_mfd_cells), NULL, > + 0, NULL); > + else if (of_device_is_compatible(pdev->dev.of_node, > + "allwinner,sun6i-a31-ts")) > + ret = mfd_add_devices(sunxi_gpadc_mfd_dev->dev, 0, > + sun6i_gpadc_mfd_cells, > + ARRAY_SIZE(sun6i_gpadc_mfd_cells), NULL, > + 0, NULL); > + > + if (ret) { > + dev_err(&pdev->dev, "failed to add MFD devices: %d\n", ret); > + regmap_del_irq_chip(irq, sunxi_gpadc_mfd_dev->regmap_irqc); > + mfd_remove_devices(&pdev->dev); You don't need to explicitly call mfd_remove_devices() when mfd_add_devices() fails. See: http://lxr.free-electrons.com/source/drivers/mfd/mfd-core.c#L298 > + return ret; > + } Thanks, Antoine -- Antoine Ténart, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
Attachment:
signature.asc
Description: PGP signature