17906661eSIgor Russkikh /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) */ 27906661eSIgor Russkikh /* Copyright (C) 2014-2017 aQuantia Corporation. */ 37906661eSIgor Russkikh 47906661eSIgor Russkikh /* File hw_atl_b0.h: Declaration of abstract interface for Atlantic hardware 57906661eSIgor Russkikh * specific functions. 67906661eSIgor Russkikh */ 77906661eSIgor Russkikh 87906661eSIgor Russkikh #ifndef HW_ATL_B0_H 97906661eSIgor Russkikh #define HW_ATL_B0_H 107906661eSIgor Russkikh 117906661eSIgor Russkikh int hw_atl_b0_hw_reset(struct aq_hw_s *self); 127906661eSIgor Russkikh int hw_atl_b0_hw_init(struct aq_hw_s *self, u8 *mac_addr); 137906661eSIgor Russkikh 14*921eb6b8SPavel Belous int hw_atl_b0_set_fc(struct aq_hw_s *self, u32 fc, u32 tc); 15*921eb6b8SPavel Belous 167906661eSIgor Russkikh int hw_atl_b0_hw_ring_tx_init(struct aq_hw_s *self, uint64_t base_addr, 177906661eSIgor Russkikh int index, int size, int cpu, int vec); 187906661eSIgor Russkikh int hw_atl_b0_hw_ring_rx_init(struct aq_hw_s *self, uint64_t base_addr, 197906661eSIgor Russkikh int index, int size, int buff_size, int cpu, int vec); 207906661eSIgor Russkikh 217906661eSIgor Russkikh int hw_atl_b0_hw_start(struct aq_hw_s *self); 227906661eSIgor Russkikh 237906661eSIgor Russkikh int hw_atl_b0_hw_ring_rx_start(struct aq_hw_s *self, int index); 247906661eSIgor Russkikh int hw_atl_b0_hw_ring_tx_start(struct aq_hw_s *self, int index); 257906661eSIgor Russkikh 267906661eSIgor Russkikh 277906661eSIgor Russkikh int hw_atl_b0_hw_ring_tx_stop(struct aq_hw_s *self, int index); 287906661eSIgor Russkikh int hw_atl_b0_hw_ring_rx_stop(struct aq_hw_s *self, int index); 297906661eSIgor Russkikh 307906661eSIgor Russkikh 317906661eSIgor Russkikh int hw_atl_b0_hw_tx_ring_tail_update(struct aq_hw_s *self, int tail, int index); 327906661eSIgor Russkikh 337906661eSIgor Russkikh int hw_atl_b0_hw_rss_hash_set(struct aq_hw_s *self, 347906661eSIgor Russkikh struct aq_rss_parameters *rss_params); 357906661eSIgor Russkikh int hw_atl_b0_hw_rss_set(struct aq_hw_s *self, 367906661eSIgor Russkikh struct aq_rss_parameters *rss_params); 377906661eSIgor Russkikh 387906661eSIgor Russkikh int hw_atl_b0_hw_irq_enable(struct aq_hw_s *self, u64 mask); 397906661eSIgor Russkikh int hw_atl_b0_hw_irq_disable(struct aq_hw_s *self, u64 mask); 407906661eSIgor Russkikh int hw_atl_b0_hw_irq_read(struct aq_hw_s *self, u64 *mask); 417906661eSIgor Russkikh 427906661eSIgor Russkikh #endif /* HW_ATL_B0_H */ 43