Re: [PATCH net-next v2 03/11] net: dsa: microchip: split ksz_common.h

From: Christian Eggers
Date: Fri Nov 13 2020 - 11:58:04 EST


On Friday, 13 November 2020, 00:02:54 CET, Vladimir Oltean wrote:
> On Thu, Nov 12, 2020 at 04:35:29PM +0100, Christian Eggers wrote:
> > Parts of ksz_common.h (struct ksz_device) will be required in
> > net/dsa/tag_ksz.c soon. So move the relevant parts into a new header
> > file.
> >
> > Signed-off-by: Christian Eggers <ceggers@xxxxxxx>
> > ---
>
> I had to skip ahead to see what you're going to use struct ksz_port and
> struct ksz_device for. It looks like you need:
>
> struct ksz_port::tstamp_rx_latency_ns
> struct ksz_device::ptp_clock_lock
> struct ksz_device::ptp_clock_time
>
> Not more.
>
> Why don't you go the other way around, i.e. exporting some functions
> from your driver, and calling them from the tagger?

Good question... But as for as I can see, there are a single tagger and
multiple device drivers (currently KSZ8795 and KSZ9477).

Moving the KSZ9477 specific stuff, which is required by the tagger, into the
KSZ9477 device driver, would make the tagger dependent on the driver(s).
Currently, no tagger seems to have this direction of dependency (at least I
cannot find this in net/dsa/Kconfig).

If I shall change this anyway, I would use #ifdefs within the tag_ksz driver
in order to avoid unnecessary dependencies to the KSZ9477 driver for the case
only KSZ8795 is selected.

> You could even move
> the entire ksz9477_tstamp_to_clock() into the driver as-is, as far as I
> can see.