[PATCH v5 2/3] arm:davinci: move emif driver to mfd framework
Samuel Ortiz
sameo at linux.intel.com
Mon Feb 27 09:26:38 EST 2012
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/
More information about the linux-mtd
mailing list