linux/drivers/net/ethernet/microchip/sparx5/sparx5_psfp.c

// SPDX-License-Identifier: GPL-2.0+
/* Microchip Sparx5 Switch driver
 *
 * Copyright (c) 2023 Microchip Technology Inc. and its subsidiaries.
 */

#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

/* Pool of available service policers */
static struct sparx5_pool_entry sparx5_psfp_fm_pool[SPX5_SDLB_CNT];

/* Pool of available stream gates */
static struct sparx5_pool_entry sparx5_psfp_sg_pool[SPX5_PSFP_SG_CNT];

/* Pool of available stream filters */
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)
{}

/* Internal priority value to internal priority selector */
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)
{}