On Thu, May 19, 2022 at 08:55:12PM +0800, Rex-BC Chen wrote: > To make drivers more clear and readable, we extract common code > within assert and deassert to mtk_reset_update_set_clr() and > mtk_reset_update(). > > Signed-off-by: Rex-BC Chen <rex-bc.chen@xxxxxxxxxxxx> > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> > --- > drivers/clk/mediatek/reset.c | 38 +++++++++++++++++++++--------------- > 1 file changed, 22 insertions(+), 16 deletions(-) > > diff --git a/drivers/clk/mediatek/reset.c b/drivers/clk/mediatek/reset.c > index 5cbbcc22a4fc..22fa9f09752c 100644 > --- a/drivers/clk/mediatek/reset.c > +++ b/drivers/clk/mediatek/reset.c > @@ -12,24 +12,27 @@ > > #include "reset.h" > > -static int mtk_reset_assert(struct reset_controller_dev *rcdev, > - unsigned long id) > +static int mtk_reset_update(struct reset_controller_dev *rcdev, > + unsigned long id, bool deassert) I'd have called the bool 'assert', and then passed true on assert and false on deassert, as I think that's slightly more intuitive, but that's just personal preference. It's fine like this as well. Thanks, Nícolas > { > struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev); > + unsigned int val = deassert ? 0 : ~0; > > return regmap_update_bits(data->regmap, > data->regofs + ((id / 32) << 2), > - BIT(id % 32), ~0); > + BIT(id % 32), val); > +} > + > +static int mtk_reset_assert(struct reset_controller_dev *rcdev, > + unsigned long id) > +{ > + return mtk_reset_update(rcdev, id, false); > } > > static int mtk_reset_deassert(struct reset_controller_dev *rcdev, > unsigned long id) > { > - struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev); > - > - return regmap_update_bits(data->regmap, > - data->regofs + ((id / 32) << 2), > - BIT(id % 32), 0); > + return mtk_reset_update(rcdev, id, true); > } > > static int mtk_reset(struct reset_controller_dev *rcdev, unsigned long id) > @@ -43,24 +46,27 @@ static int mtk_reset(struct reset_controller_dev *rcdev, unsigned long id) > return mtk_reset_deassert(rcdev, id); > } > > -static int mtk_reset_assert_set_clr(struct reset_controller_dev *rcdev, > - unsigned long id) > +static int mtk_reset_update_set_clr(struct reset_controller_dev *rcdev, > + unsigned long id, bool deassert) > { > struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev); > + unsigned int deassert_ofs = deassert ? 0x4 : 0; > > return regmap_write(data->regmap, > - data->regofs + ((id / 32) << 4), > + data->regofs + ((id / 32) << 4) + deassert_ofs, > BIT(id % 32)); > } > > +static int mtk_reset_assert_set_clr(struct reset_controller_dev *rcdev, > + unsigned long id) > +{ > + return mtk_reset_update_set_clr(rcdev, id, false); > +} > + > static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev, > unsigned long id) > { > - struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev); > - > - return regmap_write(data->regmap, > - data->regofs + ((id / 32) << 4) + 0x4, > - BIT(id % 32)); > + return mtk_reset_update_set_clr(rcdev, id, true); > } > > static int mtk_reset_set_clr(struct reset_controller_dev *rcdev, > -- > 2.18.0 > >