[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200528092135.62e4b06f@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net>
Date: Thu, 28 May 2020 09:21:35 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Vladimir Oltean <olteanv@...il.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org, andrew@...n.ch,
vivien.didelot@...il.com, f.fainelli@...il.com,
linux@...linux.org.uk, antoine.tenart@...tlin.com,
alexandre.belloni@...tlin.com, horatiu.vultur@...rochip.com,
allan.nielsen@...rochip.com, UNGLinuxDriver@...rochip.com,
alexandru.marginean@....com, claudiu.manoil@....com,
madalin.bucur@....nxp.com, radu-andrei.bulie@....com,
fido_max@...ox.ru
Subject: Re: [PATCH net-next 11/11] net: dsa: ocelot: introduce driver for
Seville VSC9953 switch
On Thu, 28 May 2020 02:41:13 +0300 Vladimir Oltean wrote:
> From: Maxim Kochetkov <fido_max@...ox.ru>
>
> This is a 10-port (8 external, 2 internal) switch from
> Vitesse/Microsemi/Microchip that is integrated into the Freescale/NXP
> T1040 PowerPC SoC. The situation is very similar to Felix from NXP
> LS1028A, except that this is a platform device and Felix is a PCI
> device.
>
> Extending the Felix driver to probe a PCI as well as a platform device
> would have introduced unnecessary complexity. The 'meat' of both drivers
> is in drivers/net/ethernet/mscc/ocelot*.c anyway, so let's just
> duplicate the Felix driver, s/Felix/Seville/, and define the low-level
> bits in seville_vsc9953.c.
>
> Like Felix, this driver configures its own PCS on the internal MDIO bus
> using a phy_device abstraction for it (yes, it will be refactored to use
> a raw mdio_device, like other phylink drivers do, but let's keep it like
> that for now). But unlike Felix, the MDIO bus and the PCS are not from
> the same vendor. The PCS is the same QorIQ/Layerscape PCS as found in
> Felix/ENETC/DPAA*, but the internal MDIO bus that is used to access it
> is actually an instantiation of drivers/net/phy/mdio-mscc-miim.c. But it
> would be difficult to reuse that driver (it doesn't even use regmap, and
> it's less than 200 lines of code), so we hand-roll here some internal
> MDIO bus accessors within seville_vsc9953.c, which serves the purpose of
> driving the PCS absolutely fine.
>
> Also, same as Felix, the PCS doesn't support dynamic reconfiguration of
> SerDes protocol, so we need to do pre-validation of PHY mode from device
> tree and not let phylink change it.
>
> Signed-off-by: Maxim Kochetkov <fido_max@...ox.ru>
> Signed-off-by: Vladimir Oltean <vladimir.oltean@....com>
drivers/net/dsa/ocelot/seville_vsc9953.c:636:19: warning: symbol 'vsc9953_vcap_is2_keys' was not declared. Should it be static?
drivers/net/dsa/ocelot/seville_vsc9953.c:706:19: warning: symbol 'vsc9953_vcap_is2_actions' was not declared. Should it be static?
Powered by blists - more mailing lists