From: Samuel Ortiz Platform devices should be dynamically allocated, and each supported device should have its own platform data. For now we just remove this buggy code. Signed-off-by: Samuel Ortiz Cc: David Brownell Signed-off-by: Andrew Morton --- drivers/mfd/asic3.c | 8 -------- include/linux/mfd/asic3.h | 3 --- 2 files changed, 11 deletions(-) diff -puN drivers/mfd/asic3.c~asic3-remove-children-platform-data drivers/mfd/asic3.c --- a/drivers/mfd/asic3.c~asic3-remove-children-platform-data +++ a/drivers/mfd/asic3.c @@ -607,14 +607,6 @@ static int asic3_probe(struct platform_d goto out_irq; } - if (pdata->children) { - int i; - for (i = 0; i < pdata->n_children; i++) { - pdata->children[i]->dev.parent = &pdev->dev; - platform_device_register(pdata->children[i]); - } - } - printk(KERN_INFO "ASIC3 Core driver\n"); return 0; diff -puN include/linux/mfd/asic3.h~asic3-remove-children-platform-data include/linux/mfd/asic3.h --- a/include/linux/mfd/asic3.h~asic3-remove-children-platform-data +++ a/include/linux/mfd/asic3.h @@ -32,9 +32,6 @@ struct asic3_platform_data { unsigned int irq_base; unsigned int gpio_base; - - struct platform_device **children; - unsigned int n_children; }; #define ASIC3_NUM_GPIO_BANKS 4 _