linux/drivers/net/ethernet/mellanox/mlx5/core/mlx5_irq.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
   2/* Copyright (c) 2021 Mellanox Technologies. */
   3
   4#ifndef __MLX5_IRQ_H__
   5#define __MLX5_IRQ_H__
   6
   7#include <linux/mlx5/driver.h>
   8
   9#define MLX5_COMP_EQS_PER_SF 8
  10
  11#define MLX5_IRQ_EQ_CTRL (0)
  12
  13struct mlx5_irq;
  14
  15int mlx5_irq_table_init(struct mlx5_core_dev *dev);
  16void mlx5_irq_table_cleanup(struct mlx5_core_dev *dev);
  17int mlx5_irq_table_create(struct mlx5_core_dev *dev);
  18void mlx5_irq_table_destroy(struct mlx5_core_dev *dev);
  19int mlx5_irq_table_get_num_comp(struct mlx5_irq_table *table);
  20int mlx5_irq_table_get_sfs_vec(struct mlx5_irq_table *table);
  21struct mlx5_irq_table *mlx5_irq_table_get(struct mlx5_core_dev *dev);
  22
  23int mlx5_set_msix_vec_count(struct mlx5_core_dev *dev, int devfn,
  24                            int msix_vec_count);
  25int mlx5_get_default_msix_vec_count(struct mlx5_core_dev *dev, int num_vfs);
  26
  27struct mlx5_irq *mlx5_irq_request(struct mlx5_core_dev *dev, u16 vecidx,
  28                                  struct cpumask *affinity);
  29void mlx5_irq_release(struct mlx5_irq *irq);
  30int mlx5_irq_attach_nb(struct mlx5_irq *irq, struct notifier_block *nb);
  31int mlx5_irq_detach_nb(struct mlx5_irq *irq, struct notifier_block *nb);
  32struct cpumask *mlx5_irq_get_affinity_mask(struct mlx5_irq *irq);
  33int mlx5_irq_get_index(struct mlx5_irq *irq);
  34
  35#endif /* __MLX5_IRQ_H__ */
  36