Re: [PATCH net-next v6 1/6] ptp: clockmatrix: support 32-bit address space

Paolo Abeni
2023-12-05T09:30:02Z

On Tue, 2023-12-05 at 09:24 +0000, Simon Horman wrote:
> On Thu, Nov 30, 2023 at 01:46:29PM -0500, Min Li wrote:
> > From: Min Li <min.li.xe@renesas.com>
> >
> > We used to assume 0x2010xxxx address. Now that
> > we need to access 0x2011xxxx address, we need
> > to support read/write the whole 32-bit address space.
> >
> > Signed-off-by: Min Li <min.li.xe@renesas.com>
>
> ...
>
> > diff --git a/drivers/ptp/ptp_clockmatrix.c b/drivers/ptp/ptp_clockmatrix.c
> > index f6f9d4adce04..f8556627befa 100644
> > --- a/drivers/ptp/ptp_clockmatrix.c
> > +++ b/drivers/ptp/ptp_clockmatrix.c
> > @@ -41,8 +41,8 @@ module_param(firmware, charp, 0);
> > static int _idtcm_adjfine(struct idtcm_channel *channel, long scaled_ppm);
> >
> > static inline int idtcm_read(struct idtcm *idtcm,
> > - u16 module,
> > - u16 regaddr,
> > + u32 module,
> > + u32 regaddr,
> > u8 *buf,
> > u16 count)
> > {
> > @@ -50,8 +50,8 @@ static inline int idtcm_read(struct idtcm *idtcm,
> > }
> >
> > static inline int idtcm_write(struct idtcm *idtcm,
> > - u16 module,
> > - u16 regaddr,
> > + u32 module,
> > + u32 regaddr,
> > u8 *buf,
> > u16 count)
> > {
>
> Hi Min Li,
>
> My understanding of Paolo's review of v5 was that it would be cleaner to:
>
> 1. Leave the type of the module parameter as u16
> 2. Update the type of the regaddr parameter to u32

[almost over the air conflict here ;) ]

I think the module parameter as u32 is needed, as later macro
definitions will leverage that.

>
> And...
>
> ...
>
> > @@ -553,11 +554,11 @@ static int _sync_pll_output(struct idtcm *idtcm,
> > val = SYNCTRL1_MASTER_SYNC_RST;
> >
> > /* Place master sync in reset */
> > - err = idtcm_write(idtcm, 0, sync_ctrl1, &val, sizeof(val));
> > + err = idtcm_write(idtcm, sync_ctrl1, 0, &val, sizeof(val));
> > if (err)
> > return err;
> >
> > - err = idtcm_write(idtcm, 0, sync_ctrl0, &sync_src, sizeof(sync_src));
> > + err = idtcm_write(idtcm, sync_ctrl0, 0, &sync_src, sizeof(sync_src));
> > if (err)
> > return err;
> >
>
> ... avoid the need for changes like the two above.

This part is correct/what I meant ;)

Cheers,

Paolo