Merge branch 'dpaa2-switch-small-cleanup'
Ioana Ciornei says: ==================== dpaa2-switch: small cleanup This patch set addresses various low-hanging issues in both dpaa2-switch and dpaa2-eth drivers. Unused ABI functions are removed from dpaa2-switch, all the kernel-doc warnings are fixed up in both drivers and the coding style for the remaining ABIs is fixed-up a bit. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
5bdbdb823f
|
@ -13,11 +13,12 @@
|
|||
/** Key Generator properties */
|
||||
|
||||
/**
|
||||
* Number of masks per key extraction
|
||||
* DPKG_NUM_OF_MASKS - Number of masks per key extraction
|
||||
*/
|
||||
#define DPKG_NUM_OF_MASKS 4
|
||||
|
||||
/**
|
||||
* Number of extractions per key profile
|
||||
* DPKG_MAX_NUM_OF_EXTRACTS - Number of extractions per key profile
|
||||
*/
|
||||
#define DPKG_MAX_NUM_OF_EXTRACTS 10
|
||||
|
||||
|
|
|
@ -83,39 +83,21 @@ int dpmac_get_attributes(struct fsl_mc_io *mc_io,
|
|||
u16 token,
|
||||
struct dpmac_attr *attr);
|
||||
|
||||
/**
|
||||
* DPMAC link configuration/state options
|
||||
*/
|
||||
/* DPMAC link configuration/state options */
|
||||
|
||||
/**
|
||||
* Enable auto-negotiation
|
||||
*/
|
||||
#define DPMAC_LINK_OPT_AUTONEG BIT_ULL(0)
|
||||
/**
|
||||
* Enable half-duplex mode
|
||||
*/
|
||||
#define DPMAC_LINK_OPT_HALF_DUPLEX BIT_ULL(1)
|
||||
/**
|
||||
* Enable pause frames
|
||||
*/
|
||||
#define DPMAC_LINK_OPT_PAUSE BIT_ULL(2)
|
||||
/**
|
||||
* Enable a-symmetric pause frames
|
||||
*/
|
||||
#define DPMAC_LINK_OPT_ASYM_PAUSE BIT_ULL(3)
|
||||
|
||||
/**
|
||||
* Advertised link speeds
|
||||
*/
|
||||
/* Advertised link speeds */
|
||||
#define DPMAC_ADVERTISED_10BASET_FULL BIT_ULL(0)
|
||||
#define DPMAC_ADVERTISED_100BASET_FULL BIT_ULL(1)
|
||||
#define DPMAC_ADVERTISED_1000BASET_FULL BIT_ULL(2)
|
||||
#define DPMAC_ADVERTISED_10000BASET_FULL BIT_ULL(4)
|
||||
#define DPMAC_ADVERTISED_2500BASEX_FULL BIT_ULL(5)
|
||||
|
||||
/**
|
||||
* Advertise auto-negotiation enable
|
||||
*/
|
||||
/* Advertise auto-negotiation enable */
|
||||
#define DPMAC_ADVERTISED_AUTONEG BIT_ULL(3)
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
* This function has to be called before the following functions:
|
||||
* - dpni_set_rx_tc_dist()
|
||||
* - dpni_set_qos_table()
|
||||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpni_prepare_key_cfg(const struct dpkg_profile_cfg *cfg, u8 *key_cfg_buf)
|
||||
{
|
||||
|
@ -1793,6 +1795,8 @@ int dpni_get_api_version(struct fsl_mc_io *mc_io,
|
|||
* If cfg.enable is set to 0 the command will clear flow steering table.
|
||||
* The packets will be classified according to settings made in
|
||||
* dpni_set_rx_hash_dist()
|
||||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpni_set_rx_fs_dist(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
|
@ -1826,6 +1830,8 @@ int dpni_set_rx_fs_dist(struct fsl_mc_io *mc_io,
|
|||
* If cfg.enable is set to 1 the packets will be classified using a hash
|
||||
* function based on the key received in cfg.key_cfg_iova parameter.
|
||||
* If cfg.enable is set to 0 the packets will be sent to the default queue
|
||||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpni_set_rx_hash_dist(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
|
|
|
@ -10,73 +10,76 @@
|
|||
|
||||
struct fsl_mc_io;
|
||||
|
||||
/**
|
||||
* Data Path Network Interface API
|
||||
/* Data Path Network Interface API
|
||||
* Contains initialization APIs and runtime control APIs for DPNI
|
||||
*/
|
||||
|
||||
/** General DPNI macros */
|
||||
|
||||
/**
|
||||
* Maximum number of traffic classes
|
||||
* DPNI_MAX_TC - Maximum number of traffic classes
|
||||
*/
|
||||
#define DPNI_MAX_TC 8
|
||||
/**
|
||||
* Maximum number of buffer pools per DPNI
|
||||
* DPNI_MAX_DPBP - Maximum number of buffer pools per DPNI
|
||||
*/
|
||||
#define DPNI_MAX_DPBP 8
|
||||
|
||||
/**
|
||||
* All traffic classes considered; see dpni_set_queue()
|
||||
* DPNI_ALL_TCS - All traffic classes considered; see dpni_set_queue()
|
||||
*/
|
||||
#define DPNI_ALL_TCS (u8)(-1)
|
||||
/**
|
||||
* All flows within traffic class considered; see dpni_set_queue()
|
||||
* DPNI_ALL_TC_FLOWS - All flows within traffic class considered; see
|
||||
* dpni_set_queue()
|
||||
*/
|
||||
#define DPNI_ALL_TC_FLOWS (u16)(-1)
|
||||
/**
|
||||
* Generate new flow ID; see dpni_set_queue()
|
||||
* DPNI_NEW_FLOW_ID - Generate new flow ID; see dpni_set_queue()
|
||||
*/
|
||||
#define DPNI_NEW_FLOW_ID (u16)(-1)
|
||||
|
||||
/**
|
||||
* Tx traffic is always released to a buffer pool on transmit, there are no
|
||||
* resources allocated to have the frames confirmed back to the source after
|
||||
* transmission.
|
||||
* DPNI_OPT_TX_FRM_RELEASE - Tx traffic is always released to a buffer pool on
|
||||
* transmit, there are no resources allocated to have the frames confirmed back
|
||||
* to the source after transmission.
|
||||
*/
|
||||
#define DPNI_OPT_TX_FRM_RELEASE 0x000001
|
||||
/**
|
||||
* Disables support for MAC address filtering for addresses other than primary
|
||||
* MAC address. This affects both unicast and multicast. Promiscuous mode can
|
||||
* still be enabled/disabled for both unicast and multicast. If promiscuous mode
|
||||
* is disabled, only traffic matching the primary MAC address will be accepted.
|
||||
* DPNI_OPT_NO_MAC_FILTER - Disables support for MAC address filtering for
|
||||
* addresses other than primary MAC address. This affects both unicast and
|
||||
* multicast. Promiscuous mode can still be enabled/disabled for both unicast
|
||||
* and multicast. If promiscuous mode is disabled, only traffic matching the
|
||||
* primary MAC address will be accepted.
|
||||
*/
|
||||
#define DPNI_OPT_NO_MAC_FILTER 0x000002
|
||||
/**
|
||||
* Allocate policers for this DPNI. They can be used to rate-limit traffic per
|
||||
* traffic class (TC) basis.
|
||||
* DPNI_OPT_HAS_POLICING - Allocate policers for this DPNI. They can be used to
|
||||
* rate-limit traffic per traffic class (TC) basis.
|
||||
*/
|
||||
#define DPNI_OPT_HAS_POLICING 0x000004
|
||||
/**
|
||||
* Congestion can be managed in several ways, allowing the buffer pool to
|
||||
* deplete on ingress, taildrop on each queue or use congestion groups for sets
|
||||
* of queues. If set, it configures a single congestion groups across all TCs.
|
||||
* If reset, a congestion group is allocated for each TC. Only relevant if the
|
||||
* DPNI has multiple traffic classes.
|
||||
* DPNI_OPT_SHARED_CONGESTION - Congestion can be managed in several ways,
|
||||
* allowing the buffer pool to deplete on ingress, taildrop on each queue or
|
||||
* use congestion groups for sets of queues. If set, it configures a single
|
||||
* congestion groups across all TCs. If reset, a congestion group is allocated
|
||||
* for each TC. Only relevant if the DPNI has multiple traffic classes.
|
||||
*/
|
||||
#define DPNI_OPT_SHARED_CONGESTION 0x000008
|
||||
/**
|
||||
* Enables TCAM for Flow Steering and QoS look-ups. If not specified, all
|
||||
* look-ups are exact match. Note that TCAM is not available on LS1088 and its
|
||||
* variants. Setting this bit on these SoCs will trigger an error.
|
||||
* DPNI_OPT_HAS_KEY_MASKING - Enables TCAM for Flow Steering and QoS look-ups.
|
||||
* If not specified, all look-ups are exact match. Note that TCAM is not
|
||||
* available on LS1088 and its variants. Setting this bit on these SoCs will
|
||||
* trigger an error.
|
||||
*/
|
||||
#define DPNI_OPT_HAS_KEY_MASKING 0x000010
|
||||
/**
|
||||
* Disables the flow steering table.
|
||||
* DPNI_OPT_NO_FS - Disables the flow steering table.
|
||||
*/
|
||||
#define DPNI_OPT_NO_FS 0x000020
|
||||
/**
|
||||
* Flow steering table is shared between all traffic classes
|
||||
* DPNI_OPT_SHARED_FS - Flow steering table is shared between all traffic
|
||||
* classes
|
||||
*/
|
||||
#define DPNI_OPT_SHARED_FS 0x001000
|
||||
|
||||
|
@ -129,20 +132,14 @@ int dpni_reset(struct fsl_mc_io *mc_io,
|
|||
u32 cmd_flags,
|
||||
u16 token);
|
||||
|
||||
/**
|
||||
* DPNI IRQ Index and Events
|
||||
*/
|
||||
/* DPNI IRQ Index and Events */
|
||||
|
||||
/**
|
||||
* IRQ index
|
||||
*/
|
||||
#define DPNI_IRQ_INDEX 0
|
||||
/**
|
||||
* IRQ events:
|
||||
* indicates a change in link state
|
||||
* indicates a change in endpoint
|
||||
*/
|
||||
|
||||
/* DPNI_IRQ_EVENT_LINK_CHANGED - indicates a change in link state */
|
||||
#define DPNI_IRQ_EVENT_LINK_CHANGED 0x00000001
|
||||
|
||||
/* DPNI_IRQ_EVENT_ENDPOINT_CHANGED - indicates a change in endpoint */
|
||||
#define DPNI_IRQ_EVENT_ENDPOINT_CHANGED 0x00000002
|
||||
|
||||
int dpni_set_irq_enable(struct fsl_mc_io *mc_io,
|
||||
|
@ -222,32 +219,30 @@ int dpni_get_attributes(struct fsl_mc_io *mc_io,
|
|||
u16 token,
|
||||
struct dpni_attr *attr);
|
||||
|
||||
/**
|
||||
* DPNI errors
|
||||
*/
|
||||
/* DPNI errors */
|
||||
|
||||
/**
|
||||
* Extract out of frame header error
|
||||
* DPNI_ERROR_EOFHE - Extract out of frame header error
|
||||
*/
|
||||
#define DPNI_ERROR_EOFHE 0x00020000
|
||||
/**
|
||||
* Frame length error
|
||||
* DPNI_ERROR_FLE - Frame length error
|
||||
*/
|
||||
#define DPNI_ERROR_FLE 0x00002000
|
||||
/**
|
||||
* Frame physical error
|
||||
* DPNI_ERROR_FPE - Frame physical error
|
||||
*/
|
||||
#define DPNI_ERROR_FPE 0x00001000
|
||||
/**
|
||||
* Parsing header error
|
||||
* DPNI_ERROR_PHE - Parsing header error
|
||||
*/
|
||||
#define DPNI_ERROR_PHE 0x00000020
|
||||
/**
|
||||
* Parser L3 checksum error
|
||||
* DPNI_ERROR_L3CE - Parser L3 checksum error
|
||||
*/
|
||||
#define DPNI_ERROR_L3CE 0x00000004
|
||||
/**
|
||||
* Parser L3 checksum error
|
||||
* DPNI_ERROR_L4CE - Parser L3 checksum error
|
||||
*/
|
||||
#define DPNI_ERROR_L4CE 0x00000001
|
||||
|
||||
|
@ -281,36 +276,35 @@ int dpni_set_errors_behavior(struct fsl_mc_io *mc_io,
|
|||
u16 token,
|
||||
struct dpni_error_cfg *cfg);
|
||||
|
||||
/**
|
||||
* DPNI buffer layout modification options
|
||||
*/
|
||||
/* DPNI buffer layout modification options */
|
||||
|
||||
/**
|
||||
* Select to modify the time-stamp setting
|
||||
* DPNI_BUF_LAYOUT_OPT_TIMESTAMP - Select to modify the time-stamp setting
|
||||
*/
|
||||
#define DPNI_BUF_LAYOUT_OPT_TIMESTAMP 0x00000001
|
||||
/**
|
||||
* Select to modify the parser-result setting; not applicable for Tx
|
||||
* DPNI_BUF_LAYOUT_OPT_PARSER_RESULT - Select to modify the parser-result
|
||||
* setting; not applicable for Tx
|
||||
*/
|
||||
#define DPNI_BUF_LAYOUT_OPT_PARSER_RESULT 0x00000002
|
||||
/**
|
||||
* Select to modify the frame-status setting
|
||||
* DPNI_BUF_LAYOUT_OPT_FRAME_STATUS - Select to modify the frame-status setting
|
||||
*/
|
||||
#define DPNI_BUF_LAYOUT_OPT_FRAME_STATUS 0x00000004
|
||||
/**
|
||||
* Select to modify the private-data-size setting
|
||||
* DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE - Select to modify the private-data-size setting
|
||||
*/
|
||||
#define DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE 0x00000008
|
||||
/**
|
||||
* Select to modify the data-alignment setting
|
||||
* DPNI_BUF_LAYOUT_OPT_DATA_ALIGN - Select to modify the data-alignment setting
|
||||
*/
|
||||
#define DPNI_BUF_LAYOUT_OPT_DATA_ALIGN 0x00000010
|
||||
/**
|
||||
* Select to modify the data-head-room setting
|
||||
* DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM - Select to modify the data-head-room setting
|
||||
*/
|
||||
#define DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM 0x00000020
|
||||
/**
|
||||
* Select to modify the data-tail-room setting
|
||||
* DPNI_BUF_LAYOUT_OPT_DATA_TAIL_ROOM - Select to modify the data-tail-room setting
|
||||
*/
|
||||
#define DPNI_BUF_LAYOUT_OPT_DATA_TAIL_ROOM 0x00000040
|
||||
|
||||
|
@ -343,7 +337,8 @@ struct dpni_buffer_layout {
|
|||
* @DPNI_QUEUE_TX: Tx queue
|
||||
* @DPNI_QUEUE_TX_CONFIRM: Tx confirmation queue
|
||||
* @DPNI_QUEUE_RX_ERR: Rx error queue
|
||||
*/enum dpni_queue_type {
|
||||
*/
|
||||
enum dpni_queue_type {
|
||||
DPNI_QUEUE_RX,
|
||||
DPNI_QUEUE_TX,
|
||||
DPNI_QUEUE_TX_CONFIRM,
|
||||
|
@ -424,7 +419,7 @@ int dpni_get_tx_data_offset(struct fsl_mc_io *mc_io,
|
|||
* lack of buffers
|
||||
* @page_2.egress_discarded_frames: Egress discarded frame count
|
||||
* @page_2.egress_confirmed_frames: Egress confirmed frame count
|
||||
* @page3: Page_3 statistics structure
|
||||
* @page_3: Page_3 statistics structure
|
||||
* @page_3.egress_dequeue_bytes: Cumulative count of the number of bytes
|
||||
* dequeued from egress FQs
|
||||
* @page_3.egress_dequeue_frames: Cumulative count of the number of frames
|
||||
|
@ -501,30 +496,14 @@ int dpni_get_statistics(struct fsl_mc_io *mc_io,
|
|||
u8 page,
|
||||
union dpni_statistics *stat);
|
||||
|
||||
/**
|
||||
* Enable auto-negotiation
|
||||
*/
|
||||
#define DPNI_LINK_OPT_AUTONEG 0x0000000000000001ULL
|
||||
/**
|
||||
* Enable half-duplex mode
|
||||
*/
|
||||
#define DPNI_LINK_OPT_HALF_DUPLEX 0x0000000000000002ULL
|
||||
/**
|
||||
* Enable pause frames
|
||||
*/
|
||||
#define DPNI_LINK_OPT_PAUSE 0x0000000000000004ULL
|
||||
/**
|
||||
* Enable a-symmetric pause frames
|
||||
*/
|
||||
#define DPNI_LINK_OPT_ASYM_PAUSE 0x0000000000000008ULL
|
||||
|
||||
/**
|
||||
* Enable priority flow control pause frames
|
||||
*/
|
||||
#define DPNI_LINK_OPT_PFC_PAUSE 0x0000000000000010ULL
|
||||
|
||||
/**
|
||||
* struct - Structure representing DPNI link configuration
|
||||
* struct dpni_link_cfg - Structure representing DPNI link configuration
|
||||
* @rate: Rate
|
||||
* @options: Mask of available options; use 'DPNI_LINK_OPT_<X>' values
|
||||
*/
|
||||
|
@ -687,8 +666,8 @@ int dpni_set_rx_tc_dist(struct fsl_mc_io *mc_io,
|
|||
const struct dpni_rx_tc_dist_cfg *cfg);
|
||||
|
||||
/**
|
||||
* When used for fs_miss_flow_id in function dpni_set_rx_dist,
|
||||
* will signal to dpni to drop all unclassified frames
|
||||
* DPNI_FS_MISS_DROP - When used for fs_miss_flow_id in function
|
||||
* dpni_set_rx_dist, will signal to dpni to drop all unclassified frames
|
||||
*/
|
||||
#define DPNI_FS_MISS_DROP ((uint16_t)-1)
|
||||
|
||||
|
@ -766,7 +745,7 @@ enum dpni_dest {
|
|||
|
||||
/**
|
||||
* struct dpni_queue - Queue structure
|
||||
* @destination - Destination structure
|
||||
* @destination: - Destination structure
|
||||
* @destination.id: ID of the destination, only relevant if DEST_TYPE is > 0.
|
||||
* Identifies either a DPIO or a DPCON object.
|
||||
* Not relevant for Tx queues.
|
||||
|
@ -837,9 +816,7 @@ struct dpni_queue_id {
|
|||
u16 qdbin;
|
||||
};
|
||||
|
||||
/**
|
||||
* Set User Context
|
||||
*/
|
||||
/* Set User Context */
|
||||
#define DPNI_QUEUE_OPT_USER_CTX 0x00000001
|
||||
#define DPNI_QUEUE_OPT_DEST 0x00000002
|
||||
#define DPNI_QUEUE_OPT_FLC 0x00000004
|
||||
|
@ -904,9 +881,9 @@ struct dpni_dest_cfg {
|
|||
/* DPNI congestion options */
|
||||
|
||||
/**
|
||||
* This congestion will trigger flow control or priority flow control.
|
||||
* This will have effect only if flow control is enabled with
|
||||
* dpni_set_link_cfg().
|
||||
* DPNI_CONG_OPT_FLOW_CONTROL - This congestion will trigger flow control or
|
||||
* priority flow control. This will have effect only if flow control is
|
||||
* enabled with dpni_set_link_cfg().
|
||||
*/
|
||||
#define DPNI_CONG_OPT_FLOW_CONTROL 0x00000040
|
||||
|
||||
|
@ -990,23 +967,24 @@ struct dpni_rule_cfg {
|
|||
};
|
||||
|
||||
/**
|
||||
* Discard matching traffic. If set, this takes precedence over any other
|
||||
* configuration and matching traffic is always discarded.
|
||||
* DPNI_FS_OPT_DISCARD - Discard matching traffic. If set, this takes
|
||||
* precedence over any other configuration and matching traffic is always
|
||||
* discarded.
|
||||
*/
|
||||
#define DPNI_FS_OPT_DISCARD 0x1
|
||||
|
||||
/**
|
||||
* Set FLC value. If set, flc member of struct dpni_fs_action_cfg is used to
|
||||
* override the FLC value set per queue.
|
||||
* DPNI_FS_OPT_SET_FLC - Set FLC value. If set, flc member of struct
|
||||
* dpni_fs_action_cfg is used to override the FLC value set per queue.
|
||||
* For more details check the Frame Descriptor section in the hardware
|
||||
* documentation.
|
||||
*/
|
||||
#define DPNI_FS_OPT_SET_FLC 0x2
|
||||
|
||||
/**
|
||||
* Indicates whether the 6 lowest significant bits of FLC are used for stash
|
||||
* control. If set, the 6 least significant bits in value are interpreted as
|
||||
* follows:
|
||||
* DPNI_FS_OPT_SET_STASH_CONTROL - Indicates whether the 6 lowest significant
|
||||
* bits of FLC are used for stash control. If set, the 6 least significant bits
|
||||
* in value are interpreted as follows:
|
||||
* - bits 0-1: indicates the number of 64 byte units of context that are
|
||||
* stashed. FLC value is interpreted as a memory address in this case,
|
||||
* excluding the 6 LS bits.
|
||||
|
@ -1068,7 +1046,7 @@ int dpni_get_api_version(struct fsl_mc_io *mc_io,
|
|||
u16 *major_ver,
|
||||
u16 *minor_ver);
|
||||
/**
|
||||
* struct dpni_tx_shaping - Structure representing DPNI tx shaping configuration
|
||||
* struct dpni_tx_shaping_cfg - Structure representing DPNI tx shaping configuration
|
||||
* @rate_limit: Rate in Mbps
|
||||
* @max_burst_size: Burst size in bytes (up to 64KB)
|
||||
*/
|
||||
|
|
|
@ -13,9 +13,6 @@
|
|||
|
||||
struct fsl_mc_io;
|
||||
|
||||
/**
|
||||
* Number of irq's
|
||||
*/
|
||||
#define DPRTC_MAX_IRQ_NUM 1
|
||||
#define DPRTC_IRQ_INDEX 0
|
||||
|
||||
|
|
|
@ -75,8 +75,6 @@
|
|||
#define DPSW_CMDID_FDB_DUMP DPSW_CMD_ID(0x08A)
|
||||
|
||||
#define DPSW_CMDID_IF_GET_PORT_MAC_ADDR DPSW_CMD_ID(0x0A7)
|
||||
#define DPSW_CMDID_IF_GET_PRIMARY_MAC_ADDR DPSW_CMD_ID(0x0A8)
|
||||
#define DPSW_CMDID_IF_SET_PRIMARY_MAC_ADDR DPSW_CMD_ID(0x0A9)
|
||||
|
||||
#define DPSW_CMDID_CTRL_IF_GET_ATTR DPSW_CMD_ID(0x0A0)
|
||||
#define DPSW_CMDID_CTRL_IF_SET_POOLS DPSW_CMD_ID(0x0A1)
|
||||
|
@ -342,7 +340,7 @@ struct dpsw_cmd_vlan_manage_if {
|
|||
__le16 vlan_id;
|
||||
__le32 pad1;
|
||||
/* cmd word 1-4 */
|
||||
__le64 if_id[4];
|
||||
__le64 if_id;
|
||||
};
|
||||
|
||||
struct dpsw_cmd_vlan_remove {
|
||||
|
@ -388,7 +386,7 @@ struct dpsw_cmd_fdb_multicast_op {
|
|||
u8 mac_addr[6];
|
||||
__le16 pad2;
|
||||
/* cmd word 2-5 */
|
||||
__le64 if_id[4];
|
||||
__le64 if_id;
|
||||
};
|
||||
|
||||
struct dpsw_cmd_fdb_dump {
|
||||
|
@ -443,11 +441,6 @@ struct dpsw_rsp_if_get_mac_addr {
|
|||
u8 mac_addr[6];
|
||||
};
|
||||
|
||||
struct dpsw_cmd_if_set_mac_addr {
|
||||
__le16 if_id;
|
||||
u8 mac_addr[6];
|
||||
};
|
||||
|
||||
struct dpsw_cmd_set_egress_flood {
|
||||
__le16 fdb_id;
|
||||
u8 flood_type;
|
||||
|
|
|
@ -9,9 +9,7 @@
|
|||
#include "dpsw.h"
|
||||
#include "dpsw-cmd.h"
|
||||
|
||||
static void build_if_id_bitmap(__le64 *bmap,
|
||||
const u16 *id,
|
||||
const u16 num_ifs)
|
||||
static void build_if_id_bitmap(__le64 *bmap, const u16 *id, const u16 num_ifs)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -38,10 +36,7 @@ static void build_if_id_bitmap(__le64 *bmap,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_open(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
int dpsw_id,
|
||||
u16 *token)
|
||||
int dpsw_open(struct fsl_mc_io *mc_io, u32 cmd_flags, int dpsw_id, u16 *token)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_open *cmd_params;
|
||||
|
@ -76,9 +71,7 @@ int dpsw_open(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_close(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token)
|
||||
int dpsw_close(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
||||
|
@ -99,9 +92,7 @@ int dpsw_close(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_enable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token)
|
||||
int dpsw_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
||||
|
@ -122,9 +113,7 @@ int dpsw_enable(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_disable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token)
|
||||
int dpsw_disable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
||||
|
@ -145,9 +134,7 @@ int dpsw_disable(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_reset(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token)
|
||||
int dpsw_reset(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
||||
|
@ -175,11 +162,8 @@ int dpsw_reset(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_set_irq_enable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u8 en)
|
||||
int dpsw_set_irq_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u8 en)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_set_irq_enable *cmd_params;
|
||||
|
@ -212,11 +196,8 @@ int dpsw_set_irq_enable(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_set_irq_mask(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u32 mask)
|
||||
int dpsw_set_irq_mask(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u32 mask)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_set_irq_mask *cmd_params;
|
||||
|
@ -245,11 +226,8 @@ int dpsw_set_irq_mask(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_get_irq_status(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u32 *status)
|
||||
int dpsw_get_irq_status(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u32 *status)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_get_irq_status *cmd_params;
|
||||
|
@ -288,11 +266,8 @@ int dpsw_get_irq_status(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_clear_irq_status(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u32 status)
|
||||
int dpsw_clear_irq_status(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u32 status)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_clear_irq_status *cmd_params;
|
||||
|
@ -318,9 +293,7 @@ int dpsw_clear_irq_status(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_get_attributes(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
int dpsw_get_attributes(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
struct dpsw_attr *attr)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
@ -367,10 +340,7 @@ int dpsw_get_attributes(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_set_link_cfg(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_set_link_cfg(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
struct dpsw_link_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
@ -397,13 +367,10 @@ int dpsw_if_set_link_cfg(struct fsl_mc_io *mc_io,
|
|||
* @if_id: Interface id
|
||||
* @state: Link state 1 - linkup, 0 - link down or disconnected
|
||||
*
|
||||
* @Return '0' on Success; Error code otherwise.
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_get_link_state(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
struct dpsw_link_state *state)
|
||||
int dpsw_if_get_link_state(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, struct dpsw_link_state *state)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_if_get_link_state *cmd_params;
|
||||
|
@ -441,10 +408,7 @@ int dpsw_if_get_link_state(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_set_tci(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_set_tci(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
const struct dpsw_tci_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
@ -476,10 +440,7 @@ int dpsw_if_set_tci(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_get_tci(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_get_tci(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
struct dpsw_tci_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
@ -521,10 +482,7 @@ int dpsw_if_get_tci(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_set_stp(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_set_stp(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
const struct dpsw_stp_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
@ -554,12 +512,8 @@ int dpsw_if_set_stp(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_get_counter(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
enum dpsw_counter type,
|
||||
u64 *counter)
|
||||
int dpsw_if_get_counter(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, enum dpsw_counter type, u64 *counter)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_if_get_counter *cmd_params;
|
||||
|
@ -595,10 +549,7 @@ int dpsw_if_get_counter(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_enable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id)
|
||||
int dpsw_if_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_if *cmd_params;
|
||||
|
@ -623,10 +574,7 @@ int dpsw_if_enable(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_disable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id)
|
||||
int dpsw_if_disable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_if *cmd_params;
|
||||
|
@ -693,11 +641,8 @@ int dpsw_if_get_attributes(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_set_max_frame_length(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
u16 frame_length)
|
||||
int dpsw_if_set_max_frame_length(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, u16 frame_length)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_if_set_max_frame_length *cmd_params;
|
||||
|
@ -731,11 +676,8 @@ int dpsw_if_set_max_frame_length(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_vlan_add(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_cfg *cfg)
|
||||
int dpsw_vlan_add(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_vlan_add *cmd_params;
|
||||
|
@ -767,22 +709,21 @@ int dpsw_vlan_add(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_vlan_add_if(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg)
|
||||
int dpsw_vlan_add_if(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg)
|
||||
{
|
||||
struct dpsw_cmd_vlan_add_if *cmd_params;
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_vlan_manage_if *cmd_params;
|
||||
|
||||
/* prepare command */
|
||||
cmd.header = mc_encode_cmd_header(DPSW_CMDID_VLAN_ADD_IF,
|
||||
cmd_flags,
|
||||
token);
|
||||
cmd_params = (struct dpsw_cmd_vlan_manage_if *)cmd.params;
|
||||
cmd_params = (struct dpsw_cmd_vlan_add_if *)cmd.params;
|
||||
cmd_params->vlan_id = cpu_to_le16(vlan_id);
|
||||
build_if_id_bitmap(cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
cmd_params->options = cpu_to_le16(cfg->options);
|
||||
cmd_params->fdb_id = cpu_to_le16(cfg->fdb_id);
|
||||
build_if_id_bitmap(&cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
|
||||
/* send command to mc*/
|
||||
return mc_send_command(mc_io, &cmd);
|
||||
|
@ -805,11 +746,8 @@ int dpsw_vlan_add_if(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_vlan_add_if_untagged(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg)
|
||||
int dpsw_vlan_add_if_untagged(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_vlan_manage_if *cmd_params;
|
||||
|
@ -820,7 +758,7 @@ int dpsw_vlan_add_if_untagged(struct fsl_mc_io *mc_io,
|
|||
token);
|
||||
cmd_params = (struct dpsw_cmd_vlan_manage_if *)cmd.params;
|
||||
cmd_params->vlan_id = cpu_to_le16(vlan_id);
|
||||
build_if_id_bitmap(cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
build_if_id_bitmap(&cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
|
||||
/* send command to mc*/
|
||||
return mc_send_command(mc_io, &cmd);
|
||||
|
@ -839,11 +777,8 @@ int dpsw_vlan_add_if_untagged(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_vlan_remove_if(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg)
|
||||
int dpsw_vlan_remove_if(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_vlan_manage_if *cmd_params;
|
||||
|
@ -854,7 +789,7 @@ int dpsw_vlan_remove_if(struct fsl_mc_io *mc_io,
|
|||
token);
|
||||
cmd_params = (struct dpsw_cmd_vlan_manage_if *)cmd.params;
|
||||
cmd_params->vlan_id = cpu_to_le16(vlan_id);
|
||||
build_if_id_bitmap(cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
build_if_id_bitmap(&cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
|
||||
/* send command to mc*/
|
||||
return mc_send_command(mc_io, &cmd);
|
||||
|
@ -875,11 +810,8 @@ int dpsw_vlan_remove_if(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_vlan_remove_if_untagged(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg)
|
||||
int dpsw_vlan_remove_if_untagged(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_vlan_manage_if *cmd_params;
|
||||
|
@ -890,7 +822,7 @@ int dpsw_vlan_remove_if_untagged(struct fsl_mc_io *mc_io,
|
|||
token);
|
||||
cmd_params = (struct dpsw_cmd_vlan_manage_if *)cmd.params;
|
||||
cmd_params->vlan_id = cpu_to_le16(vlan_id);
|
||||
build_if_id_bitmap(cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
build_if_id_bitmap(&cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
|
||||
/* send command to mc*/
|
||||
return mc_send_command(mc_io, &cmd);
|
||||
|
@ -905,9 +837,7 @@ int dpsw_vlan_remove_if_untagged(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_vlan_remove(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
int dpsw_vlan_remove(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
|
@ -994,11 +924,8 @@ int dpsw_fdb_remove(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 fdb_i
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_fdb_add_unicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_unicast_cfg *cfg)
|
||||
int dpsw_fdb_add_unicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_unicast_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_fdb_unicast_op *cmd_params;
|
||||
|
@ -1037,13 +964,8 @@ int dpsw_fdb_add_unicast(struct fsl_mc_io *mc_io,
|
|||
* The struct fdb_dump_entry array must be parsed until the end of memory
|
||||
* area or until an entry with mac_addr set to zero is found.
|
||||
*/
|
||||
int dpsw_fdb_dump(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
u64 iova_addr,
|
||||
u32 iova_size,
|
||||
u16 *num_entries)
|
||||
int dpsw_fdb_dump(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 fdb_id,
|
||||
u64 iova_addr, u32 iova_size, u16 *num_entries)
|
||||
{
|
||||
struct dpsw_cmd_fdb_dump *cmd_params;
|
||||
struct dpsw_rsp_fdb_dump *rsp_params;
|
||||
|
@ -1080,11 +1002,8 @@ int dpsw_fdb_dump(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_fdb_remove_unicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_unicast_cfg *cfg)
|
||||
int dpsw_fdb_remove_unicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_unicast_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_fdb_unicast_op *cmd_params;
|
||||
|
@ -1122,11 +1041,8 @@ int dpsw_fdb_remove_unicast(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_fdb_add_multicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_multicast_cfg *cfg)
|
||||
int dpsw_fdb_add_multicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_multicast_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_fdb_multicast_op *cmd_params;
|
||||
|
@ -1140,7 +1056,7 @@ int dpsw_fdb_add_multicast(struct fsl_mc_io *mc_io,
|
|||
cmd_params->fdb_id = cpu_to_le16(fdb_id);
|
||||
cmd_params->num_ifs = cpu_to_le16(cfg->num_ifs);
|
||||
dpsw_set_field(cmd_params->type, ENTRY_TYPE, cfg->type);
|
||||
build_if_id_bitmap(cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
build_if_id_bitmap(&cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
for (i = 0; i < 6; i++)
|
||||
cmd_params->mac_addr[i] = cfg->mac_addr[5 - i];
|
||||
|
||||
|
@ -1164,11 +1080,8 @@ int dpsw_fdb_add_multicast(struct fsl_mc_io *mc_io,
|
|||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_fdb_remove_multicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_multicast_cfg *cfg)
|
||||
int dpsw_fdb_remove_multicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_multicast_cfg *cfg)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_fdb_multicast_op *cmd_params;
|
||||
|
@ -1182,7 +1095,7 @@ int dpsw_fdb_remove_multicast(struct fsl_mc_io *mc_io,
|
|||
cmd_params->fdb_id = cpu_to_le16(fdb_id);
|
||||
cmd_params->num_ifs = cpu_to_le16(cfg->num_ifs);
|
||||
dpsw_set_field(cmd_params->type, ENTRY_TYPE, cfg->type);
|
||||
build_if_id_bitmap(cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
build_if_id_bitmap(&cmd_params->if_id, cfg->if_id, cfg->num_ifs);
|
||||
for (i = 0; i < 6; i++)
|
||||
cmd_params->mac_addr[i] = cfg->mac_addr[5 - i];
|
||||
|
||||
|
@ -1294,10 +1207,8 @@ int dpsw_ctrl_if_set_queue(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
|||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_get_api_version(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 *major_ver,
|
||||
u16 *minor_ver)
|
||||
int dpsw_get_api_version(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 *major_ver, u16 *minor_ver)
|
||||
{
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_rsp_get_api_version *rsp_params;
|
||||
|
@ -1319,7 +1230,7 @@ int dpsw_get_api_version(struct fsl_mc_io *mc_io,
|
|||
}
|
||||
|
||||
/**
|
||||
* dpsw_if_get_port_mac_addr()
|
||||
* dpsw_if_get_port_mac_addr() - Retrieve MAC address associated to the physical port
|
||||
* @mc_io: Pointer to MC portal's I/O object
|
||||
* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
|
||||
* @token: Token of DPSW object
|
||||
|
@ -1356,74 +1267,6 @@ int dpsw_if_get_port_mac_addr(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* dpsw_if_get_primary_mac_addr()
|
||||
* @mc_io: Pointer to MC portal's I/O object
|
||||
* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
|
||||
* @token: Token of DPSW object
|
||||
* @if_id: Interface Identifier
|
||||
* @mac_addr: MAC address of the physical port, if any, otherwise 0
|
||||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_get_primary_mac_addr(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 token, u16 if_id, u8 mac_addr[6])
|
||||
{
|
||||
struct dpsw_rsp_if_get_mac_addr *rsp_params;
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
struct dpsw_cmd_if *cmd_params;
|
||||
int err, i;
|
||||
|
||||
/* prepare command */
|
||||
cmd.header = mc_encode_cmd_header(DPSW_CMDID_IF_SET_PRIMARY_MAC_ADDR,
|
||||
cmd_flags,
|
||||
token);
|
||||
cmd_params = (struct dpsw_cmd_if *)cmd.params;
|
||||
cmd_params->if_id = cpu_to_le16(if_id);
|
||||
|
||||
/* send command to mc*/
|
||||
err = mc_send_command(mc_io, &cmd);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/* retrieve response parameters */
|
||||
rsp_params = (struct dpsw_rsp_if_get_mac_addr *)cmd.params;
|
||||
for (i = 0; i < 6; i++)
|
||||
mac_addr[5 - i] = rsp_params->mac_addr[i];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* dpsw_if_set_primary_mac_addr()
|
||||
* @mc_io: Pointer to MC portal's I/O object
|
||||
* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
|
||||
* @token: Token of DPSW object
|
||||
* @if_id: Interface Identifier
|
||||
* @mac_addr: MAC address of the physical port, if any, otherwise 0
|
||||
*
|
||||
* Return: Completion status. '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpsw_if_set_primary_mac_addr(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 token, u16 if_id, u8 mac_addr[6])
|
||||
{
|
||||
struct dpsw_cmd_if_set_mac_addr *cmd_params;
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
int i;
|
||||
|
||||
/* prepare command */
|
||||
cmd.header = mc_encode_cmd_header(DPSW_CMDID_IF_SET_PRIMARY_MAC_ADDR,
|
||||
cmd_flags,
|
||||
token);
|
||||
cmd_params = (struct dpsw_cmd_if_set_mac_addr *)cmd.params;
|
||||
cmd_params->if_id = cpu_to_le16(if_id);
|
||||
for (i = 0; i < 6; i++)
|
||||
cmd_params->mac_addr[i] = mac_addr[5 - i];
|
||||
|
||||
/* send command to mc*/
|
||||
return mc_send_command(mc_io, &cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* dpsw_ctrl_if_enable() - Enable control interface
|
||||
* @mc_io: Pointer to MC portal's I/O object
|
||||
|
|
|
@ -14,52 +14,30 @@
|
|||
|
||||
struct fsl_mc_io;
|
||||
|
||||
/**
|
||||
* DPSW general definitions
|
||||
*/
|
||||
/* DPSW general definitions */
|
||||
|
||||
/**
|
||||
* Maximum number of traffic class priorities
|
||||
*/
|
||||
#define DPSW_MAX_PRIORITIES 8
|
||||
/**
|
||||
* Maximum number of interfaces
|
||||
*/
|
||||
|
||||
#define DPSW_MAX_IF 64
|
||||
|
||||
int dpsw_open(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
int dpsw_id,
|
||||
u16 *token);
|
||||
int dpsw_open(struct fsl_mc_io *mc_io, u32 cmd_flags, int dpsw_id, u16 *token);
|
||||
|
||||
int dpsw_close(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token);
|
||||
int dpsw_close(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
||||
|
||||
/* DPSW options */
|
||||
|
||||
/**
|
||||
* DPSW options
|
||||
*/
|
||||
|
||||
/**
|
||||
* Disable flooding
|
||||
* DPSW_OPT_FLOODING_DIS - Flooding was disabled at device create
|
||||
*/
|
||||
#define DPSW_OPT_FLOODING_DIS 0x0000000000000001ULL
|
||||
/**
|
||||
* Disable Multicast
|
||||
* DPSW_OPT_MULTICAST_DIS - Multicast was disabled at device create
|
||||
*/
|
||||
#define DPSW_OPT_MULTICAST_DIS 0x0000000000000004ULL
|
||||
/**
|
||||
* Support control interface
|
||||
* DPSW_OPT_CTRL_IF_DIS - Control interface support is disabled
|
||||
*/
|
||||
#define DPSW_OPT_CTRL_IF_DIS 0x0000000000000010ULL
|
||||
/**
|
||||
* Disable flooding metering
|
||||
*/
|
||||
#define DPSW_OPT_FLOODING_METERING_DIS 0x0000000000000020ULL
|
||||
/**
|
||||
* Enable metering
|
||||
*/
|
||||
#define DPSW_OPT_METERING_EN 0x0000000000000040ULL
|
||||
|
||||
/**
|
||||
* enum dpsw_component_type - component type of a bridge
|
||||
|
@ -104,27 +82,19 @@ enum dpsw_broadcast_cfg {
|
|||
DPSW_BROADCAST_PER_FDB,
|
||||
};
|
||||
|
||||
int dpsw_enable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token);
|
||||
int dpsw_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
||||
|
||||
int dpsw_disable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token);
|
||||
int dpsw_disable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
||||
|
||||
int dpsw_reset(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token);
|
||||
int dpsw_reset(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
||||
|
||||
/**
|
||||
* DPSW IRQ Index and Events
|
||||
*/
|
||||
/* DPSW IRQ Index and Events */
|
||||
|
||||
#define DPSW_IRQ_INDEX_IF 0x0000
|
||||
#define DPSW_IRQ_INDEX_L2SW 0x0001
|
||||
|
||||
/**
|
||||
* IRQ event - Indicates that the link state changed
|
||||
* DPSW_IRQ_EVENT_LINK_CHANGED - Indicates that the link state changed
|
||||
*/
|
||||
#define DPSW_IRQ_EVENT_LINK_CHANGED 0x0001
|
||||
|
||||
|
@ -140,29 +110,17 @@ struct dpsw_irq_cfg {
|
|||
int irq_num;
|
||||
};
|
||||
|
||||
int dpsw_set_irq_enable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u8 en);
|
||||
int dpsw_set_irq_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u8 en);
|
||||
|
||||
int dpsw_set_irq_mask(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u32 mask);
|
||||
int dpsw_set_irq_mask(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u32 mask);
|
||||
|
||||
int dpsw_get_irq_status(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u32 *status);
|
||||
int dpsw_get_irq_status(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u32 *status);
|
||||
|
||||
int dpsw_clear_irq_status(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u8 irq_index,
|
||||
u32 status);
|
||||
int dpsw_clear_irq_status(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u8 irq_index, u32 status);
|
||||
|
||||
/**
|
||||
* struct dpsw_attr - Structure representing DPSW attributes
|
||||
|
@ -203,9 +161,7 @@ struct dpsw_attr {
|
|||
enum dpsw_broadcast_cfg broadcast_cfg;
|
||||
};
|
||||
|
||||
int dpsw_get_attributes(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
int dpsw_get_attributes(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
struct dpsw_attr *attr);
|
||||
|
||||
/**
|
||||
|
@ -229,9 +185,6 @@ enum dpsw_queue_type {
|
|||
DPSW_QUEUE_RX_ERR,
|
||||
};
|
||||
|
||||
/**
|
||||
* Maximum number of DPBP
|
||||
*/
|
||||
#define DPSW_MAX_DPBP 8
|
||||
|
||||
/**
|
||||
|
@ -293,21 +246,9 @@ enum dpsw_action {
|
|||
DPSW_ACTION_REDIRECT = 1
|
||||
};
|
||||
|
||||
/**
|
||||
* Enable auto-negotiation
|
||||
*/
|
||||
#define DPSW_LINK_OPT_AUTONEG 0x0000000000000001ULL
|
||||
/**
|
||||
* Enable half-duplex mode
|
||||
*/
|
||||
#define DPSW_LINK_OPT_HALF_DUPLEX 0x0000000000000002ULL
|
||||
/**
|
||||
* Enable pause frames
|
||||
*/
|
||||
#define DPSW_LINK_OPT_PAUSE 0x0000000000000004ULL
|
||||
/**
|
||||
* Enable a-symmetric pause frames
|
||||
*/
|
||||
#define DPSW_LINK_OPT_ASYM_PAUSE 0x0000000000000008ULL
|
||||
|
||||
/**
|
||||
|
@ -320,11 +261,9 @@ struct dpsw_link_cfg {
|
|||
u64 options;
|
||||
};
|
||||
|
||||
int dpsw_if_set_link_cfg(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_set_link_cfg(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
struct dpsw_link_cfg *cfg);
|
||||
|
||||
/**
|
||||
* struct dpsw_link_state - Structure representing DPSW link state
|
||||
* @rate: Rate
|
||||
|
@ -337,11 +276,8 @@ struct dpsw_link_state {
|
|||
u8 up;
|
||||
};
|
||||
|
||||
int dpsw_if_get_link_state(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
struct dpsw_link_state *state);
|
||||
int dpsw_if_get_link_state(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, struct dpsw_link_state *state);
|
||||
|
||||
/**
|
||||
* struct dpsw_tci_cfg - Tag Control Information (TCI) configuration
|
||||
|
@ -362,24 +298,19 @@ struct dpsw_tci_cfg {
|
|||
u16 vlan_id;
|
||||
};
|
||||
|
||||
int dpsw_if_set_tci(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_set_tci(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
const struct dpsw_tci_cfg *cfg);
|
||||
|
||||
int dpsw_if_get_tci(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_get_tci(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
struct dpsw_tci_cfg *cfg);
|
||||
|
||||
/**
|
||||
* enum dpsw_stp_state - Spanning Tree Protocol (STP) states
|
||||
* @DPSW_STP_STATE_BLOCKING: Blocking state
|
||||
* @DPSW_STP_STATE_DISABLED: Disabled state
|
||||
* @DPSW_STP_STATE_LISTENING: Listening state
|
||||
* @DPSW_STP_STATE_LEARNING: Learning state
|
||||
* @DPSW_STP_STATE_FORWARDING: Forwarding state
|
||||
* @DPSW_STP_STATE_BLOCKING: Blocking state
|
||||
*
|
||||
*/
|
||||
enum dpsw_stp_state {
|
||||
|
@ -400,10 +331,7 @@ struct dpsw_stp_cfg {
|
|||
enum dpsw_stp_state state;
|
||||
};
|
||||
|
||||
int dpsw_if_set_stp(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
int dpsw_if_set_stp(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id,
|
||||
const struct dpsw_stp_cfg *cfg);
|
||||
|
||||
/**
|
||||
|
@ -451,22 +379,12 @@ enum dpsw_counter {
|
|||
DPSW_CNT_ING_NO_BUFF_DISCARD = 0xc,
|
||||
};
|
||||
|
||||
int dpsw_if_get_counter(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
enum dpsw_counter type,
|
||||
u64 *counter);
|
||||
int dpsw_if_get_counter(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, enum dpsw_counter type, u64 *counter);
|
||||
|
||||
int dpsw_if_enable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id);
|
||||
int dpsw_if_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id);
|
||||
|
||||
int dpsw_if_disable(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id);
|
||||
int dpsw_if_disable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 if_id);
|
||||
|
||||
/**
|
||||
* struct dpsw_if_attr - Structure representing DPSW interface attributes
|
||||
|
@ -496,11 +414,8 @@ struct dpsw_if_attr {
|
|||
int dpsw_if_get_attributes(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, struct dpsw_if_attr *attr);
|
||||
|
||||
int dpsw_if_set_max_frame_length(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 if_id,
|
||||
u16 frame_length);
|
||||
int dpsw_if_set_max_frame_length(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, u16 frame_length);
|
||||
|
||||
/**
|
||||
* struct dpsw_vlan_cfg - VLAN Configuration
|
||||
|
@ -510,11 +425,8 @@ struct dpsw_vlan_cfg {
|
|||
u16 fdb_id;
|
||||
};
|
||||
|
||||
int dpsw_vlan_add(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_cfg *cfg);
|
||||
int dpsw_vlan_add(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_cfg *cfg);
|
||||
|
||||
#define DPSW_VLAN_ADD_IF_OPT_FDB_ID 0x0001
|
||||
|
||||
|
@ -524,6 +436,10 @@ int dpsw_vlan_add(struct fsl_mc_io *mc_io,
|
|||
* list for this VLAN
|
||||
* @if_id: The set of interfaces that are
|
||||
* assigned to the egress list for this VLAN
|
||||
* @options: Options map for this command (DPSW_VLAN_ADD_IF_OPT_FDB_ID)
|
||||
* @fdb_id: FDB id to be used by this VLAN on these specific interfaces
|
||||
* (taken into account only if the DPSW_VLAN_ADD_IF_OPT_FDB_ID is
|
||||
* specified in the options field)
|
||||
*/
|
||||
struct dpsw_vlan_if_cfg {
|
||||
u16 num_ifs;
|
||||
|
@ -532,33 +448,19 @@ struct dpsw_vlan_if_cfg {
|
|||
u16 fdb_id;
|
||||
};
|
||||
|
||||
int dpsw_vlan_add_if(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg);
|
||||
int dpsw_vlan_add_if(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg);
|
||||
|
||||
int dpsw_vlan_add_if_untagged(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg);
|
||||
int dpsw_vlan_add_if_untagged(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg);
|
||||
|
||||
int dpsw_vlan_remove_if(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg);
|
||||
int dpsw_vlan_remove_if(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg);
|
||||
|
||||
int dpsw_vlan_remove_if_untagged(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 vlan_id,
|
||||
const struct dpsw_vlan_if_cfg *cfg);
|
||||
int dpsw_vlan_remove_if_untagged(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id, const struct dpsw_vlan_if_cfg *cfg);
|
||||
|
||||
int dpsw_vlan_remove(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
int dpsw_vlan_remove(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 vlan_id);
|
||||
|
||||
/**
|
||||
|
@ -583,17 +485,11 @@ struct dpsw_fdb_unicast_cfg {
|
|||
u16 if_egress;
|
||||
};
|
||||
|
||||
int dpsw_fdb_add_unicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_unicast_cfg *cfg);
|
||||
int dpsw_fdb_add_unicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_unicast_cfg *cfg);
|
||||
|
||||
int dpsw_fdb_remove_unicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_unicast_cfg *cfg);
|
||||
int dpsw_fdb_remove_unicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_unicast_cfg *cfg);
|
||||
|
||||
#define DPSW_FDB_ENTRY_TYPE_DYNAMIC BIT(0)
|
||||
#define DPSW_FDB_ENTRY_TYPE_UNICAST BIT(1)
|
||||
|
@ -612,13 +508,8 @@ struct fdb_dump_entry {
|
|||
u8 if_mask[8];
|
||||
};
|
||||
|
||||
int dpsw_fdb_dump(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
u64 iova_addr,
|
||||
u32 iova_size,
|
||||
u16 *num_entries);
|
||||
int dpsw_fdb_dump(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, u16 fdb_id,
|
||||
u64 iova_addr, u32 iova_size, u16 *num_entries);
|
||||
|
||||
/**
|
||||
* struct dpsw_fdb_multicast_cfg - Multi-cast entry configuration
|
||||
|
@ -634,17 +525,11 @@ struct dpsw_fdb_multicast_cfg {
|
|||
u16 if_id[DPSW_MAX_IF];
|
||||
};
|
||||
|
||||
int dpsw_fdb_add_multicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_multicast_cfg *cfg);
|
||||
int dpsw_fdb_add_multicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_multicast_cfg *cfg);
|
||||
|
||||
int dpsw_fdb_remove_multicast(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 token,
|
||||
u16 fdb_id,
|
||||
const struct dpsw_fdb_multicast_cfg *cfg);
|
||||
int dpsw_fdb_remove_multicast(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 fdb_id, const struct dpsw_fdb_multicast_cfg *cfg);
|
||||
|
||||
/**
|
||||
* enum dpsw_fdb_learning_mode - Auto-learning modes
|
||||
|
@ -699,20 +584,12 @@ struct dpsw_fdb_attr {
|
|||
u16 max_fdb_mc_groups;
|
||||
};
|
||||
|
||||
int dpsw_get_api_version(struct fsl_mc_io *mc_io,
|
||||
u32 cmd_flags,
|
||||
u16 *major_ver,
|
||||
u16 *minor_ver);
|
||||
int dpsw_get_api_version(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 *major_ver, u16 *minor_ver);
|
||||
|
||||
int dpsw_if_get_port_mac_addr(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
u16 if_id, u8 mac_addr[6]);
|
||||
|
||||
int dpsw_if_get_primary_mac_addr(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 token, u16 if_id, u8 mac_addr[6]);
|
||||
|
||||
int dpsw_if_set_primary_mac_addr(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 token, u16 if_id, u8 mac_addr[6]);
|
||||
|
||||
/**
|
||||
* struct dpsw_fdb_cfg - FDB Configuration
|
||||
* @num_fdb_entries: Number of FDB entries
|
||||
|
|
Loading…
Reference in New Issue