aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2022-04-07 14:38:59 +0200
committerArnd Bergmann <arnd@arndb.de>2022-04-07 14:39:00 +0200
commit475acef9ed480818aab223addfff1636af0d1915 (patch)
tree0ca8725d6b2fbbe0ca506ab5573616f9d1324adf /drivers
parentbc2fb47db586dc807be96a6d79045616771b53d4 (diff)
parent03cb66463b5547b289099a95ac4ea591cca88ca9 (diff)
downloadlinux-475acef9ed480818aab223addfff1636af0d1915.tar.gz
Merge tag 'reset-fixes-for-v5.18' of git://git.pengutronix.de/pza/linux into arm/fixes
Reset controller fixes for v5.18 Document the deprecated 'hisi,rst-syscon' device tree property for hisilicon,hi3660-reset, add an error check to reset deassertion in reset-rzg2l-usbphy-ctrl, restore transfer error handling in Tegra reset-bpmp, and document the optional 'resets' device tree property for socionext,uniphier-reset. * tag 'reset-fixes-for-v5.18' of git://git.pengutronix.de/pza/linux: dt-bindings: reset: Add parent "resets" property as optional reset: tegra-bpmp: Restore Handle errors in BPMP response reset: renesas: Check return value of reset_control_deassert() dt-bindings: reset: document deprecated HiSilicon property Link: https://lore.kernel.org/r/20220406153337.1265414-1-p.zabel@pengutronix.de Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/reset/reset-rzg2l-usbphy-ctrl.c4
-rw-r--r--drivers/reset/tegra/reset-bpmp.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/reset/reset-rzg2l-usbphy-ctrl.c b/drivers/reset/reset-rzg2l-usbphy-ctrl.c
index 1e8315038850..a8dde4606360 100644
--- a/drivers/reset/reset-rzg2l-usbphy-ctrl.c
+++ b/drivers/reset/reset-rzg2l-usbphy-ctrl.c
@@ -121,7 +121,9 @@ static int rzg2l_usbphy_ctrl_probe(struct platform_device *pdev)
return dev_err_probe(dev, PTR_ERR(priv->rstc),
"failed to get reset\n");
- reset_control_deassert(priv->rstc);
+ error = reset_control_deassert(priv->rstc);
+ if (error)
+ return error;
priv->rcdev.ops = &rzg2l_usbphy_ctrl_reset_ops;
priv->rcdev.of_reset_n_cells = 1;
diff --git a/drivers/reset/tegra/reset-bpmp.c b/drivers/reset/tegra/reset-bpmp.c
index 24d3395964cc..4c5bba52b105 100644
--- a/drivers/reset/tegra/reset-bpmp.c
+++ b/drivers/reset/tegra/reset-bpmp.c
@@ -20,6 +20,7 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc);
struct mrq_reset_request request;
struct tegra_bpmp_message msg;
+ int err;
memset(&request, 0, sizeof(request));
request.cmd = command;
@@ -30,7 +31,13 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
msg.tx.data = &request;
msg.tx.size = sizeof(request);
- return tegra_bpmp_transfer(bpmp, &msg);
+ err = tegra_bpmp_transfer(bpmp, &msg);
+ if (err)
+ return err;
+ if (msg.rx.ret)
+ return -EINVAL;
+
+ return 0;
}
static int tegra_bpmp_reset_module(struct reset_controller_dev *rstc,