summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2021-12-10 20:56:59 -0800
committerJakub Kicinski <kuba@kernel.org>2021-12-10 20:57:00 -0800
commit77ab714f00703c91d5a6e15d7445775c80358774 (patch)
tree77627e06c25eebfc50e4bbcc05d7a3c1cbb160fc /include
parent1868d997cf9cfddb52729a241f8653d5cec4e42c (diff)
parent753a026cfec1429c9e32e004ae4d4c2727cc0111 (diff)
downloadcachepc-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.h6
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,