mfd: mfd-core: Remove mfd_clone_cell()
authorLee Jones <lee.jones@linaro.org>
Fri, 18 Oct 2019 12:31:39 +0000 (13:31 +0100)
committerLee Jones <lee.jones@linaro.org>
Mon, 11 Nov 2019 08:45:03 +0000 (08:45 +0000)
Providing a subsystem-level API helper seems over-kill just to save a
few lines of C-code.  Previous commits saw us convert mfd_clone_cell()'s
only user over to use a more traditional style of MFD child-device
registration.  Now we can remove the superfluous helper from the MFD API.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
drivers/mfd/mfd-core.c
include/linux/mfd/core.h

index 96d02b6..e38e411 100644 (file)
@@ -392,38 +392,5 @@ int devm_mfd_add_devices(struct device *dev, int id,
 }
 EXPORT_SYMBOL(devm_mfd_add_devices);
 
-int mfd_clone_cell(const char *cell, const char **clones, size_t n_clones)
-{
-       struct mfd_cell cell_entry;
-       struct device *dev;
-       struct platform_device *pdev;
-       int i;
-
-       /* fetch the parent cell's device (should already be registered!) */
-       dev = bus_find_device_by_name(&platform_bus_type, NULL, cell);
-       if (!dev) {
-               printk(KERN_ERR "failed to find device for cell %s\n", cell);
-               return -ENODEV;
-       }
-       pdev = to_platform_device(dev);
-       memcpy(&cell_entry, mfd_get_cell(pdev), sizeof(cell_entry));
-
-       WARN_ON(!cell_entry.enable);
-
-       for (i = 0; i < n_clones; i++) {
-               cell_entry.name = clones[i];
-               /* don't give up if a single call fails; just report error */
-               if (mfd_add_device(pdev->dev.parent, -1, &cell_entry,
-                                  cell_entry.usage_count, NULL, 0, NULL))
-                       dev_err(dev, "failed to create platform device '%s'\n",
-                                       clones[i]);
-       }
-
-       put_device(dev);
-
-       return 0;
-}
-EXPORT_SYMBOL(mfd_clone_cell);
-
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Ian Molton, Dmitry Baryshkov");
index 9a97e09..63ac3cc 100644 (file)
@@ -116,24 +116,6 @@ extern int mfd_cell_enable(struct platform_device *pdev);
 extern int mfd_cell_disable(struct platform_device *pdev);
 
 /*
- * "Clone" multiple platform devices for a single cell. This is to be used
- * for devices that have multiple users of a cell.  For example, if an mfd
- * driver wants the cell "foo" to be used by a GPIO driver, an MTD driver,
- * and a platform driver, the following bit of code would be use after first
- * calling mfd_add_devices():
- *
- * const char *fclones[] = { "foo-gpio", "foo-mtd" };
- * err = mfd_clone_cells("foo", fclones, ARRAY_SIZE(fclones));
- *
- * Each driver (MTD, GPIO, and platform driver) would then register
- * platform_drivers for "foo-mtd", "foo-gpio", and "foo", respectively.
- * The cell's .enable/.disable hooks should be used to deal with hardware
- * resource contention.
- */
-extern int mfd_clone_cell(const char *cell, const char **clones,
-               size_t n_clones);
-
-/*
  * Given a platform device that's been created by mfd_add_devices(), fetch
  * the mfd_cell that created it.
  */