From patchwork Mon Nov 21 19:09:25 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 697371 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tMypx52fjz9t2C for ; Tue, 22 Nov 2016 06:10:17 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jW9bdeyk"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754631AbcKUTKO (ORCPT ); Mon, 21 Nov 2016 14:10:14 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:34120 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754587AbcKUTKM (ORCPT ); Mon, 21 Nov 2016 14:10:12 -0500 Received: by mail-pg0-f66.google.com with SMTP id e9so28912546pgc.1 for ; Mon, 21 Nov 2016 11:10:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DL2XNbymdhTfrZVOtakiwf5+xGHb0QcbOouOrRggbew=; b=jW9bdeykrPYSRNBn6wBrRjOr9X2kVK33U0VwaRooAapO6nlIy/uZ37haBDVObh89Hx 5OYuZkKdBVay0xomG8aIyoMROsekEFkd9ZPX+3ZKfeVHGQ0mNqNxCu+n6P9I/ED3hwkf 23w0lQGmPWJrbedXShaoqdk4bR/Kpr5L7QzVlVhc40pesqTC1+o2kA+kxUBSFNAoydzw ol0X0wCi86HRFIzH3zH4FIXAoq8LA8OjkBMU0dsWrACtoNm3rqcTmf61w6IkmB+9nrCK nUwKwSb2kVoodnlE4ZGor0WIZ7rVzo/hLI9p1sRON7czy+A5JCtZRI3tQ9liUpvh6LoF zpmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DL2XNbymdhTfrZVOtakiwf5+xGHb0QcbOouOrRggbew=; b=cdjwe6yati+EYWyNGPb3DFrlynwYULBNaPlAmLySAXcfs6Ky3gGskN+j2Skg372x3O Yllatpo7VXY2a+A8ua/YrmL7EAAYr00lO1YHEggI+FXGzGUoTz3NOKhRxZGkvx7nZrkA xV0k/be1LuthBbdFt/dX/3Df4ABYstgPt0gxt3xb3czy1Emy5Dtj0zlyZ2x1PXO4Ozpo 8d8ADO0H3CuOsEmRo0N3vea1CZ3fw39FFgE7mzNNQTO7Z7IPRzMAh+OGRm44XbcuMLjJ 2FpyWorRBJ8PeydWKww3yGa2jzgy5nxW/3qwjw2RX2P5YKjGPl7IukU207TiAbqGoN4S jM/g== X-Gm-Message-State: AKaTC02Q5VTMMvijjCcpYqSq62PJY6ckGULf11x4hzJW3fWWxF9S8IEkDalaJzAaPA0ZnQ== X-Received: by 10.98.63.148 with SMTP id z20mr19968479pfj.151.1479755406328; Mon, 21 Nov 2016 11:10:06 -0800 (PST) Received: from fainelli-desktop.broadcom.com ([192.19.255.250]) by smtp.gmail.com with ESMTPSA id 89sm39257161pfi.70.2016.11.21.11.10.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 Nov 2016 11:10:05 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: davem@davemloft.net, bridge@lists.linux-foundation.org, stephen@networkplumber.org, vivien.didelot@savoirfairelinux.com, andrew@lunn.ch, jiri@mellanox.com, idosch@mellanox.com, Florian Fainelli Subject: [RFC net-next 3/3] net: dsa: b53: Remove CPU port specific VLAN programming Date: Mon, 21 Nov 2016 11:09:25 -0800 Message-Id: <20161121190925.14530-4-f.fainelli@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20161121190925.14530-1-f.fainelli@gmail.com> References: <20161121190925.14530-1-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Now that DSA calls into the switch driver to program the CPU port's VLAN attributes, we can get rid of the code that dealt with adding/removing the CPU port to a downstream facing port VLAN membership. Signed-off-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 7717b19dc806..6577286a2721 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -951,7 +951,6 @@ static void b53_vlan_add(struct dsa_switch *ds, int port, struct b53_device *dev = ds->priv; bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED; bool pvid = vlan->flags & BRIDGE_VLAN_INFO_PVID; - unsigned int cpu_port = dev->cpu_port; struct b53_vlan *vl; u16 vid; @@ -960,11 +959,11 @@ static void b53_vlan_add(struct dsa_switch *ds, int port, b53_get_vlan_entry(dev, vid, vl); - vl->members |= BIT(port) | BIT(cpu_port); + vl->members |= BIT(port); if (untagged) - vl->untag |= BIT(port) | BIT(cpu_port); + vl->untag |= BIT(port); else - vl->untag &= ~(BIT(port) | BIT(cpu_port)); + vl->untag &= ~BIT(port); b53_set_vlan_entry(dev, vid, vl); b53_fast_age_vlan(dev, vid); @@ -973,8 +972,6 @@ static void b53_vlan_add(struct dsa_switch *ds, int port, if (pvid) { b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(port), vlan->vid_end); - b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(cpu_port), - vlan->vid_end); b53_fast_age_vlan(dev, vid); } } @@ -984,7 +981,6 @@ static int b53_vlan_del(struct dsa_switch *ds, int port, { struct b53_device *dev = ds->priv; bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED; - unsigned int cpu_port = dev->cpu_port; struct b53_vlan *vl; u16 vid; u16 pvid; @@ -997,8 +993,6 @@ static int b53_vlan_del(struct dsa_switch *ds, int port, b53_get_vlan_entry(dev, vid, vl); vl->members &= ~BIT(port); - if ((vl->members & BIT(cpu_port)) == BIT(cpu_port)) - vl->members = 0; if (pvid == vid) { if (is5325(dev) || is5365(dev)) @@ -1007,18 +1001,14 @@ static int b53_vlan_del(struct dsa_switch *ds, int port, pvid = 0; } - if (untagged) { + if (untagged) vl->untag &= ~(BIT(port)); - if ((vl->untag & BIT(cpu_port)) == BIT(cpu_port)) - vl->untag = 0; - } b53_set_vlan_entry(dev, vid, vl); b53_fast_age_vlan(dev, vid); } b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(port), pvid); - b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(cpu_port), pvid); b53_fast_age_vlan(dev, pvid); return 0; @@ -1396,8 +1386,8 @@ static void b53_br_leave(struct dsa_switch *ds, int port) b53_write16(dev, B53_VLAN_PAGE, B53_JOIN_ALL_VLAN_EN, reg); } else { b53_get_vlan_entry(dev, pvid, vl); - vl->members |= BIT(port) | BIT(dev->cpu_port); - vl->untag |= BIT(port) | BIT(dev->cpu_port); + vl->members |= BIT(port); + vl->untag |= BIT(port); b53_set_vlan_entry(dev, pvid, vl); } }