Re: [PATCH 2/2] phy: qualcomm: eusb2-repeater: Drop the redundant zeroing

From: Abel Vesa
Date: Fri Jan 05 2024 - 04:16:41 EST


On 24-01-04 23:50:48, Konrad Dybcio wrote:
> On 4.01.2024 15:52, Abel Vesa wrote:
> > The local init_tlb is already zero initialized, so the entire zeroing loop
> > is useless in this case, since the initial values are copied over anyway,
> > before being written.
> >
> > Fixes: 99a517a582fc ("phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs")
> > Signed-off-by: Abel Vesa <abel.vesa@xxxxxxxxxx>
> > ---
>
> That's another good spot.. partial struct initialization of
> pm8550b_init_tbl zeroes out the uninitialized fields.
>
>
> > drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c | 10 ----------
> > 1 file changed, 10 deletions(-)
> >
> > diff --git a/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c b/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c
> > index 5f5862a68b73..3060c0749797 100644
> > --- a/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c
> > +++ b/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c
> > @@ -156,16 +156,6 @@ static int eusb2_repeater_init(struct phy *phy)
> >
> > regmap_field_update_bits(rptr->regs[F_EN_CTL1], EUSB2_RPTR_EN, EUSB2_RPTR_EN);
> >
> > - for (i = 0; i < F_NUM_TUNE_FIELDS; i++) {
> > - if (init_tbl[i]) {
> > - regmap_field_update_bits(rptr->regs[i], init_tbl[i], init_tbl[i]);
> > - } else {
> > - /* Write 0 if there's no value set */
> > - u32 mask = GENMASK(regfields[i].msb, regfields[i].lsb);
> > -
> > - regmap_field_update_bits(rptr->regs[i], mask, 0);
> > - }
> > - }
> > memcpy(init_tbl, rptr->cfg->init_tbl, sizeof(init_tbl));
>
> I think this patchset can be made even better, this memcpy is also
> useless and we can simply initialize init_tbl=rptr->cfg->init_tbl.

Actually no. The init_tbl in cfg is a pointer to const. Plus, if you do
that, you will end up with the same situation like in the other patch,
as there are some overrides based on DT values below this.

But now that I've had another look, maybe doing the exact same thing as
the other patch does (kmemdup) will probably look better anyway,
specially if we do that on probe.

>
> Konrad