aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h
blob: 1c42ead782fa7f4470a3f58dc1d9b2cd4c57e990 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
/* Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */

#ifndef MLX5_TIMEOUTS_H
#define MLX5_TIMEOUTS_H

enum mlx5_timeouts_types {
	/* pre init timeouts (not read from FW) */
	MLX5_TO_FW_PRE_INIT_TIMEOUT_MS,
	MLX5_TO_FW_PRE_INIT_WARN_MESSAGE_INTERVAL_MS,
	MLX5_TO_FW_PRE_INIT_WAIT_MS,

	/* init segment timeouts */
	MLX5_TO_FW_INIT_MS,
	MLX5_TO_CMD_MS,

	/* DTOR timeouts */
	MLX5_TO_PCI_TOGGLE_MS,
	MLX5_TO_HEALTH_POLL_INTERVAL_MS,
	MLX5_TO_FULL_CRDUMP_MS,
	MLX5_TO_FW_RESET_MS,
	MLX5_TO_FLUSH_ON_ERROR_MS,
	MLX5_TO_PCI_SYNC_UPDATE_MS,
	MLX5_TO_TEARDOWN_MS,
	MLX5_TO_FSM_REACTIVATE_MS,
	MLX5_TO_RECLAIM_PAGES_MS,
	MLX5_TO_RECLAIM_VFS_PAGES_MS,

	MAX_TIMEOUT_TYPES
};

struct mlx5_core_dev;
int mlx5_tout_init(struct mlx5_core_dev *dev);
void mlx5_tout_cleanup(struct mlx5_core_dev *dev);
void mlx5_tout_query_iseg(struct mlx5_core_dev *dev);
int mlx5_tout_query_dtor(struct mlx5_core_dev *dev);
void mlx5_tout_set_def_val(struct mlx5_core_dev *dev);
u64 _mlx5_tout_ms(struct mlx5_core_dev *dev, enum mlx5_timeouts_types type);

#define mlx5_tout_ms(dev, type) _mlx5_tout_ms(dev, MLX5_TO_##type##_MS)

# endif /* MLX5_TIMEOUTS_H */