From nobody Fri Dec 19 08:03:10 2025 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09A2B1EE7DD; Thu, 10 Apr 2025 16:30:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302657; cv=none; b=KG6aqB09tc55maTdnvqlg3H18vyKcT3qJUISxO1sfscX6F89+qW8O3tF5maBH/o1So0FjA1K6sMaLq5JIsJa7o0cm3fkTpK1OmpOQx59IU5IzaUoOB1KvnyD3kLLzdk68HSh4ccTY/Y/BCw2yui7qt4RAoei+JnfHBcBSwYQSRE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302657; c=relaxed/simple; bh=B8arKt5y0mBJQjZWMAQsUkboWOLniGJPsCAPDAVJip0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JSX7Z91RCGXSBGfs/Si1CF2LsTMRncERPVVAeSTy45c5w/0ZPt4FhqzzQnBW4jegeSJyJ5+kxlfbmHeNwsblP7vNEJ8Lvb0G/fu/gYUjI0kk4Cj7YkxqY04DZyHLhaPUK695QIcHU1Ageqcqn+5jF8dOlPANkvhDy72QeD60D24= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=X8NAJCn+; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="X8NAJCn+" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3914bc3e01aso552220f8f.2; 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=vger.kernel.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=X8NAJCn+C3pW4QocziFeCZ+sCp6o7qIeZl0ZDscwwK57k58VW3BHkIrEBVncKUQKlN 1mf7hdDDTee0xzsMpl/vEWnm77vUNlIAnhaGPpxSO2EkWlTebf3+Nh1MdLnxmDw6aw87 1+r+tMScc/9pnIjhcJHCiSSY7wbzqiKULYrsMtJ5/nH3/xdE+CG04L4eqaawyPgVPGTE PHtfZqp949f+COmLiBin96vJPOIgk+Mu8/Mvj+5DHdwCqu/ZO7Z8Tl8IYm1TSrXyV3wF 4IzPNYP7gxqTmp9i14Wz3GshbUZzZ1TVF+EjUHpt18D85yZQtgAau2UbDCdwrq9zyImm N4Xw== 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=AJB6uq+mf3u+ZL9Tlp2v8r576S4zhf6uxZkastzXtaBLdBMq8kPm4iNqUjcfoLQnOs mdJr1m7X2HGccw6II/VNIv0bUUQ1zwkaYaRPo+DgQgDNyJHwsVaYm+FVuboxV9bOnvC7 yu3OHHK5FA0Gw6pUct8s7O/5OGt5QA2z/9rD7jLBxEjLc2D4aSTNY/sp/KQwkc6aHmYP 4OS7+J3xATZTlkC1emB0cu4p/iXdIgj21d0sqwNW9lQTHjvLEm5cQUu+TeZ8VusS0yZ7 Fxyk6Ud3cvpE2e6cLbTEnNxlj+Sh/wybpXF9Q/4pIfrcxneLMDRqY05wqFjYIMUw0u7N oebw== X-Forwarded-Encrypted: i=1; AJvYcCUKvD9nrFVm/8dVel1SZ3trQH6MW4m8iqc7hfPDT6r07tdu0SYJmBsoGNFJ8+lzRNVht1Rwc1se@vger.kernel.org, AJvYcCV6wwQ5XwXZtkDa8qmJHlX2UVc5iqmoK5MwRp2FSKUzjOzQCtcEFP1T5hPyMJUfd9BfDYV4CT3t2Kb4cJE=@vger.kernel.org X-Gm-Message-State: AOJu0YwpFi60pQuw40ldjAGowYvek95ZM6YxCW7QSadOOtczhaZ4LID/ ZzfYRT/73KZlMmvWYYe6r6Syr7cw5VWCvfJl3UcdL/Pa2F/Te1Fi X-Gm-Gg: ASbGncuNrx20a6OyPPEC7WQF2Iz5ChDBVJ+PlHEvb3trcE9LKbN15tyw2ZjvkW4AyZx 2dcJC7g3VTus1ZWtDtB3XznOj22YTHPo7dDVHQVdzexUE1hM5o5TCtNjCKwLvpSrqb3+6xxUjuq yhlXzGuOcg6HVe4qhbfmKlOy6f4XCORmoeWPXz1gWUZr5DLlMlsPYvzXWJz+2liS7hZI14Pp9GO Jsr/UpW3LM/+/tkCgPDdTI6yGTfd1ejRjyZIcV8lfBMdHsbAhS8KboJWnUbjj+Op3sISPwATdeA pEllvoIZdS287rkp0RiN6p+C2wAajDmwGsFFc8yfnrkBFo+mFs/Ee6yAUExgTYxHT5HlO4JRaMs gIuQ4fgApKw== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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, u= 32 stringset, ethtool_puts(&data, mt7530_mib[i].name); } =20 +static void +mt7530_read_port_stats(struct mt7530_priv *priv, int port, + u32 offset, u8 size, uint64_t *data) +{ + u32 val, reg =3D MT7530_PORT_MIB_COUNTER(port) + offset; + + val =3D mt7530_read(priv, reg); + *data =3D val; + + if (size =3D=3D 2) { + val =3D mt7530_read(priv, reg + 4); + *data |=3D (u64)val << 32; + } +} + static void mt7530_get_ethtool_stats(struct dsa_switch *ds, int port, uint64_t *data) { struct mt7530_priv *priv =3D ds->priv; const struct mt7530_mib_desc *mib; - u32 reg, i; - u64 hi; + int i; =20 for (i =3D 0; i < ARRAY_SIZE(mt7530_mib); i++) { mib =3D &mt7530_mib[i]; - reg =3D MT7530_PORT_MIB_COUNTER(port) + mib->offset; =20 - data[i] =3D mt7530_read(priv, reg); - if (mib->size =3D=3D 2) { - hi =3D mt7530_read(priv, reg + 4); - data[i] |=3D hi << 32; - } + mt7530_read_port_stats(priv, port, mib->offset, mib->size, + data + i); } } =20 --=20 2.48.1 From nobody Fri Dec 19 08:03:10 2025 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C37C28153D; Thu, 10 Apr 2025 16:30:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302659; cv=none; b=Chm7o5M2U/LkPj6ZJcPEOoaxoisCPP8/VBS8o8pP37Y6Oucm/oB3EIwsRMmIHkHS3kNkpQNoGBDsrSgQ0zUYMKtslfkOg4zryMK2ymwGTV61Sh203PcoGnsVx2dhGjLcHMb327yKeGpbbyp27SacBEGYTizigFUmh2guucP0CBk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302659; c=relaxed/simple; bh=/w9OecnK4FmVNhCpOp6jS3YnQjKpvghNjowiKk7u+uM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RXf288FF8k/e5s/JzmxYBKpTsxotad9SAxYmWLrENlRdbAim3xsuezpEozX/UEbgSvPtyr4oQR8IbZDc/W0ml08SV+c0cZd0mRn4idG5HxoGTOLmsZFhOPbfUxIWb5EyiXylf3wAKSaxkoVExakItNh+fr2rvj2bKWeGaaIb8ag= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Rv+LCZN4; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Rv+LCZN4" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-43cfe63c592so11703015e9.2; Thu, 10 Apr 2025 09:30:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744302656; x=1744907456; darn=vger.kernel.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=Rv+LCZN4jEBCAi4AkGqkjGJsLqvfrTuW9EJUZyVta3GuUG5NKPMr+91L9cM9L+HAia +8Pu/WwSHq8Jobqb35EvjFJWB+gEsoah87x35J9r1+I3ciswjCtFLUD2EXut59ike/h1 7rEI6lmhhuWSFEYEDeu4nm9NJstuP6LP9UpTlASw0WB/QhMnYM2lGr78XdsvyVl9qVa+ 2tKQVZfyly7sjE1Cywvr3UDu8nUkp/fYzYusX+jHe+wagnXP5BtPFg2WAJRqjNnqLFiL f2Rm32Ds91QTVuHb9yBMy382O1hxEeScjVWru3nVPcfUGc8DtZcr6vaW1oSpOuihDUB2 N+oA== 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=em8zSLUxrMib+DcZ2bTOvlc6k6E+YMfTwNJcN4H5W31GljjTIpOLIIKL0qeHiHi9Or CQZfvzpDWMu8UNQLgedk++LWIKVjh7uh1EjuADumoCwo4NNz1FM/phVDJT+vJOtBwfGA k9ok3EGCIK/zbdRU/xHaHGSxVBceuaBnwdTV0z7/ZnFfZxWIR+cwNVrds3DP6bVX9slX YT31uD+S6VZxXyby1Ik6GMY+j8ib+8w3tx6JG2YaDwki2eGQtG/0uuKPk29Ucpg2+6+i iUGJQgRIa/eoruPNB6c3LaLcUhl6Q4AGoqCW63ONrl8Z8vGZvt6BdOb8gmv7/aShEb/0 YJkw== X-Forwarded-Encrypted: i=1; AJvYcCUchi1irihWoo+0IOB2+b6bYaTlLHJIQslEDeSsBdvQ5Wis29p4gDOdwpuZnK+PvkA6VmWkL+JI@vger.kernel.org, AJvYcCW5MbNfrlAZiCQFwawC+Ok/80kPKS0Q5CEpxp5CCCIBTn6cWAE1+E0KatNq2M7ziGDyk8eXBEd8f3bPZi0=@vger.kernel.org X-Gm-Message-State: AOJu0YzdbD3Xp7ZassrXd8fdWrGNUyn8nCV0xZJB7Wm5sU7VPQLkYx1U siyHXGdQwafL6CNg3bPR8EEeCamUfbZzMUnfgxnQLOWPEtwGTiiu X-Gm-Gg: ASbGncuq0Ec7EyYKypAHnBj79wQN8KDJXH7TXIqDAQ58+RdyG/Do4uF0gzD3TOJklJQ 8cx027X/J6URWaDsKbg3nQR9eZG+q8AK80nkNlK8Z2tCFctokmiINlOPBI4DBbAtkP+Ym2CNHl1 Wgz/ht/fZ25jJoRGyP7IvCU/uSwHos2CLIz/GTT629/9juFzkHNCJqb2zMdhPA3AavrGhcRS4AK gIPgUN8bB4NCwq6wEYhAzbH8iQ/46saA1MJbGUw+ndHHLXXuLvji7fCrzvtVRj5PhpRDxDpIwi7 mtbV3NvozzpjrJcRWBhQ9CTh1J9yB750AFXNQtYQUw5+kd1UhAmyqxZgXitsCPsp9vu7mQaODEA mX0edCuN8xg== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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[] =3D { 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[] =3D { 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); } =20 +static const struct ethtool_rmon_hist_range mt7530_rmon_ranges[] =3D { + { 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 =3D 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 =3D 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 =3D { .get_strings =3D mt7530_get_strings, .get_ethtool_stats =3D mt7530_get_ethtool_stats, .get_sset_count =3D mt7530_get_sset_count, + .get_rmon_stats =3D mt7530_get_rmon_stats, .set_ageing_time =3D mt7530_set_ageing_time, .port_enable =3D mt7530_port_enable, .port_disable =3D 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 { =20 /* 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) --=20 2.48.1 From nobody Fri Dec 19 08:03:10 2025 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DD8728FFF7; Thu, 10 Apr 2025 16:30:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302660; cv=none; b=EVwn8GKswX679cWnEiykoJrhDjae4mJpcxkz2YBcNEAqXv/mi3TDsvnmPpQX1Pw5rFQ+RLhfNNISHLzr+5B+xFcoyxhLXjM1Wqu6LROO1BgBJG1bLHGoJpknyhLlN/gCtAo+zTPTDP/RrtnOsHR7x1+AHm7hpYWBvhecdJ4nhmM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302660; c=relaxed/simple; bh=x1NGnsxiq3XODZrcpdPY8CFLV7LILCF+Jyd9E/F1GU0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=almVHkR1vyk90ruh4mucXnUTnHtQuO5uOHXXO2unIkTbD7a4k207xDYOKCbUbfvr0lbB7qbqqPSRHY7h1y4ehtZiGTfXXLRJ2+nUff7v3UvAOLwYTAQdZ5r8BHU1XdybRn7qreZAtkRigWu9ATk3VDwlTkS9XLvnmS6qZf0mbOg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aw6gvsAT; arc=none smtp.client-ip=209.85.221.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aw6gvsAT" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-39ac9aea656so948301f8f.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=vger.kernel.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=aw6gvsATwoaLoCdSxt0UYMaVZ1Kwt8GhjubHf2QBzqFR0O3hFwqhJXXMKPU/rbJvxg 952feE5mfZLbYjD8yxT/HOqyfDcjEKbX33XPXalT2TrexkWOli0ZfAleo09m/Y/4xw9r YYh+JqNBGiH2B6aGrB0FWiQCoi+N7/ce1U18cRMO93QMl8DdIRSz0MUxZpJmcbpdb8sP fu2UANn/OWHGWGXzpbGtmaAXkW2Wud3zUvuoTFeET5nK/F/2sUprWCn//v8FXzHBJug9 roeuKD9rBODHiKPVQXuI1VNSc8xcWjfxwqMexiRwPJjmXs56AL/wsNw4q7hNVg9/84oq do+g== 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=aSeEJmzEfI90XYdcwFxjWWHTRKIbeMgDJgg6FhmQJxyWRGhNE1pGF6cSN5uKV89iK2 Il0kc+qa2YFk8gy2cl/UhygdXr3GMruMkY6byfZNJaqC8FIYVQJS1qWQ6a1NDprAHsdW MyU6GcrIVPz5eQhcomONPYyys218xE2gFlURRkOSq6X3NAKdPwhLJlwZozdT1s4BWZN+ +eTIgHe+pdAD/X/YemajDg1rpWOQx+A+EEosA8YoPz+Dv22dwkS4b47lzXWtBpmSHkfy PdoxYtsEvvUd3aCx25yxZvETSUwNlBhKhdLFwkR9fpUcPYR0XVC299yqE8f1vkksbHzV dvMw== X-Forwarded-Encrypted: i=1; AJvYcCVlACAjdOZq8J620X0rhQWTHqefwjXu3mCpr2rbjBs12a4WjteLWhlkf9hAEjBNDV8f/J7uG8U1JQgMX94=@vger.kernel.org, AJvYcCXSSNRvN/zPZ/uDXfWwOhWFS60o+I5dXIc8L98LZaQ+0gmKtKJXm6kSrg6A0ELsgYORHbFn+L/3@vger.kernel.org X-Gm-Message-State: AOJu0Yx8is3k/qblRlUoTwtG3V6fjvRDKyz/MQLlMA3zD5OkXC+4KDTY tt5FRfhcs/48NTRrKM1W1p4bbWQeJfbog/WQZ5m+U5/f1cCk9WgJ X-Gm-Gg: ASbGncvQlAX1JG0Tg6MFUe9f/4KRtWJigvcJpd1PqH/8tMejm+rOhp6F+d1CBSKl4bG h1vmftfFSCcCPkXj5iIOJkJrrl03uA6Se12bw0+lF0B6UARbaDYolkFJR9SWclZW6sgE8/lQY5m qRPkU6cMN6YCKKR94Ef3+lNDcqCC0Skl9ISW8OxXbcWlKYrnaML0FhvkwI5MoW8ejf9gIVjIFJd eXkeuFtQ73YXsuKf6pdjwi43HjOxXErb3/MivDaZHKEAljFZicUkTFCJsCmJ1+AXT5jY9ipb6ic fZEJveruAgoCSLYhtlv33hg/nWWGPcr12DjmZ9SRbHHlwY3SpIcfmv8VWwc5nKL+XOuf4r3AveQ 7KUDm9mEhdw== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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[] =3D { 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[] =3D { 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 *d= s, int port, *ranges =3D mt7530_rmon_ranges; } =20 +static void mt7530_get_eth_ctrl_stats(struct dsa_switch *ds, int port, + struct ethtool_eth_ctrl_stats *ctrl_stats) +{ + struct mt7530_priv *priv =3D 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 =3D { .get_ethtool_stats =3D mt7530_get_ethtool_stats, .get_sset_count =3D mt7530_get_sset_count, .get_rmon_stats =3D mt7530_get_rmon_stats, + .get_eth_ctrl_stats =3D mt7530_get_eth_ctrl_stats, .set_ageing_time =3D mt7530_set_ageing_time, .port_enable =3D mt7530_port_enable, .port_disable =3D 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 --=20 2.48.1 From nobody Fri Dec 19 08:03:10 2025 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB1EE29009A; Thu, 10 Apr 2025 16:30:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302661; cv=none; b=YUdAD+mAHWkc5i4ljGWsbrjA/pzwVhVVMzs8a0J3urbuCUcKOAmpHZ1JOOd/Sn3iHln4kqLD39LX31J8Rn4nhtTVWh+2Pes9Xd7FTU1AU3mWgzMWruqCWu+Wm0hgn3/QT5m86B+rH1EdKbk1DMQSGCIu35SZ4FpPF+Q+ojkWd20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302661; c=relaxed/simple; bh=gx6Q6oSyb2WLahet4+BtWnvgdencHUlb8TGnpv3WD60=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YURU7cfxGt2RyHWVYrqsrNHRp7L9sq5ZZJDECejs3sHqYzxwZwYbYlsEOT15ky2LqeHWdLw03kow6Vp2H22n1gmZj/65uIFm8LvxBM4eP8NtMlSAcFMR3M8ENLkoFRmRDTif/UdKmvWF+d5onaSowJpFmnAlQ0lxIE3RL/yKuoI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=S4icWOTB; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="S4icWOTB" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-43cfe574976so8147935e9.1; 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=vger.kernel.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=S4icWOTBK+A1e1jphhrTBgccvt9JyVg6ZdE+VT9e7mx2HbLZ8SfldacjuVWaylKjnv U8Z97SfJQIsROGMdOTSEmodX0cC8wJP6tZIsepwTqSe40KRjJkwEMAm0RBiPCOm0kmwd bMhCSvFZB4iGYKBC6gNtqeCfxug6WQsZeWwbMG9hArluyaxz3ysLEVsJZymU4TP5JEaq lGOmY6W+R1FQYyr91k7HoP7koxSl3SN5kbszwa5gwzHgxC+PYyYL47BY2EuoJGn3JVH2 YLWhIlsHFZFghiRpKas8Ebw3S7UxEjhLdBf+Qppgl4LMBuIh7buP6ohgzaPvcpu5/N83 sGeg== 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=rtQ8nCcDiL74F7KP5JOzF+z+uaez+9ryuf1TW77YqUoS0De7l+gIG0GdPLjRH5z6iZ YTWWI1MiAcNmhy1clfBmvaNaaTj9GqV37jnIcQ5mOCwhIzvI2xFlrNTgcDcMH1z2ahre VdV7ZdrcDhIciQoLxNL7K6CWUbZS+XISNhiQ2wEjwT4tbJFLOEpmo/qaKAxGYHAqy0fp 0iJT9fNSzN2BojgjLOlYDIyKFxqPG8Gm++O2WY+SDRBkFF7B01WsdCG8MPoCACWUK9cy Swsv8aENWPvE73PvE/RD7SGgoD1a6sRpcRLD07RS3ReGgszPSuUUi7uQhTDpxh5voF9r mFZQ== X-Forwarded-Encrypted: i=1; AJvYcCUnJxSopnzcqWWajN/0kARJJz2JZbJyGtCtz3X1t4zVSW5gnxaS1iVGHOOV6DTVzntL+MZrwGpB@vger.kernel.org, AJvYcCX9qNKYD3Arigg3nxmQjjUqnzpgvhUpYAB1h6hqKqopbZY1FDselXQ2Di0Spm4DKAzIGZbqgD4yaSt/Gs0=@vger.kernel.org X-Gm-Message-State: AOJu0YzQ02highZ6TI7dEDBWWzZWw3MugdU7BeoLDaFZ2kxtrK7uoVlE ekDzmliyH77xWoB2a7iTBbQJB1tpNx6jBlkLyy9r/Sn63kswqdfm X-Gm-Gg: ASbGnct9QfRub+brbQW3WnYhMAewaYHsBbz6HzzPaHQ09h8Z/0Snej31e8egzXTxujT RGAIVeckTWxkiwc0HhbBDzPmtQakqA9BAsHeOAMbZW+0+Dz+G6ja715ArTZP+7sLBa5LYu161Qw QOZkdCGIhf6gR1xKe44obEPROUFTpROkvoK05gfDhfvD4VtDlOaDkQpxZ8OyZ+OugPEB6pCNTqH 7n9SNf2egBcKrdB23yqo30pMmV2doSNXpRIyWDQ/8xkyogNqGV48fHK4HB7CVlv91DOEXEC+fr2 weG+OSWHiYwUulk4yfWg+j2+H9HRfIRAS5ruHV6IFSWstYT4FOlkxV0Gp++BDESygoFSA4h8bdh K2lhm1rF5wg== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 phyl= ink_pcs *pcs) static const struct mt7530_mib_desc mt7530_mib[] =3D { 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); } =20 +static void mt7530_get_eth_mac_stats(struct dsa_switch *ds, int port, + struct ethtool_eth_mac_stats *mac_stats) +{ + struct mt7530_priv *priv =3D 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 +=3D mac_stats->MulticastFramesXmittedOK; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_BROADCAST, 1, + &mac_stats->BroadcastFramesXmittedOK); + mac_stats->FramesTransmittedOK +=3D mac_stats->BroadcastFramesXmittedOK; + + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_MULTICAST, 1, + &mac_stats->MulticastFramesReceivedOK); + mac_stats->FramesReceivedOK +=3D mac_stats->MulticastFramesReceivedOK; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_BROADCAST, 1, + &mac_stats->BroadcastFramesReceivedOK); + mac_stats->FramesReceivedOK +=3D mac_stats->BroadcastFramesReceivedOK; +} + static const struct ethtool_rmon_hist_range mt7530_rmon_ranges[] =3D { { 0, 64 }, { 65, 127 }, @@ -3163,6 +3204,7 @@ const struct dsa_switch_ops mt7530_switch_ops =3D { .get_strings =3D mt7530_get_strings, .get_ethtool_stats =3D mt7530_get_ethtool_stats, .get_sset_count =3D mt7530_get_sset_count, + .get_eth_mac_stats =3D mt7530_get_eth_mac_stats, .get_rmon_stats =3D mt7530_get_rmon_stats, .get_eth_ctrl_stats =3D mt7530_get_eth_ctrl_stats, .set_ageing_time =3D 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) --=20 2.48.1 From nobody Fri Dec 19 08:03:10 2025 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 290941EF37B; Thu, 10 Apr 2025 16:31:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302662; cv=none; b=i1vTHPEkX/8GT+dRNcaZgzkBd9bvYW8o5thZdl/JpEI0Vc+qfUyLcAa86mjLVM1WOY/HVP82+dzwUc0BAf908KbkcrSxrNB2+oEodLfolxpncezqrQCNqLCMC+c5ulKaLQoRZaoQ6wYgGvQ4m216NN3xOfKPqULuM8VjYXTdAqQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302662; c=relaxed/simple; bh=39VSe38U38tIemBNqloIsd9qRjjxnIoDR52dX6RadPM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Y5B/jpT3p37fICp+7iDY8qQbHrQ5K4XklYmlRzWn63DYhByH/8F3qD07E6XRGaLmxtGNzZstuluTteUIFYdDE3D7Yct4eUviYpIVWNuW2geeiHphq87jBw5Se5WOSA00ZH3A631+7LlS/gPl1S71x/hx97uWDnPFvQs7tpCiTn0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SupIhBar; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SupIhBar" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43d0618746bso8203385e9.2; 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=vger.kernel.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=SupIhBaruGhgIT0R0BnHHLZ/96DU80yBiTimcK0xwa4WrW95JHOHYRx/y5s37Igd9t Tnlr9ZljRA8nQWSjCAVItuzg13xGciOKRtTXZPz8YLs5H3TB7dv0tbqsG0UWXw5GxM5r 8SZTvB1MMSS3sRLL7Pz0Gvh8LR2KThME/uhdth+qDgTA7gSfQreAexsoInDDfhW63OxA p/vSgLSaJWuksUFNHvXOA/jqOhPcc5zc/UNpvu4FRD88+e3wHadh3dOOjCtiOCtrvCqA dwWnrQVfPRVXWFK6C7jbhPueABlejsxC8DYnO4vx3iKSQZK7bTiAsSYZ8an0Gqg6DhIa y/Bg== 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=pY+eW8a6oVwPXmKtnC4Y5+UcvVMSYPjLRQDoflenlFcjwnNHHGpcscRIqf96LO60vX oONeOou12IYb0XIJ2sF1J5/2deyo/Y8B5N4rbUoqD1Ic19EmfpmQZoKw7S9bw1h+FtQA 1bW9WIxXrSB9LnMRfi3QMOPdJp47IdeMihr8h/dqCNpJtY6JGEGrUA20TABj8OJIvlbg 7H8NcgPMmASi5U6QgbuyB/LdHe78AKfbvbBbQ1WsqwZFA4DXCa1d9yrTXSx94GmrVUZ7 JoZanPXvqhq9AHYLwI1kbjTXHu5fX7MGlgXkGeXBkeSsGrwgzzLvuGgq2uywOBwS5R/4 W0aA== X-Forwarded-Encrypted: i=1; AJvYcCXmHs86mqXoXMJYlBntWBz+sxnb0LVRHusv5mMSyPQ55uajMyxSGaEyhksF/v10L/2SQafVxIjN@vger.kernel.org, AJvYcCXpVKAj86oiq7JzoSRaKvbLBKU6GtYc5NLU6OiKXCTi0wz+rOaZY/EbcPkUzB7dSYH8lAGR5uyPu/MgQlc=@vger.kernel.org X-Gm-Message-State: AOJu0Yzr86MAp1O3P9eX7cq1cC3qa6AemVZ7FZd/N0TND0U4ygY5WQP6 TrG6cxzkr9FdInOOhbpiJOxyo2ultvbdSJvR6Ws6mLKP7c0LFbqG X-Gm-Gg: ASbGncvYN/DPwYuW1E/ACHkm5lG5o6PeoWyegtJG+YxeOFXV7B1Bgj184J6DNQ9Wyau WOzK7EhnuJzrap1LtkY8G0LGbr8dfjZn6Cxv8Obhsc4Qal5Qq06SQTW4CygZLlHmw1MToVWWZcj hlo9frWzgNJ9e/evg1RiiLZf3OxrOZjSfmr2/Ng0lHr5oQrd5natIYGI4ZhFGD7oDn9x3Ls5/jo tqGjl9ZiSdRLILe4hPXcphvv5igpahuVvLMwZKbqIkESBa8zluBNeNKKoTOZFOKnhx82wvG40+7 anOfFVSYj+wQGcytg/Pi2pfADF5FtaeiRPxnEEs8RwX7FrsMFtIu7LJ8H2nAJJf5OyM2WKbBk/k syT2lqzR0Fg== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 phyl= ink_pcs *pcs) =20 /* String, offset, and register size in bytes if different from 4 bytes */ static const struct mt7530_mib_desc mt7530_mib[] =3D { - 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"), }; =20 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) --=20 2.48.1 From nobody Fri Dec 19 08:03:10 2025 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8872528A40B; Thu, 10 Apr 2025 16:31:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302664; cv=none; b=Kk4vMOg+/wc62Hv3bjMMQd86GeWdxCzQ6Lz68MzcxadDeIjNYB8DIatdQYpScCd5grWHyRnanl3A4HDnnvgbn3bCvAClksYgP1wSNFWaIeSzB2d0492STOwNejpyevrApHp1Oawh2w+gfvC7GXU0+LnB7Nxc+fcjFkKnLi5BSto= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744302664; c=relaxed/simple; bh=2mhDXsxikwdUiQFj8YGNVaw/ULeunUERVOgejNDyv/g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YlCJIOmLWPRr9E9hqgo3Obx64OKAmR5gHjalSQiuZ2hqjevGoGMnVjYZtlfPddYIhGGTQHuN5YhkFUt6Vyu3guZiDHAahzmy5sn2WPwPnWN9y8WzmVkMYlcCv74pZbCouUPJcfo2nTgUoEDSlAMIC+YzAE7/BFHJlzWOG7Zf+H0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XkFxFJtc; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XkFxFJtc" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-3914a5def6bso582144f8f.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=vger.kernel.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=XkFxFJtcMQ6XTK9mSSp2NlC76LualfgUBy+wFZUvquKcf8RHL9ckE7+mp7W2zJxpP2 v1E4zgN2ymYbU9PXhALLyM2fO86apxm2d9At8agnaEHf39xISCFbktc+vBO0g1Gg8wNI NqJ2B5k/FVcqw15Z23TQslGnhso8oA0YV+pi2dlNXURqRfzHoEOlqkYSiR5kQ1BSacmo MLdWfT98wo7xVNBJQ1JMjaaMYJpr6g/ttFPJVMOd0z6+L4BOIh0D9+sbs4syPYb7kqUC eeHnRg0IfLEsumyi5zjCue4IWywwMlHL3GDVBM7BVDaqnKwIdspFp35+La8weK8Ou/Ic V4EQ== 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=QgMx4lavSkv/nuAOfSkrWyy4n937KmDo5j/P+lHHWPF5XdOCEQ5wsymu9JUXQ0Dnsp N/0viT0c+PKJaFQScBmoVqBsmNbEpXjU4L0BS49yHp5tozAUCsXrkw2cKiMEuTgZYsDv YFQUl11gozKnp2iQOrkRMjF+lCDhzhH8zlY3i/l4rYlIJR7mfyK6mr/QGvS0Q+KouFu9 PTJBFND/9P5IREwD/6Ioe3MHTeUQSzmPqP3vu0+AZXk0/ZPbBBBcvv+WsGULDubngcbX iWWwkQIM+bAUnJra0QFmk+9p1fYiiVWHdoYtXPHT2l6Jde7/fJRkUJgdaDRlslatKGZi MavA== X-Forwarded-Encrypted: i=1; AJvYcCUOdPdeoaLuEoSBljXu+ZER01sajNMMu28ER6d7y5QD7P/vYfNTJYfTvcBBgTFYgpcVv5lg4Hu9lED06P8=@vger.kernel.org, AJvYcCUXej6b+C+pCbhEBgXHw5Mi+gGo70CwavV1XUXhUlfqbFmmvRsUvIm+noSRIuOTDlL3D9NSGuTu@vger.kernel.org X-Gm-Message-State: AOJu0YwViEKhWXhX4DIXhB/6R7uZXiRnp57eFnVFGSIonp6RT5QYLuOh IuwHPWApjmiTEHR6JFL/syKvcmEdoub6VzvyXm0M1EKps0UqBppP X-Gm-Gg: ASbGnctN+7njR+x645GsjThlEnIAfIJiOIGDiPMBPRoU3fxW2Uc2XObF9WX6gFX2fUJ AafLb/zWj+Qvnhze/f8IFzKHNpZLamLmYxvbd55IsGYb7v9Vtue2zZBRvxs7J+Y1Bep3+JuSeAJ zUrJ3NRQ6OursAX/47U+gWtrMIqXlY8Tr8rRxBqLGFLPFz5cvuCrJen8LcWmtdQ1AgTQ82B/vAV 1cxi3+OwDSFu1BW3F7I+TRcSgM5jC5k935yRC8oizXexO4Rxu8O+fpF+C0mAmbtZTNCu/BtV86a baOjoD6irUYRgQAlKLqBc6ohPfMYOiugDnCV1OWr2k1vMywXRegDFP6o8EHQX28z2yvp3dFyg03 zQOehu39lag== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 *d= s, int port, *ranges =3D mt7530_rmon_ranges; } =20 +static void mt7530_get_stats64(struct dsa_switch *ds, int port, + struct rtnl_link_stats64 *storage) +{ + struct mt7530_priv *priv =3D 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 +=3D storage->multicast; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_RX_BROADCAST, 1, + &data); + storage->rx_packets +=3D 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 +=3D data; + mt7530_read_port_stats(priv, port, MT7530_PORT_MIB_TX_BROADCAST, 1, + &data); + storage->tx_packets +=3D 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 =3D { .get_eth_mac_stats =3D mt7530_get_eth_mac_stats, .get_rmon_stats =3D mt7530_get_rmon_stats, .get_eth_ctrl_stats =3D mt7530_get_eth_ctrl_stats, + .get_stats64 =3D mt7530_get_stats64, .set_ageing_time =3D mt7530_set_ageing_time, .port_enable =3D mt7530_port_enable, .port_disable =3D mt7530_port_disable, --=20 2.48.1