1 From 5577b3fca6c290696106f13776e8f8ce550f35b2 Mon Sep 17 00:00:00 2001
2 From: Sasha Levin <sashal@kernel.org>
3 Date: Wed, 27 Sep 2023 10:31:33 +0200
4 Subject: i40e: Split i40e_osdep.h
6 From: Ivan Vecera <ivecera@redhat.com>
8 [ Upstream commit 5dfd37c37a44ba47c35ff8e6eaff14c226141111 ]
10 Header i40e_osdep.h contains only IO primitives and couple of debug
11 printing macros. Split this header file to i40e_io.h and i40e_debug.h
12 and move i40e_debug_mask enum to i40e_debug.h
14 Signed-off-by: Ivan Vecera <ivecera@redhat.com>
15 Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
16 Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
17 Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
18 Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
19 Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
20 Stable-dep-of: 6dbdd4de0362 ("e1000e: Workaround for sporadic MDI error on Meteor Lake systems")
21 Signed-off-by: Sasha Levin <sashal@kernel.org>
23 drivers/net/ethernet/intel/i40e/i40e_adminq.h | 2 +-
24 drivers/net/ethernet/intel/i40e/i40e_debug.h | 47 +++++++++++++++++++
25 drivers/net/ethernet/intel/i40e/i40e_hmc.c | 1 -
26 drivers/net/ethernet/intel/i40e/i40e_io.h | 16 +++++++
27 .../net/ethernet/intel/i40e/i40e_lan_hmc.c | 1 -
28 drivers/net/ethernet/intel/i40e/i40e_osdep.h | 40 ----------------
29 .../net/ethernet/intel/i40e/i40e_prototype.h | 1 +
30 drivers/net/ethernet/intel/i40e/i40e_type.h | 31 ++----------
31 8 files changed, 68 insertions(+), 71 deletions(-)
32 create mode 100644 drivers/net/ethernet/intel/i40e/i40e_debug.h
33 create mode 100644 drivers/net/ethernet/intel/i40e/i40e_io.h
34 delete mode 100644 drivers/net/ethernet/intel/i40e/i40e_osdep.h
36 diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq.h b/drivers/net/ethernet/intel/i40e/i40e_adminq.h
37 index 1c3d2bc5c3f79..80125bea80a2a 100644
38 --- a/drivers/net/ethernet/intel/i40e/i40e_adminq.h
39 +++ b/drivers/net/ethernet/intel/i40e/i40e_adminq.h
41 #ifndef _I40E_ADMINQ_H_
42 #define _I40E_ADMINQ_H_
44 +#include <linux/mutex.h>
45 #include "i40e_alloc.h"
46 -#include "i40e_osdep.h"
47 #include "i40e_adminq_cmd.h"
49 #define I40E_ADMINQ_DESC(R, i) \
50 diff --git a/drivers/net/ethernet/intel/i40e/i40e_debug.h b/drivers/net/ethernet/intel/i40e/i40e_debug.h
52 index 0000000000000..27ebc72d8bfe5
54 +++ b/drivers/net/ethernet/intel/i40e/i40e_debug.h
56 +/* SPDX-License-Identifier: GPL-2.0 */
57 +/* Copyright(c) 2023 Intel Corporation. */
59 +#ifndef _I40E_DEBUG_H_
60 +#define _I40E_DEBUG_H_
62 +#include <linux/dev_printk.h>
64 +/* debug masks - set these bits in hw->debug_mask to control output */
65 +enum i40e_debug_mask {
66 + I40E_DEBUG_INIT = 0x00000001,
67 + I40E_DEBUG_RELEASE = 0x00000002,
69 + I40E_DEBUG_LINK = 0x00000010,
70 + I40E_DEBUG_PHY = 0x00000020,
71 + I40E_DEBUG_HMC = 0x00000040,
72 + I40E_DEBUG_NVM = 0x00000080,
73 + I40E_DEBUG_LAN = 0x00000100,
74 + I40E_DEBUG_FLOW = 0x00000200,
75 + I40E_DEBUG_DCB = 0x00000400,
76 + I40E_DEBUG_DIAG = 0x00000800,
77 + I40E_DEBUG_FD = 0x00001000,
78 + I40E_DEBUG_PACKAGE = 0x00002000,
79 + I40E_DEBUG_IWARP = 0x00F00000,
80 + I40E_DEBUG_AQ_MESSAGE = 0x01000000,
81 + I40E_DEBUG_AQ_DESCRIPTOR = 0x02000000,
82 + I40E_DEBUG_AQ_DESC_BUFFER = 0x04000000,
83 + I40E_DEBUG_AQ_COMMAND = 0x06000000,
84 + I40E_DEBUG_AQ = 0x0F000000,
86 + I40E_DEBUG_USER = 0xF0000000,
88 + I40E_DEBUG_ALL = 0xFFFFFFFF
92 +struct device *i40e_hw_to_dev(struct i40e_hw *hw);
94 +#define hw_dbg(hw, S, A...) dev_dbg(i40e_hw_to_dev(hw), S, ##A)
96 +#define i40e_debug(h, m, s, ...) \
98 + if (((m) & (h)->debug_mask)) \
99 + dev_info(i40e_hw_to_dev(hw), s, ##__VA_ARGS__); \
102 +#endif /* _I40E_DEBUG_H_ */
103 diff --git a/drivers/net/ethernet/intel/i40e/i40e_hmc.c b/drivers/net/ethernet/intel/i40e/i40e_hmc.c
104 index 7451d346ae83f..b383aea652f3e 100644
105 --- a/drivers/net/ethernet/intel/i40e/i40e_hmc.c
106 +++ b/drivers/net/ethernet/intel/i40e/i40e_hmc.c
108 /* Copyright(c) 2013 - 2018 Intel Corporation. */
111 -#include "i40e_osdep.h"
112 #include "i40e_register.h"
113 #include "i40e_alloc.h"
114 #include "i40e_hmc.h"
115 diff --git a/drivers/net/ethernet/intel/i40e/i40e_io.h b/drivers/net/ethernet/intel/i40e/i40e_io.h
117 index 0000000000000..2a2ed9a1d476b
119 +++ b/drivers/net/ethernet/intel/i40e/i40e_io.h
121 +/* SPDX-License-Identifier: GPL-2.0 */
122 +/* Copyright(c) 2023 Intel Corporation. */
127 +/* get readq/writeq support for 32 bit kernels, use the low-first version */
128 +#include <linux/io-64-nonatomic-lo-hi.h>
130 +#define wr32(a, reg, value) writel((value), ((a)->hw_addr + (reg)))
131 +#define rd32(a, reg) readl((a)->hw_addr + (reg))
133 +#define rd64(a, reg) readq((a)->hw_addr + (reg))
134 +#define i40e_flush(a) readl((a)->hw_addr + I40E_GLGEN_STAT)
136 +#endif /* _I40E_IO_H_ */
137 diff --git a/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c b/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c
138 index 474365bf06480..830f1de254ef4 100644
139 --- a/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c
140 +++ b/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c
142 /* Copyright(c) 2013 - 2018 Intel Corporation. */
145 -#include "i40e_osdep.h"
146 #include "i40e_register.h"
147 #include "i40e_type.h"
148 #include "i40e_hmc.h"
149 diff --git a/drivers/net/ethernet/intel/i40e/i40e_osdep.h b/drivers/net/ethernet/intel/i40e/i40e_osdep.h
150 deleted file mode 100644
151 index fd18895cfb56b..0000000000000
152 --- a/drivers/net/ethernet/intel/i40e/i40e_osdep.h
155 -/* SPDX-License-Identifier: GPL-2.0 */
156 -/* Copyright(c) 2013 - 2018 Intel Corporation. */
158 -#ifndef _I40E_OSDEP_H_
159 -#define _I40E_OSDEP_H_
161 -#include <linux/types.h>
162 -#include <linux/if_ether.h>
163 -#include <linux/if_vlan.h>
164 -#include <linux/tcp.h>
165 -#include <linux/pci.h>
166 -#include <linux/highuid.h>
168 -/* get readq/writeq support for 32 bit kernels, use the low-first version */
169 -#include <linux/io-64-nonatomic-lo-hi.h>
171 -/* File to be the magic between shared code and
172 - * actual OS primitives
176 -struct device *i40e_hw_to_dev(struct i40e_hw *hw);
178 -#define hw_dbg(hw, S, A...) dev_dbg(i40e_hw_to_dev(hw), S, ##A)
180 -#define wr32(a, reg, value) writel((value), ((a)->hw_addr + (reg)))
181 -#define rd32(a, reg) readl((a)->hw_addr + (reg))
183 -#define rd64(a, reg) readq((a)->hw_addr + (reg))
184 -#define i40e_flush(a) readl((a)->hw_addr + I40E_GLGEN_STAT)
186 -#define i40e_debug(h, m, s, ...) \
188 - if (((m) & (h)->debug_mask)) \
189 - pr_info("i40e %02x:%02x.%x " s, \
190 - (h)->bus.bus_id, (h)->bus.device, \
191 - (h)->bus.func, ##__VA_ARGS__); \
194 -#endif /* _I40E_OSDEP_H_ */
195 diff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
196 index 3eeee224f1fb2..9c9234c0706f0 100644
197 --- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h
198 +++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
201 #include "i40e_type.h"
202 #include "i40e_alloc.h"
203 +#include "i40e_debug.h"
204 #include <linux/avf/virtchnl.h>
206 /* Prototypes for shared code functions that are not in
207 diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
208 index d4c6afe84fdd2..44cea0f4f908d 100644
209 --- a/drivers/net/ethernet/intel/i40e/i40e_type.h
210 +++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
212 #ifndef _I40E_TYPE_H_
213 #define _I40E_TYPE_H_
215 -#include "i40e_osdep.h"
216 +#include <linux/delay.h>
217 +#include <linux/if_ether.h>
218 +#include "i40e_io.h"
219 #include "i40e_register.h"
220 #include "i40e_adminq.h"
221 #include "i40e_hmc.h"
222 @@ -43,33 +45,6 @@ typedef void (*I40E_ADMINQ_CALLBACK)(struct i40e_hw *, struct i40e_aq_desc *);
223 #define I40E_QTX_CTL_VM_QUEUE 0x1
224 #define I40E_QTX_CTL_PF_QUEUE 0x2
226 -/* debug masks - set these bits in hw->debug_mask to control output */
227 -enum i40e_debug_mask {
228 - I40E_DEBUG_INIT = 0x00000001,
229 - I40E_DEBUG_RELEASE = 0x00000002,
231 - I40E_DEBUG_LINK = 0x00000010,
232 - I40E_DEBUG_PHY = 0x00000020,
233 - I40E_DEBUG_HMC = 0x00000040,
234 - I40E_DEBUG_NVM = 0x00000080,
235 - I40E_DEBUG_LAN = 0x00000100,
236 - I40E_DEBUG_FLOW = 0x00000200,
237 - I40E_DEBUG_DCB = 0x00000400,
238 - I40E_DEBUG_DIAG = 0x00000800,
239 - I40E_DEBUG_FD = 0x00001000,
240 - I40E_DEBUG_PACKAGE = 0x00002000,
241 - I40E_DEBUG_IWARP = 0x00F00000,
242 - I40E_DEBUG_AQ_MESSAGE = 0x01000000,
243 - I40E_DEBUG_AQ_DESCRIPTOR = 0x02000000,
244 - I40E_DEBUG_AQ_DESC_BUFFER = 0x04000000,
245 - I40E_DEBUG_AQ_COMMAND = 0x06000000,
246 - I40E_DEBUG_AQ = 0x0F000000,
248 - I40E_DEBUG_USER = 0xF0000000,
250 - I40E_DEBUG_ALL = 0xFFFFFFFF
253 #define I40E_MDIO_CLAUSE22_STCODE_MASK I40E_GLGEN_MSCA_STCODE_MASK
254 #define I40E_MDIO_CLAUSE22_OPCODE_WRITE_MASK I40E_GLGEN_MSCA_OPCODE_MASK(1)
255 #define I40E_MDIO_CLAUSE22_OPCODE_READ_MASK I40E_GLGEN_MSCA_OPCODE_MASK(2)