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

From: Simon Horman <[email-masked]>
Date: Thu, 7 Dec 2023 11:10:55 +0000

On Wed, Dec 06, 2023 at 04:29:09PM +0000, Min Li wrote:
> > >
> > > 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.

Yes, sorry. I got things muddled up there.

> > > And...
> > >
> > > ... avoid the need for changes like the two above.
> > 
> > This part is correct/what I meant ;)
> > 
> 
> Hi Paolo/Simon
> 
> Thanks for your reviews. Ideally, I would want to maintain regaddr as u16 since for clockmatrix addressing, it is only the lower 8bit of the whole 32bit address while module is upper 24bit. On the other hand, for some simple cases, where only one register in a module, their addresses are defined by module only without regaddr such as sync_ctrl0/1
> 
> Overall, I still want to differentiate between module and regaddr and don't wanna mix them up.

My reading is that this patch reverses the usage of module and regaddr.
F.e. the following hunk:

@@ -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;

If that is really intended I think it needs to be explained, or possibly
a separate patch.