Message ID | 20220519125527.18544-5-rex-bc.chen@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Cleanup MediaTek clk reset drivers and support SoCs | expand |
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@mediatek.com> > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > --- > 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 > >
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@mediatek.com> > > Reviewed-by: AngeloGioacchino Del Regno < > > angelogioacchino.delregno@collabora.com> > > --- > > 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 > > > >
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) { 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,