.. | .. |
---|
1 | | -/* |
---|
2 | | - * aQuantia Corporation Network Driver |
---|
3 | | - * Copyright (C) 2014-2017 aQuantia Corporation. All rights reserved |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
---|
| 2 | +/* Atlantic Network Driver |
---|
4 | 3 | * |
---|
5 | | - * This program is free software; you can redistribute it and/or modify it |
---|
6 | | - * under the terms and conditions of the GNU General Public License, |
---|
7 | | - * version 2, as published by the Free Software Foundation. |
---|
| 4 | + * Copyright (C) 2014-2019 aQuantia Corporation |
---|
| 5 | + * Copyright (C) 2019-2020 Marvell International Ltd. |
---|
8 | 6 | */ |
---|
9 | 7 | |
---|
10 | 8 | /* File aq_hw_utils.h: Declaration of helper functions used across hardware |
---|
.. | .. |
---|
14 | 12 | #ifndef AQ_HW_UTILS_H |
---|
15 | 13 | #define AQ_HW_UTILS_H |
---|
16 | 14 | |
---|
| 15 | +#include <linux/iopoll.h> |
---|
| 16 | + |
---|
17 | 17 | #include "aq_common.h" |
---|
18 | 18 | |
---|
19 | 19 | #ifndef HIDWORD |
---|
.. | .. |
---|
22 | 22 | #endif |
---|
23 | 23 | |
---|
24 | 24 | #define AQ_HW_SLEEP(_US_) mdelay(_US_) |
---|
25 | | - |
---|
26 | | -#define AQ_HW_WAIT_FOR(_B_, _US_, _N_) \ |
---|
27 | | -do { \ |
---|
28 | | - unsigned int AQ_HW_WAIT_FOR_i; \ |
---|
29 | | - for (AQ_HW_WAIT_FOR_i = _N_; (!(_B_)) && (AQ_HW_WAIT_FOR_i);\ |
---|
30 | | - --AQ_HW_WAIT_FOR_i) {\ |
---|
31 | | - udelay(_US_); \ |
---|
32 | | - } \ |
---|
33 | | - if (!AQ_HW_WAIT_FOR_i) {\ |
---|
34 | | - err = -ETIME; \ |
---|
35 | | - } \ |
---|
36 | | -} while (0) |
---|
37 | 25 | |
---|
38 | 26 | #define aq_pr_err(...) pr_err(AQ_CFG_DRV_NAME ": " __VA_ARGS__) |
---|
39 | 27 | #define aq_pr_trace(...) pr_info(AQ_CFG_DRV_NAME ": " __VA_ARGS__) |
---|
.. | .. |
---|
45 | 33 | u32 aq_hw_read_reg_bit(struct aq_hw_s *aq_hw, u32 addr, u32 msk, u32 shift); |
---|
46 | 34 | u32 aq_hw_read_reg(struct aq_hw_s *hw, u32 reg); |
---|
47 | 35 | void aq_hw_write_reg(struct aq_hw_s *hw, u32 reg, u32 value); |
---|
| 36 | +u64 aq_hw_read_reg64(struct aq_hw_s *hw, u32 reg); |
---|
| 37 | +void aq_hw_write_reg64(struct aq_hw_s *hw, u32 reg, u64 value); |
---|
48 | 38 | int aq_hw_err_from_flags(struct aq_hw_s *hw); |
---|
| 39 | +int aq_hw_num_tcs(struct aq_hw_s *hw); |
---|
| 40 | +int aq_hw_q_per_tc(struct aq_hw_s *hw); |
---|
49 | 41 | |
---|
50 | 42 | #endif /* AQ_HW_UTILS_H */ |
---|