#include "sparx5_main_regs.h"
#include "sparx5_main.h"
#define SPX5_PSFP_SF_CNT …
#define SPX5_PSFP_SG_CONFIG_CHANGE_SLEEP …
#define SPX5_PSFP_SG_CONFIG_CHANGE_TIMEO …
static struct sparx5_pool_entry sparx5_psfp_fm_pool[SPX5_SDLB_CNT];
static struct sparx5_pool_entry sparx5_psfp_sg_pool[SPX5_PSFP_SG_CNT];
static struct sparx5_pool_entry sparx5_psfp_sf_pool[SPX5_PSFP_SF_CNT];
static int sparx5_psfp_sf_get(u32 *id)
{ … }
static int sparx5_psfp_sf_put(u32 id)
{ … }
static int sparx5_psfp_sg_get(u32 idx, u32 *id)
{ … }
static int sparx5_psfp_sg_put(u32 id)
{ … }
static int sparx5_psfp_fm_get(u32 idx, u32 *id)
{ … }
static int sparx5_psfp_fm_put(u32 id)
{ … }
u32 sparx5_psfp_isdx_get_sf(struct sparx5 *sparx5, u32 isdx)
{ … }
u32 sparx5_psfp_isdx_get_fm(struct sparx5 *sparx5, u32 isdx)
{ … }
u32 sparx5_psfp_sf_get_sg(struct sparx5 *sparx5, u32 sfid)
{ … }
void sparx5_isdx_conf_set(struct sparx5 *sparx5, u32 isdx, u32 sfid, u32 fmid)
{ … }
static u32 sparx5_psfp_ipv_to_ips(s32 ipv)
{ … }
static int sparx5_psfp_sgid_get_status(struct sparx5 *sparx5)
{ … }
static int sparx5_psfp_sgid_wait_for_completion(struct sparx5 *sparx5)
{ … }
static void sparx5_psfp_sg_config_change(struct sparx5 *sparx5, u32 id)
{ … }
static void sparx5_psfp_sf_set(struct sparx5 *sparx5, u32 id,
const struct sparx5_psfp_sf *sf)
{ … }
static int sparx5_psfp_sg_set(struct sparx5 *sparx5, u32 id,
const struct sparx5_psfp_sg *sg)
{ … }
static int sparx5_sdlb_conf_set(struct sparx5 *sparx5,
struct sparx5_psfp_fm *fm)
{ … }
int sparx5_psfp_sf_add(struct sparx5 *sparx5, const struct sparx5_psfp_sf *sf,
u32 *id)
{ … }
int sparx5_psfp_sf_del(struct sparx5 *sparx5, u32 id)
{ … }
int sparx5_psfp_sg_add(struct sparx5 *sparx5, u32 uidx,
struct sparx5_psfp_sg *sg, u32 *id)
{ … }
int sparx5_psfp_sg_del(struct sparx5 *sparx5, u32 id)
{ … }
int sparx5_psfp_fm_add(struct sparx5 *sparx5, u32 uidx,
struct sparx5_psfp_fm *fm, u32 *id)
{ … }
int sparx5_psfp_fm_del(struct sparx5 *sparx5, u32 id)
{ … }
void sparx5_psfp_init(struct sparx5 *sparx5)
{ … }