1523int regulator_register_notifier(struct regulator *regulator,
1524 struct notifier_block *nb)
1525{
1526 return blocking_notifier_chain_register(®ulator->rdev->notifier,
1527 nb);
1528}
1529EXPORT_SYMBOL_GPL(regulator_register_notifier);
1530
1531
1532
1533
1534
1535
1536
1537
1538int regulator_unregister_notifier(struct regulator *regulator,
1539 struct notifier_block *nb)
1540{
1541 return blocking_notifier_chain_unregister(®ulator->rdev->notifier,
1542 nb);
1543}
1544EXPORT_SYMBOL_GPL(regulator_unregister_notifier);
1545
1546
1547static void _notifier_call_chain(struct regulator_dev *rdev,
1548 unsigned long event, void *data)
1549{
1550 struct regulator_dev *_rdev;
1551
1552
1553 mutex_lock(&rdev->mutex);
1554 blocking_notifier_call_chain(&rdev->notifier, event, NULL);
1555 mutex_unlock(&rdev->mutex);
1556
1557
1558 list_for_each_entry(_rdev, &rdev->supply_list, slist)
1559 _notifier_call_chain(_rdev, event, data);
1560}
1561
1562
1563