static const struct rteth_config rteth_838x_cfg = {
.family_id = RTL8380_FAMILY_ID,
.cpu_port = RTETH_838X_CPU_PORT,
+ .rx_rings = 8,
.net_irq = rteth_83xx_net_irq,
.mac_l2_port_ctrl = RTETH_838X_MAC_L2_PORT_CTRL,
.dma_if_intr_sts = RTL838X_DMA_IF_INTR_STS,
static const struct rteth_config rteth_839x_cfg = {
.family_id = RTL8390_FAMILY_ID,
.cpu_port = RTETH_839X_CPU_PORT,
+ .rx_rings = 8,
.net_irq = rteth_83xx_net_irq,
.mac_l2_port_ctrl = RTETH_839X_MAC_L2_PORT_CTRL,
.dma_if_intr_sts = RTL839X_DMA_IF_INTR_STS,
static const struct rteth_config rteth_930x_cfg = {
.family_id = RTL9300_FAMILY_ID,
.cpu_port = RTETH_930X_CPU_PORT,
+ .rx_rings = 32,
.net_irq = rteth_93xx_net_irq,
.mac_l2_port_ctrl = RTETH_930X_MAC_L2_PORT_CTRL,
.dma_if_intr_rx_runout_sts = RTL930X_DMA_IF_INTR_RX_RUNOUT_STS,
static const struct rteth_config rteth_931x_cfg = {
.family_id = RTL9310_FAMILY_ID,
.cpu_port = RTETH_931X_CPU_PORT,
+ .rx_rings = 32,
.net_irq = rteth_93xx_net_irq,
.mac_l2_port_ctrl = RTETH_931X_MAC_L2_PORT_CTRL,
.dma_if_intr_rx_runout_sts = RTL931X_DMA_IF_INTR_RX_RUNOUT_STS,
struct net_device *dev;
struct device_node *dn = pdev->dev.of_node;
struct rteth_ctrl *ctrl;
- const struct rteth_config *matchdata;
+ const struct rteth_config *cfg;
phy_interface_t phy_mode;
struct phylink *phylink;
u8 mac_addr[ETH_ALEN] = {0};
return -EINVAL;
}
- matchdata = (const struct rteth_config *)device_get_match_data(&pdev->dev);
+ cfg = device_get_match_data(&pdev->dev);
- rxrings = (matchdata->family_id == RTL8380_FAMILY_ID ||
- matchdata->family_id == RTL8390_FAMILY_ID) ? 8 : 32;
- rxrings = rxrings > MAX_RXRINGS ? MAX_RXRINGS : rxrings;
+ rxrings = cfg->rx_rings > MAX_RXRINGS ? MAX_RXRINGS : cfg->rx_rings;
rxringlen = MAX_ENTRIES / rxrings;
rxringlen = rxringlen > MAX_RXLEN ? MAX_RXLEN : rxringlen;
return -ENOMEM;
SET_NETDEV_DEV(dev, &pdev->dev);
ctrl = netdev_priv(dev);
- ctrl->r = matchdata;
+ ctrl->r = cfg;
/* Allocate buffer memory */
ctrl->membase = dmam_alloc_coherent(&pdev->dev, rxrings * rxringlen * RING_BUFFER +