Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 292073
b: refs/heads/master
c: 63236f4
h: refs/heads/master
i:
  292071: ec7e7f5
v: v3
  • Loading branch information
Mark Brown committed Mar 18, 2012
1 parent ba8d14d commit d427ffb
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 45 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ca61a7bfcd1c68eba84a58070540684448216506
refs/heads/master: 63236f4038f7e14762114606d95769c32cf6cac1
67 changes: 27 additions & 40 deletions trunk/drivers/regulator/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
*
*/

#define pr_fmt(fmt) "%s: " fmt, __func__

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/debugfs.h>
Expand Down Expand Up @@ -54,9 +52,7 @@ static LIST_HEAD(regulator_map_list);
static bool has_full_constraints;
static bool board_wants_dummy_regulator;

#ifdef CONFIG_DEBUG_FS
static struct dentry *debugfs_root;
#endif

/*
* struct regulator_map
Expand Down Expand Up @@ -84,9 +80,7 @@ struct regulator {
char *supply_name;
struct device_attribute dev_attr;
struct regulator_dev *rdev;
#ifdef CONFIG_DEBUG_FS
struct dentry *debugfs;
#endif
};

static int _regulator_is_enabled(struct regulator_dev *rdev);
Expand Down Expand Up @@ -154,7 +148,7 @@ static struct device_node *of_get_regulator(struct device *dev, const char *supp
regnode = of_parse_phandle(dev->of_node, prop_name, 0);

if (!regnode) {
dev_warn(dev, "%s property in node %s references invalid phandle",
dev_dbg(dev, "Looking up %s property in node %s failed",
prop_name, dev->of_node->full_name);
return NULL;
}
Expand Down Expand Up @@ -807,6 +801,11 @@ static void print_constraints(struct regulator_dev *rdev)
count += sprintf(buf + count, "standby");

rdev_info(rdev, "%s\n", buf);

if ((constraints->min_uV != constraints->max_uV) &&
!(constraints->valid_ops_mask & REGULATOR_CHANGE_VOLTAGE))
rdev_warn(rdev,
"Voltage range but no REGULATOR_CHANGE_VOLTAGE\n");
}

static int machine_constraints_voltage(struct regulator_dev *rdev,
Expand Down Expand Up @@ -1142,12 +1141,10 @@ static struct regulator *create_regulator(struct regulator_dev *rdev,
goto attr_err;
}

#ifdef CONFIG_DEBUG_FS
regulator->debugfs = debugfs_create_dir(regulator->supply_name,
rdev->debugfs);
if (IS_ERR_OR_NULL(regulator->debugfs)) {
if (!regulator->debugfs) {
rdev_warn(rdev, "Failed to create debugfs directory\n");
regulator->debugfs = NULL;
} else {
debugfs_create_u32("uA_load", 0444, regulator->debugfs,
&regulator->uA_load);
Expand All @@ -1156,7 +1153,6 @@ static struct regulator *create_regulator(struct regulator_dev *rdev,
debugfs_create_u32("max_uV", 0444, regulator->debugfs,
&regulator->max_uV);
}
#endif

mutex_unlock(&rdev->mutex);
return regulator;
Expand Down Expand Up @@ -1365,9 +1361,7 @@ void regulator_put(struct regulator *regulator)
mutex_lock(&regulator_list_mutex);
rdev = regulator->rdev;

#ifdef CONFIG_DEBUG_FS
debugfs_remove_recursive(regulator->debugfs);
#endif

/* remove any sysfs entries */
if (regulator->dev) {
Expand Down Expand Up @@ -1842,8 +1836,12 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
if (ret < 0)
return ret;
old_selector = ret;
delay = rdev->desc->ops->set_voltage_time_sel(rdev,
ret = rdev->desc->ops->set_voltage_time_sel(rdev,
old_selector, selector);
if (ret < 0)
rdev_warn(rdev, "set_voltage_time_sel() failed: %d\n", ret);
else
delay = ret;
}

if (best_val != INT_MAX) {
Expand Down Expand Up @@ -2394,7 +2392,7 @@ int regulator_bulk_get(struct device *dev, int num_consumers,
return 0;

err:
for (i = 0; i < num_consumers && consumers[i].consumer; i++)
while (--i >= 0)
regulator_put(consumers[i].consumer);

return ret;
Expand Down Expand Up @@ -2444,12 +2442,9 @@ int regulator_bulk_enable(int num_consumers,
return 0;

err:
for (i = 0; i < num_consumers; i++)
if (consumers[i].ret == 0)
regulator_disable(consumers[i].consumer);
else
pr_err("Failed to enable %s: %d\n",
consumers[i].supply, consumers[i].ret);
pr_err("Failed to enable %s: %d\n", consumers[i].supply, ret);
while (--i >= 0)
regulator_disable(consumers[i].consumer);

return ret;
}
Expand All @@ -2463,8 +2458,8 @@ EXPORT_SYMBOL_GPL(regulator_bulk_enable);
* @return 0 on success, an errno on failure
*
* This convenience API allows consumers to disable multiple regulator
* clients in a single API call. If any consumers cannot be enabled
* then any others that were disabled will be disabled again prior to
* clients in a single API call. If any consumers cannot be disabled
* then any others that were disabled will be enabled again prior to
* return.
*/
int regulator_bulk_disable(int num_consumers,
Expand All @@ -2473,7 +2468,7 @@ int regulator_bulk_disable(int num_consumers,
int i;
int ret;

for (i = 0; i < num_consumers; i++) {
for (i = num_consumers - 1; i >= 0; --i) {
ret = regulator_disable(consumers[i].consumer);
if (ret != 0)
goto err;
Expand All @@ -2483,7 +2478,7 @@ int regulator_bulk_disable(int num_consumers,

err:
pr_err("Failed to disable %s: %d\n", consumers[i].supply, ret);
for (--i; i >= 0; --i)
for (++i; i < num_consumers; ++i)
regulator_enable(consumers[i].consumer);

return ret;
Expand Down Expand Up @@ -2710,19 +2705,16 @@ static int add_regulator_attributes(struct regulator_dev *rdev)

static void rdev_init_debugfs(struct regulator_dev *rdev)
{
#ifdef CONFIG_DEBUG_FS
rdev->debugfs = debugfs_create_dir(rdev_get_name(rdev), debugfs_root);
if (IS_ERR(rdev->debugfs) || !rdev->debugfs) {
if (!rdev->debugfs) {
rdev_warn(rdev, "Failed to create debugfs directory\n");
rdev->debugfs = NULL;
return;
}

debugfs_create_u32("use_count", 0444, rdev->debugfs,
&rdev->use_count);
debugfs_create_u32("open_count", 0444, rdev->debugfs,
&rdev->open_count);
#endif
}

/**
Expand Down Expand Up @@ -2900,9 +2892,7 @@ void regulator_unregister(struct regulator_dev *rdev)
return;

mutex_lock(&regulator_list_mutex);
#ifdef CONFIG_DEBUG_FS
debugfs_remove_recursive(rdev->debugfs);
#endif
flush_work_sync(&rdev->disable_work.work);
WARN_ON(rdev->open_count);
unset_regulator_supplies(rdev);
Expand Down Expand Up @@ -3112,30 +3102,27 @@ static ssize_t supply_map_read_file(struct file *file, char __user *user_buf,

return ret;
}
#endif

static const struct file_operations supply_map_fops = {
#ifdef CONFIG_DEBUG_FS
.read = supply_map_read_file,
.llseek = default_llseek,
};
#endif
};

static int __init regulator_init(void)
{
int ret;

ret = class_register(&regulator_class);

#ifdef CONFIG_DEBUG_FS
debugfs_root = debugfs_create_dir("regulator", NULL);
if (IS_ERR(debugfs_root) || !debugfs_root) {
if (!debugfs_root)
pr_warn("regulator: Failed to create debugfs directory\n");
debugfs_root = NULL;
}

if (IS_ERR(debugfs_create_file("supply_map", 0444, debugfs_root,
NULL, &supply_map_fops)))
pr_warn("regulator: Failed to create supplies debugfs\n");
#endif
debugfs_create_file("supply_map", 0444, debugfs_root, NULL,
&supply_map_fops);

regulator_dummy_init();

Expand Down
6 changes: 2 additions & 4 deletions trunk/include/linux/regulator/driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ struct regulator_ops {
int (*disable) (struct regulator_dev *);
int (*is_enabled) (struct regulator_dev *);

/* get/set regulator operating mode (defined in regulator.h) */
/* get/set regulator operating mode (defined in consumer.h) */
int (*set_mode) (struct regulator_dev *, unsigned int mode);
unsigned int (*get_mode) (struct regulator_dev *);

Expand Down Expand Up @@ -135,7 +135,7 @@ struct regulator_ops {
int (*set_suspend_enable) (struct regulator_dev *);
int (*set_suspend_disable) (struct regulator_dev *);

/* set regulator suspend operating mode (defined in regulator.h) */
/* set regulator suspend operating mode (defined in consumer.h) */
int (*set_suspend_mode) (struct regulator_dev *, unsigned int mode);
};

Expand Down Expand Up @@ -207,9 +207,7 @@ struct regulator_dev {

void *reg_data; /* regulator_dev data */

#ifdef CONFIG_DEBUG_FS
struct dentry *debugfs;
#endif
};

struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
Expand Down

0 comments on commit d427ffb

Please sign in to comment.