From patchwork Thu Apr 10 16:30:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 14047062 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8E4F3C3601E for ; Thu, 10 Apr 2025 17:38:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=axLOXVmnrt5e6ujgCV+4/WW/JoQqDkbI0ei5W2Ow3O0=; b=SE7EE5hVxK9MX6e7INCGwL031k 7JFbkcKLVWtUTNBBmR2Y06pRmM21CZ5by/50xcS3Jnie6RehweLnfP0S38+N2/9ulgR+qwO+wbHbz 2GHckeeNdQtL4Y3tQzRM02m2D4eqOh5X1KZrsy/OAYjf5aV085cOjcU2Dq3+us5eND7Fm+HfeMxs2 IM/62ZaigPzAF8bT5WmkL+p0aRGWEcfogdjd8RLcCDvLMuh3xEV8bNlY5romCN/a7P6CvkTzRzybJ EA8ZPD3LQ1CoOU9l8rwGgWP7WAVT8uWkYxk0e5WW5HfMRlgO1oYFjbn5yICahuLo5qt4fe05akSPw odN700tA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2vrF-0000000BPCU-18kT; Thu, 10 Apr 2025 17:38:33 +0000 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2uno-0000000BClt-0H5F; Thu, 10 Apr 2025 16:30:57 +0000 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-39c1ef4acf2so628345f8f.0; Thu, 10 Apr 2025 09:30:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744302654; x=1744907454; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=axLOXVmnrt5e6ujgCV+4/WW/JoQqDkbI0ei5W2Ow3O0=; b=biiQyxNgH5wAiOCkbh8doNgXcBgQR9yyhmvBdDQcGgVtQWxgM3WDRkD7scOxoROc/c bXJsejy46/aB5K8Wn+GUTPK+9spnRNVTnh5GhtMHIHYdQyQuey1LFLRWzVztHCBmdYMd BbGBgcxIPfghmnGnz429c3aPX477OclFOrkS7Sk0b3IFS1PXvNNe0xhSWpVYHvqhpnWl 4OTe7ghRlmYZN30TOQOcUdy1PYGE71dbMF5iWncX749RMdTpNDLzpbsqgAr74/cNxnZ6 K7OUZB7vjEeaaTwQ/mmX0E5roWw0C4xCqkty6SpAcnyWmNZaswg62diE1Yao2d4T+ip7 ZZ0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744302654; x=1744907454; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=axLOXVmnrt5e6ujgCV+4/WW/JoQqDkbI0ei5W2Ow3O0=; b=o9N7x8b+ezxxws8Y4K/kidyvEhHSVaQHwfFrSeVFYhhKGBrr/ahPiy4TgJJXmzNhSq +g0MeCsIC7I9lGWO7m2wfeh+OC99hyznxGRXcRB53y6nS74+dDBhyDuGJzx+3mEDgO98 vbIKfmAmG66JkacPJu8JTDhxU7HxztoBcTtiTj2Q3kB7DBp6fnFTfEpcJGFOKoALQx+y /GnfSYau3XRxuUIanMxM7k4T9HtA8zJ4HK/ZcgwWuPJyIxXVtC6hjSBfDlgpfQBh2TiU E3e3m5pEs+EXY4N9+KOR8T21dWUqnQLGaWq1JkFBwhpw0oCgzrPxCTHRMSm+ktel6tfU QSug== X-Forwarded-Encrypted: i=1; AJvYcCV6j80udUyZeVewRRm6j55EU/uTaJKacKQF6br78WhVd4t3txOkBQd0FVqokdc7is3qb1vfb98N1nkpEJ5Zu9s=@lists.infradead.org, AJvYcCXyXNopRq+UEU3m8LI7xqP/6RRmmQ+WYBZOH94VN3ws25BWqkxHmjOcrWGx7QGUe+XeSOFK/8gKzayp8D/oJxyt@lists.infradead.org X-Gm-Message-State: AOJu0Yy3ZPbau4v/9AP5i34040+SFqZfqQzKcN0qmxAo2+8VPw6fnwwC NHck59T7QTi9jNUeh/EI8hBWMTEeQU9nNXb6Z1AkIG8PrfRNfAkRFxR5Jw== X-Gm-Gg: ASbGncu2UVxV8MxFl4Ek76lA9Vh86tw4H1BcSAzV8b+wbNb50IMN1VzeO9ofO4Ic0NJ QSyAJNcsimwVEhF7AERZa2rL7ySnJUUHjiD5pnGAkx/7cZCZY7yDdd3cgPOalQ71pfLMFs+c/9M ClneA/LJnMVDa+NyqRGT0ZWS4PHLR+9zC4mX1FNbZVnU+Lg1ZJ/fIIAB9yIa4Wiu/fn7E+3tB/v REbJshpaDvxM+/iTDLyccfJ4RoAf5crn8g/tspt3IfnuuOAtC4OHbtJPCSH/bnzMiZWXI7u8E/r lL+H9Un78DhFRm3Q18eYTQ1nqFWvWVLMdfOM9emC7GI5vAyuytfMsAhyDOrJxZOL9FTMTmXUBa5 ma9AxHgOddg== X-Google-Smtp-Source: AGHT+IFYEtIPIXHN1PmKXXRRja4VIhg3Bfr0bEotT+71cwpTGX7+kspOZn+JoXE19bC9P/Ywz3zMQw== X-Received: by 2002:adf:9c84:0:b0:39c:1257:dba8 with SMTP id ffacd0b85a97d-39d8fdaba5amr2282339f8f.56.1744302654265; Thu, 10 Apr 2025 09:30:54 -0700 (PDT) Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it. [93.34.88.225]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39d893f0a75sm5374033f8f.62.2025.04.10.09.30.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 09:30:53 -0700 (PDT) From: Christian Marangi To: "Chester A. Unal" , Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Christian Marangi Subject: [net-next PATCH 1/6] net: dsa: mt7530: generalize read port stats logic Date: Thu, 10 Apr 2025 18:30:09 +0200 Message-ID: <20250410163022.3695-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250410163022.3695-1-ansuelsmth@gmail.com> References: <20250410163022.3695-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250410_093056_143695_97734CA0 X-CRM114-Status: GOOD ( 13.41 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org In preparation for migration to use of standard MIB API, generalize the read port stats logic to a dedicated function. This will permit to manually provide the offset and size of the MIB counter to directly access specific counter. Signed-off-by: Christian Marangi --- drivers/net/dsa/mt7530.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index d70399bce5b9..85a040853194 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -789,24 +789,34 @@ mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset, ethtool_puts(&data, mt7530_mib[i].name); } +static void +mt7530_read_port_stats(struct mt7530_priv *priv, int port, + u32 offset, u8 size, uint64_t *data) +{ + u32 val, reg = MT7530_PORT_MIB_COUNTER(port) + offset; + + val = mt7530_read(priv, reg); + *data = val; + + if (size == 2) { + val = mt7530_read(priv, reg + 4); + *data |= (u64)val << 32; + } +} + static void mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, uint64_t *data) { struct mt7530_priv *priv = ds->priv; const struct mt7530_mib_desc *mib; - u32 reg, i; - u64 hi; + int i; for (i = 0; i < ARRAY_SIZE(mt7530_mib); i++) { mib = &mt7530_mib[i]; - reg = MT7530_PORT_MIB_COUNTER(port) + mib->offset; - data[i] = mt7530_read(priv, reg); - if (mib->size == 2) { - hi = mt7530_read(priv, reg + 4); - data[i] |= hi << 32; - } + mt7530_read_port_stats(priv, port, mib->offset, mib->size, + data + i); } } From patchwork Thu Apr 10 16:30:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 14047088 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CDA3AC369A2 for ; Thu, 10 Apr 2025 17:40:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=H2YZc1LaMVkn7aFFV6kzKwyOO/D0/i0GDUriI0k11XQ=; b=npy9+TRPFUZ/rTJu0ogc4BNtU0 WSxfbqbYecyIJcwZOecNHzivttBf7VjWS3Lr1F9SFcfdSp9wMOmo/3ySSU31qCLw+BRGQvfO+SXWB ApiXNLh/lWBnbtx7Fydp7QaEEN6FFwiAPrJn/jz5m8o1+q9uR0+Z1Ov4hPfeTF3ms5bpuNHKZmE0r VWQW1+NmL1HYjNe5/ATYNHge743c2blbnfsMRUZvBGVy8SO0ocf2e/e3PeRs9Lpibo4rOFuso92Fy AToO7qdYVT4+Vx7N0vWV/esgR0E4r7MS/1pdz3Ehdxvg3xWeZgy9BGbE0OP3C5caVgK13jPfeMCzD w2AE4SuA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2vt0-0000000BPaz-12bh; Thu, 10 Apr 2025 17:40:22 +0000 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2unp-0000000BCmJ-1IPN; Thu, 10 Apr 2025 16:30:58 +0000 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-43cf0d787eeso12025765e9.3; Thu, 10 Apr 2025 09:30:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744302656; x=1744907456; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=H2YZc1LaMVkn7aFFV6kzKwyOO/D0/i0GDUriI0k11XQ=; b=iY43D+cbwPd1I16cktBMOf4mwbpfWIm6AZxd5Yymph7hsd5EpHmyTYeCZ4wRcHk7CT /751iaARLnZF7xTxfK8WkxnoybN8jgXwR4C3tkxIw7pCGuybwEW+sMkTfm2v/GA9gfNU DzVwywVzt+dAc9qM0pDMcCc+z/vCTW8VF3zTgLxrAgvigeMZpyEqLwEkH+9ZhzN68hpD dhZT1U1m+wdiJ92s2atxhar0w6bGd2+O0D1fUmcf6f03ocRgTUxsd9lrgRkvE+vqEQgQ GE1dckNPbrgFBonTYaPGrsa4E17jHLcydSaiUbl+nboY3TZ3Fq68JokhOhc4cJmWLRzN Cymw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744302656; x=1744907456; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H2YZc1LaMVkn7aFFV6kzKwyOO/D0/i0GDUriI0k11XQ=; b=EN/O422FpChMWVDnp2CZNB91OnSOF5Iztl98LMP3dZ8Y3czqpBbA2mmoo2WqueC5W1 jn6p6oNGlAMlwkCxWXjZaTSW6Ln9m2G0ZSaKv0WNbp1AhqmX3jrM4Fev7Rc9qLXgf0rI B1WvnCpGp8bwnhryi2/0R+CfyDqSkFQoI3d4kE24xWACpQ1HFHh+u5myO/Pdasmja+N+ Dl846fqRo+MhltUzVlJ8zRnzIfnR4seqe3Ujsjzl5bsPFbyf6UrGx5pnhqkI+f/wHgN9 ROQ21D3VcslxUTKPiweju3cDXTUTNuBy4iP6ncoDhAhuXgWTEDlAwQZpaX+0KjUiGbex UdGg== X-Forwarded-Encrypted: i=1; AJvYcCV0eG91LjQha0iH37iMhhG1SAmqQYoA1Kb9dlv+se4L690wNVXz55vLYiUinfa9ZmgrWihyi5T4nbtRlxM8VCdZ@lists.infradead.org, AJvYcCXKtU2V+GBrlyuOaq4ooDnpWHaOkLx/oMJgwpdBFiJiQrJLFh0qdk28CoxHDUUoLmbATsjO3fFkc59EtdpgWEg=@lists.infradead.org X-Gm-Message-State: AOJu0YySpz7TdOxum3vg8mE2bPlHlCQj94e2EI0fM94N8rvxenkDrAoq k6aPl5DavM5daayOrIrW8CUMKGnYmx0pbG2QpgQARIe+RiOjzMuQ X-Gm-Gg: ASbGnct4Isy57Uq4t4CmnsdqMOL3M+8wy2CsaYFGcWvPYrfLJM+vSOpJdZ1U753YI2V Ecu5UbtyZY13vSBg+ka7acVysxyeWjqdX1+2FFWYBHDyQVmg77Ean+mWoiFWKrWRh3xvn9f87ws knU1NPovymvjBW99dkRZI/kiSU9DQjE4qTTozFZqPDA7cFPft7fjxdd8Ohg1Plv3VTnlYpAW22a +XgvwdHGtuJ52r+z3M3puh4fUj3QJc2w1C7mXKk7UWo6B0W+5uCcOaqkUbCEPlCTHWE4UGQHFzx QHxpgRi8Uqq7kmFxNSqqNfZpAmU1+pFhYni7H4MLtLD326vpWXgUq8qZ7r1G7AyKs/wNdudjyEc /oylUfvkf1Q== X-Google-Smtp-Source: AGHT+IHVp+FavjYbgAfIwEPvJkscRMse+kNVdLuitvwX+OUB4oudwxYscfeW6fHR/DYQRCY2BecERA== X-Received: by 2002:a05:600c:510f:b0:43d:45a:8fbb with SMTP id 5b1f17b1804b1-43f2ff9bf72mr24084135e9.22.1744302655492; Thu, 10 Apr 2025 09:30:55 -0700 (PDT) Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it. [93.34.88.225]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39d893f0a75sm5374033f8f.62.2025.04.10.09.30.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 09:30:55 -0700 (PDT) From: Christian Marangi To: "Chester A. Unal" , Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Christian Marangi Subject: [net-next PATCH 2/6] net: dsa: mt7530: move pkt size and rx err MIB counter to rmon stats API Date: Thu, 10 Apr 2025 18:30:10 +0200 Message-ID: <20250410163022.3695-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250410163022.3695-1-ansuelsmth@gmail.com> References: <20250410163022.3695-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250410_093057_358063_68BF1487 X-CRM114-Status: GOOD ( 14.23 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Drop custom handling of packet size and RX error MIB counter and handle them in the standard .get_rmon_stats API The MIB entry are dropped from the custom MIB table and converted to a define providing only the MIB offset. Signed-off-by: Christian Marangi --- drivers/net/dsa/mt7530.c | 71 +++++++++++++++++++++++++++++++--------- drivers/net/dsa/mt7530.h | 17 ++++++++++ 2 files changed, 72 insertions(+), 16 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 85a040853194..54a6ddc380e9 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -44,12 +44,6 @@ static const struct mt7530_mib_desc mt7530_mib[] = { MIB_DESC(1, 0x24, "TxLateCollision"), MIB_DESC(1, 0x28, "TxExcessiveCollistion"), MIB_DESC(1, 0x2c, "TxPause"), - MIB_DESC(1, 0x30, "TxPktSz64"), - MIB_DESC(1, 0x34, "TxPktSz65To127"), - MIB_DESC(1, 0x38, "TxPktSz128To255"), - MIB_DESC(1, 0x3c, "TxPktSz256To511"), - MIB_DESC(1, 0x40, "TxPktSz512To1023"), - MIB_DESC(1, 0x44, "Tx1024ToMax"), MIB_DESC(2, 0x48, "TxBytes"), MIB_DESC(1, 0x60, "RxDrop"), MIB_DESC(1, 0x64, "RxFiltering"), @@ -58,17 +52,7 @@ static const struct mt7530_mib_desc mt7530_mib[] = { MIB_DESC(1, 0x70, "RxBroadcast"), MIB_DESC(1, 0x74, "RxAlignErr"), MIB_DESC(1, 0x78, "RxCrcErr"), - MIB_DESC(1, 0x7c, "RxUnderSizeErr"), - MIB_DESC(1, 0x80, "RxFragErr"), - MIB_DESC(1, 0x84, "RxOverSzErr"), - MIB_DESC(1, 0x88, "RxJabberErr"), MIB_DESC(1, 0x8c, "RxPause"), - MIB_DESC(1, 0x90, "RxPktSz64"), - MIB_DESC(1, 0x94, "RxPktSz65To127"), - MIB_DESC(1, 0x98, "RxPktSz128To255"), - MIB_DESC(1, 0x9c, "RxPktSz256To511"), - MIB_DESC(1, 0xa0, "RxPktSz512To1023"), - MIB_DESC(1, 0xa4, "RxPktSz1024ToMax"), MIB_DESC(2, 0xa8, "RxBytes"), MIB_DESC(1, 0xb0, "RxCtrlDrop"), MIB_DESC(1, 0xb4, "RxIngressDrop"), @@ -829,6 +813,60 @@ mt7530_get_sset_count(struct dsa_switch *ds, int port, int sset) return ARRAY_SIZE(mt7530_mib); } +static const struct ethtool_rmon_hist_range mt7530_rmon_ranges[] = { + { 0, 64 }, + { 65, 127 }, + { 128, 255 }, + { 256, 511 }, + { 512, 1023 }, + { 1024, MT7530_MAX_MTU }, + {} +}; + +static void mt7530_get_rmon_stats(struct dsa_switch *ds, int port, + struct ethtool_rmon_stats *rmon_stats, + const struct ethtool_rmon_hist_range **ranges) +{ + struct mt7530_priv *priv = ds->priv; + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_UNDER_SIZE_ERR, 1, + &rmon_stats->undersize_pkts); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_OVER_SZ_ERR, 1, + &rmon_stats->oversize_pkts); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_FRAG_ERR, 1, + &rmon_stats->fragments); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_JABBER_ERR, 1, + &rmon_stats->jabbers); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_PKT_SZ_64, 1, + &rmon_stats->hist[0]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_PKT_SZ_65_TO_127, 1, + &rmon_stats->hist[1]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_PKT_SZ_128_TO_255, 1, + &rmon_stats->hist[2]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_PKT_SZ_256_TO_511, 1, + &rmon_stats->hist[3]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_PKT_SZ_512_TO_1023, 1, + &rmon_stats->hist[4]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_PKT_SZ_1024_TO_MAX, 1, + &rmon_stats->hist[5]); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_PKT_SZ_64, 1, + &rmon_stats->hist_tx[0]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_PKT_SZ_65_TO_127, 1, + &rmon_stats->hist_tx[1]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_PKT_SZ_128_TO_255, 1, + &rmon_stats->hist_tx[2]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_PKT_SZ_256_TO_511, 1, + &rmon_stats->hist_tx[3]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_PKT_SZ_512_TO_1023, 1, + &rmon_stats->hist_tx[4]); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_PKT_SZ_1024_TO_MAX, 1, + &rmon_stats->hist_tx[5]); + + *ranges = mt7530_rmon_ranges; +} + static int mt7530_set_ageing_time(struct dsa_switch *ds, unsigned int msecs) { @@ -3115,6 +3153,7 @@ const struct dsa_switch_ops mt7530_switch_ops = { .get_strings = mt7530_get_strings, .get_ethtool_stats = mt7530_get_ethtool_stats, .get_sset_count = mt7530_get_sset_count, + .get_rmon_stats = mt7530_get_rmon_stats, .set_ageing_time = mt7530_set_ageing_time, .port_enable = mt7530_port_enable, .port_disable = mt7530_port_disable, diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index c3ea403d7acf..9bc90d1678f7 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -423,6 +423,23 @@ enum mt7530_vlan_port_acc_frm { /* Register for MIB */ #define MT7530_PORT_MIB_COUNTER(x) (0x4000 + (x) * 0x100) +/* Each define is an offset of MT7530_PORT_MIB_COUNTER */ +#define MT7530_PORT_MIB_TX_PKT_SZ_64 0x30 +#define MT7530_PORT_MIB_TX_PKT_SZ_65_TO_127 0x34 +#define MT7530_PORT_MIB_TX_PKT_SZ_128_TO_255 0x38 +#define MT7530_PORT_MIB_TX_PKT_SZ_256_TO_511 0x3c +#define MT7530_PORT_MIB_TX_PKT_SZ_512_TO_1023 0x40 +#define MT7530_PORT_MIB_TX_PKT_SZ_1024_TO_MAX 0x44 +#define MT7530_PORT_MIB_RX_UNDER_SIZE_ERR 0x7c +#define MT7530_PORT_MIB_RX_FRAG_ERR 0x80 +#define MT7530_PORT_MIB_RX_OVER_SZ_ERR 0x84 +#define MT7530_PORT_MIB_RX_JABBER_ERR 0x88 +#define MT7530_PORT_MIB_RX_PKT_SZ_64 0x90 +#define MT7530_PORT_MIB_RX_PKT_SZ_65_TO_127 0x94 +#define MT7530_PORT_MIB_RX_PKT_SZ_128_TO_255 0x98 +#define MT7530_PORT_MIB_RX_PKT_SZ_256_TO_511 0x9c +#define MT7530_PORT_MIB_RX_PKT_SZ_512_TO_1023 0xa0 +#define MT7530_PORT_MIB_RX_PKT_SZ_1024_TO_MAX 0xa4 #define MT7530_MIB_CCR 0x4fe0 #define CCR_MIB_ENABLE BIT(31) #define CCR_RX_OCT_CNT_GOOD BIT(7) From patchwork Thu Apr 10 16:30:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 14047089 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 83F97C369A2 for ; Thu, 10 Apr 2025 17:42:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ViHFmfH38BAXSZxC5pAxZ33XZ4lXrW0Sii8iMmrd1Zo=; b=Y/LUh2faJkglbX2WLPIzQjwoiS cmovosHuxQfLAAd5eEERjncd5YbDtDjed84DWO50COzWrBttOyPuY2+V8naCglSDuRG7ut8J6BMs4 WxclxSkl7ufn6FlQ+qsRjGu2q3kiFYSJunTEdeF1WBtduQxKknqvrJ+3DYzz/oOX+fGDn7nFM0JSB 9VixgbPTfAQXlJPSIssxBYLliqDV9Q4UigWiue3HCEgKSq4KceWkSm57zfwGwMs74ABUto7g2QBt6 Y5Tt6Qjft3ShaclSBnKPnnar27FsaUTs3Uvgp3kHMSY5jKpiaOFWEPXiNf+mmtiTKAlMWscGSR9KB GgZJRt7Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2vuk-0000000BPva-1HPS; Thu, 10 Apr 2025 17:42:10 +0000 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2unq-0000000BCmy-2Nol; Thu, 10 Apr 2025 16:30:59 +0000 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-39ac9aea656so948302f8f.3; Thu, 10 Apr 2025 09:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744302657; x=1744907457; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ViHFmfH38BAXSZxC5pAxZ33XZ4lXrW0Sii8iMmrd1Zo=; b=YQIS80ssC/BeI36PtZs9IYQ2H7p1sBVJ3UBDxC1Fshh7r8JmOBc02qyYhcpbecBkxr oc144hH5wB++ornVNln5UbGMQlGmXXORVY99yU+TeKXQ3nRXQG7Te6De4as4PrttzCSj Y7Uua2417AJQNEGoN2xEw6efnSmb9z0hj8mRYuI5l9q8Niut//RjKwKu7TyRynFGl1Tb aE4zxDTNzKrf9bt1SUQqruBoA88tdLFgQbi9avNjTrNun7NYIrLzC5LtmKt9wcS++eRm iMsm2DLiFj7p/xzTywA5rt2L9vcQFxGSUZV9nLlmG8iV+1/6mpxZ5xxLE8dMimJM6TZ7 mkNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744302657; x=1744907457; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ViHFmfH38BAXSZxC5pAxZ33XZ4lXrW0Sii8iMmrd1Zo=; b=XYsfuVBe/v1gYjJ0g9C7R24685VwPVcLqymY2D0QuGce6mUNF/FZOYz6a2UksFjgIq yo6LJiC9HeRIGm5ClyeKyyEIsG1GKl02b7khAt2SCeJNeIWiwu+iww9lLloqyp1qxTLN aEjUHnglPeDYJmgx5kKZHEcuknuAYoIR7mKXK2FHt3b/Rmhv/pZC4/IKBySqrYlYVEJ3 AVDErAXGW+rKBBB8tWjv2dpWDICNIoMMvzp122jmJrmRECcecTv1jjGSQDGVGv7MisQn h0wOc73mTfhsUcScjbFQv8tHlCtSFKNwj77bsRUK6SscJle1BUXksVyNdBT7m8KBSjWP 1TQg== X-Forwarded-Encrypted: i=1; AJvYcCVv2PuEfEeianVrrXae8TXj6ocmK2vkk843O25160RmbCv/RHU464OPEjjVf14sSlFd2Xeao19XzNZ2FhRXCTM=@lists.infradead.org, AJvYcCW7bysYPUx52YglynPUWJ+8S5yycye9T31LzifS5zPlVMzvH2TZHvCI9HGNL9yFzDRruSmS6F6FjuiLJb2i5i2U@lists.infradead.org X-Gm-Message-State: AOJu0YyTfyK/c76VaGcZOFBPdAXmm3BepuOh8NNjKRdLLfGxdJv227S4 8EsAzgTdDl5uQGs3rqWNIrcgcvyILCob9Tz3wWOHP+iVzeeO0E/6 X-Gm-Gg: ASbGncsuceXXnIDM1UEX28C/Q8dQ1Ksf3ulndHrPSy9lK6yirlNGNRKNvBAYjLbHWiL JwjLnEHE3Mi9cVZc3gBi79ydWN7+dxsMHCiIMJ/UjJz+Slj5t9z0IPcBrpvT77ADqSxnyrRbyDK 1urLitV0eg6CwR08elEDQl1F5L/Y2e+TL5jzCGs6UBQxFw4DRgf+bCg+ZYPaRFLpv4TmBku0KVD l7ISJHwVdi3e51/rJUIiiYIC21h9h9zj28kR40J7yjFBnxu2jSykgLD9IEIHFhbjH6k++5Z3lhP /qm4pEx2hnFVXoLuccpGkbvvaDZMdte7rqCcAGGb70TRoC5NE8w6UU6yHu5Q0QxP9K63FsiNXI1 tGyByNlUJfA== X-Google-Smtp-Source: AGHT+IHPWlln/QzRNYimnmyb+Y3Gk2occy0aK6leRTpIX0XYqPpPMw7MZql9NWWJQQmfp/HL3MfMOQ== X-Received: by 2002:a05:6000:2507:b0:39c:12ce:6a0 with SMTP id ffacd0b85a97d-39d8fd470a3mr3124611f8f.21.1744302656743; Thu, 10 Apr 2025 09:30:56 -0700 (PDT) Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it. [93.34.88.225]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39d893f0a75sm5374033f8f.62.2025.04.10.09.30.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 09:30:56 -0700 (PDT) From: Christian Marangi To: "Chester A. Unal" , Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Christian Marangi Subject: [net-next PATCH 3/6] net: dsa: mt7530: move pause MIB counter to eth_ctrl stats API Date: Thu, 10 Apr 2025 18:30:11 +0200 Message-ID: <20250410163022.3695-4-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250410163022.3695-1-ansuelsmth@gmail.com> References: <20250410163022.3695-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250410_093058_605722_4ECBC985 X-CRM114-Status: GOOD ( 14.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Drop custom handling of TX/RX pause frame MIB counter and handle them in the standard .get_eth_ctrl_stats API The MIB entry are dropped from the custom MIB table and converted to a define providing only the MIB offset. Signed-off-by: Christian Marangi --- drivers/net/dsa/mt7530.c | 15 +++++++++++++-- drivers/net/dsa/mt7530.h | 2 ++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 54a6ddc380e9..f183a604355e 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -43,7 +43,6 @@ static const struct mt7530_mib_desc mt7530_mib[] = { MIB_DESC(1, 0x20, "TxDeferred"), MIB_DESC(1, 0x24, "TxLateCollision"), MIB_DESC(1, 0x28, "TxExcessiveCollistion"), - MIB_DESC(1, 0x2c, "TxPause"), MIB_DESC(2, 0x48, "TxBytes"), MIB_DESC(1, 0x60, "RxDrop"), MIB_DESC(1, 0x64, "RxFiltering"), @@ -52,7 +51,6 @@ static const struct mt7530_mib_desc mt7530_mib[] = { MIB_DESC(1, 0x70, "RxBroadcast"), MIB_DESC(1, 0x74, "RxAlignErr"), MIB_DESC(1, 0x78, "RxCrcErr"), - MIB_DESC(1, 0x8c, "RxPause"), MIB_DESC(2, 0xa8, "RxBytes"), MIB_DESC(1, 0xb0, "RxCtrlDrop"), MIB_DESC(1, 0xb4, "RxIngressDrop"), @@ -867,6 +865,18 @@ static void mt7530_get_rmon_stats(struct dsa_switch *ds, int port, *ranges = mt7530_rmon_ranges; } +static void mt7530_get_eth_ctrl_stats(struct dsa_switch *ds, int port, + struct ethtool_eth_ctrl_stats *ctrl_stats) +{ + struct mt7530_priv *priv = ds->priv; + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_PAUSE, 1, + &ctrl_stats->MACControlFramesTransmitted); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_PAUSE, 1, + &ctrl_stats->MACControlFramesReceived); +} + static int mt7530_set_ageing_time(struct dsa_switch *ds, unsigned int msecs) { @@ -3154,6 +3164,7 @@ const struct dsa_switch_ops mt7530_switch_ops = { .get_ethtool_stats = mt7530_get_ethtool_stats, .get_sset_count = mt7530_get_sset_count, .get_rmon_stats = mt7530_get_rmon_stats, + .get_eth_ctrl_stats = mt7530_get_eth_ctrl_stats, .set_ageing_time = mt7530_set_ageing_time, .port_enable = mt7530_port_enable, .port_disable = mt7530_port_disable, diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 9bc90d1678f7..a651ad29b750 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -424,6 +424,7 @@ enum mt7530_vlan_port_acc_frm { /* Register for MIB */ #define MT7530_PORT_MIB_COUNTER(x) (0x4000 + (x) * 0x100) /* Each define is an offset of MT7530_PORT_MIB_COUNTER */ +#define MT7530_PORT_MIB_TX_PAUSE 0x2c #define MT7530_PORT_MIB_TX_PKT_SZ_64 0x30 #define MT7530_PORT_MIB_TX_PKT_SZ_65_TO_127 0x34 #define MT7530_PORT_MIB_TX_PKT_SZ_128_TO_255 0x38 @@ -434,6 +435,7 @@ enum mt7530_vlan_port_acc_frm { #define MT7530_PORT_MIB_RX_FRAG_ERR 0x80 #define MT7530_PORT_MIB_RX_OVER_SZ_ERR 0x84 #define MT7530_PORT_MIB_RX_JABBER_ERR 0x88 +#define MT7530_PORT_MIB_RX_PAUSE 0x8c #define MT7530_PORT_MIB_RX_PKT_SZ_64 0x90 #define MT7530_PORT_MIB_RX_PKT_SZ_65_TO_127 0x94 #define MT7530_PORT_MIB_RX_PKT_SZ_128_TO_255 0x98 From patchwork Thu Apr 10 16:30:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 14047090 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E7892C3601E for ; Thu, 10 Apr 2025 17:44:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=o+t0ThrIYIg8kRh+6KjbsFKWZobuMu8npO6bHx5WsaE=; b=Xn2sqmrReOjkytaKpkqxB5UIJl WUAR4dVHN8cWOVI+mI+iOqUDPI7uk0MrAQY8Qk1iBzOl/jY7vg7/TSwz2/cQAGfSpq9VXHGVvU6HQ JiZAkn8WcB7k5wBgfIIPL3L9f5epA0VHkvXFTX8/wYgsPsLoQIlIaO5F1JNG6CcQMdoFEmttsWEzI uNRMZoMRDPYftgICNvxJ/BFEjbp6j0U7KLfP4Iom5u7oDj2RPmAURci+dtG6YctkmheeSdWoLA6h9 YHa4x+x0PHGEMhk/80l9YLlh6MK9GD3FDHmB/hSKxAnbcTvjebBdqtwc6UN1OST2/vZDppxwX5S0S 26Z1z0rQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2vwV-0000000BQH6-2LEl; Thu, 10 Apr 2025 17:43:59 +0000 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2unr-0000000BCnb-3t1j; Thu, 10 Apr 2025 16:31:01 +0000 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43cfebc343dso8237825e9.2; Thu, 10 Apr 2025 09:30:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744302658; x=1744907458; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=o+t0ThrIYIg8kRh+6KjbsFKWZobuMu8npO6bHx5WsaE=; b=iukuGtDT6rZFEZ677t+yFveYin/WXNsxuKwRGSgGXWt3MB4ITWWZkC75GC0skuiRb4 F1aKYVL7C6OAuB9zoRPhKqGkh/voqsLSE1CnL5WkdHuIMNadnZu668/DfbukGnG+XnR/ H+YMlFU/rcy6f52QQnZf4kbDRJvOAFUVULAzf5/0bGdA1lHvG+Oz8ZeoHBkeOL6BycQO r5CZAJ7VvvqXOypLnZCnEGL3W1bmdCyLbdXJ1OPXYNUszZ07n9FdkA1R3UZvNrP8uBKU vjaOnH49vRGlvwjtbF8cA1CjhBcIVDzlp2QVoKD/pRbU9E5qtdU5l86otk09JPkIxr+c fOuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744302658; x=1744907458; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o+t0ThrIYIg8kRh+6KjbsFKWZobuMu8npO6bHx5WsaE=; b=Qlni5LSVD/jQU+4jxBSftfUVixRywGsIxYHXRMkyW+I+zTfA6tIOQD1oRZvE30MuUn yzwzyaId6YNxtjCnfDliBXIZ1owCRBh0/kYyO18xmsRH/1zcYOzd41H7DKiZKyYcTVnu TZK1WF5ofZlnAInHRp0Q6ok+JTyazmEnEcrfMXNLsQIbJIuqtQgZW6nWMZx99N43HFTI yGc3fIpo8uxUUo4U/9AxqRQ7xsxscdHiJXsHIZ9MF3KvVjUNVZWgxAnAMDOrxif9kP5C MjVQDB+RgyOW198S+ZwBxZrSI7a1OU4WW7Lqo/A6ZlrqMq1nBeJICp8jgsPs2PJfXGPi 0Hjg== X-Forwarded-Encrypted: i=1; AJvYcCWZG2oP9HLoifD7O5VBgF3/L+0j3iK4QUiRwYm2/fNFz/CoPOl/Co+BOhLsIu3eYv6vg29wRs5KGHguzPp0JDfz@lists.infradead.org, AJvYcCWs5aJ6O0XdCma8XhIP0vRgS34dviOwu/YrJVfHTcYVhNJreR74WBhDsGG9G4wAxJ9SyMnFf8PIcRtkQdD1NjU=@lists.infradead.org X-Gm-Message-State: AOJu0Yx8e07MtLqf74AVUPmT6nerLKXzErLNFOdzsmrTI12l0Q6smsQh Ki50seVGxQ1rT6Opxc5WdKH3e2LYf0YeOt2ndQRqkXhI4Wgx3iEJ X-Gm-Gg: ASbGncuP4Tbp1VDkEMHZ1xyf2mb6KG+K9k7mNCHpu9PtIdvDWhWshvI0wCYOVyLJKC+ 6XJPDWwi19MqljxI7Q3P/9HPagnUaEWZli9hea6b4h8h4Q2fuSC1sH/z4LLQ7BJTYj0fQ4VARRH WISGLGbtmiCNEqGW+xE3frUScU8vuB+E2aXwO/LctY+XKQs7toNbIcWbM3v4SbcnDymNxi2Fw9l tdVsPE9gKAgJidj53hxMIW/eWe2DEV8zG4c+49o80D6kk3bLhSiDNybJ7GIrLsg/6ICAhGJI2lN iqClW7lSBduBeNg9diuqFToY5mM1CZ4cXWXziC0E0QuU+pq1pn/etEfQG4gyzIjFQsl8hHVZtbr x4PwNp+Nzuw== X-Google-Smtp-Source: AGHT+IFY5aV83GlIg+n7ieI6jdJYgPToMMFEdF0UZ8l6w8maxikCyARfM8V5dWLEqlrZ22qBBqnhFw== X-Received: by 2002:a05:600c:190e:b0:43b:cb12:ba6d with SMTP id 5b1f17b1804b1-43f2d798f69mr35478345e9.3.1744302658070; Thu, 10 Apr 2025 09:30:58 -0700 (PDT) Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it. [93.34.88.225]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39d893f0a75sm5374033f8f.62.2025.04.10.09.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 09:30:57 -0700 (PDT) From: Christian Marangi To: "Chester A. Unal" , Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Christian Marangi Subject: [net-next PATCH 4/6] net: dsa: mt7530: move pkt stats and err MIB counter to eth_mac stats API Date: Thu, 10 Apr 2025 18:30:12 +0200 Message-ID: <20250410163022.3695-5-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250410163022.3695-1-ansuelsmth@gmail.com> References: <20250410163022.3695-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250410_093059_967603_8F2673F3 X-CRM114-Status: GOOD ( 14.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Drop custom handling of TX/RX packet stats and error MIB counter and handle them in the standard .get_eth_mac_stats API The MIB entry are dropped from the custom MIB table and converted to a define providing only the MIB offset. Signed-off-by: Christian Marangi --- drivers/net/dsa/mt7530.c | 70 ++++++++++++++++++++++++++++++++-------- drivers/net/dsa/mt7530.h | 14 ++++++++ 2 files changed, 70 insertions(+), 14 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index f183a604355e..2202c657930e 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -34,24 +34,10 @@ static struct mt753x_pcs *pcs_to_mt753x_pcs(struct phylink_pcs *pcs) static const struct mt7530_mib_desc mt7530_mib[] = { MIB_DESC(1, 0x00, "TxDrop"), MIB_DESC(1, 0x04, "TxCrcErr"), - MIB_DESC(1, 0x08, "TxUnicast"), - MIB_DESC(1, 0x0c, "TxMulticast"), - MIB_DESC(1, 0x10, "TxBroadcast"), MIB_DESC(1, 0x14, "TxCollision"), - MIB_DESC(1, 0x18, "TxSingleCollision"), - MIB_DESC(1, 0x1c, "TxMultipleCollision"), - MIB_DESC(1, 0x20, "TxDeferred"), - MIB_DESC(1, 0x24, "TxLateCollision"), - MIB_DESC(1, 0x28, "TxExcessiveCollistion"), - MIB_DESC(2, 0x48, "TxBytes"), MIB_DESC(1, 0x60, "RxDrop"), MIB_DESC(1, 0x64, "RxFiltering"), - MIB_DESC(1, 0x68, "RxUnicast"), - MIB_DESC(1, 0x6c, "RxMulticast"), - MIB_DESC(1, 0x70, "RxBroadcast"), - MIB_DESC(1, 0x74, "RxAlignErr"), MIB_DESC(1, 0x78, "RxCrcErr"), - MIB_DESC(2, 0xa8, "RxBytes"), MIB_DESC(1, 0xb0, "RxCtrlDrop"), MIB_DESC(1, 0xb4, "RxIngressDrop"), MIB_DESC(1, 0xb8, "RxArlDrop"), @@ -811,6 +797,61 @@ mt7530_get_sset_count(struct dsa_switch *ds, int port, int sset) return ARRAY_SIZE(mt7530_mib); } +static void mt7530_get_eth_mac_stats(struct dsa_switch *ds, int port, + struct ethtool_eth_mac_stats *mac_stats) +{ + struct mt7530_priv *priv = ds->priv; + + /* MIB counter doesn't provide a FramesTransmittedOK but instead + * provide stats for Unicast, Broadcast and Multicast frames separately. + * To simulate a global frame counter, read Unicast and addition Multicast + * and Broadcast later + */ + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_UNICAST, 1, + &mac_stats->FramesTransmittedOK); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_SINGLE_COLLISION, 1, + &mac_stats->SingleCollisionFrames); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_MULTIPLE_COLLISION, 1, + &mac_stats->MultipleCollisionFrames); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_UNICAST, 1, + &mac_stats->FramesReceivedOK); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_BYTES, 2, + &mac_stats->OctetsTransmittedOK); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_ALIGN_ERR, 1, + &mac_stats->AlignmentErrors); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_DEFERRED, 1, + &mac_stats->FramesWithDeferredXmissions); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_LATE_COLLISION, 1, + &mac_stats->LateCollisions); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_EXCESSIVE_COLLISION, 1, + &mac_stats->FramesAbortedDueToXSColls); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_BYTES, 2, + &mac_stats->OctetsReceivedOK); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_MULTICAST, 1, + &mac_stats->MulticastFramesXmittedOK); + mac_stats->FramesTransmittedOK += mac_stats->MulticastFramesXmittedOK; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_BROADCAST, 1, + &mac_stats->BroadcastFramesXmittedOK); + mac_stats->FramesTransmittedOK += mac_stats->BroadcastFramesXmittedOK; + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_MULTICAST, 1, + &mac_stats->MulticastFramesReceivedOK); + mac_stats->FramesReceivedOK += mac_stats->MulticastFramesReceivedOK; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_BROADCAST, 1, + &mac_stats->BroadcastFramesReceivedOK); + mac_stats->FramesReceivedOK += mac_stats->BroadcastFramesReceivedOK; +} + static const struct ethtool_rmon_hist_range mt7530_rmon_ranges[] = { { 0, 64 }, { 65, 127 }, @@ -3163,6 +3204,7 @@ const struct dsa_switch_ops mt7530_switch_ops = { .get_strings = mt7530_get_strings, .get_ethtool_stats = mt7530_get_ethtool_stats, .get_sset_count = mt7530_get_sset_count, + .get_eth_mac_stats = mt7530_get_eth_mac_stats, .get_rmon_stats = mt7530_get_rmon_stats, .get_eth_ctrl_stats = mt7530_get_eth_ctrl_stats, .set_ageing_time = mt7530_set_ageing_time, diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index a651ad29b750..0cc999fa1380 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -424,6 +424,14 @@ enum mt7530_vlan_port_acc_frm { /* Register for MIB */ #define MT7530_PORT_MIB_COUNTER(x) (0x4000 + (x) * 0x100) /* Each define is an offset of MT7530_PORT_MIB_COUNTER */ +#define MT7530_PORT_MIB_TX_UNICAST 0x08 +#define MT7530_PORT_MIB_TX_MULTICAST 0x0c +#define MT7530_PORT_MIB_TX_BROADCAST 0x10 +#define MT7530_PORT_MIB_TX_SINGLE_COLLISION 0x18 +#define MT7530_PORT_MIB_TX_MULTIPLE_COLLISION 0x1c +#define MT7530_PORT_MIB_TX_DEFERRED 0x20 +#define MT7530_PORT_MIB_TX_LATE_COLLISION 0x24 +#define MT7530_PORT_MIB_TX_EXCESSIVE_COLLISION 0x28 #define MT7530_PORT_MIB_TX_PAUSE 0x2c #define MT7530_PORT_MIB_TX_PKT_SZ_64 0x30 #define MT7530_PORT_MIB_TX_PKT_SZ_65_TO_127 0x34 @@ -431,6 +439,11 @@ enum mt7530_vlan_port_acc_frm { #define MT7530_PORT_MIB_TX_PKT_SZ_256_TO_511 0x3c #define MT7530_PORT_MIB_TX_PKT_SZ_512_TO_1023 0x40 #define MT7530_PORT_MIB_TX_PKT_SZ_1024_TO_MAX 0x44 +#define MT7530_PORT_MIB_TX_BYTES 0x48 /* 64 bytes */ +#define MT7530_PORT_MIB_RX_UNICAST 0x68 +#define MT7530_PORT_MIB_RX_MULTICAST 0x6c +#define MT7530_PORT_MIB_RX_BROADCAST 0x70 +#define MT7530_PORT_MIB_RX_ALIGN_ERR 0x74 #define MT7530_PORT_MIB_RX_UNDER_SIZE_ERR 0x7c #define MT7530_PORT_MIB_RX_FRAG_ERR 0x80 #define MT7530_PORT_MIB_RX_OVER_SZ_ERR 0x84 @@ -442,6 +455,7 @@ enum mt7530_vlan_port_acc_frm { #define MT7530_PORT_MIB_RX_PKT_SZ_256_TO_511 0x9c #define MT7530_PORT_MIB_RX_PKT_SZ_512_TO_1023 0xa0 #define MT7530_PORT_MIB_RX_PKT_SZ_1024_TO_MAX 0xa4 +#define MT7530_PORT_MIB_RX_BYTES 0xa8 /* 64 bytes */ #define MT7530_MIB_CCR 0x4fe0 #define CCR_MIB_ENABLE BIT(31) #define CCR_RX_OCT_CNT_GOOD BIT(7) From patchwork Thu Apr 10 16:30:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 14047109 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2B91EC369A2 for ; Thu, 10 Apr 2025 17:45:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=J5wCdgkj1tLGVgRC6kEKRulIXxRtilUymkai9Lqmc7k=; b=EVVmLJSzTJhYiEWY6rcdkOBElf TCXSa9HyzJOB7gpsGMHn9Rtdo7SC5rx+1lEnIPTBfF254Rj1TMxye2EE/Gh4uZrllHHha2BIwoXIp nTANSJPEPq7o3vYpQwxL3Bgnm/ArovrOuXTYI8Zv0Pz7O4Y9PC0iVAChP2D0z4kZw2aFtUoNgqQlC 5PFd+lpzCLbjd2mwRilkfrTBInMzRASJBNV7E1y+SalyaAUvjgtkXVUSWTXYngn1En5ZMhOEcsMhk UW67n57/DSaQbYnh4Ja9W6EWD09blCOTiZ9mRIV/z2ybipf46vRWRlKBTDJzzFEiMACA/b2obai01 aQiBYcvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2vyF-0000000BQds-2LWF; Thu, 10 Apr 2025 17:45:47 +0000 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2unt-0000000BCo3-0N1N; Thu, 10 Apr 2025 16:31:02 +0000 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-3995ff6b066so540018f8f.3; Thu, 10 Apr 2025 09:31:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744302659; x=1744907459; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J5wCdgkj1tLGVgRC6kEKRulIXxRtilUymkai9Lqmc7k=; b=IsKYKTvPxu1bX4CjCsM6R0ESNCa0HbhSmt6AwwzPHxUsBCLaHjH5hc77kGhQjorHxv 8L1/FrG1omLNWt+N5rVYEny59wIohzD3SpddHILPKzXX3/WacBfK2hPaJWPmM+xEJEvg 4U9H+lc/czd6jXzbUC49VeGvWeA9O6Zuo0j6BKRy4oUHn7BKEmcF0tFCjd5JMPByyG9Y f4/s/zf2VabQk8ThAwxWzQfYHpRv1B5QbGd6/GSJ/JqQj7QnsxIiHuzZ3VmgzPkbC9Kj 64+ddbPmcXgo0oEDKge7KSAjoi1SuwQMot8AzROXCvAqkB7elBk7vEpsdYLaK0EO5dRY yTbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744302659; x=1744907459; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J5wCdgkj1tLGVgRC6kEKRulIXxRtilUymkai9Lqmc7k=; b=OgmB6QPuoxx/4QDctlGgnR+bprQ8oik0JzGorv75Uy7gFJUCOFsB327NHAMrpUD50Z tkpgm2od6EPJbSbBfvMGpRK0AihBhmvh2T6qRjptPd7Wt6YEvJW9ef7KK0piyUfYvimJ gEfYl0ct6/5T6gtxa6FSxvY80decygSi2khZuMt0pQ0Z5CVc+YBdAEqzZXUSxDN+JRIj DQngIRTdpdxUBXtj6DovflsQ8tqPItDoObmWmQLsfz63tw1xKzFu/caMAFr/fQ3yUA8c RyQIctltkGGXUNWwOUV+rqxbB3ZM7aUF5AMFOgyAWD0mtLTPC1JcPatwtBzfjFM2axLI 64JQ== X-Forwarded-Encrypted: i=1; AJvYcCWlptxLrFUEwDkTpWgX9eEPOBlatatWrlo8jUs6ymKwR0VdMo5rZlwVNAltj3HbnDzfNFvcnKUVVgH29EHbDB30@lists.infradead.org, AJvYcCXr4esJnorhO0uSOQ00CgvMHH2B6geSnNxa1ginrXRnLxzuqXFckKFVYAWFc1LqCMvaonukUe1MqFq3OReQhgk=@lists.infradead.org X-Gm-Message-State: AOJu0YxUBhuIU7x1zx/pIMuF/RnDIJvk2AI289yYsftPsQEVCSljchNu SKolg5IiO60IytjmJStVy7+T6kAIR51tkZ6Q/68WveOMjDueKiwF X-Gm-Gg: ASbGncsP6j3ZO5hY7T2ipG06vkJidJEpSlv9bWxKkexnMCltfgrYsHOPjxvY80GpigP hu2GkYKFfeYbEFYKMd3nwP31Yc87yZ0KsNt848yxihBZP9SsaenYn6D94eyNkHJ9k1Wp9N8nX+J t6LZgiG7g9BVrxvTEchiKCMmN4bMqLJ3IvSOlrN7SSYbILevfkK60K2YT8mMaqG5+r2ocH8pSwV jCDHkdKv3vwtb3PDMNHCNX8O81P/w5/mwSFNSCEpv207DljWzzzKri0L3yWC79i8/7XJdR5HZe6 pDxYJfh80l8kYrbRxQCEBKVNoEB9d3r90/5nDIeFn1Xc7ngO24z1nwIALWUEmU4kvx4gpHWRqFz JXMf82iyhkw== X-Google-Smtp-Source: AGHT+IFWV+rbSMlqhfkoULEzkNSZq5SXSEPgsO8dHqya+MOqyfnGDk6SISRU5Fy2AR50TnIhmQMcUg== X-Received: by 2002:a5d:64cd:0:b0:390:fc83:a070 with SMTP id ffacd0b85a97d-39d8f2254d1mr2958848f8f.0.1744302659288; Thu, 10 Apr 2025 09:30:59 -0700 (PDT) Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it. [93.34.88.225]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39d893f0a75sm5374033f8f.62.2025.04.10.09.30.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 09:30:58 -0700 (PDT) From: Christian Marangi To: "Chester A. Unal" , Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Christian Marangi Subject: [net-next PATCH 5/6] net: dsa: mt7530: move remaining MIB counter to define Date: Thu, 10 Apr 2025 18:30:13 +0200 Message-ID: <20250410163022.3695-6-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250410163022.3695-1-ansuelsmth@gmail.com> References: <20250410163022.3695-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250410_093101_138523_9D9AE1F9 X-CRM114-Status: GOOD ( 12.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org For consistency with the other MIB counter, move also the remaining MIB counter to define and update the custom MIB table. Signed-off-by: Christian Marangi --- drivers/net/dsa/mt7530.c | 18 +++++++++--------- drivers/net/dsa/mt7530.h | 9 +++++++++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 2202c657930e..fdceefb2083c 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -32,15 +32,15 @@ static struct mt753x_pcs *pcs_to_mt753x_pcs(struct phylink_pcs *pcs) /* String, offset, and register size in bytes if different from 4 bytes */ static const struct mt7530_mib_desc mt7530_mib[] = { - MIB_DESC(1, 0x00, "TxDrop"), - MIB_DESC(1, 0x04, "TxCrcErr"), - MIB_DESC(1, 0x14, "TxCollision"), - MIB_DESC(1, 0x60, "RxDrop"), - MIB_DESC(1, 0x64, "RxFiltering"), - MIB_DESC(1, 0x78, "RxCrcErr"), - MIB_DESC(1, 0xb0, "RxCtrlDrop"), - MIB_DESC(1, 0xb4, "RxIngressDrop"), - MIB_DESC(1, 0xb8, "RxArlDrop"), + MIB_DESC(1, MT7530_PORT_MIB_TX_DROP, "TxDrop"), + MIB_DESC(1, MT7530_PORT_MIB_TX_CRC_ERR, "TxCrcErr"), + MIB_DESC(1, MT7530_PORT_MIB_TX_COLLISION, "TxCollision"), + MIB_DESC(1, MT7530_PORT_MIB_RX_DROP, "RxDrop"), + MIB_DESC(1, MT7530_PORT_MIB_RX_FILTERING, "RxFiltering"), + MIB_DESC(1, MT7530_PORT_MIB_RX_CRC_ERR, "RxCrcErr"), + MIB_DESC(1, MT7530_PORT_MIB_RX_CTRL_DROP, "RxCtrlDrop"), + MIB_DESC(1, MT7530_PORT_MIB_RX_INGRESS_DROP, "RxIngressDrop"), + MIB_DESC(1, MT7530_PORT_MIB_RX_ARL_DROP, "RxArlDrop"), }; static void diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h index 0cc999fa1380..d4b838a055ad 100644 --- a/drivers/net/dsa/mt7530.h +++ b/drivers/net/dsa/mt7530.h @@ -424,9 +424,12 @@ enum mt7530_vlan_port_acc_frm { /* Register for MIB */ #define MT7530_PORT_MIB_COUNTER(x) (0x4000 + (x) * 0x100) /* Each define is an offset of MT7530_PORT_MIB_COUNTER */ +#define MT7530_PORT_MIB_TX_DROP 0x00 +#define MT7530_PORT_MIB_TX_CRC_ERR 0x04 #define MT7530_PORT_MIB_TX_UNICAST 0x08 #define MT7530_PORT_MIB_TX_MULTICAST 0x0c #define MT7530_PORT_MIB_TX_BROADCAST 0x10 +#define MT7530_PORT_MIB_TX_COLLISION 0x14 #define MT7530_PORT_MIB_TX_SINGLE_COLLISION 0x18 #define MT7530_PORT_MIB_TX_MULTIPLE_COLLISION 0x1c #define MT7530_PORT_MIB_TX_DEFERRED 0x20 @@ -440,10 +443,13 @@ enum mt7530_vlan_port_acc_frm { #define MT7530_PORT_MIB_TX_PKT_SZ_512_TO_1023 0x40 #define MT7530_PORT_MIB_TX_PKT_SZ_1024_TO_MAX 0x44 #define MT7530_PORT_MIB_TX_BYTES 0x48 /* 64 bytes */ +#define MT7530_PORT_MIB_RX_DROP 0x60 +#define MT7530_PORT_MIB_RX_FILTERING 0x64 #define MT7530_PORT_MIB_RX_UNICAST 0x68 #define MT7530_PORT_MIB_RX_MULTICAST 0x6c #define MT7530_PORT_MIB_RX_BROADCAST 0x70 #define MT7530_PORT_MIB_RX_ALIGN_ERR 0x74 +#define MT7530_PORT_MIB_RX_CRC_ERR 0x78 #define MT7530_PORT_MIB_RX_UNDER_SIZE_ERR 0x7c #define MT7530_PORT_MIB_RX_FRAG_ERR 0x80 #define MT7530_PORT_MIB_RX_OVER_SZ_ERR 0x84 @@ -456,6 +462,9 @@ enum mt7530_vlan_port_acc_frm { #define MT7530_PORT_MIB_RX_PKT_SZ_512_TO_1023 0xa0 #define MT7530_PORT_MIB_RX_PKT_SZ_1024_TO_MAX 0xa4 #define MT7530_PORT_MIB_RX_BYTES 0xa8 /* 64 bytes */ +#define MT7530_PORT_MIB_RX_CTRL_DROP 0xb0 +#define MT7530_PORT_MIB_RX_INGRESS_DROP 0xb4 +#define MT7530_PORT_MIB_RX_ARL_DROP 0xb8 #define MT7530_MIB_CCR 0x4fe0 #define CCR_MIB_ENABLE BIT(31) #define CCR_RX_OCT_CNT_GOOD BIT(7) From patchwork Thu Apr 10 16:30:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 14047110 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 647E1C3601E for ; Thu, 10 Apr 2025 17:47:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8xP5HKMU4Cr0Wg2B5uZWRhwyFTU2Cp05IOS2+VcVHgI=; b=BhZgt95/CXLL8oB6G0EOuCpCLk ij+ZZNtxyyRGTH5COXyPNSsXVOV3XpgUJjATQ5Ox3LkAsrNGcg1/GJRUR+g3UIFQfPoK21PpeWdX+ ISlfOcN7buhHdeyJt5OOM0AoIISNmOJBGDjii5BB5ONzz+UTNmiw/q2PqKhqsylLpwYqzE32fW1Iw evcearWjl5jqlEWJlxa7moe8YnghuuxKLw29Uqm/T4r+VWivG1Aka5WJoeEgxAqDWZpfMNabs+yA1 aW/lIgAP2qejpmn7w2hNQJSNuwiw9LUubiQbSiifcHDqudcoaxipzcvm1RPlzsIbHO6YrXsgzNBFf 9SRrr2JA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2w00-0000000BQyR-2YcP; Thu, 10 Apr 2025 17:47:36 +0000 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2unu-0000000BCom-24ph; Thu, 10 Apr 2025 16:31:04 +0000 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3914a5def6bso582145f8f.1; Thu, 10 Apr 2025 09:31:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744302661; x=1744907461; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8xP5HKMU4Cr0Wg2B5uZWRhwyFTU2Cp05IOS2+VcVHgI=; b=cUNPitiZww3J3nqacro6ekbiciaF9Q8z3tKec+QsetktJsPJ36gqupnUlLOWvHmkMH iIOSjMt9d1JK4ABddKkliO/vtpxrnFbzgtGByb+VsWrTTISbfIDg2gSTL/qQ/QM/lAqF Yrsg2YO79dZAACl/MmzVV4+MhVHoYJy2T9if0nytNdlrxN6i3BmiJuCByvKr1CxUz9Xs Bt+aGiF/sYDUDzByXDy3mNnf2VtXOXydMitMzorJkAEWa9fYg0cW2RR+VA57K5G8/DUt 20PKTRTk3FegfWCPhx672klAU6ON7lEm2LY2Y0O/dkxoSv9CO8ka5MjbLNueEG+vW7Tx A2tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744302661; x=1744907461; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8xP5HKMU4Cr0Wg2B5uZWRhwyFTU2Cp05IOS2+VcVHgI=; b=I/kylnHIeyPdM3dITjO+Egt1sUuNdLfsnZIcFHQOeQ5F/At/UxdM0Q1YdMlwXuv1FW udn/3maQowCylBvLVKhCb46CTPO3eXRWZGTJLgMZQ91F8fGkpE47hdgBV3QDphiFdXJ8 gIITPy/B4C4BhwK+XIayK7RzRdx2SUMhAAae6Av8eCX0CBotDNyHc65z0eMKAwC0l/ZA Dsjh+9yANpmGrGZ0Gi8PsLnTi5DYObG3ylEwc5B2poI31MRzdMcObSgkjDOrSkHmja2L 4iBisllbrR487ZiL37Zg619wk5e5ARXrdEDK6Y85PuYia2iStlGDxHManiJNfIV4c/SJ JTMg== X-Forwarded-Encrypted: i=1; AJvYcCUlcwlDHDLZYH1SQE7CdHqWJV3qdhqmFvHKR78FLh6xCepHyRRotpKo2QDEn8HtNlW7bIzkvPdLU8fkgu9DOoE=@lists.infradead.org, AJvYcCXDBCIS05Khq/nJV092CZJoHK7y/lo4RKZo+1H9aTTj8SDqPiP1CExg3EuoAmNWAvpQ7IDOoOBAFAFU33FvVVMD@lists.infradead.org X-Gm-Message-State: AOJu0YxLZXvMjRepeBzkhibEQzPmtjKLUl2ydt92NDFrm3cnsd+oaA7T fvmFAnzkZQ/20zDw9tqlYFxNvi3UFlmx25cOfn9/2YHt23Icg6wv X-Gm-Gg: ASbGncuej9x0ymKChstBGU6VBshTsq2wU70u7AcfYBc73fqOxrAuqRW6KVBQVdDF/62 a43N31aisbsLZdUnUCDUSKyNOaqVX9STUbozsM6wP0HW1DdsPWApaxZydPYIByrFEp7dSblHamP uuRX5lmOGqLVJio0lqc2Pepiz9NLmknHirYNSt3t9LNM6mlAk6+d2teDxruBvAfVv66fsFLclYq F4nMnoD7XqJDIGxllPAb6sBVJxpYkw0YnLXjwqCaLG/KByXUVn6SpkMq52SqpiAUfU11x30Rl7h tmIphzT+dwV1dIRgypHdVMaY/o1mEtnZ69smaH54EmQjX8JGghh35dba3O8Y8P9MvSiPZYIntwZ VkaqESS2p6g== X-Google-Smtp-Source: AGHT+IFLZORQGygpuGXuuMnpMFaA0HiTdtnbUlTXBQlP9aBu0HOw17B9WhsebA8iQM8vk0MLY/KEUg== X-Received: by 2002:a05:6000:248a:b0:39d:724f:a8cd with SMTP id ffacd0b85a97d-39d8f4993d5mr3238673f8f.35.1744302660529; Thu, 10 Apr 2025 09:31:00 -0700 (PDT) Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it. [93.34.88.225]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39d893f0a75sm5374033f8f.62.2025.04.10.09.30.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Apr 2025 09:31:00 -0700 (PDT) From: Christian Marangi To: "Chester A. Unal" , Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Cc: Christian Marangi Subject: [net-next PATCH 6/6] net: dsa: mt7530: implement .get_stats64 Date: Thu, 10 Apr 2025 18:30:14 +0200 Message-ID: <20250410163022.3695-7-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250410163022.3695-1-ansuelsmth@gmail.com> References: <20250410163022.3695-1-ansuelsmth@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250410_093102_536523_38F1F2A2 X-CRM114-Status: GOOD ( 12.32 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org It was reported that the internally calculated counter might differ from the real one from the Switch MIB. This can happen if the switch directly forward packets between the ports or offload small packets like ARP request. In such case, the kernel counter will desync compared to the real one transmitted and received by the Switch. To correctly provide the real info to the kernel, implement .get_stats64 that will directly read the current MIB counter from the switch register. Signed-off-by: Christian Marangi --- drivers/net/dsa/mt7530.c | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index fdceefb2083c..0a33ca1dd7ca 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -906,6 +906,51 @@ static void mt7530_get_rmon_stats(struct dsa_switch *ds, int port, *ranges = mt7530_rmon_ranges; } +static void mt7530_get_stats64(struct dsa_switch *ds, int port, + struct rtnl_link_stats64 *storage) +{ + struct mt7530_priv *priv = ds->priv; + uint64_t data; + + /* MIB counter doesn't provide a FramesTransmittedOK but instead + * provide stats for Unicast, Broadcast and Multicast frames separately. + * To simulate a global frame counter, read Unicast and addition Multicast + * and Broadcast later + */ + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_UNICAST, 1, + &storage->rx_packets); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_MULTICAST, 1, + &storage->multicast); + storage->rx_packets += storage->multicast; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_BROADCAST, 1, + &data); + storage->rx_packets += data; + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_UNICAST, 1, + &storage->tx_packets); + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_MULTICAST, 1, + &data); + storage->tx_packets += data; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_BROADCAST, 1, + &data); + storage->tx_packets += data; + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_BYTES, 2, + &storage->rx_bytes); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_BYTES, 2, + &storage->tx_bytes); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_DROP, 1, + &storage->rx_dropped); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_DROP, 1, + &storage->tx_dropped); + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_CRC_ERR, 1, + &storage->rx_crc_errors); +} + static void mt7530_get_eth_ctrl_stats(struct dsa_switch *ds, int port, struct ethtool_eth_ctrl_stats *ctrl_stats) { @@ -3207,6 +3252,7 @@ const struct dsa_switch_ops mt7530_switch_ops = { .get_eth_mac_stats = mt7530_get_eth_mac_stats, .get_rmon_stats = mt7530_get_rmon_stats, .get_eth_ctrl_stats = mt7530_get_eth_ctrl_stats, + .get_stats64 = mt7530_get_stats64, .set_ageing_time = mt7530_set_ageing_time, .port_enable = mt7530_port_enable, .port_disable = mt7530_port_disable,