Commit 5bdbdb82 authored by David S. Miller's avatar David S. Miller

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