Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp1377432imm; Tue, 5 Jun 2018 13:38:44 -0700 (PDT) X-Google-Smtp-Source: ADUXVKL/0vIzz9TNVlRbfZfwnpfehvL983GDAaMmXv3Ebw506aWZC3bkrm1etfc1C+39GhkQEmuJ X-Received: by 2002:a65:6491:: with SMTP id e17-v6mr145969pgv.44.1528231124120; Tue, 05 Jun 2018 13:38:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528231124; cv=none; d=google.com; s=arc-20160816; b=B7P/D6TO6/au2p4GhcM4VYO3z2A6d3kZsbyHW6FM2fq0MwHQ4frJOU3VHukpXcUJM6 P1n5ZQQiwsR/5mn7kmdNJm067tygUiD4geX8e1+b/Kp6WgaEO95P0Y0Ya6GY84L0Hv9Q 6Op0R4WDvJfpHKM/K0PHjmr5TaeBZaKpkGCtCNpjszMfdkUualfobwYI/4YVL5wRohOt q/R/ozBv+onbaUttCWSU/gHFZGKzCfHsMsPU0+avEKl8KiO3PDhvw/VxFrnD+B+7YDWn /SJii1YbTROLATT5DLiCb9bIQpDXCLRV5PXWkx4xvqQdDzEVnyqzRZTDWHVT/oKYuBlh hsWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=GgZvA7Ye+fQqI/ECiqriJ8kDhrVliL2eGUHp1SckCLo=; b=rj6iCbmAIbRgE3OLtxmkA+zOD8UIDNyBmLIwHaGSFifS/ovn0PZ+WHQnWPAzIKXg0R Y4SHJKfyhazMJdrf02qeDXnZcnNeqBoQFewgUn1C17aWcAMyM+fKQSa8D8KIYvjr+XvY ZlSWaA1kmkRFCFZwtNqaKpJicqsjvEteR5Kfw7wFqXZAZtRjQUojjNiZjOFIlxi6G3RF SRQGAV0YMUidLNo8D/p7pUUOb6l3tEHvQ1+o6jGAvFUsn5D8pZt5aexmVOWffK60wOzz LAuE5zzsB0JL2m7a4m/ZIWg6IT1ffqASxorRaAV3YYvGkpqJGTfpl8TsOBjE2Fb22T4v nuaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=fWs+FRA8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k2-v6si5530597pgr.206.2018.06.05.13.38.28; Tue, 05 Jun 2018 13:38:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=fWs+FRA8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752087AbeFEUh7 (ORCPT + 99 others); Tue, 5 Jun 2018 16:37:59 -0400 Received: from mail-qt0-f193.google.com ([209.85.216.193]:36986 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751894AbeFEUh5 (ORCPT ); Tue, 5 Jun 2018 16:37:57 -0400 Received: by mail-qt0-f193.google.com with SMTP id q13-v6so3993644qtp.4 for ; Tue, 05 Jun 2018 13:37:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id; bh=GgZvA7Ye+fQqI/ECiqriJ8kDhrVliL2eGUHp1SckCLo=; b=fWs+FRA81tJmr2DfLEWOUymC2gDypdJxM9aMMdk4b059uJp+5Uv2IzZPkn+PCkEZW0 fYhuNH1GhB9TDx3SJ3GVy7xSN3YXv5cIOl0ZhbfWOuoxyHVg3EGU+YF26AQPW1HBc7Kg yj2sPw6fDSJWA9AoaETjlirHjgDF8MKi7HjEk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=GgZvA7Ye+fQqI/ECiqriJ8kDhrVliL2eGUHp1SckCLo=; b=HZLdRVf8s4v+w8Vbp0dpVH89Xk3S1/rUvvRi8i2s/2cTjWif7cAE8E9w4f5xsUP1C3 Mn/4/t1SQyeW7ty8L6ykfELLD/HCmoGvTNXV3GjUIpc9AEkJM/CyFwNh5U6XjzIe+EXc E+Vem2HBp0N+7N43whjWHrXEOBNStKSLoQg/BUhk96vZ2FrsBzYWDwd1/Sfks7ubTp2e BcjZKIGaccIFpUGisTxvuN8rX1QWLlNVTh3aRsMSVx0bC6389wR37GPVqce0KSgn4FqN ojaFso4DwoiQL1pHB+3Py2k3QPA90rt7VVKL3Xggm43ZTkwQizLf4mwNdIDNQM7FB/7K 2H1A== X-Gm-Message-State: APt69E3X3ghRQiUs+fK7vwB3kuJn/gEKkLWk4MuvZPxaIJL5d4kdrGMT I4ZdZ0ta5J4VfpvcyaT3LThur0jQ X-Received: by 2002:a0c:88ac:: with SMTP id 41-v6mr159482qvn.201.1528231076566; Tue, 05 Jun 2018 13:37:56 -0700 (PDT) Received: from lbrmn-lnxub86.ric.broadcom.com ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id a62-v6sm26873143qka.11.2018.06.05.13.37.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 05 Jun 2018 13:37:55 -0700 (PDT) From: Arun Parameswaran To: Florian Fainelli , Vivien Didelot , Andrew Lunn , "David S. Miller" Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Arun Parameswaran Subject: [PATCH 1/1] net: dsa: b53: Fix for brcm tag issue in Cygnus SoC Date: Tue, 5 Jun 2018 13:38:12 -0700 Message-Id: <1528231092-31472-1-git-send-email-arun.parameswaran@broadcom.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the Broadcom Cygnus SoC, the brcm tag needs to be inserted in between the mac address and the ether type (should use 'DSA_PROTO_TAG_BRCM') for the packets sent to the internal b53 switch. Since the Cygnus was added with the BCM58XX device id and the BCM58XX uses 'DSA_PROTO_TAG_BRCM_PREPEND', the data path is broken, due to the incorrect brcm tag location. Add a new b53 device id (BCM583XX) for Cygnus family to fix the issue. Add the new device id to the BCM58XX family as Cygnus is similar to the BCM58XX in most other functionalities. Fixes: 11606039604c ("net: dsa: b53: Support prepended Broadcom tags") Signed-off-by: Arun Parameswaran --- drivers/net/dsa/b53/b53_common.c | 15 ++++++++++++++- drivers/net/dsa/b53/b53_priv.h | 2 ++ drivers/net/dsa/b53/b53_srab.c | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 3da5fca..bbc6cc6 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -684,7 +684,8 @@ static int b53_switch_reset(struct b53_device *dev) * still use this driver as a library and need to perform the reset * earlier. */ - if (dev->chip_id == BCM58XX_DEVICE_ID) { + if (dev->chip_id == BCM58XX_DEVICE_ID || + dev->chip_id == BCM583XX_DEVICE_ID) { b53_read8(dev, B53_CTRL_PAGE, B53_SOFTRESET, ®); reg |= SW_RST | EN_SW_RST | EN_CH_RST; b53_write8(dev, B53_CTRL_PAGE, B53_SOFTRESET, reg); @@ -1880,6 +1881,18 @@ struct b53_chip_data { .jumbo_size_reg = B53_JUMBO_MAX_SIZE, }, { + .chip_id = BCM583XX_DEVICE_ID, + .dev_name = "BCM583xx/11360", + .vlans = 4096, + .enabled_ports = 0x103, + .arl_entries = 4, + .cpu_port = B53_CPU_PORT, + .vta_regs = B53_VTA_REGS, + .duplex_reg = B53_DUPLEX_STAT_GE, + .jumbo_pm_reg = B53_JUMBO_PORT_MASK, + .jumbo_size_reg = B53_JUMBO_MAX_SIZE, + }, + { .chip_id = BCM7445_DEVICE_ID, .dev_name = "BCM7445", .vlans = 4096, diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index 3b57f47..b232aaa 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -62,6 +62,7 @@ enum { BCM53018_DEVICE_ID = 0x53018, BCM53019_DEVICE_ID = 0x53019, BCM58XX_DEVICE_ID = 0x5800, + BCM583XX_DEVICE_ID = 0x58300, BCM7445_DEVICE_ID = 0x7445, BCM7278_DEVICE_ID = 0x7278, }; @@ -181,6 +182,7 @@ static inline int is5301x(struct b53_device *dev) static inline int is58xx(struct b53_device *dev) { return dev->chip_id == BCM58XX_DEVICE_ID || + dev->chip_id == BCM583XX_DEVICE_ID || dev->chip_id == BCM7445_DEVICE_ID || dev->chip_id == BCM7278_DEVICE_ID; } diff --git a/drivers/net/dsa/b53/b53_srab.c b/drivers/net/dsa/b53/b53_srab.c index c37ffd1..8247481 100644 --- a/drivers/net/dsa/b53/b53_srab.c +++ b/drivers/net/dsa/b53/b53_srab.c @@ -364,7 +364,7 @@ static int b53_srab_write64(struct b53_device *dev, u8 page, u8 reg, { .compatible = "brcm,bcm53018-srab" }, { .compatible = "brcm,bcm53019-srab" }, { .compatible = "brcm,bcm5301x-srab" }, - { .compatible = "brcm,bcm11360-srab", .data = (void *)BCM58XX_DEVICE_ID }, + { .compatible = "brcm,bcm11360-srab", .data = (void *)BCM583XX_DEVICE_ID }, { .compatible = "brcm,bcm58522-srab", .data = (void *)BCM58XX_DEVICE_ID }, { .compatible = "brcm,bcm58525-srab", .data = (void *)BCM58XX_DEVICE_ID }, { .compatible = "brcm,bcm58535-srab", .data = (void *)BCM58XX_DEVICE_ID }, @@ -372,7 +372,7 @@ static int b53_srab_write64(struct b53_device *dev, u8 page, u8 reg, { .compatible = "brcm,bcm58623-srab", .data = (void *)BCM58XX_DEVICE_ID }, { .compatible = "brcm,bcm58625-srab", .data = (void *)BCM58XX_DEVICE_ID }, { .compatible = "brcm,bcm88312-srab", .data = (void *)BCM58XX_DEVICE_ID }, - { .compatible = "brcm,cygnus-srab", .data = (void *)BCM58XX_DEVICE_ID }, + { .compatible = "brcm,cygnus-srab", .data = (void *)BCM583XX_DEVICE_ID }, { .compatible = "brcm,nsp-srab", .data = (void *)BCM58XX_DEVICE_ID }, { /* sentinel */ }, }; -- 1.9.1