Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1685544
| From | Viresh Kumar <viresh.kumar@linaro.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [RFC v2 3/6] drivers: boot_constraint: Add boot_constraints_disable kernel parameter |
| Date | 2017-07-12 08:40 +0200 |
| Message-ID | <u2jtw-4CF-25@gated-at.bofh.it> (permalink) |
| References | <u2jtv-4CF-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Users must be given an option to discard any constraints set by
bootloaders. For example, consider that a constraint is set for the LCD
controller's supply and the LCD driver isn't loaded by the kernel. If
the user doesn't need to use the LCD device, then he shouldn't be forced
to honour the constraint.
We can also think about finer control of such constraints with help of
some sysfs files, but a kernel parameter is fine to begin with.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
Documentation/admin-guide/kernel-parameters.txt | 3 +++
drivers/base/boot_constraint.c | 17 +++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 7737ab5d04b2..59ad24822d10 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -426,6 +426,9 @@
embedded devices based on command line input.
See Documentation/block/cmdline-partition.txt
+ boot_constraints_disable
+ Do not set any boot constraints for devices.
+
boot_delay= Milliseconds to delay each printk during boot.
Values larger than 10 seconds (10000) are changed to
no delay (0).
diff --git a/drivers/base/boot_constraint.c b/drivers/base/boot_constraint.c
index 4e4332751c5f..d372ddfe1264 100644
--- a/drivers/base/boot_constraint.c
+++ b/drivers/base/boot_constraint.c
@@ -47,6 +47,17 @@ static DEFINE_MUTEX(constraint_devices_mutex);
static int constraint_supply_add(struct constraint *constraint, void *data);
static void constraint_supply_remove(struct constraint *constraint);
+static bool boot_constraints_disabled;
+
+static int __init constraints_disable(char *str)
+{
+ boot_constraints_disabled = true;
+ pr_debug("disabled\n");
+
+ return 0;
+}
+early_param("boot_constraints_disable", constraints_disable);
+
/* Boot constraints core */
@@ -154,6 +165,9 @@ int boot_constraint_add(struct device *dev, enum boot_constraint_type type,
struct constraint *constraint;
int ret;
+ if (boot_constraints_disabled)
+ return -ENODEV;
+
mutex_lock(&constraint_devices_mutex);
/* Find or add the cdev type first */
@@ -211,6 +225,9 @@ void boot_constraints_remove(struct device *dev)
struct constraint_dev *cdev;
struct constraint *constraint, *temp;
+ if (boot_constraints_disabled)
+ return;
+
mutex_lock(&constraint_devices_mutex);
cdev = constraint_device_find(dev);
--
2.13.0.71.gd7076ec9c9cb
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[RFC v2 0/6] drivers: Boot Constraints core Viresh Kumar <viresh.kumar@linaro.org> - 2017-07-12 08:40 +0200 [RFC v2 1/6] drivers: Add boot constraints core Viresh Kumar <viresh.kumar@linaro.org> - 2017-07-12 08:40 +0200 [RFC v2 3/6] drivers: boot_constraint: Add boot_constraints_disable kernel parameter Viresh Kumar <viresh.kumar@linaro.org> - 2017-07-12 08:40 +0200 [RFC v2 6/6] drivers: boot_constraint: Add constraints for OF devices Viresh Kumar <viresh.kumar@linaro.org> - 2017-07-12 08:40 +0200
csiph-web