diff options
Diffstat (limited to '0012-mfd-core-propagate-device-properties-to-sub-devices-.patch')
-rw-r--r-- | 0012-mfd-core-propagate-device-properties-to-sub-devices-.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/0012-mfd-core-propagate-device-properties-to-sub-devices-.patch b/0012-mfd-core-propagate-device-properties-to-sub-devices-.patch new file mode 100644 index 000000000..d9e52e06c --- /dev/null +++ b/0012-mfd-core-propagate-device-properties-to-sub-devices-.patch @@ -0,0 +1,69 @@ +From 4d215cabc784990df11fbcca7af70adf53c9ff17 Mon Sep 17 00:00:00 2001 +From: Andy Shevchenko <andriy.shevchenko@linux.intel.com> +Date: Mon, 30 Nov 2015 17:11:40 +0200 +Subject: [PATCH 12/16] mfd: core: propagate device properties to sub devices + drivers + +In the similar way like we do for the platform data we propagate the device +properties. For example, in case of Intel LPSS drivers we may provide a +specific property to tell the actual device driver an additional information +such as platform name. + +Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> +Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> +--- + drivers/mfd/mfd-core.c | 7 +++++++ + include/linux/mfd/core.h | 5 +++++ + 2 files changed, 12 insertions(+) + +diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c +index 60b60dc..88bd1b1 100644 +--- a/drivers/mfd/mfd-core.c ++++ b/drivers/mfd/mfd-core.c +@@ -14,6 +14,7 @@ + #include <linux/kernel.h> + #include <linux/platform_device.h> + #include <linux/acpi.h> ++#include <linux/property.h> + #include <linux/mfd/core.h> + #include <linux/pm_runtime.h> + #include <linux/slab.h> +@@ -192,6 +193,12 @@ static int mfd_add_device(struct device *parent, int id, + goto fail_alias; + } + ++ if (cell->pset) { ++ ret = platform_device_add_properties(pdev, cell->pset); ++ if (ret) ++ goto fail_alias; ++ } ++ + ret = mfd_platform_add_cell(pdev, cell, usage_count); + if (ret) + goto fail_alias; +diff --git a/include/linux/mfd/core.h b/include/linux/mfd/core.h +index 27dac3f..bc6f7e0 100644 +--- a/include/linux/mfd/core.h ++++ b/include/linux/mfd/core.h +@@ -17,6 +17,7 @@ + #include <linux/platform_device.h> + + struct irq_domain; ++struct property_set; + + /* Matches ACPI PNP id, either _HID or _CID, or ACPI _ADR */ + struct mfd_cell_acpi_match { +@@ -44,6 +45,10 @@ struct mfd_cell { + /* platform data passed to the sub devices drivers */ + void *platform_data; + size_t pdata_size; ++ ++ /* device properties passed to the sub devices drivers */ ++ const struct property_set *pset; ++ + /* + * Device Tree compatible string + * See: Documentation/devicetree/usage-model.txt Chapter 2.2 for details +-- +2.5.0 + |