diff options
| author | Jakub Kicinski <kuba@kernel.org> | 2021-12-10 20:56:59 -0800 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2021-12-10 20:57:00 -0800 |
| commit | 77ab714f00703c91d5a6e15d7445775c80358774 (patch) | |
| tree | 77627e06c25eebfc50e4bbcc05d7a3c1cbb160fc /include | |
| parent | 1868d997cf9cfddb52729a241f8653d5cec4e42c (diff) | |
| parent | 753a026cfec1429c9e32e004ae4d4c2727cc0111 (diff) | |
| download | cachepc-linux-77ab714f00703c91d5a6e15d7445775c80358774.tar.gz cachepc-linux-77ab714f00703c91d5a6e15d7445775c80358774.zip | |
Merge branch 'add-fdma-support-on-ocelot-switch-driver'
Clément Léger says:
====================
Add FDMA support on ocelot switch driver
This series adds support for the Frame DMA present on the VSC7514
switch. The FDMA is able to extract and inject packets on the various
ethernet interfaces present on the switch.
====================
Link: https://lore.kernel.org/r/20211209154911.3152830-1-clement.leger@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/soc/mscc/ocelot.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index 33f2e8c9e88b..3e9454b00562 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -118,6 +118,7 @@ enum ocelot_target { S2, HSIO, PTP, + FDMA, GCB, DEV_GMII, TARGET_MAX, @@ -732,6 +733,8 @@ struct ocelot { /* Protects the PTP clock */ spinlock_t ptp_clock_lock; struct ptp_pin_desc ptp_pins[OCELOT_PTP_PINS_NUM]; + + struct ocelot_fdma *fdma; }; struct ocelot_policer { @@ -794,8 +797,11 @@ void __ocelot_target_write_ix(struct ocelot *ocelot, enum ocelot_target target, bool ocelot_can_inject(struct ocelot *ocelot, int grp); void ocelot_port_inject_frame(struct ocelot *ocelot, int port, int grp, u32 rew_op, struct sk_buff *skb); +void ocelot_ifh_port_set(void *ifh, int port, u32 rew_op, u32 vlan_tag); int ocelot_xtr_poll_frame(struct ocelot *ocelot, int grp, struct sk_buff **skb); void ocelot_drain_cpu_queue(struct ocelot *ocelot, int grp); +void ocelot_ptp_rx_timestamp(struct ocelot *ocelot, struct sk_buff *skb, + u64 timestamp); /* Hardware initialization */ int ocelot_regfields_init(struct ocelot *ocelot, |
