From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=eyoLzh3GoCjEcko6E6TRX3Q0MN5P8KHlKdLhPGSzjas=; b=nnddJEcHqLBBgfgW6X8nP2hJ+jbcGZujjBROoEt9DQKra/B8N1F3VqRROEaOdXzS1G TnmFhHNUyN5sK64vsVyWIaI5/IWYIRSDlRlHN9lO44vm9/RH205qjm0HVp0WDQBkojHS SxK7lXv9qPuxBw0h8IcrUN22V3RAYtX9gwDEXgiSTbwCKm6Cv+emuMeHX4pjOUOxLO1r SBJvros1knM0ArBLcFpYEDQBMbDEOjZyNBZZLUKg0Dh+l34NitpBj33SGW8TgzKLy4aU BUdMEoxEsM4NVFdyaStDhqIhtOms7cKP4Ae+XytJsnPBGISv5erc6kLo/q/y+6+jwYSL tJVg== Date: Sat, 19 Feb 2022 12:00:34 +0200 From: Vladimir Oltean Message-ID: <20220219100034.lh343dkmc4fbiad3@skbuf> References: <20220218155148.2329797-1-schultz.hans+netdev@gmail.com> <20220218155148.2329797-5-schultz.hans+netdev@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220218155148.2329797-5-schultz.hans+netdev@gmail.com> Subject: Re: [Bridge] [PATCH net-next v3 4/5] net: dsa: mv88e6xxx: Add support for bridge port locked mode List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hans Schultz Cc: Petr Machata , Andrew Lunn , Baowen Zheng , Florian Fainelli , Amit Cohen , netdev@vger.kernel.org, David Ahern , bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Ido Schimmel , Vivien Didelot , Hans Schultz , Po-Hsu Lin , Nikolay Aleksandrov , linux-kselftest@vger.kernel.org, Roopa Prabhu , kuba@kernel.org, Stephen Suryaputra , Shuah Khan , davem@davemloft.net On Fri, Feb 18, 2022 at 04:51:47PM +0100, Hans Schultz wrote: > diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c > index ab41619a809b..46b7381899a0 100644 > --- a/drivers/net/dsa/mv88e6xxx/port.c > +++ b/drivers/net/dsa/mv88e6xxx/port.c > @@ -1234,6 +1234,39 @@ int mv88e6xxx_port_set_mirror(struct mv88e6xxx_chip *chip, int port, > return err; > } > > +int mv88e6xxx_port_set_lock(struct mv88e6xxx_chip *chip, int port, > + bool locked) > +{ > + u16 reg; > + int err; > + > + err = mv88e6xxx_port_read(chip, port, MV88E6XXX_PORT_CTL0, ®); > + if (err) > + return err; > + > + reg &= ~MV88E6XXX_PORT_CTL0_SA_FILT_MASK; > + if (locked) > + reg |= MV88E6XXX_PORT_CTL0_SA_FILT_DROP_ON_LOCK; > + > + err = mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_CTL0, reg); > + if (err) > + return err; > + > + err = mv88e6xxx_port_read(chip, port, MV88E6XXX_PORT_ASSOC_VECTOR, ®); > + if (err) > + return err; > + > + reg &= ~MV88E6XXX_PORT_ASSOC_VECTOR_LOCKED_PORT; > + if (locked) > + reg |= MV88E6XXX_PORT_ASSOC_VECTOR_LOCKED_PORT; > + > + err = mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_ASSOC_VECTOR, reg); return mv88e6xxx_port_write(...); > + if (err) > + return err; > + > + return 0; > +}