ramips: remove further mt7621 code from local ethernet driver
While commit 734a8c46e7
focussed on removing stuff directly
selected by the NET_RALINK_* symbols, this patch removes additional
unused mt7621-specific code from the ethernet driver.
As with the previous patch, the main reason is to reduce the amount
of code we have to maintain and care about.
Note that this patch still keeps a few lines with
IS_ENABLED(CONFIG_SOC_MT7621) in mtk_eth_soc.h/.c, as this file is
still selected for the mt7621 subtarget.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
parent
c1aa2d4411
commit
adf830a3a5
@ -17,11 +17,7 @@
|
||||
|
||||
#define GSW_REG_PHY_TIMEOUT (5 * HZ)
|
||||
|
||||
#ifdef CONFIG_SOC_MT7621
|
||||
#define MT7620A_GSW_REG_PIAC 0x0004
|
||||
#else
|
||||
#define MT7620A_GSW_REG_PIAC 0x7004
|
||||
#endif
|
||||
|
||||
#define GSW_NUM_VLANS 16
|
||||
#define GSW_NUM_VIDS 4096
|
||||
@ -65,11 +61,7 @@
|
||||
|
||||
#define PORT_IRQ_ST_CHG 0x7f
|
||||
|
||||
#ifdef CONFIG_SOC_MT7621
|
||||
#define ESW_PHY_POLLING 0x0000
|
||||
#else
|
||||
#define ESW_PHY_POLLING 0x7000
|
||||
#endif
|
||||
|
||||
#define PMCR_IPG BIT(18)
|
||||
#define PMCR_MAC_MODE BIT(16)
|
||||
|
@ -37,11 +37,7 @@
|
||||
|
||||
#define MT7530_CPU_PORT 6
|
||||
#define MT7530_NUM_PORTS 8
|
||||
#ifdef CONFIG_SOC_MT7621
|
||||
#define MT7530_NUM_VLANS 4095
|
||||
#else
|
||||
#define MT7530_NUM_VLANS 16
|
||||
#endif
|
||||
#define MT7530_MAX_VID 4095
|
||||
#define MT7530_MIN_VID 0
|
||||
#define MT7530_NUM_ARL_RECORDS 2048
|
||||
@ -50,9 +46,6 @@
|
||||
#define MT7530_PORT_MIB_TXB_ID 2 /* TxGOC */
|
||||
#define MT7530_PORT_MIB_RXB_ID 6 /* RxGOC */
|
||||
|
||||
#define MT7621_PORT_MIB_TXB_ID 18 /* TxByte */
|
||||
#define MT7621_PORT_MIB_RXB_ID 37 /* RxByte */
|
||||
|
||||
/* registers */
|
||||
#define REG_ESW_WT_MAC_MFC 0x10
|
||||
|
||||
@ -159,50 +152,6 @@ static const struct mt7xxx_mib_desc mt7620_port_mibs[] = {
|
||||
MIB_DESC(1, MT7620_MIB_STATS_PORT_REPC2N, "RxEPC2")
|
||||
};
|
||||
|
||||
static const struct mt7xxx_mib_desc mt7621_mibs[] = {
|
||||
MIB_DESC(1, MT7621_STATS_TDPC, "TxDrop"),
|
||||
MIB_DESC(1, MT7621_STATS_TCRC, "TxCRC"),
|
||||
MIB_DESC(1, MT7621_STATS_TUPC, "TxUni"),
|
||||
MIB_DESC(1, MT7621_STATS_TMPC, "TxMulti"),
|
||||
MIB_DESC(1, MT7621_STATS_TBPC, "TxBroad"),
|
||||
MIB_DESC(1, MT7621_STATS_TCEC, "TxCollision"),
|
||||
MIB_DESC(1, MT7621_STATS_TSCEC, "TxSingleCol"),
|
||||
MIB_DESC(1, MT7621_STATS_TMCEC, "TxMultiCol"),
|
||||
MIB_DESC(1, MT7621_STATS_TDEC, "TxDefer"),
|
||||
MIB_DESC(1, MT7621_STATS_TLCEC, "TxLateCol"),
|
||||
MIB_DESC(1, MT7621_STATS_TXCEC, "TxExcCol"),
|
||||
MIB_DESC(1, MT7621_STATS_TPPC, "TxPause"),
|
||||
MIB_DESC(1, MT7621_STATS_TL64PC, "Tx64Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_TL65PC, "Tx65Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_TL128PC, "Tx128Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_TL256PC, "Tx256Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_TL512PC, "Tx512Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_TL1024PC, "Tx1024Byte"),
|
||||
MIB_DESC(2, MT7621_STATS_TOC, "TxByte"),
|
||||
MIB_DESC(1, MT7621_STATS_RDPC, "RxDrop"),
|
||||
MIB_DESC(1, MT7621_STATS_RFPC, "RxFiltered"),
|
||||
MIB_DESC(1, MT7621_STATS_RUPC, "RxUni"),
|
||||
MIB_DESC(1, MT7621_STATS_RMPC, "RxMulti"),
|
||||
MIB_DESC(1, MT7621_STATS_RBPC, "RxBroad"),
|
||||
MIB_DESC(1, MT7621_STATS_RAEPC, "RxAlignErr"),
|
||||
MIB_DESC(1, MT7621_STATS_RCEPC, "RxCRC"),
|
||||
MIB_DESC(1, MT7621_STATS_RUSPC, "RxUnderSize"),
|
||||
MIB_DESC(1, MT7621_STATS_RFEPC, "RxFragment"),
|
||||
MIB_DESC(1, MT7621_STATS_ROSPC, "RxOverSize"),
|
||||
MIB_DESC(1, MT7621_STATS_RJEPC, "RxJabber"),
|
||||
MIB_DESC(1, MT7621_STATS_RPPC, "RxPause"),
|
||||
MIB_DESC(1, MT7621_STATS_RL64PC, "Rx64Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_RL65PC, "Rx65Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_RL128PC, "Rx128Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_RL256PC, "Rx256Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_RL512PC, "Rx512Byte"),
|
||||
MIB_DESC(1, MT7621_STATS_RL1024PC, "Rx1024Byte"),
|
||||
MIB_DESC(2, MT7621_STATS_ROC, "RxByte"),
|
||||
MIB_DESC(1, MT7621_STATS_RDPC_CTRL, "RxCtrlDrop"),
|
||||
MIB_DESC(1, MT7621_STATS_RDPC_ING, "RxIngDrop"),
|
||||
MIB_DESC(1, MT7621_STATS_RDPC_ARL, "RxARLDrop")
|
||||
};
|
||||
|
||||
enum {
|
||||
/* Global attributes. */
|
||||
MT7530_ATTR_ENABLE_VLAN,
|
||||
@ -510,14 +459,6 @@ mt7530_set_vid(struct switch_dev *dev, const struct switch_attr *attr,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
mt7621_get_vid(struct switch_dev *dev, const struct switch_attr *attr,
|
||||
struct switch_val *val)
|
||||
{
|
||||
val->value.i = val->port_vlan;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
mt7530_get_vid(struct switch_dev *dev, const struct switch_attr *attr,
|
||||
struct switch_val *val)
|
||||
@ -610,7 +551,6 @@ mt7530_write_vlan_entry(struct mt7530_priv *priv, int vlan, u16 vid,
|
||||
int port;
|
||||
u32 val;
|
||||
|
||||
#ifndef CONFIG_SOC_MT7621
|
||||
/* vid of vlan */
|
||||
val = mt7530_r32(priv, REG_ESW_VLAN_VTIM(vlan));
|
||||
if (vlan % 2 == 0) {
|
||||
@ -621,7 +561,6 @@ mt7530_write_vlan_entry(struct mt7530_priv *priv, int vlan, u16 vid,
|
||||
val |= (vid << 12);
|
||||
}
|
||||
mt7530_w32(priv, REG_ESW_VLAN_VTIM(vlan), val);
|
||||
#endif
|
||||
|
||||
/* vlan port membership */
|
||||
if (ports)
|
||||
@ -642,11 +581,7 @@ mt7530_write_vlan_entry(struct mt7530_priv *priv, int vlan, u16 vid,
|
||||
mt7530_w32(priv, REG_ESW_VLAN_VAWD2, val);
|
||||
|
||||
/* write to vlan table */
|
||||
#ifdef CONFIG_SOC_MT7621
|
||||
mt7530_vtcr(priv, 1, vid);
|
||||
#else
|
||||
mt7530_vtcr(priv, 1, vlan);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
@ -799,53 +734,6 @@ mt7530_get_port_link(struct switch_dev *dev, int port,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u64 get_mib_counter(struct mt7530_priv *priv, int i, int port)
|
||||
{
|
||||
unsigned int port_base;
|
||||
u64 lo;
|
||||
|
||||
port_base = MT7621_MIB_COUNTER_BASE +
|
||||
MT7621_MIB_COUNTER_PORT_OFFSET * port;
|
||||
|
||||
lo = mt7530_r32(priv, port_base + mt7621_mibs[i].offset);
|
||||
if (mt7621_mibs[i].size == 2) {
|
||||
u64 hi;
|
||||
|
||||
hi = mt7530_r32(priv, port_base + mt7621_mibs[i].offset + 4);
|
||||
lo |= hi << 32;
|
||||
}
|
||||
|
||||
return lo;
|
||||
}
|
||||
|
||||
static int mt7621_sw_get_port_mib(struct switch_dev *dev,
|
||||
const struct switch_attr *attr,
|
||||
struct switch_val *val)
|
||||
{
|
||||
static char buf[4096];
|
||||
struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev);
|
||||
int i, len = 0;
|
||||
|
||||
if (val->port_vlan >= MT7530_NUM_PORTS)
|
||||
return -EINVAL;
|
||||
|
||||
len += snprintf(buf + len, sizeof(buf) - len,
|
||||
"Port %d MIB counters\n", val->port_vlan);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(mt7621_mibs); ++i) {
|
||||
u64 counter;
|
||||
len += snprintf(buf + len, sizeof(buf) - len,
|
||||
"%-11s: ", mt7621_mibs[i].name);
|
||||
counter = get_mib_counter(priv, i, val->port_vlan);
|
||||
len += snprintf(buf + len, sizeof(buf) - len, "%llu\n",
|
||||
counter);
|
||||
}
|
||||
|
||||
val->value.s = buf;
|
||||
val->len = len;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u64 get_mib_counter_7620(struct mt7530_priv *priv, int i)
|
||||
{
|
||||
return mt7530_r32(priv, MT7620_MIB_COUNTER_BASE + mt7620_mibs[i].offset);
|
||||
@ -1019,20 +907,6 @@ static int mt7530_get_port_stats(struct switch_dev *dev, int port,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mt7621_get_port_stats(struct switch_dev *dev, int port,
|
||||
struct switch_port_stats *stats)
|
||||
{
|
||||
struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev);
|
||||
|
||||
if (port < 0 || port >= MT7530_NUM_PORTS)
|
||||
return -EINVAL;
|
||||
|
||||
stats->tx_bytes = get_mib_counter(priv, MT7621_PORT_MIB_TXB_ID, port);
|
||||
stats->rx_bytes = get_mib_counter(priv, MT7621_PORT_MIB_RXB_ID, port);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct switch_attr mt7530_global[] = {
|
||||
{
|
||||
.type = SWITCH_TYPE_INT,
|
||||
@ -1065,41 +939,6 @@ static const struct switch_attr mt7530_global[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct switch_attr mt7621_port[] = {
|
||||
{
|
||||
.type = SWITCH_TYPE_STRING,
|
||||
.name = "mib",
|
||||
.description = "Get MIB counters for port",
|
||||
.get = mt7621_sw_get_port_mib,
|
||||
.set = NULL,
|
||||
}, {
|
||||
.type = SWITCH_TYPE_INT,
|
||||
.name = "enable_mirror_rx",
|
||||
.description = "Enable mirroring of RX packets",
|
||||
.set = mt7530_set_port_mirror_rx,
|
||||
.get = mt7530_get_port_mirror_rx,
|
||||
.max = 1,
|
||||
}, {
|
||||
.type = SWITCH_TYPE_INT,
|
||||
.name = "enable_mirror_tx",
|
||||
.description = "Enable mirroring of TX packets",
|
||||
.set = mt7530_set_port_mirror_tx,
|
||||
.get = mt7530_get_port_mirror_tx,
|
||||
.max = 1,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct switch_attr mt7621_vlan[] = {
|
||||
{
|
||||
.type = SWITCH_TYPE_INT,
|
||||
.name = "vid",
|
||||
.description = "VLAN ID (0-4094)",
|
||||
.set = mt7530_set_vid,
|
||||
.get = mt7621_get_vid,
|
||||
.max = 4094,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct switch_attr mt7530_port[] = {
|
||||
{
|
||||
.type = SWITCH_TYPE_STRING,
|
||||
@ -1135,29 +974,6 @@ static const struct switch_attr mt7530_vlan[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct switch_dev_ops mt7621_ops = {
|
||||
.attr_global = {
|
||||
.attr = mt7530_global,
|
||||
.n_attr = ARRAY_SIZE(mt7530_global),
|
||||
},
|
||||
.attr_port = {
|
||||
.attr = mt7621_port,
|
||||
.n_attr = ARRAY_SIZE(mt7621_port),
|
||||
},
|
||||
.attr_vlan = {
|
||||
.attr = mt7621_vlan,
|
||||
.n_attr = ARRAY_SIZE(mt7621_vlan),
|
||||
},
|
||||
.get_vlan_ports = mt7530_get_vlan_ports,
|
||||
.set_vlan_ports = mt7530_set_vlan_ports,
|
||||
.get_port_pvid = mt7530_get_port_pvid,
|
||||
.set_port_pvid = mt7530_set_port_pvid,
|
||||
.get_port_link = mt7530_get_port_link,
|
||||
.get_port_stats = mt7621_get_port_stats,
|
||||
.apply_config = mt7530_apply_config,
|
||||
.reset_switch = mt7530_reset_switch,
|
||||
};
|
||||
|
||||
static const struct switch_dev_ops mt7530_ops = {
|
||||
.attr_global = {
|
||||
.attr = mt7530_global,
|
||||
@ -1201,9 +1017,6 @@ mt7530_probe(struct device *dev, void __iomem *base, struct mii_bus *bus, int vl
|
||||
if (bus) {
|
||||
swdev->alias = "mt7530";
|
||||
swdev->name = "mt7530";
|
||||
} else if (IS_ENABLED(CONFIG_SOC_MT7621)) {
|
||||
swdev->alias = "mt7621";
|
||||
swdev->name = "mt7621";
|
||||
} else {
|
||||
swdev->alias = "mt7620";
|
||||
swdev->name = "mt7620";
|
||||
@ -1211,10 +1024,7 @@ mt7530_probe(struct device *dev, void __iomem *base, struct mii_bus *bus, int vl
|
||||
swdev->cpu_port = MT7530_CPU_PORT;
|
||||
swdev->ports = MT7530_NUM_PORTS;
|
||||
swdev->vlans = MT7530_NUM_VLANS;
|
||||
if (IS_ENABLED(CONFIG_SOC_MT7621))
|
||||
swdev->ops = &mt7621_ops;
|
||||
else
|
||||
swdev->ops = &mt7530_ops;
|
||||
swdev->ops = &mt7530_ops;
|
||||
|
||||
ret = register_switch(swdev, NULL);
|
||||
if (ret) {
|
||||
@ -1229,7 +1039,7 @@ mt7530_probe(struct device *dev, void __iomem *base, struct mii_bus *bus, int vl
|
||||
mt7530_apply_config(swdev);
|
||||
|
||||
/* magic vodoo */
|
||||
if (!IS_ENABLED(CONFIG_SOC_MT7621) && bus && mt7530_r32(mt7530, REG_HWTRAP) != 0x1117edf) {
|
||||
if (bus && mt7530_r32(mt7530, REG_HWTRAP) != 0x1117edf) {
|
||||
dev_info(dev, "fixing up MHWTRAP register - bootloader probably played with it\n");
|
||||
mt7530_w32(mt7530, REG_HWTRAP, 0x1117edf);
|
||||
}
|
||||
|
@ -137,50 +137,6 @@
|
||||
/* Rx Event Packet Counter of Port n */
|
||||
#define MT7620_MIB_STATS_PORT_REPC2N 0x30
|
||||
|
||||
#define MT7621_MIB_COUNTER_BASE 0x4000
|
||||
#define MT7621_MIB_COUNTER_PORT_OFFSET 0x100
|
||||
#define MT7621_STATS_TDPC 0x00
|
||||
#define MT7621_STATS_TCRC 0x04
|
||||
#define MT7621_STATS_TUPC 0x08
|
||||
#define MT7621_STATS_TMPC 0x0C
|
||||
#define MT7621_STATS_TBPC 0x10
|
||||
#define MT7621_STATS_TCEC 0x14
|
||||
#define MT7621_STATS_TSCEC 0x18
|
||||
#define MT7621_STATS_TMCEC 0x1C
|
||||
#define MT7621_STATS_TDEC 0x20
|
||||
#define MT7621_STATS_TLCEC 0x24
|
||||
#define MT7621_STATS_TXCEC 0x28
|
||||
#define MT7621_STATS_TPPC 0x2C
|
||||
#define MT7621_STATS_TL64PC 0x30
|
||||
#define MT7621_STATS_TL65PC 0x34
|
||||
#define MT7621_STATS_TL128PC 0x38
|
||||
#define MT7621_STATS_TL256PC 0x3C
|
||||
#define MT7621_STATS_TL512PC 0x40
|
||||
#define MT7621_STATS_TL1024PC 0x44
|
||||
#define MT7621_STATS_TOC 0x48
|
||||
#define MT7621_STATS_RDPC 0x60
|
||||
#define MT7621_STATS_RFPC 0x64
|
||||
#define MT7621_STATS_RUPC 0x68
|
||||
#define MT7621_STATS_RMPC 0x6C
|
||||
#define MT7621_STATS_RBPC 0x70
|
||||
#define MT7621_STATS_RAEPC 0x74
|
||||
#define MT7621_STATS_RCEPC 0x78
|
||||
#define MT7621_STATS_RUSPC 0x7C
|
||||
#define MT7621_STATS_RFEPC 0x80
|
||||
#define MT7621_STATS_ROSPC 0x84
|
||||
#define MT7621_STATS_RJEPC 0x88
|
||||
#define MT7621_STATS_RPPC 0x8C
|
||||
#define MT7621_STATS_RL64PC 0x90
|
||||
#define MT7621_STATS_RL65PC 0x94
|
||||
#define MT7621_STATS_RL128PC 0x98
|
||||
#define MT7621_STATS_RL256PC 0x9C
|
||||
#define MT7621_STATS_RL512PC 0xA0
|
||||
#define MT7621_STATS_RL1024PC 0xA4
|
||||
#define MT7621_STATS_ROC 0xA8
|
||||
#define MT7621_STATS_RDPC_CTRL 0xB0
|
||||
#define MT7621_STATS_RDPC_ING 0xB4
|
||||
#define MT7621_STATS_RDPC_ARL 0xB8
|
||||
|
||||
int mt7530_probe(struct device *dev, void __iomem *base, struct mii_bus *bus, int vlan);
|
||||
|
||||
#endif
|
||||
|
@ -519,14 +519,5 @@ static inline void *priv_netdev(struct fe_priv *priv)
|
||||
return (char *)priv - ALIGN(sizeof(struct net_device), NETDEV_ALIGN);
|
||||
}
|
||||
|
||||
int mtk_ppe_probe(struct fe_priv *eth);
|
||||
void mtk_ppe_remove(struct fe_priv *eth);
|
||||
int mtk_flow_offload(struct fe_priv *eth,
|
||||
enum flow_offload_type type,
|
||||
struct flow_offload *flow,
|
||||
struct flow_offload_hw_path *src,
|
||||
struct flow_offload_hw_path *dest);
|
||||
int mtk_offload_check_rx(struct fe_priv *eth, struct sk_buff *skb, u32 rxd4);
|
||||
|
||||
|
||||
#endif /* FE_ETH_H */
|
||||
|
@ -27,16 +27,11 @@
|
||||
|
||||
#define MT7620A_CDMA_CSG_CFG 0x400
|
||||
#define MT7620_DMA_VID (MT7620A_CDMA_CSG_CFG | 0x30)
|
||||
#define MT7621_CDMP_IG_CTRL (MT7620A_CDMA_CSG_CFG + 0x00)
|
||||
#define MT7621_CDMP_EG_CTRL (MT7620A_CDMA_CSG_CFG + 0x04)
|
||||
#define MT7620A_RESET_FE BIT(21)
|
||||
#define MT7621_RESET_FE BIT(6)
|
||||
#define MT7620A_RESET_ESW BIT(23)
|
||||
#define MT7620_L4_VALID BIT(23)
|
||||
#define MT7621_L4_VALID BIT(24)
|
||||
|
||||
#define MT7620_TX_DMA_UDF BIT(15)
|
||||
#define MT7621_TX_DMA_UDF BIT(19)
|
||||
#define TX_DMA_FP_BMAP ((0xff) << 19)
|
||||
|
||||
#define CDMA_ICS_EN BIT(2)
|
||||
@ -53,11 +48,6 @@
|
||||
#define MT7620_GDM1_TX_GBCNT (MT7620_REG_MIB_OFFSET + 0x300)
|
||||
#define MT7620_GDM2_TX_GBCNT (MT7620_GDM1_TX_GBCNT + 0x40)
|
||||
|
||||
#define MT7621_REG_MIB_OFFSET 0x2000
|
||||
#define MT7621_PPE_AC_BCNT0 (MT7621_REG_MIB_OFFSET + 0x00)
|
||||
#define MT7621_GDM1_TX_GBCNT (MT7621_REG_MIB_OFFSET + 0x400)
|
||||
#define MT7621_GDM2_TX_GBCNT (MT7621_GDM1_TX_GBCNT + 0x40)
|
||||
|
||||
#define GSW_REG_GDMA1_MAC_ADRL 0x508
|
||||
#define GSW_REG_GDMA1_MAC_ADRH 0x50C
|
||||
|
||||
@ -68,8 +58,6 @@
|
||||
* but after test it should be BIT(13).
|
||||
*/
|
||||
#define MT7620_FE_GDM1_AF BIT(13)
|
||||
#define MT7621_FE_GDM1_AF BIT(28)
|
||||
#define MT7621_FE_GDM2_AF BIT(29)
|
||||
|
||||
static const u16 mt7620_reg_table[FE_REG_COUNT] = {
|
||||
[FE_REG_PDMA_GLO_CFG] = RT5350_PDMA_GLO_CFG,
|
||||
|
Loading…
Reference in New Issue
Block a user