diff options
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/firmware_class.c | 11 | ||||
-rw-r--r-- | drivers/base/power/domain.c | 30 | ||||
-rw-r--r-- | drivers/base/regmap/regmap-i2c.c | 1 | ||||
-rw-r--r-- | drivers/base/regmap/regmap-spi.c | 3 | ||||
-rw-r--r-- | drivers/base/regmap/regmap.c | 2 |
5 files changed, 26 insertions, 21 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index bbb03e6f7255..06ed6b4e7df5 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -521,11 +521,6 @@ static int _request_firmware(const struct firmware **firmware_p, | |||
521 | if (!firmware_p) | 521 | if (!firmware_p) |
522 | return -EINVAL; | 522 | return -EINVAL; |
523 | 523 | ||
524 | if (WARN_ON(usermodehelper_is_disabled())) { | ||
525 | dev_err(device, "firmware: %s will not be loaded\n", name); | ||
526 | return -EBUSY; | ||
527 | } | ||
528 | |||
529 | *firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL); | 524 | *firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL); |
530 | if (!firmware) { | 525 | if (!firmware) { |
531 | dev_err(device, "%s: kmalloc(struct firmware) failed\n", | 526 | dev_err(device, "%s: kmalloc(struct firmware) failed\n", |
@@ -539,6 +534,12 @@ static int _request_firmware(const struct firmware **firmware_p, | |||
539 | return 0; | 534 | return 0; |
540 | } | 535 | } |
541 | 536 | ||
537 | if (WARN_ON(usermodehelper_is_disabled())) { | ||
538 | dev_err(device, "firmware: %s will not be loaded\n", name); | ||
539 | retval = -EBUSY; | ||
540 | goto out; | ||
541 | } | ||
542 | |||
542 | if (uevent) | 543 | if (uevent) |
543 | dev_dbg(device, "firmware: requesting %s\n", name); | 544 | dev_dbg(device, "firmware: requesting %s\n", name); |
544 | 545 | ||
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index e18566a0fedd..1c374579407c 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c | |||
@@ -460,6 +460,21 @@ static int pm_genpd_runtime_resume(struct device *dev) | |||
460 | return 0; | 460 | return 0; |
461 | } | 461 | } |
462 | 462 | ||
463 | /** | ||
464 | * pm_genpd_poweroff_unused - Power off all PM domains with no devices in use. | ||
465 | */ | ||
466 | void pm_genpd_poweroff_unused(void) | ||
467 | { | ||
468 | struct generic_pm_domain *genpd; | ||
469 | |||
470 | mutex_lock(&gpd_list_lock); | ||
471 | |||
472 | list_for_each_entry(genpd, &gpd_list, gpd_list_node) | ||
473 | genpd_queue_power_off_work(genpd); | ||
474 | |||
475 | mutex_unlock(&gpd_list_lock); | ||
476 | } | ||
477 | |||
463 | #else | 478 | #else |
464 | 479 | ||
465 | static inline void genpd_power_off_work_fn(struct work_struct *work) {} | 480 | static inline void genpd_power_off_work_fn(struct work_struct *work) {} |
@@ -1255,18 +1270,3 @@ void pm_genpd_init(struct generic_pm_domain *genpd, | |||
1255 | list_add(&genpd->gpd_list_node, &gpd_list); | 1270 | list_add(&genpd->gpd_list_node, &gpd_list); |
1256 | mutex_unlock(&gpd_list_lock); | 1271 | mutex_unlock(&gpd_list_lock); |
1257 | } | 1272 | } |
1258 | |||
1259 | /** | ||
1260 | * pm_genpd_poweroff_unused - Power off all PM domains with no devices in use. | ||
1261 | */ | ||
1262 | void pm_genpd_poweroff_unused(void) | ||
1263 | { | ||
1264 | struct generic_pm_domain *genpd; | ||
1265 | |||
1266 | mutex_lock(&gpd_list_lock); | ||
1267 | |||
1268 | list_for_each_entry(genpd, &gpd_list, gpd_list_node) | ||
1269 | genpd_queue_power_off_work(genpd); | ||
1270 | |||
1271 | mutex_unlock(&gpd_list_lock); | ||
1272 | } | ||
diff --git a/drivers/base/regmap/regmap-i2c.c b/drivers/base/regmap/regmap-i2c.c index c2231ff06cbc..c4f7a45cd2c3 100644 --- a/drivers/base/regmap/regmap-i2c.c +++ b/drivers/base/regmap/regmap-i2c.c | |||
@@ -113,3 +113,4 @@ struct regmap *regmap_init_i2c(struct i2c_client *i2c, | |||
113 | } | 113 | } |
114 | EXPORT_SYMBOL_GPL(regmap_init_i2c); | 114 | EXPORT_SYMBOL_GPL(regmap_init_i2c); |
115 | 115 | ||
116 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/base/regmap/regmap-spi.c b/drivers/base/regmap/regmap-spi.c index 4deba0621bc7..f8396945d6ed 100644 --- a/drivers/base/regmap/regmap-spi.c +++ b/drivers/base/regmap/regmap-spi.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/regmap.h> | 13 | #include <linux/regmap.h> |
14 | #include <linux/spi/spi.h> | 14 | #include <linux/spi/spi.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/module.h> | ||
16 | 17 | ||
17 | static int regmap_spi_write(struct device *dev, const void *data, size_t count) | 18 | static int regmap_spi_write(struct device *dev, const void *data, size_t count) |
18 | { | 19 | { |
@@ -70,3 +71,5 @@ struct regmap *regmap_init_spi(struct spi_device *spi, | |||
70 | return regmap_init(&spi->dev, ®map_spi, config); | 71 | return regmap_init(&spi->dev, ®map_spi, config); |
71 | } | 72 | } |
72 | EXPORT_SYMBOL_GPL(regmap_init_spi); | 73 | EXPORT_SYMBOL_GPL(regmap_init_spi); |
74 | |||
75 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index cf3565cae93d..0eef4da1ac61 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c | |||
@@ -317,7 +317,7 @@ static int _regmap_raw_read(struct regmap *map, unsigned int reg, void *val, | |||
317 | u8[0] |= map->bus->read_flag_mask; | 317 | u8[0] |= map->bus->read_flag_mask; |
318 | 318 | ||
319 | ret = map->bus->read(map->dev, map->work_buf, map->format.reg_bytes, | 319 | ret = map->bus->read(map->dev, map->work_buf, map->format.reg_bytes, |
320 | val, map->format.val_bytes); | 320 | val, val_len); |
321 | if (ret != 0) | 321 | if (ret != 0) |
322 | return ret; | 322 | return ret; |
323 | 323 | ||