summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-04-06 18:52:52 +0400
committerSamuel Ortiz <sameo@linux.intel.com>2011-05-26 21:44:56 +0400
commiteb8956074e7652e802be5f078080c704c2c87104 (patch)
treeb96a4eaaf69e36a6a88282fa9572e194c5f5a1ba
parent4db70f73e56961b9bcdfd0c36c62847a18b7dbb5 (diff)
downloadlinux-eb8956074e7652e802be5f078080c704c2c87104.tar.xz
mfd: Add platform data pointer back
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>
-rw-r--r--drivers/mfd/mfd-core.c7
-rw-r--r--include/linux/mfd/core.h4
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
index f4c8c844b913..0902523af62d 100644
--- a/drivers/mfd/mfd-core.c
+++ b/drivers/mfd/mfd-core.c
@@ -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;
diff --git a/include/linux/mfd/core.h b/include/linux/mfd/core.h
index aef23309a742..68c13e52a50c 100644
--- a/include/linux/mfd/core.h
+++ b/include/linux/mfd/core.h
@@ -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