* [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).