aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0210-dpaa2-eth-Add-dpni_set_tx_priorities-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0210-dpaa2-eth-Add-dpni_set_tx_priorities-API.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/701-net-0210-dpaa2-eth-Add-dpni_set_tx_priorities-API.patch158
1 files changed, 0 insertions, 158 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0210-dpaa2-eth-Add-dpni_set_tx_priorities-API.patch b/target/linux/layerscape/patches-5.4/701-net-0210-dpaa2-eth-Add-dpni_set_tx_priorities-API.patch
deleted file mode 100644
index 4ce16b6fd9..0000000000
--- a/target/linux/layerscape/patches-5.4/701-net-0210-dpaa2-eth-Add-dpni_set_tx_priorities-API.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 97308e74e2ae781d37437137686965395b94327b Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@nxp.com>
-Date: Mon, 16 Oct 2017 15:27:55 +0000
-Subject: [PATCH] dpaa2-eth: Add dpni_set_tx_priorities API
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
----
- drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h | 19 ++++++++++
- drivers/net/ethernet/freescale/dpaa2/dpni.c | 49 +++++++++++++++++++++++++
- drivers/net/ethernet/freescale/dpaa2/dpni.h | 44 ++++++++++++++++++++++
- 3 files changed, 112 insertions(+)
-
---- a/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
-+++ b/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
-@@ -69,6 +69,7 @@
- #define DPNI_CMDID_REMOVE_FS_ENT DPNI_CMD(0x245)
- #define DPNI_CMDID_CLR_FS_ENT DPNI_CMD(0x246)
-
-+#define DPNI_CMDID_SET_TX_PRIORITIES DPNI_CMD_V2(0x250)
- #define DPNI_CMDID_GET_STATISTICS DPNI_CMD(0x25D)
- #define DPNI_CMDID_RESET_STATISTICS DPNI_CMD(0x25E)
- #define DPNI_CMDID_GET_QUEUE DPNI_CMD(0x25F)
-@@ -393,6 +394,24 @@ struct dpni_cmd_clear_mac_filters {
- u8 flags;
- };
-
-+#define DPNI_SEPARATE_GRP_SHIFT 0
-+#define DPNI_SEPARATE_GRP_SIZE 1
-+#define DPNI_MODE_1_SHIFT 0
-+#define DPNI_MODE_1_SIZE 4
-+#define DPNI_MODE_2_SHIFT 4
-+#define DPNI_MODE_2_SIZE 4
-+
-+struct dpni_cmd_set_tx_priorities {
-+ __le16 flags;
-+ u8 prio_group_A;
-+ u8 prio_group_B;
-+ __le32 pad0;
-+ u8 modes[4];
-+ __le32 pad1;
-+ __le64 pad2;
-+ __le16 delta_bandwidth[8];
-+};
-+
- #define DPNI_DIST_MODE_SHIFT 0
- #define DPNI_DIST_MODE_SIZE 4
- #define DPNI_MISS_ACTION_SHIFT 4
---- a/drivers/net/ethernet/freescale/dpaa2/dpni.c
-+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.c
-@@ -1355,6 +1355,55 @@ int dpni_clear_mac_filters(struct fsl_mc
- }
-
- /**
-+ * dpni_set_tx_priorities() - Set transmission TC priority configuration
-+ * @mc_io: Pointer to MC portal's I/O object
-+ * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
-+ * @token: Token of DPNI object
-+ * @cfg: Transmission selection configuration
-+ *
-+ * warning: Allowed only when DPNI is disabled
-+ *
-+ * Return: '0' on Success; Error code otherwise.
-+ */
-+int dpni_set_tx_priorities(struct fsl_mc_io *mc_io,
-+ u32 cmd_flags,
-+ u16 token,
-+ const struct dpni_tx_priorities_cfg *cfg)
-+{
-+ struct dpni_cmd_set_tx_priorities *cmd_params;
-+ struct fsl_mc_command cmd = { 0 };
-+ int i;
-+
-+ /* prepare command */
-+ cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_TX_PRIORITIES,
-+ cmd_flags,
-+ token);
-+ cmd_params = (struct dpni_cmd_set_tx_priorities *)cmd.params;
-+ dpni_set_field(cmd_params->flags,
-+ SEPARATE_GRP,
-+ cfg->separate_groups);
-+ cmd_params->prio_group_A = cfg->prio_group_A;
-+ cmd_params->prio_group_B = cfg->prio_group_B;
-+
-+ for (i = 0; i + 1 < DPNI_MAX_TC; i += 2) {
-+ dpni_set_field(cmd_params->modes[i / 2],
-+ MODE_1,
-+ cfg->tc_sched[i].mode);
-+ dpni_set_field(cmd_params->modes[i / 2],
-+ MODE_2,
-+ cfg->tc_sched[i + 1].mode);
-+ }
-+
-+ for (i = 0; i < DPNI_MAX_TC; i++) {
-+ cmd_params->delta_bandwidth[i] =
-+ cpu_to_le16(cfg->tc_sched[i].delta_bandwidth);
-+ }
-+
-+ /* send command to mc*/
-+ return mc_send_command(mc_io, &cmd);
-+}
-+
-+/**
- * dpni_set_rx_tc_dist() - Set Rx traffic class distribution configuration
- * @mc_io: Pointer to MC portal's I/O object
- * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
---- a/drivers/net/ethernet/freescale/dpaa2/dpni.h
-+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.h
-@@ -677,6 +677,50 @@ int dpni_prepare_key_cfg(const struct dp
- u8 *key_cfg_buf);
-
- /**
-+ * enum dpni_tx_schedule_mode - DPNI Tx scheduling mode
-+ * @DPNI_TX_SCHED_STRICT_PRIORITY: strict priority
-+ * @DPNI_TX_SCHED_WEIGHTED_A: weighted based scheduling in group A
-+ * @DPNI_TX_SCHED_WEIGHTED_B: weighted based scheduling in group B
-+ */
-+enum dpni_tx_schedule_mode {
-+ DPNI_TX_SCHED_STRICT_PRIORITY = 0,
-+ DPNI_TX_SCHED_WEIGHTED_A,
-+ DPNI_TX_SCHED_WEIGHTED_B,
-+};
-+
-+/**
-+ * struct dpni_tx_schedule_cfg - Structure representing Tx scheduling conf
-+ * @mode: Scheduling mode
-+ * @delta_bandwidth: Bandwidth represented in weights from 100 to 10000;
-+ * not applicable for 'strict-priority' mode;
-+ */
-+struct dpni_tx_schedule_cfg {
-+ enum dpni_tx_schedule_mode mode;
-+ u16 delta_bandwidth;
-+};
-+
-+/**
-+ * struct dpni_tx_priorities_cfg - Structure representing transmission
-+ * priorities for DPNI TCs
-+ * @tc_sched: An array of traffic-classes
-+ * @prio_group_A: Priority of group A
-+ * @prio_group_B: Priority of group B
-+ * @separate_groups: Treat A and B groups as separate
-+ * @ceetm_ch_idx: ceetm channel index to apply the changes
-+ */
-+struct dpni_tx_priorities_cfg {
-+ struct dpni_tx_schedule_cfg tc_sched[DPNI_MAX_TC];
-+ u8 prio_group_A;
-+ u8 prio_group_B;
-+ u8 separate_groups;
-+};
-+
-+int dpni_set_tx_priorities(struct fsl_mc_io *mc_io,
-+ u32 cmd_flags,
-+ u16 token,
-+ const struct dpni_tx_priorities_cfg *cfg);
-+
-+/**
- * struct dpni_rx_tc_dist_cfg - Rx traffic class distribution configuration
- * @dist_size: Set the distribution size;
- * supported values: 1,2,3,4,6,7,8,12,14,16,24,28,32,48,56,64,96,