diff options
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/core.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 67d3a61f3785..8a5d0ae191b3 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -25,6 +25,9 @@ | |||
25 | #include <linux/regulator/driver.h> | 25 | #include <linux/regulator/driver.h> |
26 | #include <linux/regulator/machine.h> | 26 | #include <linux/regulator/machine.h> |
27 | 27 | ||
28 | #define CREATE_TRACE_POINTS | ||
29 | #include <trace/events/regulator.h> | ||
30 | |||
28 | #include "dummy.h" | 31 | #include "dummy.h" |
29 | 32 | ||
30 | #define REGULATOR_VERSION "0.5" | 33 | #define REGULATOR_VERSION "0.5" |
@@ -1310,6 +1313,8 @@ static int _regulator_enable(struct regulator_dev *rdev) | |||
1310 | delay = 0; | 1313 | delay = 0; |
1311 | } | 1314 | } |
1312 | 1315 | ||
1316 | trace_regulator_enable(rdev_get_name(rdev)); | ||
1317 | |||
1313 | /* Allow the regulator to ramp; it would be useful | 1318 | /* Allow the regulator to ramp; it would be useful |
1314 | * to extend this for bulk operations so that the | 1319 | * to extend this for bulk operations so that the |
1315 | * regulators can ramp together. */ | 1320 | * regulators can ramp together. */ |
@@ -1317,6 +1322,8 @@ static int _regulator_enable(struct regulator_dev *rdev) | |||
1317 | if (ret < 0) | 1322 | if (ret < 0) |
1318 | return ret; | 1323 | return ret; |
1319 | 1324 | ||
1325 | trace_regulator_enable_delay(rdev_get_name(rdev)); | ||
1326 | |||
1320 | if (delay >= 1000) { | 1327 | if (delay >= 1000) { |
1321 | mdelay(delay / 1000); | 1328 | mdelay(delay / 1000); |
1322 | udelay(delay % 1000); | 1329 | udelay(delay % 1000); |
@@ -1324,6 +1331,8 @@ static int _regulator_enable(struct regulator_dev *rdev) | |||
1324 | udelay(delay); | 1331 | udelay(delay); |
1325 | } | 1332 | } |
1326 | 1333 | ||
1334 | trace_regulator_enable_complete(rdev_get_name(rdev)); | ||
1335 | |||
1327 | } else if (ret < 0) { | 1336 | } else if (ret < 0) { |
1328 | printk(KERN_ERR "%s: is_enabled() failed for %s: %d\n", | 1337 | printk(KERN_ERR "%s: is_enabled() failed for %s: %d\n", |
1329 | __func__, rdev_get_name(rdev), ret); | 1338 | __func__, rdev_get_name(rdev), ret); |
@@ -1379,6 +1388,8 @@ static int _regulator_disable(struct regulator_dev *rdev, | |||
1379 | /* we are last user */ | 1388 | /* we are last user */ |
1380 | if (_regulator_can_change_status(rdev) && | 1389 | if (_regulator_can_change_status(rdev) && |
1381 | rdev->desc->ops->disable) { | 1390 | rdev->desc->ops->disable) { |
1391 | trace_regulator_disable(rdev_get_name(rdev)); | ||
1392 | |||
1382 | ret = rdev->desc->ops->disable(rdev); | 1393 | ret = rdev->desc->ops->disable(rdev); |
1383 | if (ret < 0) { | 1394 | if (ret < 0) { |
1384 | printk(KERN_ERR "%s: failed to disable %s\n", | 1395 | printk(KERN_ERR "%s: failed to disable %s\n", |
@@ -1386,6 +1397,8 @@ static int _regulator_disable(struct regulator_dev *rdev, | |||
1386 | return ret; | 1397 | return ret; |
1387 | } | 1398 | } |
1388 | 1399 | ||
1400 | trace_regulator_disable_complete(rdev_get_name(rdev)); | ||
1401 | |||
1389 | _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE, | 1402 | _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE, |
1390 | NULL); | 1403 | NULL); |
1391 | } | 1404 | } |
@@ -1645,6 +1658,8 @@ int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV) | |||
1645 | regulator->min_uV = min_uV; | 1658 | regulator->min_uV = min_uV; |
1646 | regulator->max_uV = max_uV; | 1659 | regulator->max_uV = max_uV; |
1647 | 1660 | ||
1661 | trace_regulator_set_voltage(rdev_get_name(rdev), min_uV, max_uV); | ||
1662 | |||
1648 | ret = rdev->desc->ops->set_voltage(rdev, min_uV, max_uV, &selector); | 1663 | ret = rdev->desc->ops->set_voltage(rdev, min_uV, max_uV, &selector); |
1649 | 1664 | ||
1650 | if (rdev->desc->ops->list_voltage) | 1665 | if (rdev->desc->ops->list_voltage) |
@@ -1652,6 +1667,8 @@ int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV) | |||
1652 | else | 1667 | else |
1653 | selector = -1; | 1668 | selector = -1; |
1654 | 1669 | ||
1670 | trace_regulator_set_voltage_complete(rdev_get_name(rdev), selector); | ||
1671 | |||
1655 | out: | 1672 | out: |
1656 | _notifier_call_chain(rdev, REGULATOR_EVENT_VOLTAGE_CHANGE, NULL); | 1673 | _notifier_call_chain(rdev, REGULATOR_EVENT_VOLTAGE_CHANGE, NULL); |
1657 | mutex_unlock(&rdev->mutex); | 1674 | mutex_unlock(&rdev->mutex); |