lkml.org 
[lkml]   [2024]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 7/8] regulator: set Power State Change Reason before hw_protection_shutdown()
    Date
    Store the state change reason to some black box, for later
    investigation.

    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Reviewed-by: Mark Brown <broonie@kernel.org>
    ---
    drivers/regulator/core.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
    index a968dabb48f5..a811a5ff2273 100644
    --- a/drivers/regulator/core.c
    +++ b/drivers/regulator/core.c
    @@ -19,6 +19,7 @@
    #include <linux/delay.h>
    #include <linux/gpio/consumer.h>
    #include <linux/of.h>
    +#include <linux/pscrr.h>
    #include <linux/reboot.h>
    #include <linux/regmap.h>
    #include <linux/regulator/of_regulator.h>
    @@ -5095,6 +5096,7 @@ EXPORT_SYMBOL_GPL(regulator_bulk_free);
    static void regulator_handle_critical(struct regulator_dev *rdev,
    unsigned long event)
    {
    + enum pscr pscr;
    const char *reason = NULL;

    if (!rdev->constraints->system_critical)
    @@ -5103,17 +5105,21 @@ static void regulator_handle_critical(struct regulator_dev *rdev,
    switch (event) {
    case REGULATOR_EVENT_UNDER_VOLTAGE:
    reason = "System critical regulator: voltage drop detected";
    + pscr = PSCR_UNDER_VOLTAGE;
    break;
    case REGULATOR_EVENT_OVER_CURRENT:
    reason = "System critical regulator: over-current detected";
    + pscr = PSCR_OVER_CURRENT;
    break;
    case REGULATOR_EVENT_FAIL:
    reason = "System critical regulator: unknown error";
    + pscr = PSCR_REGULATOR_FAILURE;
    }

    if (!reason)
    return;

    + set_power_state_change_reason(pscr);
    hw_protection_shutdown(reason,
    rdev->constraints->uv_less_critical_window_ms);
    }
    --
    2.39.2

    \
     
     \ /
      Last update: 2024-05-27 14:32    [W:3.827 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site