hwif.h (0c3f3c4f4b15a2c105e1ca882d100048074a2865) hwif.h (1d84b487bc2d9061bd00203f571e5cb99fe0a312)
1/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
2// Copyright (c) 2018 Synopsys, Inc. and/or its affiliates.
3// stmmac HW Interface Callbacks
4
5#ifndef __STMMAC_HWIF_H__
6#define __STMMAC_HWIF_H__
7
8#include <linux/netdevice.h>

--- 12 unchanged lines hidden (view full) ---

21({ \
22 int __result = -EINVAL; \
23 if ((__priv)->hw->__module && (__priv)->hw->__module->__cname) \
24 __result = (__priv)->hw->__module->__cname((__arg0), ##__args); \
25 __result; \
26})
27
28struct stmmac_extra_stats;
1/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
2// Copyright (c) 2018 Synopsys, Inc. and/or its affiliates.
3// stmmac HW Interface Callbacks
4
5#ifndef __STMMAC_HWIF_H__
6#define __STMMAC_HWIF_H__
7
8#include <linux/netdevice.h>

--- 12 unchanged lines hidden (view full) ---

21({ \
22 int __result = -EINVAL; \
23 if ((__priv)->hw->__module && (__priv)->hw->__module->__cname) \
24 __result = (__priv)->hw->__module->__cname((__arg0), ##__args); \
25 __result; \
26})
27
28struct stmmac_extra_stats;
29struct stmmac_priv;
29struct stmmac_safety_stats;
30struct dma_desc;
31struct dma_extended_desc;
32struct dma_edesc;
33
34/* Descriptors helpers */
35struct stmmac_desc_ops {
36 /* DMA RX descriptor ring initialization */

--- 129 unchanged lines hidden (view full) ---

166struct dma_features;
167
168/* Specific DMA helpers */
169struct stmmac_dma_ops {
170 /* DMA core initialization */
171 int (*reset)(void __iomem *ioaddr);
172 void (*init)(void __iomem *ioaddr, struct stmmac_dma_cfg *dma_cfg,
173 int atds);
30struct stmmac_safety_stats;
31struct dma_desc;
32struct dma_extended_desc;
33struct dma_edesc;
34
35/* Descriptors helpers */
36struct stmmac_desc_ops {
37 /* DMA RX descriptor ring initialization */

--- 129 unchanged lines hidden (view full) ---

167struct dma_features;
168
169/* Specific DMA helpers */
170struct stmmac_dma_ops {
171 /* DMA core initialization */
172 int (*reset)(void __iomem *ioaddr);
173 void (*init)(void __iomem *ioaddr, struct stmmac_dma_cfg *dma_cfg,
174 int atds);
174 void (*init_chan)(void __iomem *ioaddr,
175 void (*init_chan)(struct stmmac_priv *priv, void __iomem *ioaddr,
175 struct stmmac_dma_cfg *dma_cfg, u32 chan);
176 struct stmmac_dma_cfg *dma_cfg, u32 chan);
176 void (*init_rx_chan)(void __iomem *ioaddr,
177 void (*init_rx_chan)(struct stmmac_priv *priv, void __iomem *ioaddr,
177 struct stmmac_dma_cfg *dma_cfg,
178 dma_addr_t phy, u32 chan);
178 struct stmmac_dma_cfg *dma_cfg,
179 dma_addr_t phy, u32 chan);
179 void (*init_tx_chan)(void __iomem *ioaddr,
180 void (*init_tx_chan)(struct stmmac_priv *priv, void __iomem *ioaddr,
180 struct stmmac_dma_cfg *dma_cfg,
181 dma_addr_t phy, u32 chan);
182 /* Configure the AXI Bus Mode Register */
183 void (*axi)(void __iomem *ioaddr, struct stmmac_axi *axi);
184 /* Dump DMA registers */
181 struct stmmac_dma_cfg *dma_cfg,
182 dma_addr_t phy, u32 chan);
183 /* Configure the AXI Bus Mode Register */
184 void (*axi)(void __iomem *ioaddr, struct stmmac_axi *axi);
185 /* Dump DMA registers */
185 void (*dump_regs)(void __iomem *ioaddr, u32 *reg_space);
186 void (*dma_rx_mode)(void __iomem *ioaddr, int mode, u32 channel,
186 void (*dump_regs)(struct stmmac_priv *priv, void __iomem *ioaddr,
187 u32 *reg_space);
188 void (*dma_rx_mode)(struct stmmac_priv *priv, void __iomem *ioaddr,
189 int mode, u32 channel,
187 int fifosz, u8 qmode);
190 int fifosz, u8 qmode);
188 void (*dma_tx_mode)(void __iomem *ioaddr, int mode, u32 channel,
189 int fifosz, u8 qmode);
191 void (*dma_tx_mode)(struct stmmac_priv *priv, void __iomem *ioaddr,
192 int mode, u32 channel, int fifosz, u8 qmode);
190 /* To track extra statistic (if supported) */
191 void (*dma_diagnostic_fr)(struct net_device_stats *stats,
192 struct stmmac_extra_stats *x,
193 void __iomem *ioaddr);
194 void (*enable_dma_transmission) (void __iomem *ioaddr);
193 /* To track extra statistic (if supported) */
194 void (*dma_diagnostic_fr)(struct net_device_stats *stats,
195 struct stmmac_extra_stats *x,
196 void __iomem *ioaddr);
197 void (*enable_dma_transmission) (void __iomem *ioaddr);
195 void (*enable_dma_irq)(void __iomem *ioaddr, u32 chan,
196 bool rx, bool tx);
197 void (*disable_dma_irq)(void __iomem *ioaddr, u32 chan,
198 bool rx, bool tx);
199 void (*start_tx)(void __iomem *ioaddr, u32 chan);
200 void (*stop_tx)(void __iomem *ioaddr, u32 chan);
201 void (*start_rx)(void __iomem *ioaddr, u32 chan);
202 void (*stop_rx)(void __iomem *ioaddr, u32 chan);
203 int (*dma_interrupt) (void __iomem *ioaddr,
204 struct stmmac_extra_stats *x, u32 chan, u32 dir);
198 void (*enable_dma_irq)(struct stmmac_priv *priv, void __iomem *ioaddr,
199 u32 chan, bool rx, bool tx);
200 void (*disable_dma_irq)(struct stmmac_priv *priv, void __iomem *ioaddr,
201 u32 chan, bool rx, bool tx);
202 void (*start_tx)(struct stmmac_priv *priv, void __iomem *ioaddr,
203 u32 chan);
204 void (*stop_tx)(struct stmmac_priv *priv, void __iomem *ioaddr,
205 u32 chan);
206 void (*start_rx)(struct stmmac_priv *priv, void __iomem *ioaddr,
207 u32 chan);
208 void (*stop_rx)(struct stmmac_priv *priv, void __iomem *ioaddr,
209 u32 chan);
210 int (*dma_interrupt)(struct stmmac_priv *priv, void __iomem *ioaddr,
211 struct stmmac_extra_stats *x, u32 chan, u32 dir);
205 /* If supported then get the optional core features */
206 int (*get_hw_feature)(void __iomem *ioaddr,
207 struct dma_features *dma_cap);
208 /* Program the HW RX Watchdog */
212 /* If supported then get the optional core features */
213 int (*get_hw_feature)(void __iomem *ioaddr,
214 struct dma_features *dma_cap);
215 /* Program the HW RX Watchdog */
209 void (*rx_watchdog)(void __iomem *ioaddr, u32 riwt, u32 queue);
210 void (*set_tx_ring_len)(void __iomem *ioaddr, u32 len, u32 chan);
211 void (*set_rx_ring_len)(void __iomem *ioaddr, u32 len, u32 chan);
212 void (*set_rx_tail_ptr)(void __iomem *ioaddr, u32 tail_ptr, u32 chan);
213 void (*set_tx_tail_ptr)(void __iomem *ioaddr, u32 tail_ptr, u32 chan);
214 void (*enable_tso)(void __iomem *ioaddr, bool en, u32 chan);
215 void (*qmode)(void __iomem *ioaddr, u32 channel, u8 qmode);
216 void (*set_bfsize)(void __iomem *ioaddr, int bfsize, u32 chan);
217 void (*enable_sph)(void __iomem *ioaddr, bool en, u32 chan);
218 int (*enable_tbs)(void __iomem *ioaddr, bool en, u32 chan);
216 void (*rx_watchdog)(struct stmmac_priv *priv, void __iomem *ioaddr,
217 u32 riwt, u32 queue);
218 void (*set_tx_ring_len)(struct stmmac_priv *priv, void __iomem *ioaddr,
219 u32 len, u32 chan);
220 void (*set_rx_ring_len)(struct stmmac_priv *priv, void __iomem *ioaddr,
221 u32 len, u32 chan);
222 void (*set_rx_tail_ptr)(struct stmmac_priv *priv, void __iomem *ioaddr,
223 u32 tail_ptr, u32 chan);
224 void (*set_tx_tail_ptr)(struct stmmac_priv *priv, void __iomem *ioaddr,
225 u32 tail_ptr, u32 chan);
226 void (*enable_tso)(struct stmmac_priv *priv, void __iomem *ioaddr,
227 bool en, u32 chan);
228 void (*qmode)(struct stmmac_priv *priv, void __iomem *ioaddr,
229 u32 channel, u8 qmode);
230 void (*set_bfsize)(struct stmmac_priv *priv, void __iomem *ioaddr,
231 int bfsize, u32 chan);
232 void (*enable_sph)(struct stmmac_priv *priv, void __iomem *ioaddr,
233 bool en, u32 chan);
234 int (*enable_tbs)(struct stmmac_priv *priv, void __iomem *ioaddr,
235 bool en, u32 chan);
219};
220
221#define stmmac_dma_init(__priv, __args...) \
222 stmmac_do_void_callback(__priv, dma, init, __args)
223#define stmmac_init_chan(__priv, __args...) \
236};
237
238#define stmmac_dma_init(__priv, __args...) \
239 stmmac_do_void_callback(__priv, dma, init, __args)
240#define stmmac_init_chan(__priv, __args...) \
224 stmmac_do_void_callback(__priv, dma, init_chan, __args)
241 stmmac_do_void_callback(__priv, dma, init_chan, __priv, __args)
225#define stmmac_init_rx_chan(__priv, __args...) \
242#define stmmac_init_rx_chan(__priv, __args...) \
226 stmmac_do_void_callback(__priv, dma, init_rx_chan, __args)
243 stmmac_do_void_callback(__priv, dma, init_rx_chan, __priv, __args)
227#define stmmac_init_tx_chan(__priv, __args...) \
244#define stmmac_init_tx_chan(__priv, __args...) \
228 stmmac_do_void_callback(__priv, dma, init_tx_chan, __args)
245 stmmac_do_void_callback(__priv, dma, init_tx_chan, __priv, __args)
229#define stmmac_axi(__priv, __args...) \
230 stmmac_do_void_callback(__priv, dma, axi, __args)
231#define stmmac_dump_dma_regs(__priv, __args...) \
246#define stmmac_axi(__priv, __args...) \
247 stmmac_do_void_callback(__priv, dma, axi, __args)
248#define stmmac_dump_dma_regs(__priv, __args...) \
232 stmmac_do_void_callback(__priv, dma, dump_regs, __args)
249 stmmac_do_void_callback(__priv, dma, dump_regs, __priv, __args)
233#define stmmac_dma_rx_mode(__priv, __args...) \
250#define stmmac_dma_rx_mode(__priv, __args...) \
234 stmmac_do_void_callback(__priv, dma, dma_rx_mode, __args)
251 stmmac_do_void_callback(__priv, dma, dma_rx_mode, __priv, __args)
235#define stmmac_dma_tx_mode(__priv, __args...) \
252#define stmmac_dma_tx_mode(__priv, __args...) \
236 stmmac_do_void_callback(__priv, dma, dma_tx_mode, __args)
253 stmmac_do_void_callback(__priv, dma, dma_tx_mode, __priv, __args)
237#define stmmac_dma_diagnostic_fr(__priv, __args...) \
238 stmmac_do_void_callback(__priv, dma, dma_diagnostic_fr, __args)
239#define stmmac_enable_dma_transmission(__priv, __args...) \
240 stmmac_do_void_callback(__priv, dma, enable_dma_transmission, __args)
241#define stmmac_enable_dma_irq(__priv, __args...) \
254#define stmmac_dma_diagnostic_fr(__priv, __args...) \
255 stmmac_do_void_callback(__priv, dma, dma_diagnostic_fr, __args)
256#define stmmac_enable_dma_transmission(__priv, __args...) \
257 stmmac_do_void_callback(__priv, dma, enable_dma_transmission, __args)
258#define stmmac_enable_dma_irq(__priv, __args...) \
242 stmmac_do_void_callback(__priv, dma, enable_dma_irq, __args)
259 stmmac_do_void_callback(__priv, dma, enable_dma_irq, __priv, __args)
243#define stmmac_disable_dma_irq(__priv, __args...) \
260#define stmmac_disable_dma_irq(__priv, __args...) \
244 stmmac_do_void_callback(__priv, dma, disable_dma_irq, __args)
261 stmmac_do_void_callback(__priv, dma, disable_dma_irq, __priv, __args)
245#define stmmac_start_tx(__priv, __args...) \
262#define stmmac_start_tx(__priv, __args...) \
246 stmmac_do_void_callback(__priv, dma, start_tx, __args)
263 stmmac_do_void_callback(__priv, dma, start_tx, __priv, __args)
247#define stmmac_stop_tx(__priv, __args...) \
264#define stmmac_stop_tx(__priv, __args...) \
248 stmmac_do_void_callback(__priv, dma, stop_tx, __args)
265 stmmac_do_void_callback(__priv, dma, stop_tx, __priv, __args)
249#define stmmac_start_rx(__priv, __args...) \
266#define stmmac_start_rx(__priv, __args...) \
250 stmmac_do_void_callback(__priv, dma, start_rx, __args)
267 stmmac_do_void_callback(__priv, dma, start_rx, __priv, __args)
251#define stmmac_stop_rx(__priv, __args...) \
268#define stmmac_stop_rx(__priv, __args...) \
252 stmmac_do_void_callback(__priv, dma, stop_rx, __args)
269 stmmac_do_void_callback(__priv, dma, stop_rx, __priv, __args)
253#define stmmac_dma_interrupt_status(__priv, __args...) \
270#define stmmac_dma_interrupt_status(__priv, __args...) \
254 stmmac_do_callback(__priv, dma, dma_interrupt, __args)
271 stmmac_do_callback(__priv, dma, dma_interrupt, __priv, __args)
255#define stmmac_get_hw_feature(__priv, __args...) \
256 stmmac_do_callback(__priv, dma, get_hw_feature, __args)
257#define stmmac_rx_watchdog(__priv, __args...) \
272#define stmmac_get_hw_feature(__priv, __args...) \
273 stmmac_do_callback(__priv, dma, get_hw_feature, __args)
274#define stmmac_rx_watchdog(__priv, __args...) \
258 stmmac_do_void_callback(__priv, dma, rx_watchdog, __args)
275 stmmac_do_void_callback(__priv, dma, rx_watchdog, __priv, __args)
259#define stmmac_set_tx_ring_len(__priv, __args...) \
276#define stmmac_set_tx_ring_len(__priv, __args...) \
260 stmmac_do_void_callback(__priv, dma, set_tx_ring_len, __args)
277 stmmac_do_void_callback(__priv, dma, set_tx_ring_len, __priv, __args)
261#define stmmac_set_rx_ring_len(__priv, __args...) \
278#define stmmac_set_rx_ring_len(__priv, __args...) \
262 stmmac_do_void_callback(__priv, dma, set_rx_ring_len, __args)
279 stmmac_do_void_callback(__priv, dma, set_rx_ring_len, __priv, __args)
263#define stmmac_set_rx_tail_ptr(__priv, __args...) \
280#define stmmac_set_rx_tail_ptr(__priv, __args...) \
264 stmmac_do_void_callback(__priv, dma, set_rx_tail_ptr, __args)
281 stmmac_do_void_callback(__priv, dma, set_rx_tail_ptr, __priv, __args)
265#define stmmac_set_tx_tail_ptr(__priv, __args...) \
282#define stmmac_set_tx_tail_ptr(__priv, __args...) \
266 stmmac_do_void_callback(__priv, dma, set_tx_tail_ptr, __args)
283 stmmac_do_void_callback(__priv, dma, set_tx_tail_ptr, __priv, __args)
267#define stmmac_enable_tso(__priv, __args...) \
284#define stmmac_enable_tso(__priv, __args...) \
268 stmmac_do_void_callback(__priv, dma, enable_tso, __args)
285 stmmac_do_void_callback(__priv, dma, enable_tso, __priv, __args)
269#define stmmac_dma_qmode(__priv, __args...) \
286#define stmmac_dma_qmode(__priv, __args...) \
270 stmmac_do_void_callback(__priv, dma, qmode, __args)
287 stmmac_do_void_callback(__priv, dma, qmode, __priv, __args)
271#define stmmac_set_dma_bfsize(__priv, __args...) \
288#define stmmac_set_dma_bfsize(__priv, __args...) \
272 stmmac_do_void_callback(__priv, dma, set_bfsize, __args)
289 stmmac_do_void_callback(__priv, dma, set_bfsize, __priv, __args)
273#define stmmac_enable_sph(__priv, __args...) \
290#define stmmac_enable_sph(__priv, __args...) \
274 stmmac_do_void_callback(__priv, dma, enable_sph, __args)
291 stmmac_do_void_callback(__priv, dma, enable_sph, __priv, __args)
275#define stmmac_enable_tbs(__priv, __args...) \
292#define stmmac_enable_tbs(__priv, __args...) \
276 stmmac_do_callback(__priv, dma, enable_tbs, __args)
293 stmmac_do_callback(__priv, dma, enable_tbs, __priv, __args)
277
278struct mac_device_info;
279struct net_device;
280struct rgmii_adv;
281struct stmmac_tc_entry;
282struct stmmac_pps_cfg;
283struct stmmac_rss;
284struct stmmac_est;

--- 15 unchanged lines hidden (view full) ---

300 /* RX Queues Routing */
301 void (*rx_queue_routing)(struct mac_device_info *hw, u8 packet,
302 u32 queue);
303 /* Program RX Algorithms */
304 void (*prog_mtl_rx_algorithms)(struct mac_device_info *hw, u32 rx_alg);
305 /* Program TX Algorithms */
306 void (*prog_mtl_tx_algorithms)(struct mac_device_info *hw, u32 tx_alg);
307 /* Set MTL TX queues weight */
294
295struct mac_device_info;
296struct net_device;
297struct rgmii_adv;
298struct stmmac_tc_entry;
299struct stmmac_pps_cfg;
300struct stmmac_rss;
301struct stmmac_est;

--- 15 unchanged lines hidden (view full) ---

317 /* RX Queues Routing */
318 void (*rx_queue_routing)(struct mac_device_info *hw, u8 packet,
319 u32 queue);
320 /* Program RX Algorithms */
321 void (*prog_mtl_rx_algorithms)(struct mac_device_info *hw, u32 rx_alg);
322 /* Program TX Algorithms */
323 void (*prog_mtl_tx_algorithms)(struct mac_device_info *hw, u32 tx_alg);
324 /* Set MTL TX queues weight */
308 void (*set_mtl_tx_queue_weight)(struct mac_device_info *hw,
325 void (*set_mtl_tx_queue_weight)(struct stmmac_priv *priv,
326 struct mac_device_info *hw,
309 u32 weight, u32 queue);
310 /* RX MTL queue to RX dma mapping */
311 void (*map_mtl_to_dma)(struct mac_device_info *hw, u32 queue, u32 chan);
312 /* Configure AV Algorithm */
327 u32 weight, u32 queue);
328 /* RX MTL queue to RX dma mapping */
329 void (*map_mtl_to_dma)(struct mac_device_info *hw, u32 queue, u32 chan);
330 /* Configure AV Algorithm */
313 void (*config_cbs)(struct mac_device_info *hw, u32 send_slope,
314 u32 idle_slope, u32 high_credit, u32 low_credit,
315 u32 queue);
331 void (*config_cbs)(struct stmmac_priv *priv, struct mac_device_info *hw,
332 u32 send_slope, u32 idle_slope, u32 high_credit,
333 u32 low_credit, u32 queue);
316 /* Dump MAC registers */
317 void (*dump_regs)(struct mac_device_info *hw, u32 *reg_space);
318 /* Handle extra events on specific interrupts hw dependent */
319 int (*host_irq_status)(struct mac_device_info *hw,
320 struct stmmac_extra_stats *x);
321 /* Handle MTL interrupts */
334 /* Dump MAC registers */
335 void (*dump_regs)(struct mac_device_info *hw, u32 *reg_space);
336 /* Handle extra events on specific interrupts hw dependent */
337 int (*host_irq_status)(struct mac_device_info *hw,
338 struct stmmac_extra_stats *x);
339 /* Handle MTL interrupts */
322 int (*host_mtl_irq_status)(struct mac_device_info *hw, u32 chan);
340 int (*host_mtl_irq_status)(struct stmmac_priv *priv,
341 struct mac_device_info *hw, u32 chan);
323 /* Multicast filter setting */
324 void (*set_filter)(struct mac_device_info *hw, struct net_device *dev);
325 /* Flow control setting */
326 void (*flow_ctrl)(struct mac_device_info *hw, unsigned int duplex,
327 unsigned int fc, unsigned int pause_time, u32 tx_cnt);
328 /* Set power management mode (e.g. magic frame) */
329 void (*pmt)(struct mac_device_info *hw, unsigned long mode);
330 /* Set/Get Unicast MAC addresses */
331 void (*set_umac_addr)(struct mac_device_info *hw,
332 const unsigned char *addr,
333 unsigned int reg_n);
334 void (*get_umac_addr)(struct mac_device_info *hw, unsigned char *addr,
335 unsigned int reg_n);
336 void (*set_eee_mode)(struct mac_device_info *hw,
337 bool en_tx_lpi_clockgating);
338 void (*reset_eee_mode)(struct mac_device_info *hw);
339 void (*set_eee_lpi_entry_timer)(struct mac_device_info *hw, int et);
340 void (*set_eee_timer)(struct mac_device_info *hw, int ls, int tw);
341 void (*set_eee_pls)(struct mac_device_info *hw, int link);
342 /* Multicast filter setting */
343 void (*set_filter)(struct mac_device_info *hw, struct net_device *dev);
344 /* Flow control setting */
345 void (*flow_ctrl)(struct mac_device_info *hw, unsigned int duplex,
346 unsigned int fc, unsigned int pause_time, u32 tx_cnt);
347 /* Set power management mode (e.g. magic frame) */
348 void (*pmt)(struct mac_device_info *hw, unsigned long mode);
349 /* Set/Get Unicast MAC addresses */
350 void (*set_umac_addr)(struct mac_device_info *hw,
351 const unsigned char *addr,
352 unsigned int reg_n);
353 void (*get_umac_addr)(struct mac_device_info *hw, unsigned char *addr,
354 unsigned int reg_n);
355 void (*set_eee_mode)(struct mac_device_info *hw,
356 bool en_tx_lpi_clockgating);
357 void (*reset_eee_mode)(struct mac_device_info *hw);
358 void (*set_eee_lpi_entry_timer)(struct mac_device_info *hw, int et);
359 void (*set_eee_timer)(struct mac_device_info *hw, int ls, int tw);
360 void (*set_eee_pls)(struct mac_device_info *hw, int link);
342 void (*debug)(void __iomem *ioaddr, struct stmmac_extra_stats *x,
343 u32 rx_queues, u32 tx_queues);
361 void (*debug)(struct stmmac_priv *priv, void __iomem *ioaddr,
362 struct stmmac_extra_stats *x, u32 rx_queues,
363 u32 tx_queues);
344 /* PCS calls */
345 void (*pcs_ctrl_ane)(void __iomem *ioaddr, bool ane, bool srgmi_ral,
346 bool loopback);
347 void (*pcs_rane)(void __iomem *ioaddr, bool restart);
348 void (*pcs_get_adv_lp)(void __iomem *ioaddr, struct rgmii_adv *adv);
349 /* Safety Features */
350 int (*safety_feat_config)(void __iomem *ioaddr, unsigned int asp,
351 struct stmmac_safety_feature_cfg *safety_cfg);

--- 63 unchanged lines hidden (view full) ---

415 stmmac_do_void_callback(__priv, mac, tx_queue_prio, __args)
416#define stmmac_rx_queue_routing(__priv, __args...) \
417 stmmac_do_void_callback(__priv, mac, rx_queue_routing, __args)
418#define stmmac_prog_mtl_rx_algorithms(__priv, __args...) \
419 stmmac_do_void_callback(__priv, mac, prog_mtl_rx_algorithms, __args)
420#define stmmac_prog_mtl_tx_algorithms(__priv, __args...) \
421 stmmac_do_void_callback(__priv, mac, prog_mtl_tx_algorithms, __args)
422#define stmmac_set_mtl_tx_queue_weight(__priv, __args...) \
364 /* PCS calls */
365 void (*pcs_ctrl_ane)(void __iomem *ioaddr, bool ane, bool srgmi_ral,
366 bool loopback);
367 void (*pcs_rane)(void __iomem *ioaddr, bool restart);
368 void (*pcs_get_adv_lp)(void __iomem *ioaddr, struct rgmii_adv *adv);
369 /* Safety Features */
370 int (*safety_feat_config)(void __iomem *ioaddr, unsigned int asp,
371 struct stmmac_safety_feature_cfg *safety_cfg);

--- 63 unchanged lines hidden (view full) ---

435 stmmac_do_void_callback(__priv, mac, tx_queue_prio, __args)
436#define stmmac_rx_queue_routing(__priv, __args...) \
437 stmmac_do_void_callback(__priv, mac, rx_queue_routing, __args)
438#define stmmac_prog_mtl_rx_algorithms(__priv, __args...) \
439 stmmac_do_void_callback(__priv, mac, prog_mtl_rx_algorithms, __args)
440#define stmmac_prog_mtl_tx_algorithms(__priv, __args...) \
441 stmmac_do_void_callback(__priv, mac, prog_mtl_tx_algorithms, __args)
442#define stmmac_set_mtl_tx_queue_weight(__priv, __args...) \
423 stmmac_do_void_callback(__priv, mac, set_mtl_tx_queue_weight, __args)
443 stmmac_do_void_callback(__priv, mac, set_mtl_tx_queue_weight, __priv, __args)
424#define stmmac_map_mtl_to_dma(__priv, __args...) \
425 stmmac_do_void_callback(__priv, mac, map_mtl_to_dma, __args)
426#define stmmac_config_cbs(__priv, __args...) \
444#define stmmac_map_mtl_to_dma(__priv, __args...) \
445 stmmac_do_void_callback(__priv, mac, map_mtl_to_dma, __args)
446#define stmmac_config_cbs(__priv, __args...) \
427 stmmac_do_void_callback(__priv, mac, config_cbs, __args)
447 stmmac_do_void_callback(__priv, mac, config_cbs, __priv, __args)
428#define stmmac_dump_mac_regs(__priv, __args...) \
429 stmmac_do_void_callback(__priv, mac, dump_regs, __args)
430#define stmmac_host_irq_status(__priv, __args...) \
431 stmmac_do_callback(__priv, mac, host_irq_status, __args)
432#define stmmac_host_mtl_irq_status(__priv, __args...) \
448#define stmmac_dump_mac_regs(__priv, __args...) \
449 stmmac_do_void_callback(__priv, mac, dump_regs, __args)
450#define stmmac_host_irq_status(__priv, __args...) \
451 stmmac_do_callback(__priv, mac, host_irq_status, __args)
452#define stmmac_host_mtl_irq_status(__priv, __args...) \
433 stmmac_do_callback(__priv, mac, host_mtl_irq_status, __args)
453 stmmac_do_callback(__priv, mac, host_mtl_irq_status, __priv, __args)
434#define stmmac_set_filter(__priv, __args...) \
435 stmmac_do_void_callback(__priv, mac, set_filter, __args)
436#define stmmac_flow_ctrl(__priv, __args...) \
437 stmmac_do_void_callback(__priv, mac, flow_ctrl, __args)
438#define stmmac_pmt(__priv, __args...) \
439 stmmac_do_void_callback(__priv, mac, pmt, __args)
440#define stmmac_set_umac_addr(__priv, __args...) \
441 stmmac_do_void_callback(__priv, mac, set_umac_addr, __args)

--- 5 unchanged lines hidden (view full) ---

447 stmmac_do_void_callback(__priv, mac, reset_eee_mode, __args)
448#define stmmac_set_eee_lpi_timer(__priv, __args...) \
449 stmmac_do_void_callback(__priv, mac, set_eee_lpi_entry_timer, __args)
450#define stmmac_set_eee_timer(__priv, __args...) \
451 stmmac_do_void_callback(__priv, mac, set_eee_timer, __args)
452#define stmmac_set_eee_pls(__priv, __args...) \
453 stmmac_do_void_callback(__priv, mac, set_eee_pls, __args)
454#define stmmac_mac_debug(__priv, __args...) \
454#define stmmac_set_filter(__priv, __args...) \
455 stmmac_do_void_callback(__priv, mac, set_filter, __args)
456#define stmmac_flow_ctrl(__priv, __args...) \
457 stmmac_do_void_callback(__priv, mac, flow_ctrl, __args)
458#define stmmac_pmt(__priv, __args...) \
459 stmmac_do_void_callback(__priv, mac, pmt, __args)
460#define stmmac_set_umac_addr(__priv, __args...) \
461 stmmac_do_void_callback(__priv, mac, set_umac_addr, __args)

--- 5 unchanged lines hidden (view full) ---

467 stmmac_do_void_callback(__priv, mac, reset_eee_mode, __args)
468#define stmmac_set_eee_lpi_timer(__priv, __args...) \
469 stmmac_do_void_callback(__priv, mac, set_eee_lpi_entry_timer, __args)
470#define stmmac_set_eee_timer(__priv, __args...) \
471 stmmac_do_void_callback(__priv, mac, set_eee_timer, __args)
472#define stmmac_set_eee_pls(__priv, __args...) \
473 stmmac_do_void_callback(__priv, mac, set_eee_pls, __args)
474#define stmmac_mac_debug(__priv, __args...) \
455 stmmac_do_void_callback(__priv, mac, debug, __args)
475 stmmac_do_void_callback(__priv, mac, debug, __priv, __args)
456#define stmmac_pcs_ctrl_ane(__priv, __args...) \
457 stmmac_do_void_callback(__priv, mac, pcs_ctrl_ane, __args)
458#define stmmac_pcs_rane(__priv, __args...) \
476#define stmmac_pcs_ctrl_ane(__priv, __args...) \
477 stmmac_do_void_callback(__priv, mac, pcs_ctrl_ane, __args)
478#define stmmac_pcs_rane(__priv, __args...) \
459 stmmac_do_void_callback(__priv, mac, pcs_rane, __args)
479 stmmac_do_void_callback(__priv, mac, pcs_rane, __priv, __args)
460#define stmmac_pcs_get_adv_lp(__priv, __args...) \
461 stmmac_do_void_callback(__priv, mac, pcs_get_adv_lp, __args)
462#define stmmac_safety_feat_config(__priv, __args...) \
463 stmmac_do_callback(__priv, mac, safety_feat_config, __args)
464#define stmmac_safety_feat_irq_status(__priv, __args...) \
465 stmmac_do_callback(__priv, mac, safety_feat_irq_status, __args)
466#define stmmac_safety_feat_dump(__priv, __args...) \
467 stmmac_do_callback(__priv, mac, safety_feat_dump, __args)

--- 31 unchanged lines hidden (view full) ---

499 stmmac_do_void_callback(__priv, mac, est_irq_status, __args)
500#define stmmac_fpe_configure(__priv, __args...) \
501 stmmac_do_void_callback(__priv, mac, fpe_configure, __args)
502#define stmmac_fpe_send_mpacket(__priv, __args...) \
503 stmmac_do_void_callback(__priv, mac, fpe_send_mpacket, __args)
504#define stmmac_fpe_irq_status(__priv, __args...) \
505 stmmac_do_callback(__priv, mac, fpe_irq_status, __args)
506
480#define stmmac_pcs_get_adv_lp(__priv, __args...) \
481 stmmac_do_void_callback(__priv, mac, pcs_get_adv_lp, __args)
482#define stmmac_safety_feat_config(__priv, __args...) \
483 stmmac_do_callback(__priv, mac, safety_feat_config, __args)
484#define stmmac_safety_feat_irq_status(__priv, __args...) \
485 stmmac_do_callback(__priv, mac, safety_feat_irq_status, __args)
486#define stmmac_safety_feat_dump(__priv, __args...) \
487 stmmac_do_callback(__priv, mac, safety_feat_dump, __args)

--- 31 unchanged lines hidden (view full) ---

519 stmmac_do_void_callback(__priv, mac, est_irq_status, __args)
520#define stmmac_fpe_configure(__priv, __args...) \
521 stmmac_do_void_callback(__priv, mac, fpe_configure, __args)
522#define stmmac_fpe_send_mpacket(__priv, __args...) \
523 stmmac_do_void_callback(__priv, mac, fpe_send_mpacket, __args)
524#define stmmac_fpe_irq_status(__priv, __args...) \
525 stmmac_do_callback(__priv, mac, fpe_irq_status, __args)
526
507struct stmmac_priv;
508
509/* PTP and HW Timer helpers */
510struct stmmac_hwtimestamp {
511 void (*config_hw_tstamping) (void __iomem *ioaddr, u32 data);
512 void (*config_sub_second_increment)(void __iomem *ioaddr, u32 ptp_clock,
513 int gmac4, u32 *ssinc);
514 int (*init_systime) (void __iomem *ioaddr, u32 sec, u32 nsec);
515 int (*config_addend) (void __iomem *ioaddr, u32 addend);
516 int (*adjust_systime) (void __iomem *ioaddr, u32 sec, u32 nsec,

--- 136 unchanged lines hidden ---
527/* PTP and HW Timer helpers */
528struct stmmac_hwtimestamp {
529 void (*config_hw_tstamping) (void __iomem *ioaddr, u32 data);
530 void (*config_sub_second_increment)(void __iomem *ioaddr, u32 ptp_clock,
531 int gmac4, u32 *ssinc);
532 int (*init_systime) (void __iomem *ioaddr, u32 sec, u32 nsec);
533 int (*config_addend) (void __iomem *ioaddr, u32 addend);
534 int (*adjust_systime) (void __iomem *ioaddr, u32 sec, u32 nsec,

--- 136 unchanged lines hidden ---