[PATCH v5 2/3] arm:davinci: move emif driver to mfd framework
From: Samuel Ortiz <hidden>
Date: 2012-02-27 14:19:16
Also in:
lkml
Hi Prakash, On Thu, Feb 23, 2012 at 07:28:23PM +0530, Manjunathappa, Prakash wrote:
+static int __init davinci_aemif_probe(struct platform_device *pdev)
+{
+ struct davinci_aemif_devices *davinci_aemif_devices =
+ pdev->dev.platform_data;
+ struct platform_device *devices;
+ struct mfd_cell *cells;
+ int i, ret, count;
+
+ devices = davinci_aemif_devices->devices;
+
+ cells = kzalloc(sizeof(struct mfd_cell) *
+ davinci_aemif_devices->num_devices, GFP_KERNEL);
+
+ for (i = 0, count = 0; i < davinci_aemif_devices->num_devices; i++) {
+ if (!strcmp(devices[i].name, "davinci_nand")) {
+ cells[count].pdata_size =
+ sizeof(struct davinci_nand_pdata);
+ } else if (!strcmp(devices[i].name, "physmap-flash")) {
+ cells[count].pdata_size =
+ sizeof(struct physmap_flash_data);
+ } else
+ continue;
+
+ cells[count].name = devices[i].name;
+ cells[count].platform_data =
+ devices[i].dev.platform_data;
+ cells[count].id = devices[i].id;
+ cells[count].resources = devices[i].resource;
+ cells[count].num_resources = devices[i].num_resources;
+ count++;
+ }So it seems you're passing a platform devices array through your mfd aemif platform data pointer. And from what I can see, it's mostly a 1 entry array (for the NAND case) or a 2 entries array (for the NAND and NOR case). In that case, adding an MFD driver in the middle brings basically nothing but confusion and overhead (and 200+ lines of code). So unless someone explains to me how this is doing any good to the kernel in general, I'm not going to take this patchset. Cheers, Samuel. -- Intel Open Source Technology Centre http://oss.intel.com/