bool vlan; u16 vlan_id[AR8X16_MAX_VLANS]; u8 vlan_table[AR8X16_MAX_VLANS]; u8 vlan_tagged; u16 pvid[AR8X16_MAX_PORTS]; }; #define MIB_DESC(_s , _o, _n) \ { \ .size = (_s), \ .offset = (_o), \ .name = (_n), \ } static const struct ar8xxx_mib_desc ar8216_mibs[] = { MIB_DESC(1, AR8216_STATS_RXBROAD, "RxBroad"), MIB_DESC(1, AR8216_STATS_RXPAUSE, "RxPause"), MIB_DESC(1, AR8216_STATS_RXMULTI, "RxMulti"), MIB_DESC(1, AR8216_STATS_RXFCSERR, "RxFcsErr"), MIB_DESC(1, AR8216_STATS_RXALIGNERR, "RxAlignErr"), MIB_DESC(1, AR8216_STATS_RXRUNT, "RxRunt"), MIB_DESC(1, AR8216_STATS_RXFRAGMENT, "RxFragment"), MIB_DESC(1, AR8216_STATS_RX64BYTE, "Rx64Byte"), MIB_DESC(1, AR8216_STATS_RX128BYTE, "Rx128Byte"), MIB_DESC(1, AR8216_STATS_RX256BYTE, "Rx256Byte"), MIB_DESC(1, AR8216_STATS_RX512BYTE, "Rx512Byte"), MIB_DESC(1, AR8216_STATS_RX1024BYTE, "Rx1024Byte"), MIB_DESC(1, AR8216_STATS_RXMAXBYTE, "RxMaxByte"), MIB_DESC(1, AR8216_STATS_RXTOOLONG, "RxTooLong"), MIB_DESC(2, AR8216_STATS_RXGOODBYTE, "RxGoodByte"), MIB_DESC(2, AR8216_STATS_RXBADBYTE, "RxBadByte"),
struct regmap *rcu_regmap; int num_gphy_fw; struct gswip_gphy_fw *gphy_fw; }; struct gswip_rmon_cnt_desc { unsigned int size; unsigned int offset; const char *name; }; #define MIB_DESC(_size, _offset, _name) {.size = _size, .offset = _offset, .name = _name} static const struct gswip_rmon_cnt_desc gswip_rmon_cnt[] = { /** Receive Packet Count (only packets that are accepted and not discarded). */ MIB_DESC(1, 0x1F, "RxGoodPkts"), MIB_DESC(1, 0x23, "RxUnicastPkts"), MIB_DESC(1, 0x22, "RxMulticastPkts"), MIB_DESC(1, 0x21, "RxFCSErrorPkts"), MIB_DESC(1, 0x1D, "RxUnderSizeGoodPkts"), MIB_DESC(1, 0x1E, "RxUnderSizeErrorPkts"), MIB_DESC(1, 0x1B, "RxOversizeGoodPkts"), MIB_DESC(1, 0x1C, "RxOversizeErrorPkts"), MIB_DESC(1, 0x20, "RxGoodPausePkts"), MIB_DESC(1, 0x1A, "RxAlignErrorPkts"), MIB_DESC(1, 0x12, "Rx64BytePkts"), MIB_DESC(1, 0x13, "Rx127BytePkts"), MIB_DESC(1, 0x14, "Rx255BytePkts"), MIB_DESC(1, 0x15, "Rx511BytePkts"), MIB_DESC(1, 0x16, "Rx1023BytePkts"), /** Receive Size 1024-1522 (or more, if configured) Packet Count. */
/* use abstraction for regops, we want to add gpio support in the future */ u16 (*read)(struct adm6996_priv *priv, enum admreg reg); void (*write)(struct adm6996_priv *priv, enum admreg reg, u16 val); }; #define to_adm(_dev) container_of(_dev, struct adm6996_priv, dev) #define phy_to_adm(_phy) ((struct adm6996_priv *) (_phy)->priv) #define MIB_DESC(_o, _n) \ { \ .offset = (_o), \ .name = (_n), \ } static const struct adm6996_mib_desc adm6996_mibs[] = { MIB_DESC(ADM_CL0, "RxPacket"), MIB_DESC(ADM_CL6, "RxByte"), MIB_DESC(ADM_CL12, "TxPacket"), MIB_DESC(ADM_CL18, "TxByte"), MIB_DESC(ADM_CL24, "Collision"), MIB_DESC(ADM_CL30, "Error"), }; static inline u16 r16(struct adm6996_priv *priv, enum admreg reg) { return priv->read(priv, reg); } static inline void w16(struct adm6996_priv *priv, enum admreg reg, u16 val)
#include <linux/of_platform.h> #include <linux/if_bridge.h> #include <linux/mdio.h> #include <linux/etherdevice.h> #include "qca8k.h" #define MIB_DESC(_s, _o, _n) \ { \ .size = (_s), \ .offset = (_o), \ .name = (_n), \ } static const struct qca8k_mib_desc ar8327_mib[] = { MIB_DESC(1, 0x00, "RxBroad"), MIB_DESC(1, 0x04, "RxPause"), MIB_DESC(1, 0x08, "RxMulti"), MIB_DESC(1, 0x0c, "RxFcsErr"), MIB_DESC(1, 0x10, "RxAlignErr"), MIB_DESC(1, 0x14, "RxRunt"), MIB_DESC(1, 0x18, "RxFragment"), MIB_DESC(1, 0x1c, "Rx64Byte"), MIB_DESC(1, 0x20, "Rx128Byte"), MIB_DESC(1, 0x24, "Rx256Byte"), MIB_DESC(1, 0x28, "Rx512Byte"), MIB_DESC(1, 0x2c, "Rx1024Byte"), MIB_DESC(1, 0x30, "Rx1518Byte"), MIB_DESC(1, 0x34, "RxMaxByte"), MIB_DESC(1, 0x38, "RxTooLong"), MIB_DESC(2, 0x3c, "RxGoodByte"),