mfd: Add platform data pointer back
authorSamuel Ortiz <sameo@linux.intel.com>
Wed, 6 Apr 2011 14:52:52 +0000 (16:52 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 26 May 2011 17:44:56 +0000 (19:44 +0200)
Now that we have a way to pass MFD cells down to the sub drivers,
we can gradually get rid of mfd_data by putting the platform pointer
back in place.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/mfd-core.c
include/linux/mfd/core.h

index f4c8c84..0902523 100644 (file)
@@ -88,6 +88,13 @@ static int mfd_add_device(struct device *parent, int id,
 
        pdev->dev.parent = parent;
 
+       if (cell->pdata_size) {
+               ret = platform_device_add_data(pdev,
+                                       cell->platform_data, cell->pdata_size);
+               if (ret)
+                       goto fail_res;
+       }
+
        ret = mfd_platform_add_cell(pdev, cell);
        if (ret)
                goto fail_res;
index aef2330..68c13e5 100644 (file)
@@ -36,6 +36,10 @@ struct mfd_cell {
        /* mfd_data can be used to pass data to client drivers */
        void                    *mfd_data;
 
+       /* platform data passed to the sub devices drivers */
+       void                    *platform_data;
+       size_t                  pdata_size;
+
        /*
         * These resources can be specified relative to the parent device.
         * For accessing hardware you should use resources from the platform dev