Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
0002 /* Copyright (c) 2021, Mellanox Technologies inc. All rights reserved. */
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 }