diff options
author | Daniel Drake <dsd@laptop.org> | 2010-09-30 16:55:36 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-10-28 18:29:48 -0400 |
commit | 5f2545fa156f3d4d327038d7664608e146809a3c (patch) | |
tree | 82794cb7ca41816463a35bcf27a4f18af0633730 | |
parent | 2d95ae3bbffe54b2e73e0d291e1d67e09d5e448f (diff) |
mfd: Allow for bypass of cell resource conflict check
The upcoming VIA VX855 MFD driver needs to communicate resources
to subdevices where the resources may be claimed by ACPI.
Add a flag to mfd_cell to request that resources are not policed.
Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
-rw-r--r-- | drivers/mfd/mfd-core.c | 8 | ||||
-rw-r--r-- | include/linux/mfd/core.h | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c index 1823a57b7d8f..d1c8605d4ed4 100644 --- a/drivers/mfd/mfd-core.c +++ b/drivers/mfd/mfd-core.c | |||
@@ -65,9 +65,11 @@ static int mfd_add_device(struct device *parent, int id, | |||
65 | res[r].end = cell->resources[r].end; | 65 | res[r].end = cell->resources[r].end; |
66 | } | 66 | } |
67 | 67 | ||
68 | ret = acpi_check_resource_conflict(res); | 68 | if (!cell->ignore_resource_conflicts) { |
69 | if (ret) | 69 | ret = acpi_check_resource_conflict(res); |
70 | goto fail_res; | 70 | if (ret) |
71 | goto fail_res; | ||
72 | } | ||
71 | } | 73 | } |
72 | 74 | ||
73 | ret = platform_device_add_resources(pdev, res, cell->num_resources); | 75 | ret = platform_device_add_resources(pdev, res, cell->num_resources); |
diff --git a/include/linux/mfd/core.h b/include/linux/mfd/core.h index 11d740b8831d..cb93d80aa642 100644 --- a/include/linux/mfd/core.h +++ b/include/linux/mfd/core.h | |||
@@ -44,6 +44,9 @@ struct mfd_cell { | |||
44 | */ | 44 | */ |
45 | int num_resources; | 45 | int num_resources; |
46 | const struct resource *resources; | 46 | const struct resource *resources; |
47 | |||
48 | /* don't check for resource conflicts */ | ||
49 | bool ignore_resource_conflicts; | ||
47 | }; | 50 | }; |
48 | 51 | ||
49 | extern int mfd_add_devices(struct device *parent, int id, | 52 | extern int mfd_add_devices(struct device *parent, int id, |