|
@@ -669,6 +669,38 @@ static void dwmac4_debug(void __iomem *ioaddr, struct stmmac_extra_stats *x,
|
|
|
|
|
|
static const struct stmmac_ops dwmac4_ops = {
|
|
|
.core_init = dwmac4_core_init,
|
|
|
+ .set_mac = stmmac_set_mac,
|
|
|
+ .rx_ipc = dwmac4_rx_ipc_enable,
|
|
|
+ .rx_queue_enable = dwmac4_rx_queue_enable,
|
|
|
+ .rx_queue_prio = dwmac4_rx_queue_priority,
|
|
|
+ .tx_queue_prio = dwmac4_tx_queue_priority,
|
|
|
+ .rx_queue_routing = dwmac4_tx_queue_routing,
|
|
|
+ .prog_mtl_rx_algorithms = dwmac4_prog_mtl_rx_algorithms,
|
|
|
+ .prog_mtl_tx_algorithms = dwmac4_prog_mtl_tx_algorithms,
|
|
|
+ .set_mtl_tx_queue_weight = dwmac4_set_mtl_tx_queue_weight,
|
|
|
+ .map_mtl_to_dma = dwmac4_map_mtl_dma,
|
|
|
+ .config_cbs = dwmac4_config_cbs,
|
|
|
+ .dump_regs = dwmac4_dump_regs,
|
|
|
+ .host_irq_status = dwmac4_irq_status,
|
|
|
+ .host_mtl_irq_status = dwmac4_irq_mtl_status,
|
|
|
+ .flow_ctrl = dwmac4_flow_ctrl,
|
|
|
+ .pmt = dwmac4_pmt,
|
|
|
+ .set_umac_addr = dwmac4_set_umac_addr,
|
|
|
+ .get_umac_addr = dwmac4_get_umac_addr,
|
|
|
+ .set_eee_mode = dwmac4_set_eee_mode,
|
|
|
+ .reset_eee_mode = dwmac4_reset_eee_mode,
|
|
|
+ .set_eee_timer = dwmac4_set_eee_timer,
|
|
|
+ .set_eee_pls = dwmac4_set_eee_pls,
|
|
|
+ .pcs_ctrl_ane = dwmac4_ctrl_ane,
|
|
|
+ .pcs_rane = dwmac4_rane,
|
|
|
+ .pcs_get_adv_lp = dwmac4_get_adv_lp,
|
|
|
+ .debug = dwmac4_debug,
|
|
|
+ .set_filter = dwmac4_set_filter,
|
|
|
+};
|
|
|
+
|
|
|
+static const struct stmmac_ops dwmac410_ops = {
|
|
|
+ .core_init = dwmac4_core_init,
|
|
|
+ .set_mac = stmmac_dwmac4_set_mac,
|
|
|
.rx_ipc = dwmac4_rx_ipc_enable,
|
|
|
.rx_queue_enable = dwmac4_rx_queue_enable,
|
|
|
.rx_queue_prio = dwmac4_rx_queue_priority,
|
|
@@ -715,8 +747,6 @@ struct mac_device_info *dwmac4_setup(void __iomem *ioaddr, int mcbins,
|
|
|
if (mac->multicast_filter_bins)
|
|
|
mac->mcast_bits_log2 = ilog2(mac->multicast_filter_bins);
|
|
|
|
|
|
- mac->mac = &dwmac4_ops;
|
|
|
-
|
|
|
mac->link.port = GMAC_CONFIG_PS;
|
|
|
mac->link.duplex = GMAC_CONFIG_DM;
|
|
|
mac->link.speed = GMAC_CONFIG_FES;
|
|
@@ -737,5 +767,10 @@ struct mac_device_info *dwmac4_setup(void __iomem *ioaddr, int mcbins,
|
|
|
else
|
|
|
mac->dma = &dwmac4_dma_ops;
|
|
|
|
|
|
+ if (*synopsys_id >= DWMAC_CORE_4_00)
|
|
|
+ mac->mac = &dwmac410_ops;
|
|
|
+ else
|
|
|
+ mac->mac = &dwmac4_ops;
|
|
|
+
|
|
|
return mac;
|
|
|
}
|