| From 2172803a0d0dc62b7e4ad5776daf02f30da3308d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 6 Feb 2024 19:43:35 +0100 |
| Subject: clk: qcom: reset: Commonize the de/assert functions |
| |
| From: Konrad Dybcio <konrad.dybcio@linaro.org> |
| |
| [ Upstream commit eda40d9c583e95e0b6ac69d2950eec10f802e0e8 ] |
| |
| They do the same thing, except the last argument of the last function |
| call differs. Commonize them. |
| |
| Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> |
| Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> |
| Link: https://lore.kernel.org/r/20240105-topic-venus_reset-v2-2-c37eba13b5ce@linaro.org |
| Signed-off-by: Bjorn Andersson <andersson@kernel.org> |
| Stable-dep-of: 2f8cf2c3f3e3 ("clk: qcom: reset: Ensure write completion on reset de/assertion") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/clk/qcom/reset.c | 22 +++++++++------------- |
| 1 file changed, 9 insertions(+), 13 deletions(-) |
| |
| diff --git a/drivers/clk/qcom/reset.c b/drivers/clk/qcom/reset.c |
| index e45e32804d2c7..20d1d35aaf229 100644 |
| --- a/drivers/clk/qcom/reset.c |
| +++ b/drivers/clk/qcom/reset.c |
| @@ -22,8 +22,8 @@ static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id) |
| return 0; |
| } |
| |
| -static int |
| -qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) |
| +static int qcom_reset_set_assert(struct reset_controller_dev *rcdev, |
| + unsigned long id, bool assert) |
| { |
| struct qcom_reset_controller *rst; |
| const struct qcom_reset_map *map; |
| @@ -33,21 +33,17 @@ qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) |
| map = &rst->reset_map[id]; |
| mask = map->bitmask ? map->bitmask : BIT(map->bit); |
| |
| - return regmap_update_bits(rst->regmap, map->reg, mask, mask); |
| + return regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0); |
| } |
| |
| -static int |
| -qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id) |
| +static int qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id) |
| { |
| - struct qcom_reset_controller *rst; |
| - const struct qcom_reset_map *map; |
| - u32 mask; |
| - |
| - rst = to_qcom_reset_controller(rcdev); |
| - map = &rst->reset_map[id]; |
| - mask = map->bitmask ? map->bitmask : BIT(map->bit); |
| + return qcom_reset_set_assert(rcdev, id, true); |
| +} |
| |
| - return regmap_update_bits(rst->regmap, map->reg, mask, 0); |
| +static int qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id) |
| +{ |
| + return qcom_reset_set_assert(rcdev, id, false); |
| } |
| |
| const struct reset_control_ops qcom_reset_ops = { |
| -- |
| 2.43.0 |
| |