Subject: Re: [PATCH net-next 1/2] net: dsa: mv88e6xxx: Provide dummy implementations for trunk setters

From: Tobias Waldekranz <[email-masked]>
Date: Fri, 15 Jan 2021 21:12:07 +0100

On Fri, Jan 15, 2021 at 15:48, Andrew Lunn <[email-masked]> wrote:
> On Fri, Jan 15, 2021 at 04:36:49PM +0200, Vladimir Oltean wrote:
>> On Fri, Jan 15, 2021 at 03:30:30PM +0100, Andrew Lunn wrote:
>> > On Fri, Jan 15, 2021 at 11:58:33AM +0100, Tobias Waldekranz wrote:
>> > > Support for Global 2 registers is build-time optional.
>> > 
>> > I was never particularly happy about that. Maybe we should revisit
>> > what features we loose when global 2 is dropped, and see if it still
>> > makes sense to have it as optional?
>> 
>> Marvell switch newbie here, what do you mean "global 2 is dropped"?
>
> I was not aware detect() actually enforced it when needed. It used to
> be, you could leave it out, and you would just get reduced
> functionality for devices which had global2, but the code was not
> compiled in.
>
> At the beginning of the life of this driver, i guess it was maybe
> 25%/75% without/with global2, so it might of made sense to reduce the
> binary size. But today the driver is much bigger with lots of other
> things which those early chips don't have, SERDES for example. And
> that ratio has dramatically reduced, there are very few devices
> without those registers. This is why i think we can make our lives
> easier and make global2 always compiled in.

Hear, hear!

I took a quick look at the (stripped) object sizes (ppc32):

# du -ab
6116    ./global1_vtu.o
5904    ./devlink.o
11500   ./port.o
9640    ./global2.o
3016    ./phy.o
5368    ./global1.o
51784   ./chip.o
9892    ./serdes.o
5140    ./global1_atu.o
1916    ./global2_avb.o
2248    ./global2_scratch.o
948     ./port_hidden.o
1828    ./smi.o
119396  .

So, roughly, you save 10%/13k. That hardly justifies the complexity IMO.

Andrew, do you want to do this? If not, I can look into it.