0001
0002
0003
0004 #include "channels.h"
0005 #include "en.h"
0006 #include "en/ptp.h"
0007
0008 unsigned int mlx5e_channels_get_num(struct mlx5e_channels *chs)
0009 {
0010 return chs->num;
0011 }
0012
0013 void mlx5e_channels_get_regular_rqn(struct mlx5e_channels *chs, unsigned int ix, u32 *rqn)
0014 {
0015 struct mlx5e_channel *c;
0016
0017 WARN_ON(ix >= mlx5e_channels_get_num(chs));
0018 c = chs->c[ix];
0019
0020 *rqn = c->rq.rqn;
0021 }
0022
0023 bool mlx5e_channels_get_xsk_rqn(struct mlx5e_channels *chs, unsigned int ix, u32 *rqn)
0024 {
0025 struct mlx5e_channel *c;
0026
0027 WARN_ON(ix >= mlx5e_channels_get_num(chs));
0028 c = chs->c[ix];
0029
0030 if (!test_bit(MLX5E_CHANNEL_STATE_XSK, c->state))
0031 return false;
0032
0033 *rqn = c->xskrq.rqn;
0034 return true;
0035 }
0036
0037 bool mlx5e_channels_get_ptp_rqn(struct mlx5e_channels *chs, u32 *rqn)
0038 {
0039 struct mlx5e_ptp *c = chs->ptp;
0040
0041 if (!c || !test_bit(MLX5E_PTP_STATE_RX, c->state))
0042 return false;
0043
0044 *rqn = c->rq.rqn;
0045 return true;
0046 }