1fd8d34ceSJustin Hibbits /* 2fd8d34ceSJustin Hibbits * Copyright (c) 2026 Justin Hibbits 3*7a40b8a8SJustin Hibbits * 4*7a40b8a8SJustin Hibbits * SPDX-License-Identifier: BSD-2-Clause 5fd8d34ceSJustin Hibbits */ 6fd8d34ceSJustin Hibbits 7fd8d34ceSJustin Hibbits #ifndef BMAN_VAR_H 8fd8d34ceSJustin Hibbits #define BMAN_VAR_H 9fd8d34ceSJustin Hibbits 10fd8d34ceSJustin Hibbits #include "dpaa_common.h" 11fd8d34ceSJustin Hibbits #include "portals.h" 12fd8d34ceSJustin Hibbits 13fd8d34ceSJustin Hibbits #define BMAN_MAX_POOLS 64 14fd8d34ceSJustin Hibbits #define BMAN_MAX_POOLS_1023 8 15fd8d34ceSJustin Hibbits 16fd8d34ceSJustin Hibbits DPAA_RING_DECLARE(bman_rcr); 17fd8d34ceSJustin Hibbits 18fd8d34ceSJustin Hibbits struct bman_mc { 19fd8d34ceSJustin Hibbits uint8_t polarity; 20fd8d34ceSJustin Hibbits bool busy; 21fd8d34ceSJustin Hibbits }; 22fd8d34ceSJustin Hibbits 23fd8d34ceSJustin Hibbits struct bman_portal_softc { 24fd8d34ceSJustin Hibbits struct dpaa_portal_softc sc_base; 25fd8d34ceSJustin Hibbits 26fd8d34ceSJustin Hibbits struct bman_mc mc; 27fd8d34ceSJustin Hibbits struct bman_rcr_ring sc_rcr; 28fd8d34ceSJustin Hibbits struct bman_pool *sc_pools[BMAN_MAX_POOLS]; 29fd8d34ceSJustin Hibbits }; 30fd8d34ceSJustin Hibbits 31fd8d34ceSJustin Hibbits struct bman_pool { 32fd8d34ceSJustin Hibbits uint32_t bpid; 33fd8d34ceSJustin Hibbits bm_depletion_handler dep_cb; 34fd8d34ceSJustin Hibbits void *arg; 35fd8d34ceSJustin Hibbits }; 36fd8d34ceSJustin Hibbits 37fd8d34ceSJustin Hibbits DPCPU_DECLARE(struct bman_portal_softc *, bman_affine_portal); 38fd8d34ceSJustin Hibbits 39fd8d34ceSJustin Hibbits int bman_release(struct bman_pool *pool, const struct bman_buffer *bufs, 40fd8d34ceSJustin Hibbits uint8_t count); 41fd8d34ceSJustin Hibbits 42fd8d34ceSJustin Hibbits void bman_portal_enable_scn(struct bman_portal_softc *, struct bman_pool *); 43fd8d34ceSJustin Hibbits 44fd8d34ceSJustin Hibbits #endif 45