On Fri, 2022-05-20 at 10:55 -0400, Nícolas F. R. A. Prado wrote: > 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 > Hello Nícolas, Thanks for your advice, but I think I will keep the original logic in next version. BRs, Rex > > { > > 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 > > > >