* [PATCH RFC net-next 09/23] net: dsa: lantiq_gswip: add support for SWAPI version 2.3 @ 2025-08-16 19:52 Daniel Golle 2025-08-17 15:36 ` Andrew Lunn 0 siblings, 1 reply; 3+ messages in thread From: Daniel Golle @ 2025-08-16 19:52 UTC (permalink / raw) To: Andrew Lunn, Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Hauke Mehrtens, Simon Horman, Russell King, Florian Fainelli, Arkadi Sharshevsky, linux-kernel, netdev Cc: Andreas Schirm, Lukas Stockmann, Alexander Sverdlin, Peter Christen, Avinash Jayaraman, Bing tao Xu, Liang Xu, Juraj Povazanec, Fanni (Fang-Yi) Chan, Benny (Ying-Tsan) Weng, Livia M. Rosu, John Crispin Add definition for switch API version 2.3 and a macro to make comparing the version more conveniant. Signed-off-by: Daniel Golle <daniel@makrotopia.org> --- drivers/net/dsa/lantiq_gswip.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/dsa/lantiq_gswip.h b/drivers/net/dsa/lantiq_gswip.h index 433b65b047dd..fd0c01edb914 100644 --- a/drivers/net/dsa/lantiq_gswip.h +++ b/drivers/net/dsa/lantiq_gswip.h @@ -7,6 +7,7 @@ #include <linux/platform_device.h> #include <linux/regmap.h> #include <linux/reset.h> +#include <linux/swab.h> #include <net/dsa.h> /* GSWIP MDIO Registers */ @@ -93,6 +94,8 @@ #define GSWIP_VERSION_2_1 0x021 #define GSWIP_VERSION_2_2 0x122 #define GSWIP_VERSION_2_2_ETC 0x022 +#define GSWIP_VERSION_2_3 0x023 +#define GSWIP_VERSION_GE(priv, ver) (swab16(priv->version) >= swab16(ver)) #define GSWIP_BM_RAM_VAL(x) (0x043 - (x)) #define GSWIP_BM_RAM_ADDR 0x044 -- 2.50.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH RFC net-next 09/23] net: dsa: lantiq_gswip: add support for SWAPI version 2.3 2025-08-16 19:52 [PATCH RFC net-next 09/23] net: dsa: lantiq_gswip: add support for SWAPI version 2.3 Daniel Golle @ 2025-08-17 15:36 ` Andrew Lunn 2025-08-17 20:16 ` Daniel Golle 0 siblings, 1 reply; 3+ messages in thread From: Andrew Lunn @ 2025-08-17 15:36 UTC (permalink / raw) To: Daniel Golle Cc: Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Hauke Mehrtens, Simon Horman, Russell King, Florian Fainelli, Arkadi Sharshevsky, linux-kernel, netdev, Andreas Schirm, Lukas Stockmann, Alexander Sverdlin, Peter Christen, Avinash Jayaraman, Bing tao Xu, Liang Xu, Juraj Povazanec, Fanni (Fang-Yi) Chan, Benny (Ying-Tsan) Weng, Livia M. Rosu, John Crispin On Sat, Aug 16, 2025 at 08:52:42PM +0100, Daniel Golle wrote: > Add definition for switch API version 2.3 and a macro to make comparing > the version more conveniant. > > Signed-off-by: Daniel Golle <daniel@makrotopia.org> > --- > drivers/net/dsa/lantiq_gswip.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/dsa/lantiq_gswip.h b/drivers/net/dsa/lantiq_gswip.h > index 433b65b047dd..fd0c01edb914 100644 > --- a/drivers/net/dsa/lantiq_gswip.h > +++ b/drivers/net/dsa/lantiq_gswip.h > @@ -7,6 +7,7 @@ > #include <linux/platform_device.h> > #include <linux/regmap.h> > #include <linux/reset.h> > +#include <linux/swab.h> > #include <net/dsa.h> > > /* GSWIP MDIO Registers */ > @@ -93,6 +94,8 @@ > #define GSWIP_VERSION_2_1 0x021 > #define GSWIP_VERSION_2_2 0x122 > #define GSWIP_VERSION_2_2_ETC 0x022 > +#define GSWIP_VERSION_2_3 0x023 > +#define GSWIP_VERSION_GE(priv, ver) (swab16(priv->version) >= swab16(ver)) Don't this depend on the endiannes of the CPU? It seems like it would be better to make your new version member cpu endian, and when writing to it, do le16_to_cpu(). Also, if i remember correctly, you made version a u32. Should it really be a u16? Andrew ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH RFC net-next 09/23] net: dsa: lantiq_gswip: add support for SWAPI version 2.3 2025-08-17 15:36 ` Andrew Lunn @ 2025-08-17 20:16 ` Daniel Golle 0 siblings, 0 replies; 3+ messages in thread From: Daniel Golle @ 2025-08-17 20:16 UTC (permalink / raw) To: Andrew Lunn Cc: Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Hauke Mehrtens, Simon Horman, Russell King, Florian Fainelli, Arkadi Sharshevsky, linux-kernel, netdev, Andreas Schirm, Lukas Stockmann, Alexander Sverdlin, Peter Christen, Avinash Jayaraman, Bing tao Xu, Liang Xu, Juraj Povazanec, Fanni (Fang-Yi) Chan, Benny (Ying-Tsan) Weng, Livia M. Rosu, John Crispin On Sun, Aug 17, 2025 at 05:36:13PM +0200, Andrew Lunn wrote: > On Sat, Aug 16, 2025 at 08:52:42PM +0100, Daniel Golle wrote: > > Add definition for switch API version 2.3 and a macro to make comparing > > the version more conveniant. > > > > Signed-off-by: Daniel Golle <daniel@makrotopia.org> > > --- > > drivers/net/dsa/lantiq_gswip.h | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/net/dsa/lantiq_gswip.h b/drivers/net/dsa/lantiq_gswip.h > > index 433b65b047dd..fd0c01edb914 100644 > > --- a/drivers/net/dsa/lantiq_gswip.h > > +++ b/drivers/net/dsa/lantiq_gswip.h > > @@ -7,6 +7,7 @@ > > #include <linux/platform_device.h> > > #include <linux/regmap.h> > > #include <linux/reset.h> > > +#include <linux/swab.h> > > #include <net/dsa.h> > > > > /* GSWIP MDIO Registers */ > > @@ -93,6 +94,8 @@ > > #define GSWIP_VERSION_2_1 0x021 > > #define GSWIP_VERSION_2_2 0x122 > > #define GSWIP_VERSION_2_2_ETC 0x022 > > +#define GSWIP_VERSION_2_3 0x023 > > +#define GSWIP_VERSION_GE(priv, ver) (swab16(priv->version) >= swab16(ver)) > > Don't this depend on the endiannes of the CPU? > > It seems like it would be better to make your new version member cpu > endian, and when writing to it, do le16_to_cpu(). Yes, that does make sense. > > Also, if i remember correctly, you made version a u32. Should it > really be a u16? True, it should probably be u16. It would complicate things a bit though as the (existing, currently supported) MMIO switches built-into the Lantiq SoCs use 32-bit memory operations to access the 16-bit switch registers, where the upper 16-bit are always all zero... Hence I got to use .val_bits = 32 to not end up with bus errors, and also .reg_shift = -2 is needed as each 16-bit register address needs to be multiplied by 4 (ie. addr =<< 2, which is what .reg_shift = -2 is doing). So up to now, eg. when passed as a function paramter in existing code paths, the version has been a u32 type. When using a different type for the version stored in the priv struct, that would create quite a bit of confusion imho: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/dsa/lantiq_gswip.c?h=v6.16#n2018 Let me know what you think. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-08-17 20:17 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-08-16 19:52 [PATCH RFC net-next 09/23] net: dsa: lantiq_gswip: add support for SWAPI version 2.3 Daniel Golle 2025-08-17 15:36 ` Andrew Lunn 2025-08-17 20:16 ` Daniel Golle
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).