1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2020 Marvell International Ltd.
4  *
5  * PKO helper, configuration API
6  */
7 
8 #ifndef __CVMX_HELPER_PKO_H__
9 #define __CVMX_HELPER_PKO_H__
10 
11 /* CSR typedefs have been moved to cvmx-pko-defs.h */
12 
13 /**
14  * cvmx_override_pko_queue_priority(int ipd_port, u64
15  * priorities[16]) is a function pointer. It is meant to allow
16  * customization of the PKO queue priorities based on the port
17  * number. Users should set this pointer to a function before
18  * calling any cvmx-helper operations.
19  */
20 void (*cvmx_override_pko_queue_priority)(int ipd_port, u8 *priorities);
21 
22 /**
23  * Gets the fpa pool number of pko pool
24  */
25 s64 cvmx_fpa_get_pko_pool(void);
26 
27 /**
28  * Gets the buffer size of pko pool
29  */
30 u64 cvmx_fpa_get_pko_pool_block_size(void);
31 
32 /**
33  * Gets the buffer size  of pko pool
34  */
35 u64 cvmx_fpa_get_pko_pool_buffer_count(void);
36 
37 int cvmx_helper_pko_init(void);
38 
39 /*
40  * This function is a no-op
41  * included here for backwards compatibility only.
42  */
cvmx_pko_initialize_local(void)43 static inline int cvmx_pko_initialize_local(void)
44 {
45 	return 0;
46 }
47 
48 int __cvmx_helper_pko_drain(void);
49 int __cvmx_helper_interface_setup_pko(int interface);
50 
51 #endif /* __CVMX_HELPER_PKO_H__ */
52