patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Rasesh Mody <rasesh.mody@cavium.com>
Cc: dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/qede/base: fix to handle stag update event' has been queued to stable release 18.08.1
Date: Tue, 20 Nov 2018 19:12:41 +0000	[thread overview]
Message-ID: <20181120191252.30277-51-ktraynor@redhat.com> (raw)
In-Reply-To: <20181120191252.30277-1-ktraynor@redhat.com>

Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/23/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From 3dba395fd63c8f986c57a6a05676de3c87ec2ee7 Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 8 Sep 2018 13:30:50 -0700
Subject: [PATCH] net/qede/base: fix to handle stag update event

[ upstream commit cb71992793940ce5b642d843e07c934a11f3c13b ]

This fix adds a ecore_mcp_update_stag() handler to handle the STAG update
events from management FW and program the STAG value.
It also clears the stag config on PF, when management FW invalidates
the stag value.

Fixes: ec94dbc57362 ("qede: add base driver")

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
 drivers/net/qede/base/bcm_osal.h      |  1 +
 drivers/net/qede/base/ecore_mcp.c     | 46 +++++++++++++++++++++++++++
 drivers/net/qede/base/ecore_mcp_api.h |  4 +++
 drivers/net/qede/base/mcp_public.h    |  1 +
 drivers/net/qede/base/reg_addr.h      |  5 +++
 5 files changed, 57 insertions(+)

diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h
index 630867fad..b43e0b30e 100644
--- a/drivers/net/qede/base/bcm_osal.h
+++ b/drivers/net/qede/base/bcm_osal.h
@@ -448,4 +448,5 @@ u32 qede_crc32(u32 crc, u8 *ptr, u32 length);
 #define OSAL_MFW_TLV_REQ(p_hwfn) nothing
 #define OSAL_MFW_FILL_TLV_DATA(type, buf, data) (0)
+#define OSAL_HW_INFO_CHANGE(p_hwfn, change) nothing
 #define OSAL_MFW_CMD_PREEMPT(p_hwfn) nothing
 #define OSAL_PF_VALIDATE_MODIFY_TUNN_CONFIG(p_hwfn, mask, b_update, tunn) 0
diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c
index ea14c172f..49963c691 100644
--- a/drivers/net/qede/base/ecore_mcp.c
+++ b/drivers/net/qede/base/ecore_mcp.c
@@ -1657,4 +1657,47 @@ ecore_mcp_update_bw(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt)
 }
 
+static void ecore_mcp_update_stag(struct ecore_hwfn *p_hwfn,
+				  struct ecore_ptt *p_ptt)
+{
+	struct public_func shmem_info;
+	u32 resp = 0, param = 0;
+
+	ecore_mcp_get_shmem_func(p_hwfn, p_ptt, &shmem_info,
+				 MCP_PF_ID(p_hwfn));
+
+	p_hwfn->mcp_info->func_info.ovlan = (u16)shmem_info.ovlan_stag &
+						 FUNC_MF_CFG_OV_STAG_MASK;
+	p_hwfn->hw_info.ovlan = p_hwfn->mcp_info->func_info.ovlan;
+	if (OSAL_TEST_BIT(ECORE_MF_OVLAN_CLSS, &p_hwfn->p_dev->mf_bits)) {
+		if (p_hwfn->hw_info.ovlan != ECORE_MCP_VLAN_UNSET) {
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_VALUE,
+				 p_hwfn->hw_info.ovlan);
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_EN, 1);
+
+			/* Configure DB to add external vlan to EDPM packets */
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_TAG1_OVRD_MODE, 1);
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_PF_EXT_VID_BB_K2,
+				 p_hwfn->hw_info.ovlan);
+		} else {
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_EN, 0);
+			ecore_wr(p_hwfn, p_ptt, NIG_REG_LLH_FUNC_TAG_VALUE, 0);
+
+			/* Configure DB to add external vlan to EDPM packets */
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_TAG1_OVRD_MODE, 0);
+			ecore_wr(p_hwfn, p_ptt, DORQ_REG_PF_EXT_VID_BB_K2, 0);
+		}
+
+		ecore_sp_pf_update_stag(p_hwfn);
+	}
+
+	DP_VERBOSE(p_hwfn, ECORE_MSG_SP, "ovlan  = %d hw_mode = 0x%x\n",
+		   p_hwfn->mcp_info->func_info.ovlan, p_hwfn->hw_info.hw_mode);
+	OSAL_HW_INFO_CHANGE(p_hwfn, ECORE_HW_INFO_CHANGE_OVLAN);
+
+	/* Acknowledge the MFW */
+	ecore_mcp_cmd(p_hwfn, p_ptt, DRV_MSG_CODE_S_TAG_UPDATE_ACK, 0,
+		      &resp, &param);
+}
+
 static void ecore_mcp_handle_fan_failure(struct ecore_hwfn *p_hwfn)
 {
@@ -2042,4 +2085,7 @@ enum _ecore_status_t ecore_mcp_handle_events(struct ecore_hwfn *p_hwfn,
 			ecore_mcp_update_bw(p_hwfn, p_ptt);
 			break;
+		case MFW_DRV_MSG_S_TAG_UPDATE:
+			ecore_mcp_update_stag(p_hwfn, p_ptt);
+			break;
 		case MFW_DRV_MSG_FAILURE_DETECTED:
 			ecore_mcp_handle_fan_failure(p_hwfn);
diff --git a/drivers/net/qede/base/ecore_mcp_api.h b/drivers/net/qede/base/ecore_mcp_api.h
index cfb9f99de..8f4efd15f 100644
--- a/drivers/net/qede/base/ecore_mcp_api.h
+++ b/drivers/net/qede/base/ecore_mcp_api.h
@@ -522,4 +522,8 @@ union ecore_mfw_tlv_data {
 };
 
+enum ecore_hw_info_change {
+	ECORE_HW_INFO_CHANGE_OVLAN,
+};
+
 /**
  * @brief - returns the link params of the hw function
diff --git a/drivers/net/qede/base/mcp_public.h b/drivers/net/qede/base/mcp_public.h
index 81aa88e7c..79d9aaef3 100644
--- a/drivers/net/qede/base/mcp_public.h
+++ b/drivers/net/qede/base/mcp_public.h
@@ -1259,4 +1259,5 @@ struct public_drv_mb {
 #define DRV_MSG_GET_RESOURCE_ALLOC_MSG		0x34000000
 #define DRV_MSG_SET_RESOURCE_VALUE_MSG		0x35000000
+#define DRV_MSG_CODE_S_TAG_UPDATE_ACK		0x3b000000
 
 /*deprecated don't use*/
diff --git a/drivers/net/qede/base/reg_addr.h b/drivers/net/qede/base/reg_addr.h
index 402f62043..7ed26fcce 100644
--- a/drivers/net/qede/base/reg_addr.h
+++ b/drivers/net/qede/base/reg_addr.h
@@ -1215,2 +1215,7 @@
 
 #define RSS_REG_RSS_RAM_MASK 0x238c10UL
+
+#define NIG_REG_LLH_FUNC_TAG_EN 0x5019b0UL
+#define NIG_REG_LLH_FUNC_TAG_VALUE 0x5019d0UL
+#define DORQ_REG_TAG1_OVRD_MODE 0x1008b4UL
+#define DORQ_REG_PF_EXT_VID_BB_K2 0x1008c8UL
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-20 17:53:08.668353130 +0000
+++ 0051-net-qede-base-fix-to-handle-stag-update-event.patch	2018-11-20 17:53:07.000000000 +0000
@@ -1,15 +1,16 @@
-From cb71992793940ce5b642d843e07c934a11f3c13b Mon Sep 17 00:00:00 2001
+From 3dba395fd63c8f986c57a6a05676de3c87ec2ee7 Mon Sep 17 00:00:00 2001
 From: Rasesh Mody <rasesh.mody@cavium.com>
 Date: Sat, 8 Sep 2018 13:30:50 -0700
 Subject: [PATCH] net/qede/base: fix to handle stag update event
 
+[ upstream commit cb71992793940ce5b642d843e07c934a11f3c13b ]
+
 This fix adds a ecore_mcp_update_stag() handler to handle the STAG update
 events from management FW and program the STAG value.
 It also clears the stag config on PF, when management FW invalidates
 the stag value.
 
 Fixes: ec94dbc57362 ("qede: add base driver")
-Cc: stable@dpdk.org
 
 Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
 ---

  parent reply	other threads:[~2018-11-20 19:15 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-20 19:11 [dpdk-stable] patch 'devtools: relax rule for identifying symbol section' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'mk: disable OcteonTx for buggy compilers only on arm64' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'malloc: fix potential null pointer dereference' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'bus/vdev: fix error log on secondary device scan' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: fix chimney buffer size error handling' " Kevin Traynor
2018-11-20 19:11 ` [dpdk-stable] patch 'net/netvsc: resize event buffer as needed' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/octeontx: fix packet corruption on Tx' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix style and syntax in flow API guide' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix artificial L4 limitation on switch flow rules' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix RSS flow action hash type selection' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix array initialization' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mvpp2: fix comments and error messages' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix MAC changes when live change not supported' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix live MAC changes " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix port ownership logs' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: fix buffer corruption in packets' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix Tx offload capability typos' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/cxgbe: fix memory access when parsing flow match items' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/ixgbe: do not return internal code' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/mlx5: fix interrupt completion queue index wrapping' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix zmbufs array leak after NUMA realloc' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: check negotiated features before set' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix vhost interrupt support' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost-user: drop connection on message handling failures' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'vhost: fix return value on enqueue path' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'ethdev: fix missing names in Tx offload name array' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'crypto/qat: fix typo' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'app/bbdev: fix inputs mbuf creation' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'compat: fix symbol version support with meson' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'eal: include missing hypervisor files in " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'raw/ifpga: use -Wno-error=format-security for " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'igb_uio: install module when building with " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'build: create relative symlinks for PMDs in libdir' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'pdump: remove dependency on libpthread' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'fbarray: fix detach in --no-shconf mode' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'eal: do not allow legacy mode with --in-memory " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'config: remove unused parameter' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/e1000: fix queue number in RSS configuration' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/ifc: do not notify before HW ready' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Kevin Traynor
2018-11-20 19:12 ` Kevin Traynor [this message]
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix ethernet type in HW registers' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix logic for sfp get/set' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix flow director for IPv6 filter' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede: fix Rx buffer size calculation' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/qede/base: fix MFW FLR flow' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix deadlock in memory events callback' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/virtio-user: fix memory hotplug support in vhost-kernel' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: fix crash on slave queue release' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net/failsafe: add checks for deferred queue setup' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'app/testpmd: fix missing jump action in flow action' " Kevin Traynor
2018-11-20 19:12 ` [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' " Kevin Traynor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181120191252.30277-51-ktraynor@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=rasesh.mody@cavium.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).