Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: cs5535-mfd: Register clients using their own dedicated MFD cell entries

CS5535 is the only user of mfd_clone_cell(). It makes more sense to
register child devices in the traditional way and remove the quite
bespoke mfd_clone_cell() call from the MFD API.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>

+16 -9
+16 -9
drivers/mfd/cs5535-mfd.c
··· 50 50 .num_resources = 1, 51 51 .resources = &cs5535_mfd_resources[PMS_BAR], 52 52 }, 53 + }; 54 + 55 + static struct mfd_cell cs5535_olpc_mfd_cells[] = { 53 56 { 54 - .name = "cs5535-acpi", 57 + .name = "olpc-xo1-pm-acpi", 55 58 .num_resources = 1, 56 59 .resources = &cs5535_mfd_resources[ACPI_BAR], 57 60 }, 58 - }; 59 - 60 - static const char *olpc_acpi_clones[] = { 61 - "olpc-xo1-pm-acpi", 62 - "olpc-xo1-sci-acpi" 61 + { 62 + .name = "olpc-xo1-sci-acpi", 63 + .num_resources = 1, 64 + .resources = &cs5535_mfd_resources[ACPI_BAR], 65 + }, 63 66 }; 64 67 65 68 static int cs5535_mfd_probe(struct pci_dev *pdev, ··· 104 101 goto err_remove_devices; 105 102 } 106 103 107 - err = mfd_clone_cell("cs5535-acpi", olpc_acpi_clones, 108 - ARRAY_SIZE(olpc_acpi_clones)); 104 + err = mfd_add_devices(&pdev->dev, PLATFORM_DEVID_NONE, 105 + cs5535_olpc_mfd_cells, 106 + ARRAY_SIZE(cs5535_olpc_mfd_cells), 107 + NULL, 0, NULL); 109 108 if (err) { 110 - dev_err(&pdev->dev, "Failed to clone MFD cell\n"); 109 + dev_err(&pdev->dev, 110 + "Failed to add CS5535 OLPC sub-devices: %d\n", 111 + err); 111 112 goto err_release_acpi; 112 113 } 113 114 }