@@ -3154,7 +3154,7 @@ static irqreturn_t pmbus_fault_handler(int irq, void *pdata)
{
struct pmbus_data *data = pdata;
struct i2c_client *client = to_i2c_client(data->dev);
- int i, status, ret, event;
+ int i, j, status, ret, event;
for (i = 0; i < data->info->pages; i++) {
@@ -3163,6 +3163,15 @@ static irqreturn_t pmbus_fault_handler(int irq, void *pdata)
if (ret)
return ret;
+ if (event) {
+ for (j = 0; j < data->info->num_regulators; j++) {
+ if (i == rdev_get_id(data->rdevs[i])) {
+ regulator_notifier_call_chain(data->rdevs[i], event, NULL);
+ ret = IRQ_HANDLED;
+ }
+ }
+ }
+
mutex_lock(&data->update_lock);
status = pmbus_read_status_word(client, i);
if (status < 0) {
Notify regulator events in PMBus irq handler. Signed-off-by: Naresh Solanki <Naresh.Solanki@9elements.com> --- drivers/hwmon/pmbus/pmbus_core.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)