Re: [PATCH net-next v2] net: dsa: mv88e6xxx: Add erratum 3.14 for 88E6390X and 88E6190X

From: Vladimir Oltean
Date: Tue Jul 18 2023 - 11:56:29 EST


On Tue, Jul 18, 2023 at 05:25:12PM +0200, Ante Knezic wrote:
> > > > It does not apply cleanly to net-next. Please respin. You can retain
> > > > Andrew's Reviewed-by tag.
> > >
> > > Respin might need a complete rework of the patch as with the
> > > conversion of 88e639x to phylink_pcs (introduced with commit
> > > e5b732a275f5fae0f1342fb8cf76de654cd51e50) the original code flow
> > > has completely changed so it will not be as simple as finding a new
> > > place to stick the patch.
> > > The new phylink mostly hides away mv88e6xxx_chip struct which is needed
> > > to identify the correct device and writing to relevant registers has also
> > > changed in favor of mv88e639x_pcs struct etc.
> > > I think you can see where I am going with this. In this sense I am not sure
> > > about keeping the Reviewed-by tag, more likely a complete rewrite
> > > should be done.
> > > I will repost V3 once I figure out how to make it work with the new
> > > framework.
> > >
> >
> > Can't you simply replicate the positioning of mv88e6393x_erratum_4_6()
> > from mv88e6393x_pcs_init()?
>
> I don't think so. The erratum from the patch needs to be applied on each
> SERDES reconfiguration or reset. For example, when replugging different
> SFPs (sgmii - 10g - sgmii interface). Erratum 4_6 is done only once?
> My guess is to put it in mv88e639x_sgmii_pcs_post_config but still I
> need the device product number - maybe embedding a pointer to the
> mv88e6xxx_chip chip inside the mv88e639x_pcs struct would be the cleanest way.
>
>

It needs to be implemented exactly as posted here? After mv88e6390_serdes_power()
is called on any port/lane, mv88e6390x_serdes_erratum_3_14() needs to run
for all lanes? That might be a problem.

Do we know if the register writes are disruptive for the ports which are
already up and running?