Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'net-dsa-yt921x-fix-parsing-mib-attributes'

David Yang says:

====================
net: dsa: yt921x: Fix parsing MIB attributes
====================

Link: https://patch.msgid.link/20251126084024.2843851-1-mmyangfl@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+94 -45
+40 -45
drivers/net/dsa/yt921x.c
··· 39 39 * to perform 32bit MIB overflow wraparound. 40 40 */ 41 41 static const struct yt921x_mib_desc yt921x_mib_descs[] = { 42 - MIB_DESC(1, 0x00, NULL), /* RxBroadcast */ 43 - MIB_DESC(1, 0x04, NULL), /* RxPause */ 44 - MIB_DESC(1, 0x08, NULL), /* RxMulticast */ 45 - MIB_DESC(1, 0x0c, NULL), /* RxCrcErr */ 42 + MIB_DESC(1, YT921X_MIB_DATA_RX_BROADCAST, NULL), 43 + MIB_DESC(1, YT921X_MIB_DATA_RX_PAUSE, NULL), 44 + MIB_DESC(1, YT921X_MIB_DATA_RX_MULTICAST, NULL), 45 + MIB_DESC(1, YT921X_MIB_DATA_RX_CRC_ERR, NULL), 46 46 47 - MIB_DESC(1, 0x10, NULL), /* RxAlignErr */ 48 - MIB_DESC(1, 0x14, NULL), /* RxUnderSizeErr */ 49 - MIB_DESC(1, 0x18, NULL), /* RxFragErr */ 50 - MIB_DESC(1, 0x1c, NULL), /* RxPktSz64 */ 47 + MIB_DESC(1, YT921X_MIB_DATA_RX_ALIGN_ERR, NULL), 48 + MIB_DESC(1, YT921X_MIB_DATA_RX_UNDERSIZE_ERR, NULL), 49 + MIB_DESC(1, YT921X_MIB_DATA_RX_FRAG_ERR, NULL), 50 + MIB_DESC(1, YT921X_MIB_DATA_RX_PKT_SZ_64, NULL), 51 51 52 - MIB_DESC(1, 0x20, NULL), /* RxPktSz65To127 */ 53 - MIB_DESC(1, 0x24, NULL), /* RxPktSz128To255 */ 54 - MIB_DESC(1, 0x28, NULL), /* RxPktSz256To511 */ 55 - MIB_DESC(1, 0x2c, NULL), /* RxPktSz512To1023 */ 52 + MIB_DESC(1, YT921X_MIB_DATA_RX_PKT_SZ_65_TO_127, NULL), 53 + MIB_DESC(1, YT921X_MIB_DATA_RX_PKT_SZ_128_TO_255, NULL), 54 + MIB_DESC(1, YT921X_MIB_DATA_RX_PKT_SZ_256_TO_511, NULL), 55 + MIB_DESC(1, YT921X_MIB_DATA_RX_PKT_SZ_512_TO_1023, NULL), 56 56 57 - MIB_DESC(1, 0x30, NULL), /* RxPktSz1024To1518 */ 58 - MIB_DESC(1, 0x34, NULL), /* RxPktSz1519ToMax */ 59 - MIB_DESC(2, 0x38, NULL), /* RxGoodBytes */ 60 - /* 0x3c */ 57 + MIB_DESC(1, YT921X_MIB_DATA_RX_PKT_SZ_1024_TO_1518, NULL), 58 + MIB_DESC(1, YT921X_MIB_DATA_RX_PKT_SZ_1519_TO_MAX, NULL), 59 + MIB_DESC(2, YT921X_MIB_DATA_RX_GOOD_BYTES, NULL), 61 60 62 - MIB_DESC(2, 0x40, "RxBadBytes"), 63 - /* 0x44 */ 64 - MIB_DESC(2, 0x48, NULL), /* RxOverSzErr */ 65 - /* 0x4c */ 61 + MIB_DESC(2, YT921X_MIB_DATA_RX_BAD_BYTES, "RxBadBytes"), 62 + MIB_DESC(1, YT921X_MIB_DATA_RX_OVERSIZE_ERR, NULL), 66 63 67 - MIB_DESC(1, 0x50, NULL), /* RxDropped */ 68 - MIB_DESC(1, 0x54, NULL), /* TxBroadcast */ 69 - MIB_DESC(1, 0x58, NULL), /* TxPause */ 70 - MIB_DESC(1, 0x5c, NULL), /* TxMulticast */ 64 + MIB_DESC(1, YT921X_MIB_DATA_RX_DROPPED, NULL), 65 + MIB_DESC(1, YT921X_MIB_DATA_TX_BROADCAST, NULL), 66 + MIB_DESC(1, YT921X_MIB_DATA_TX_PAUSE, NULL), 67 + MIB_DESC(1, YT921X_MIB_DATA_TX_MULTICAST, NULL), 71 68 72 - MIB_DESC(1, 0x60, NULL), /* TxUnderSizeErr */ 73 - MIB_DESC(1, 0x64, NULL), /* TxPktSz64 */ 74 - MIB_DESC(1, 0x68, NULL), /* TxPktSz65To127 */ 75 - MIB_DESC(1, 0x6c, NULL), /* TxPktSz128To255 */ 69 + MIB_DESC(1, YT921X_MIB_DATA_TX_UNDERSIZE_ERR, NULL), 70 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT_SZ_64, NULL), 71 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT_SZ_65_TO_127, NULL), 72 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT_SZ_128_TO_255, NULL), 76 73 77 - MIB_DESC(1, 0x70, NULL), /* TxPktSz256To511 */ 78 - MIB_DESC(1, 0x74, NULL), /* TxPktSz512To1023 */ 79 - MIB_DESC(1, 0x78, NULL), /* TxPktSz1024To1518 */ 80 - MIB_DESC(1, 0x7c, NULL), /* TxPktSz1519ToMax */ 74 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT_SZ_256_TO_511, NULL), 75 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT_SZ_512_TO_1023, NULL), 76 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT_SZ_1024_TO_1518, NULL), 77 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT_SZ_1519_TO_MAX, NULL), 81 78 82 - MIB_DESC(2, 0x80, NULL), /* TxGoodBytes */ 83 - /* 0x84 */ 84 - MIB_DESC(2, 0x88, NULL), /* TxCollision */ 85 - /* 0x8c */ 79 + MIB_DESC(2, YT921X_MIB_DATA_TX_GOOD_BYTES, NULL), 80 + MIB_DESC(1, YT921X_MIB_DATA_TX_COLLISION, NULL), 86 81 87 - MIB_DESC(1, 0x90, NULL), /* TxExcessiveCollistion */ 88 - MIB_DESC(1, 0x94, NULL), /* TxMultipleCollision */ 89 - MIB_DESC(1, 0x98, NULL), /* TxSingleCollision */ 90 - MIB_DESC(1, 0x9c, NULL), /* TxPkt */ 82 + MIB_DESC(1, YT921X_MIB_DATA_TX_EXCESSIVE_COLLISION, NULL), 83 + MIB_DESC(1, YT921X_MIB_DATA_TX_MULTIPLE_COLLISION, NULL), 84 + MIB_DESC(1, YT921X_MIB_DATA_TX_SINGLE_COLLISION, NULL), 85 + MIB_DESC(1, YT921X_MIB_DATA_TX_PKT, NULL), 91 86 92 - MIB_DESC(1, 0xa0, NULL), /* TxDeferred */ 93 - MIB_DESC(1, 0xa4, NULL), /* TxLateCollision */ 94 - MIB_DESC(1, 0xa8, "RxOAM"), 95 - MIB_DESC(1, 0xac, "TxOAM"), 87 + MIB_DESC(1, YT921X_MIB_DATA_TX_DEFERRED, NULL), 88 + MIB_DESC(1, YT921X_MIB_DATA_TX_LATE_COLLISION, NULL), 89 + MIB_DESC(1, YT921X_MIB_DATA_RX_OAM, "RxOAM"), 90 + MIB_DESC(1, YT921X_MIB_DATA_TX_OAM, "TxOAM"), 96 91 }; 97 92 98 93 struct yt921x_info { ··· 700 705 res = yt921x_reg_read(priv, reg + 4, &val1); 701 706 if (res) 702 707 break; 703 - val = ((u64)val0 << 32) | val1; 708 + val = ((u64)val1 << 32) | val0; 704 709 } 705 710 706 711 WRITE_ONCE(*valp, val);
+54
drivers/net/dsa/yt921x.h
··· 173 173 #define YT921X_MIB_CTRL_ALL_PORT BIT(0) 174 174 #define YT921X_MIBn_DATA0(port) (0xc0100 + 0x100 * (port)) 175 175 #define YT921X_MIBn_DATAm(port, x) (YT921X_MIBn_DATA0(port) + 4 * (x)) 176 + #define YT921X_MIB_DATA_RX_BROADCAST 0x00 177 + #define YT921X_MIB_DATA_RX_PAUSE 0x04 178 + #define YT921X_MIB_DATA_RX_MULTICAST 0x08 179 + #define YT921X_MIB_DATA_RX_CRC_ERR 0x0c 180 + 181 + #define YT921X_MIB_DATA_RX_ALIGN_ERR 0x10 182 + #define YT921X_MIB_DATA_RX_UNDERSIZE_ERR 0x14 183 + #define YT921X_MIB_DATA_RX_FRAG_ERR 0x18 184 + #define YT921X_MIB_DATA_RX_PKT_SZ_64 0x1c 185 + 186 + #define YT921X_MIB_DATA_RX_PKT_SZ_65_TO_127 0x20 187 + #define YT921X_MIB_DATA_RX_PKT_SZ_128_TO_255 0x24 188 + #define YT921X_MIB_DATA_RX_PKT_SZ_256_TO_511 0x28 189 + #define YT921X_MIB_DATA_RX_PKT_SZ_512_TO_1023 0x2c 190 + 191 + #define YT921X_MIB_DATA_RX_PKT_SZ_1024_TO_1518 0x30 192 + #define YT921X_MIB_DATA_RX_PKT_SZ_1519_TO_MAX 0x34 193 + /* 0x38: unused */ 194 + #define YT921X_MIB_DATA_RX_GOOD_BYTES 0x3c 195 + 196 + /* 0x40: 64 bytes */ 197 + #define YT921X_MIB_DATA_RX_BAD_BYTES 0x44 198 + /* 0x48: 64 bytes */ 199 + #define YT921X_MIB_DATA_RX_OVERSIZE_ERR 0x4c 200 + 201 + #define YT921X_MIB_DATA_RX_DROPPED 0x50 202 + #define YT921X_MIB_DATA_TX_BROADCAST 0x54 203 + #define YT921X_MIB_DATA_TX_PAUSE 0x58 204 + #define YT921X_MIB_DATA_TX_MULTICAST 0x5c 205 + 206 + #define YT921X_MIB_DATA_TX_UNDERSIZE_ERR 0x60 207 + #define YT921X_MIB_DATA_TX_PKT_SZ_64 0x64 208 + #define YT921X_MIB_DATA_TX_PKT_SZ_65_TO_127 0x68 209 + #define YT921X_MIB_DATA_TX_PKT_SZ_128_TO_255 0x6c 210 + 211 + #define YT921X_MIB_DATA_TX_PKT_SZ_256_TO_511 0x70 212 + #define YT921X_MIB_DATA_TX_PKT_SZ_512_TO_1023 0x74 213 + #define YT921X_MIB_DATA_TX_PKT_SZ_1024_TO_1518 0x78 214 + #define YT921X_MIB_DATA_TX_PKT_SZ_1519_TO_MAX 0x7c 215 + 216 + /* 0x80: unused */ 217 + #define YT921X_MIB_DATA_TX_GOOD_BYTES 0x84 218 + /* 0x88: 64 bytes */ 219 + #define YT921X_MIB_DATA_TX_COLLISION 0x8c 220 + 221 + #define YT921X_MIB_DATA_TX_EXCESSIVE_COLLISION 0x90 222 + #define YT921X_MIB_DATA_TX_MULTIPLE_COLLISION 0x94 223 + #define YT921X_MIB_DATA_TX_SINGLE_COLLISION 0x98 224 + #define YT921X_MIB_DATA_TX_PKT 0x9c 225 + 226 + #define YT921X_MIB_DATA_TX_DEFERRED 0xa0 227 + #define YT921X_MIB_DATA_TX_LATE_COLLISION 0xa4 228 + #define YT921X_MIB_DATA_RX_OAM 0xa8 229 + #define YT921X_MIB_DATA_TX_OAM 0xac 176 230 177 231 #define YT921X_EDATA_CTRL 0xe0000 178 232 #define YT921X_EDATA_CTRL_ADDR_M GENMASK(15, 8)