aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/atlantic/hw_atl/hw_atl_b0.h
blob: d1ba2aceb390d1ef90f33a7187466cfd39a736d2 (plain)
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: (BSD-3-Clause OR GPL-2.0) */
/* Copyright (C) 2014-2017 aQuantia Corporation. */

/* File hw_atl_b0.h: Declaration of abstract interface for Atlantic hardware
 * specific functions.
 */

#ifndef HW_ATL_B0_H
#define HW_ATL_B0_H

int hw_atl_b0_hw_reset(struct aq_hw_s *self);
int hw_atl_b0_hw_init(struct aq_hw_s *self, u8 *mac_addr);

int hw_atl_b0_set_fc(struct aq_hw_s *self, u32 fc, u32 tc);

int hw_atl_b0_hw_ring_tx_init(struct aq_hw_s *self, uint64_t base_addr,
		int index, int size, int cpu, int vec);
int hw_atl_b0_hw_ring_rx_init(struct aq_hw_s *self, uint64_t base_addr,
		int index, int size, int buff_size, int cpu, int vec);

int hw_atl_b0_hw_start(struct aq_hw_s *self);

int hw_atl_b0_hw_ring_rx_start(struct aq_hw_s *self, int index);
int hw_atl_b0_hw_ring_tx_start(struct aq_hw_s *self, int index);


int hw_atl_b0_hw_ring_tx_stop(struct aq_hw_s *self, int index);
int hw_atl_b0_hw_ring_rx_stop(struct aq_hw_s *self, int index);


int hw_atl_b0_hw_tx_ring_tail_update(struct aq_hw_s *self, int tail, int index);

int hw_atl_b0_hw_rss_hash_set(struct aq_hw_s *self,
				     struct aq_rss_parameters *rss_params);
int hw_atl_b0_hw_rss_set(struct aq_hw_s *self,
				struct aq_rss_parameters *rss_params);

int hw_atl_b0_hw_irq_enable(struct aq_hw_s *self, u64 mask);
int hw_atl_b0_hw_irq_disable(struct aq_hw_s *self, u64 mask);
int hw_atl_b0_hw_irq_read(struct aq_hw_s *self, u64 *mask);

#endif /* HW_ATL_B0_H */