![]() |
|
|||
0001 /* 0002 * Copyright (c) 2016, Mellanox Technologies. All rights reserved. 0003 * 0004 * This software is available to you under a choice of one of two 0005 * licenses. You may choose to be licensed under the terms of the GNU 0006 * General Public License (GPL) Version 2, available from the file 0007 * COPYING in the main directory of this source tree, or the 0008 * OpenIB.org BSD license below: 0009 * 0010 * Redistribution and use in source and binary forms, with or 0011 * without modification, are permitted provided that the following 0012 * conditions are met: 0013 * 0014 * - Redistributions of source code must retain the above 0015 * copyright notice, this list of conditions and the following 0016 * disclaimer. 0017 * 0018 * - Redistributions in binary form must reproduce the above 0019 * copyright notice, this list of conditions and the following 0020 * disclaimer in the documentation and/or other materials 0021 * provided with the distribution. 0022 * 0023 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 0024 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 0025 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 0026 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 0027 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 0028 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 0029 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 0030 * SOFTWARE. 0031 */ 0032 0033 #include <linux/dim.h> 0034 #include "en.h" 0035 0036 static void 0037 mlx5e_complete_dim_work(struct dim *dim, struct dim_cq_moder moder, 0038 struct mlx5_core_dev *mdev, struct mlx5_core_cq *mcq) 0039 { 0040 mlx5_core_modify_cq_moderation(mdev, mcq, moder.usec, moder.pkts); 0041 dim->state = DIM_START_MEASURE; 0042 } 0043 0044 void mlx5e_rx_dim_work(struct work_struct *work) 0045 { 0046 struct dim *dim = container_of(work, struct dim, work); 0047 struct mlx5e_rq *rq = container_of(dim, struct mlx5e_rq, dim); 0048 struct dim_cq_moder cur_moder = 0049 net_dim_get_rx_moderation(dim->mode, dim->profile_ix); 0050 0051 mlx5e_complete_dim_work(dim, cur_moder, rq->mdev, &rq->cq.mcq); 0052 } 0053 0054 void mlx5e_tx_dim_work(struct work_struct *work) 0055 { 0056 struct dim *dim = container_of(work, struct dim, work); 0057 struct mlx5e_txqsq *sq = container_of(dim, struct mlx5e_txqsq, dim); 0058 struct dim_cq_moder cur_moder = 0059 net_dim_get_tx_moderation(dim->mode, dim->profile_ix); 0060 0061 mlx5e_complete_dim_work(dim, cur_moder, sq->cq.mdev, &sq->cq.mcq); 0062 }
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |