Home
last modified time | relevance | path

Searched refs:prueth (Results 1 – 17 of 17) sorted by relevance

/linux/drivers/net/ethernet/ti/icssg/
H A Dicssg_prueth.c56 struct prueth *prueth = emac->prueth; in emac_get_tx_ts() local
60 addr = icssg_queue_pop(prueth, slice == 0 ? in emac_get_tx_ts()
65 memcpy_fromio(rsp, prueth->shram.va + addr, sizeof(*rsp)); in emac_get_tx_ts()
67 icssg_queue_push(prueth, slice == 0 ? in emac_get_tx_ts()
102 hi_sw = readl(emac->prueth->shram.va + in tx_ts_work()
182 static int prueth_emac_start(struct prueth *prueth) in prueth_emac_start() argument
185 struct device *dev = prueth->dev; in prueth_emac_start()
188 if (prueth->is_switch_mode) in prueth_emac_start()
190 else if (prueth->is_hsr_offload_mode) in prueth_emac_start()
196 ret = prueth_start(prueth->pru[slice], firmwares[slice].pru); in prueth_emac_start()
[all …]
H A Dicssg_prueth_sr1.c54 static void icssg_config_sr1(struct prueth *prueth, struct prueth_emac *emac, in icssg_config_sr1() argument
62 config.addr_lo = cpu_to_le32(lower_32_bits(prueth->msmcram.pa)); in icssg_config_sr1()
63 config.addr_hi = cpu_to_le32(upper_32_bits(prueth->msmcram.pa)); in icssg_config_sr1()
73 va = prueth->shram.va + slice * ICSSG_CONFIG_OFFSET_SLICE1; in icssg_config_sr1()
155 struct prueth *prueth = emac->prueth; in icssg_config_set_speed_sr1() local
158 val = icssg_rgmii_get_speed(prueth->miig_rt, slice); in icssg_config_set_speed_sr1()
163 val = icssg_rgmii_get_fullduplex(prueth->miig_rt, slice); in icssg_config_set_speed_sr1()
176 struct prueth *prueth = emac->prueth; in emac_adjust_link_sr1() local
213 icssg_update_rgmii_cfg(prueth->miig_rt, emac); in emac_adjust_link_sr1()
234 struct prueth *prueth = emac->prueth; in emac_phy_connect() local
[all …]
H A Dicssg_config.c112 struct prueth *prueth = emac->prueth; in icssg_config_mii_init_fw_offload() local
117 mii_rt = prueth->mii_rt; in icssg_config_mii_init_fw_offload()
139 struct prueth *prueth = emac->prueth; in icssg_config_mii_init() local
144 mii_rt = prueth->mii_rt; in icssg_config_mii_init()
165 static void icssg_miig_queues_init(struct prueth *prueth, int slice) in icssg_miig_queues_init() argument
167 struct regmap *miig_rt = prueth->miig_rt; in icssg_miig_queues_init()
168 void __iomem *smem = prueth->shram.va; in icssg_miig_queues_init()
225 struct prueth *prueth = emac->prueth; in icssg_config_ipg() local
249 icssg_mii_update_ipg(prueth->mii_rt, slice, ipg); in icssg_config_ipg()
285 struct prueth *prueth = emac->prueth; in prueth_fw_offload_buffer_setup() local
[all …]
H A Dicssg_queues.c16 int icssg_queue_pop(struct prueth *prueth, u8 queue) in icssg_queue_pop() argument
23 regmap_read(prueth->miig_rt, ICSSG_QUEUE_CNT_OFFSET + 4 * queue, &cnt); in icssg_queue_pop()
27 regmap_read(prueth->miig_rt, ICSSG_QUEUE_OFFSET + 4 * queue, &val); in icssg_queue_pop()
33 void icssg_queue_push(struct prueth *prueth, int queue, u16 addr) in icssg_queue_push() argument
38 regmap_write(prueth->miig_rt, ICSSG_QUEUE_OFFSET + 4 * queue, addr); in icssg_queue_push()
42 u32 icssg_queue_level(struct prueth *prueth, int queue) in icssg_queue_level() argument
49 regmap_read(prueth->miig_rt, ICSSG_QUEUE_CNT_OFFSET + 4 * queue, &reg); in icssg_queue_level()
H A Dicssg_prueth.h149 struct prueth *prueth; member
268 struct prueth { struct
365 int icssg_config(struct prueth *prueth, struct prueth_emac *emac,
371 void icssg_init_emac_mode(struct prueth *prueth);
372 void icssg_init_fw_offload_mode(struct prueth *prueth);
375 int icssg_queue_pop(struct prueth *prueth, u8 queue);
376 void icssg_queue_push(struct prueth *prueth, int queue, u16 addr);
377 u32 icssg_queue_level(struct prueth *prueth, int queue);
388 void icssg_set_pvid(struct prueth *prueth, u8 vid, u8 port);
437 void prueth_netdev_exit(struct prueth *prueth,
[all …]
H A Dicssg_ethtool.c15 struct prueth *prueth = emac->prueth; in emac_get_drvinfo() local
17 strscpy(info->driver, dev_driver_string(prueth->dev), in emac_get_drvinfo()
19 strscpy(info->bus_info, dev_name(prueth->dev), sizeof(info->bus_info)); in emac_get_drvinfo()
74 if (emac->prueth->pa_stats) in emac_get_sset_count()
94 if (emac->prueth->pa_stats) in emac_get_strings()
115 if (emac->prueth->pa_stats) in emac_get_ethtool_stats()
248 struct prueth *prueth = emac->prueth; in emac_set_coalesce() local
255 dev_info(prueth->dev, "defaulting to min value of %dus for rx-usecs\n", in emac_set_coalesce()
262 dev_info(prueth->dev, "defaulting to min value of %dus for tx-usecs\n", in emac_set_coalesce()
277 struct prueth *prueth = emac->prueth; in emac_set_per_queue_coalesce() local
[all …]
H A Dicssg_common.c245 struct prueth *prueth = emac->prueth; in prueth_ndev_add_tx_napi() local
260 dev_err(prueth->dev, "unable to request TX IRQ %d\n", in prueth_ndev_add_tx_napi()
282 struct device *dev = emac->prueth->dev; in prueth_init_tx_chns()
360 struct device *dev = emac->prueth->dev; in prueth_init_rx_chns()
436 rx_flow_cfg.rxfdq_cfg.mode = emac->prueth->pdata.fdqring_mode; in prueth_init_rx_chns()
527 u32 hi_sw = readl(emac->prueth->shram.va + in emac_rx_timestamp()
591 if (emac->prueth->is_switch_mode) in emac_rx_packet()
663 struct prueth *prueth = emac->prueth; in icssg_ndo_start_xmit() local
721 if (prueth->is_hsr_offload_mode && in icssg_ndo_start_xmit()
725 if (prueth->is_hsr_offload_mode && in icssg_ndo_start_xmit()
[all …]
H A Dicssg_stats.c22 struct prueth *prueth = emac->prueth; in emac_update_hardware_stats() local
30 regmap_read(prueth->miig_rt, in emac_update_hardware_stats()
33 regmap_write(prueth->miig_rt, in emac_update_hardware_stats()
45 if (prueth->pa_stats) { in emac_update_hardware_stats()
50 regmap_read(prueth->pa_stats, reg, &val); in emac_update_hardware_stats()
76 if (emac->prueth->pa_stats) { in emac_get_stat_by_name()
H A Dicssg_switchdev.c254 icssg_set_pvid(emac->prueth, vid, emac->port_id); in prueth_switchdev_vlan_add()
278 icssg_set_pvid(emac->prueth, 0, emac->port_id); in prueth_switchdev_vlan_del()
450 int prueth_switchdev_register_notifiers(struct prueth *prueth) in prueth_switchdev_register_notifiers() argument
454 prueth->prueth_switchdev_nb.notifier_call = &prueth_switchdev_event; in prueth_switchdev_register_notifiers()
455 ret = register_switchdev_notifier(&prueth->prueth_switchdev_nb); in prueth_switchdev_register_notifiers()
457 dev_err(prueth->dev, "register switchdev notifier fail ret:%d\n", in prueth_switchdev_register_notifiers()
462 prueth->prueth_switchdev_bl_nb.notifier_call = &prueth_switchdev_blocking_event; in prueth_switchdev_register_notifiers()
463 ret = register_switchdev_blocking_notifier(&prueth->prueth_switchdev_bl_nb); in prueth_switchdev_register_notifiers()
465 dev_err(prueth->dev, "register switchdev blocking notifier ret:%d\n", in prueth_switchdev_register_notifiers()
467 unregister_switchdev_notifier(&prueth->prueth_switchdev_nb); in prueth_switchdev_register_notifiers()
[all …]
H A Dicssg_switchdev.h9 int prueth_switchdev_register_notifiers(struct prueth *prueth);
10 void prueth_switchdev_unregister_notifiers(struct prueth *prueth);
/linux/arch/arm64/boot/dts/ti/
H A Dk3-am65-iot2050-common-pg1.dtsi46 compatible = "ti,am654-sr1-icssg-prueth";
49 firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
50 "ti-pruss/am65x-rtu0-prueth-fw.elf",
51 "ti-pruss/am65x-pru1-prueth-fw.elf",
52 "ti-pruss/am65x-rtu1-prueth-fw.elf";
H A Dk3-am654-idk.dtso25 compatible = "ti,am654-icssg-prueth";
30 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
31 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
32 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
33 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
34 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
35 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
92 compatible = "ti,am654-icssg-prueth";
97 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
98 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
[all …]
H A Dk3-am642-phyboard-electra-rdk.dts62 compatible = "ti,am642-icssg-prueth";
71 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
72 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
73 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
74 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
75 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
76 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
H A Dk3-am65-iot2050-common.dtsi144 compatible = "ti,am654-icssg-prueth";
151 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
152 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
153 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
154 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
155 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
156 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
H A Dk3-am642-sr-som.dtsi29 compatible = "ti,am642-icssg-prueth";
35 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
36 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
37 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
38 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
39 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
40 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
H A Dk3-am642-evm.dts247 compatible = "ti,am642-icssg-prueth";
252 firmware-name = "ti-pruss/am64x-sr2-pru0-prueth-fw.elf",
253 "ti-pruss/am64x-sr2-rtu0-prueth-fw.elf",
254 "ti-pruss/am64x-sr2-txpru0-prueth-fw.elf",
255 "ti-pruss/am64x-sr2-pru1-prueth-fw.elf",
256 "ti-pruss/am64x-sr2-rtu1-prueth-fw.elf",
257 "ti-pruss/am64x-sr2-txpru1-prueth-fw.elf";
/linux/drivers/net/ethernet/ti/
H A DMakefile34 obj-$(CONFIG_TI_ICSSG_PRUETH) += icssg-prueth.o icssg.o
35 icssg-prueth-y := icssg/icssg_prueth.o icssg/icssg_switchdev.o
37 obj-$(CONFIG_TI_ICSSG_PRUETH_SR1) += icssg-prueth-sr1.o icssg.o
38 icssg-prueth-sr1-y := icssg/icssg_prueth_sr1.o