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

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
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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

+3 −21
Original line number Diff line number Diff line
@@ -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)

/**
+6 −0
Original line number Diff line number Diff line
@@ -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,
+70 −92
Original line number Diff line number Diff line
@@ -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)
 */
+0 −3
Original line number Diff line number Diff line
@@ -13,9 +13,6 @@

struct fsl_mc_io;

/**
 * Number of irq's
 */
#define DPRTC_MAX_IRQ_NUM	1
#define DPRTC_IRQ_INDEX		0

Loading