xref: /dpdk/drivers/common/cnxk/roc_cpt_priv.h (revision d029f35384d0844e9aeb5dbc46fbe1b063d649f7)
1c045d2e5SAnoob Joseph /* SPDX-License-Identifier: BSD-3-Clause
2c045d2e5SAnoob Joseph  * Copyright(C) 2021 Marvell.
3c045d2e5SAnoob Joseph  */
4c045d2e5SAnoob Joseph 
5c045d2e5SAnoob Joseph #ifndef _ROC_CPT_PRIV_H_
6c045d2e5SAnoob Joseph #define _ROC_CPT_PRIV_H_
7c045d2e5SAnoob Joseph 
8c045d2e5SAnoob Joseph struct cpt {
9c045d2e5SAnoob Joseph 	struct plt_pci_device *pci_dev;
10c045d2e5SAnoob Joseph 	struct dev dev;
11c045d2e5SAnoob Joseph 	uint16_t lf_msix_off[ROC_CPT_MAX_LFS];
12c045d2e5SAnoob Joseph 	uint8_t lf_blkaddr[ROC_CPT_MAX_LFS];
13c045d2e5SAnoob Joseph } __plt_cache_aligned;
14c045d2e5SAnoob Joseph 
15c045d2e5SAnoob Joseph static inline struct cpt *
roc_cpt_to_cpt_priv(struct roc_cpt * roc_cpt)16c045d2e5SAnoob Joseph roc_cpt_to_cpt_priv(struct roc_cpt *roc_cpt)
17c045d2e5SAnoob Joseph {
18c045d2e5SAnoob Joseph 	return (struct cpt *)&roc_cpt->reserved[0];
19c045d2e5SAnoob Joseph }
20c045d2e5SAnoob Joseph 
21c045d2e5SAnoob Joseph int cpt_lfs_attach(struct dev *dev, uint8_t blkaddr, bool modify,
22c045d2e5SAnoob Joseph 		   uint16_t nb_lf);
23c045d2e5SAnoob Joseph int cpt_lfs_detach(struct dev *dev);
249564023dSNithin Dabilpuram int cpt_lfs_alloc(struct dev *dev, uint8_t eng_grpmsk, uint8_t blk, bool inl_dev_sso,
25*d029f353SVidya Sagar Velumuri 		  bool ctx_ilen_valid, uint8_t ctx_ilen, bool rxc_ena, uint16_t rx_inject_qp);
26c045d2e5SAnoob Joseph int cpt_lfs_free(struct dev *dev);
27ed135040SArchana Muniganti int cpt_lf_init(struct roc_cpt_lf *lf);
28ed135040SArchana Muniganti void cpt_lf_fini(struct roc_cpt_lf *lf);
29c045d2e5SAnoob Joseph 
30ed79bf91SVidya Sagar Velumuri int cpt_lf_outb_cfg(struct dev *dev, uint16_t sso_pf_func, uint16_t nix_pf_func,
31ed79bf91SVidya Sagar Velumuri 		    uint8_t lf_id, bool ena);
32c045d2e5SAnoob Joseph int cpt_get_msix_offset(struct dev *dev, struct msix_offset_rsp **msix_rsp);
33c045d2e5SAnoob Joseph uint64_t cpt_get_blkaddr(struct dev *dev);
345f56c674SNithin Dabilpuram void cpt_lf_print(struct roc_cpt_lf *lf);
35c045d2e5SAnoob Joseph 
36c045d2e5SAnoob Joseph #endif /* _ROC_CPT_PRIV_H_ */
37