net: lan966x: Expose functions that are needed by FDMA

Expose the following functions 'lan966x_hw_offload',
'lan966x_ifh_get_src_port' and 'lan966x_ifh_get_timestamp' in
lan966x_main.h so they can be accessed by FDMA.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Horatiu Vultur 2022-04-08 09:03:55 +02:00 committed by Jakub Kicinski
parent fdb2981c00
commit 8f2c7d9ad7
2 changed files with 11 additions and 7 deletions

View file

@ -24,9 +24,6 @@
#define XTR_NOT_READY 0x07000080U #define XTR_NOT_READY 0x07000080U
#define XTR_VALID_BYTES(x) (4 - (((x) >> 24) & 3)) #define XTR_VALID_BYTES(x) (4 - (((x) >> 24) & 3))
#define READL_SLEEP_US 10
#define READL_TIMEOUT_US 100000000
#define IO_RANGES 2 #define IO_RANGES 2
static const struct of_device_id lan966x_match[] = { static const struct of_device_id lan966x_match[] = {
@ -433,8 +430,7 @@ bool lan966x_netdevice_check(const struct net_device *dev)
return dev->netdev_ops == &lan966x_port_netdev_ops; return dev->netdev_ops == &lan966x_port_netdev_ops;
} }
static bool lan966x_hw_offload(struct lan966x *lan966x, u32 port, bool lan966x_hw_offload(struct lan966x *lan966x, u32 port, struct sk_buff *skb)
struct sk_buff *skb)
{ {
u32 val; u32 val;
@ -515,7 +511,7 @@ static int lan966x_rx_frame_word(struct lan966x *lan966x, u8 grp, u32 *rval)
} }
} }
static void lan966x_ifh_get_src_port(void *ifh, u64 *src_port) void lan966x_ifh_get_src_port(void *ifh, u64 *src_port)
{ {
packing(ifh, src_port, IFH_POS_SRCPORT + IFH_WID_SRCPORT - 1, packing(ifh, src_port, IFH_POS_SRCPORT + IFH_WID_SRCPORT - 1,
IFH_POS_SRCPORT, IFH_LEN * 4, UNPACK, 0); IFH_POS_SRCPORT, IFH_LEN * 4, UNPACK, 0);
@ -527,7 +523,7 @@ static void lan966x_ifh_get_len(void *ifh, u64 *len)
IFH_POS_LEN, IFH_LEN * 4, UNPACK, 0); IFH_POS_LEN, IFH_LEN * 4, UNPACK, 0);
} }
static void lan966x_ifh_get_timestamp(void *ifh, u64 *timestamp) void lan966x_ifh_get_timestamp(void *ifh, u64 *timestamp)
{ {
packing(ifh, timestamp, IFH_POS_TIMESTAMP + IFH_WID_TIMESTAMP - 1, packing(ifh, timestamp, IFH_POS_TIMESTAMP + IFH_WID_TIMESTAMP - 1,
IFH_POS_TIMESTAMP, IFH_LEN * 4, UNPACK, 0); IFH_POS_TIMESTAMP, IFH_LEN * 4, UNPACK, 0);

View file

@ -17,6 +17,9 @@
#define TABLE_UPDATE_SLEEP_US 10 #define TABLE_UPDATE_SLEEP_US 10
#define TABLE_UPDATE_TIMEOUT_US 100000 #define TABLE_UPDATE_TIMEOUT_US 100000
#define READL_SLEEP_US 10
#define READL_TIMEOUT_US 100000000
#define LAN966X_BUFFER_CELL_SZ 64 #define LAN966X_BUFFER_CELL_SZ 64
#define LAN966X_BUFFER_MEMORY (160 * 1024) #define LAN966X_BUFFER_MEMORY (160 * 1024)
#define LAN966X_BUFFER_MIN_SZ 60 #define LAN966X_BUFFER_MIN_SZ 60
@ -195,6 +198,11 @@ bool lan966x_netdevice_check(const struct net_device *dev);
void lan966x_register_notifier_blocks(void); void lan966x_register_notifier_blocks(void);
void lan966x_unregister_notifier_blocks(void); void lan966x_unregister_notifier_blocks(void);
bool lan966x_hw_offload(struct lan966x *lan966x, u32 port, struct sk_buff *skb);
void lan966x_ifh_get_src_port(void *ifh, u64 *src_port);
void lan966x_ifh_get_timestamp(void *ifh, u64 *timestamp);
void lan966x_stats_get(struct net_device *dev, void lan966x_stats_get(struct net_device *dev,
struct rtnl_link_stats64 *stats); struct rtnl_link_stats64 *stats);
int lan966x_stats_init(struct lan966x *lan966x); int lan966x_stats_init(struct lan966x *lan966x);