aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/wm831x-dcdc.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-05-07 07:26:18 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2019-05-07 07:26:18 -0700
commit61be53f9ef37de2677cecb8f87b207e6f061e185 (patch)
tree45575500d0f642cf93bf0f07759bb9544e7f7428 /drivers/regulator/wm831x-dcdc.c
parentMerge tag 'regmap-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap (diff)
parentMerge branch 'regulator-5.2' into regulator-next (diff)
downloadlinux-dev-61be53f9ef37de2677cecb8f87b207e6f061e185.tar.xz
linux-dev-61be53f9ef37de2677cecb8f87b207e6f061e185.zip
Merge tag 'regulator-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator updates from Mark Brown: "In terms of big picture changes this has been an extremely quiet release however there's a lot of changes and a fairly big diffstat thanks to a bunch of small fixes, mainly coming from Axel Lin. Thanks to his work this release removes code overall even though we've added a new (albiet fairly small) driver. Notable things: - A fix for a long standing issue with locking on error interrupts from Steve Twiss. - A new driver for ST Microelectonics STM32 PWR" * tag 'regulator-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (134 commits) regulator: core: simplify return value on suported_voltage regulator: da9xxx: Switch to SPDX identifier regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage regulator: stm32-pwr: Remove unneeded *desc from struct stm32_pwr_reg regulator: ab3100: Set fixed_uV instead of min_uV for fixed regulators regulator: ab3100: Constify regulator_ops and ab3100_regulator_desc regulator: pv880x0: Switch to SPDX identifier regulator: hi6xxx: Switch to SPDX identifier regulator: vexpress: Switch to SPDX identifier regulator: vexpress: Get rid of struct vexpress_regulator regulator: sky81452: Switch to SPDX identifier regulator: sky81452: Constify sky81452_reg_ops regulator: sy8106a: Get rid of struct sy8106a regulator: core: do not report EPROBE_DEFER as error but as debug regulator: mt63xx: Switch to SPDX identifier regulator: fan53555: Switch to SPDX identifier regulator: fan53555: Clean up unneeded fields from struct fan53555_device_info regulator: ltc3589: Switch to SPDX identifier regulator: ltc3589: Get rid of struct ltc3589_regulator regulator: ltc3589: Convert to use simplified DT parsing ...
Diffstat (limited to 'drivers/regulator/wm831x-dcdc.c')
-rw-r--r--drivers/regulator/wm831x-dcdc.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/regulator/wm831x-dcdc.c b/drivers/regulator/wm831x-dcdc.c
index 12b422373580..b422eef97b77 100644
--- a/drivers/regulator/wm831x-dcdc.c
+++ b/drivers/regulator/wm831x-dcdc.c
@@ -1,15 +1,10 @@
-/*
- * wm831x-dcdc.c -- DC-DC buck convertor driver for the WM831x series
- *
- * Copyright 2009 Wolfson Microelectronics PLC.
- *
- * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- */
+// SPDX-License-Identifier: GPL-2.0+
+//
+// wm831x-dcdc.c -- DC-DC buck converter driver for the WM831x series
+//
+// Copyright 2009 Wolfson Microelectronics PLC.
+//
+// Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
#include <linux/module.h>
#include <linux/moduleparam.h>
@@ -183,9 +178,11 @@ static irqreturn_t wm831x_dcdc_uv_irq(int irq, void *data)
{
struct wm831x_dcdc *dcdc = data;
+ regulator_lock(dcdc->regulator);
regulator_notifier_call_chain(dcdc->regulator,
REGULATOR_EVENT_UNDER_VOLTAGE,
NULL);
+ regulator_unlock(dcdc->regulator);
return IRQ_HANDLED;
}
@@ -194,9 +191,11 @@ static irqreturn_t wm831x_dcdc_oc_irq(int irq, void *data)
{
struct wm831x_dcdc *dcdc = data;
+ regulator_lock(dcdc->regulator);
regulator_notifier_call_chain(dcdc->regulator,
REGULATOR_EVENT_OVER_CURRENT,
NULL);
+ regulator_unlock(dcdc->regulator);
return IRQ_HANDLED;
}