From: "Clément Léger" <clement.leger@bootlin.com>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
"Herve Codina" <herve.codina@bootlin.com>,
"Miquèl Raynal" <miquel.raynal@bootlin.com>,
"Milan Stevanovic" <milan.stevanovic@se.com>,
"Jimmy Lalande" <jimmy.lalande@se.com>,
"Pascal Eberhard" <pascal.eberhard@se.com>,
"Arun Ramadoss" <Arun.Ramadoss@microchip.com>,
linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v3 3/3] net: dsa: rzn1-a5psw: add vlan support
Date: Thu, 9 Feb 2023 09:47:25 +0100 [thread overview]
Message-ID: <20230209094725.3ac772ff@fixe.home> (raw)
In-Reply-To: <20230208220309.4ekk4xpmpx27rkt6@skbuf>
Le Thu, 9 Feb 2023 00:03:09 +0200,
Vladimir Oltean <olteanv@gmail.com> a écrit :
> On Wed, Feb 08, 2023 at 05:17:49PM +0100, Clément Léger wrote:
> > +static void a5psw_port_vlan_tagged_cfg(struct a5psw *a5psw, int vlan_res_id,
> > + int port, bool set)
> > +{
> > + u32 mask = A5PSW_VLAN_RES_WR_PORTMASK | A5PSW_VLAN_RES_RD_TAGMASK |
> > + BIT(port);
> > + u32 vlan_res_off = A5PSW_VLAN_RES(vlan_res_id);
> > + u32 val = A5PSW_VLAN_RES_WR_TAGMASK, reg;
> > +
> > + if (set)
> > + val |= BIT(port);
> > +
> > + /* Toggle tag mask read */
> > + a5psw_reg_writel(a5psw, vlan_res_off, A5PSW_VLAN_RES_RD_TAGMASK);
> > + reg = a5psw_reg_readl(a5psw, vlan_res_off);
> > + a5psw_reg_writel(a5psw, vlan_res_off, A5PSW_VLAN_RES_RD_TAGMASK);
>
> Is it intentional that this register is written twice?
Yes, the A5PSW_VLAN_RES_RD_TAGMASK bit is a toggle-bit (toggled
by writing a 1 in it) and it allows to read the tagmask (for
vlan tagging) instead of the portmask (for vlan membership):
"""
b28 read_tagmask:
Select contents of mask bits (4:0) when reading the
register. If this bit is set during a write into the register, all
other bits of the write are ignored (i.e. 30,29,16:0) and the bit 28 of
the register toggles (1-> 0; 0-> 1). This is used only to allow
changing the bit 28 without changing any table contents.
"""
>
> > +
> > + reg &= ~mask;
> > + reg |= val;
> > + a5psw_reg_writel(a5psw, vlan_res_off, reg);
> > +}
--
Clément Léger,
Embedded Linux and Kernel engineer at Bootlin
https://bootlin.com
next prev parent reply other threads:[~2023-02-09 8:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-08 16:17 [PATCH net-next v3 0/3] net: dsa: rzn1-a5psw: add support for vlan and .port_bridge_flags Clément Léger
2023-02-08 16:17 ` [PATCH net-next v3 1/3] net: dsa: rzn1-a5psw: use a5psw_reg_rmw() to modify flooding resolution Clément Léger
2023-02-08 17:26 ` Florian Fainelli
2023-02-08 21:37 ` Vladimir Oltean
2023-02-09 8:40 ` Clément Léger
2023-02-08 16:17 ` [PATCH net-next v3 2/3] net: dsa: rzn1-a5psw: add support for .port_bridge_flags Clément Léger
2023-02-08 17:27 ` Florian Fainelli
2023-02-08 16:17 ` [PATCH net-next v3 3/3] net: dsa: rzn1-a5psw: add vlan support Clément Léger
2023-02-08 17:38 ` Florian Fainelli
2023-02-08 22:02 ` Vladimir Oltean
2023-02-09 8:44 ` Clément Léger
2023-02-09 13:50 ` Clément Léger
2023-02-08 22:03 ` Vladimir Oltean
2023-02-09 8:47 ` Clément Léger [this message]
2023-02-09 8:15 ` Arun.Ramadoss
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230209094725.3ac772ff@fixe.home \
--to=clement.leger@bootlin.com \
--cc=Arun.Ramadoss@microchip.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=herve.codina@bootlin.com \
--cc=jimmy.lalande@se.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=milan.stevanovic@se.com \
--cc=miquel.raynal@bootlin.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=pascal.eberhard@se.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.