All of lore.kernel.org
 help / color / mirror / Atom feed
From: Edward Cree <ecree@solarflare.com>
To: <linux-net-drivers@solarflare.com>, <davem@davemloft.net>
Cc: <netdev@vger.kernel.org>
Subject: [PATCH v4 net-next 12/16] sfc_ef100: extend ef100_check_caps to cover datapath_caps3
Date: Fri, 24 Jul 2020 17:00:02 +0100	[thread overview]
Message-ID: <62851473-b710-af82-d836-9be1eb9947c4@solarflare.com> (raw)
In-Reply-To: <d224dbb2-ef20-dca9-d50b-7f583b45d859@solarflare.com>

MC_CMD_GET_CAPABILITIES now has a third word of flags; extend the
 efx_has_cap() machinery to cover it.

Signed-off-by: Edward Cree <ecree@solarflare.com>
---
 drivers/net/ethernet/sfc/ef100_nic.c | 9 ++++++++-
 drivers/net/ethernet/sfc/ef100_nic.h | 1 +
 drivers/net/ethernet/sfc/mcdi.h      | 4 ++--
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/sfc/ef100_nic.c b/drivers/net/ethernet/sfc/ef100_nic.c
index 3fb81d6e8df3..bb246acca574 100644
--- a/drivers/net/ethernet/sfc/ef100_nic.c
+++ b/drivers/net/ethernet/sfc/ef100_nic.c
@@ -128,7 +128,7 @@ static void ef100_mcdi_reboot_detected(struct efx_nic *efx)
  */
 static int efx_ef100_init_datapath_caps(struct efx_nic *efx)
 {
-	MCDI_DECLARE_BUF(outbuf, MC_CMD_GET_CAPABILITIES_V4_OUT_LEN);
+	MCDI_DECLARE_BUF(outbuf, MC_CMD_GET_CAPABILITIES_V7_OUT_LEN);
 	struct ef100_nic_data *nic_data = efx->nic_data;
 	u8 vi_window_mode;
 	size_t outlen;
@@ -150,6 +150,11 @@ static int efx_ef100_init_datapath_caps(struct efx_nic *efx)
 					     GET_CAPABILITIES_OUT_FLAGS1);
 	nic_data->datapath_caps2 = MCDI_DWORD(outbuf,
 					      GET_CAPABILITIES_V2_OUT_FLAGS2);
+	if (outlen < MC_CMD_GET_CAPABILITIES_V7_OUT_LEN)
+		nic_data->datapath_caps3 = 0;
+	else
+		nic_data->datapath_caps3 = MCDI_DWORD(outbuf,
+						      GET_CAPABILITIES_V7_OUT_FLAGS3);
 
 	vi_window_mode = MCDI_BYTE(outbuf,
 				   GET_CAPABILITIES_V3_OUT_VI_WINDOW_MODE);
@@ -346,6 +351,8 @@ static unsigned int ef100_check_caps(const struct efx_nic *efx,
 		return nic_data->datapath_caps & BIT_ULL(flag);
 	case MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS2_OFST:
 		return nic_data->datapath_caps2 & BIT_ULL(flag);
+	case MC_CMD_GET_CAPABILITIES_V8_OUT_FLAGS3_OFST:
+		return nic_data->datapath_caps3 & BIT_ULL(flag);
 	default:
 		return 0;
 	}
diff --git a/drivers/net/ethernet/sfc/ef100_nic.h b/drivers/net/ethernet/sfc/ef100_nic.h
index 392611cc33b5..7744ec85bec6 100644
--- a/drivers/net/ethernet/sfc/ef100_nic.h
+++ b/drivers/net/ethernet/sfc/ef100_nic.h
@@ -22,6 +22,7 @@ struct ef100_nic_data {
 	struct efx_buffer mcdi_buf;
 	u32 datapath_caps;
 	u32 datapath_caps2;
+	u32 datapath_caps3;
 	u16 warm_boot_count;
 	DECLARE_BITMAP(evq_phases, EFX_MAX_CHANNELS);
 };
diff --git a/drivers/net/ethernet/sfc/mcdi.h b/drivers/net/ethernet/sfc/mcdi.h
index e053adfe82b0..658cf345420d 100644
--- a/drivers/net/ethernet/sfc/mcdi.h
+++ b/drivers/net/ethernet/sfc/mcdi.h
@@ -327,10 +327,10 @@ void efx_mcdi_sensor_event(struct efx_nic *efx, efx_qword_t *ev);
 	EFX_QWORD_FIELD(_ev, MCDI_EVENT_ ## _field)
 
 #define MCDI_CAPABILITY(field)						\
-	MC_CMD_GET_CAPABILITIES_V4_OUT_ ## field ## _LBN
+	MC_CMD_GET_CAPABILITIES_V8_OUT_ ## field ## _LBN
 
 #define MCDI_CAPABILITY_OFST(field) \
-	MC_CMD_GET_CAPABILITIES_V4_OUT_ ## field ## _OFST
+	MC_CMD_GET_CAPABILITIES_V8_OUT_ ## field ## _OFST
 
 #define efx_has_cap(efx, field) \
 	efx->type->check_caps(efx, \


  parent reply	other threads:[~2020-07-24 16:00 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-24 15:56 [PATCH v4 net-next 00/16] sfc: driver for EF100 family NICs, part 1 Edward Cree
2020-07-24 15:57 ` [PATCH v4 net-next 01/16] sfc: remove efx_ethtool_nway_reset() Edward Cree
2020-07-24 15:57 ` [PATCH v4 net-next 02/16] sfc_ef100: add EF100 register definitions Edward Cree
2020-07-24 15:57 ` [PATCH v4 net-next 03/16] sfc_ef100: register accesses on EF100 Edward Cree
2020-07-24 15:57 ` [PATCH v4 net-next 04/16] sfc: skeleton EF100 PF driver Edward Cree
2020-07-24 20:32   ` kernel test robot
2020-07-24 20:32     ` kernel test robot
2020-07-27 10:41     ` Edward Cree
2020-07-27 10:41       ` Edward Cree
2020-07-24 21:44   ` kernel test robot
2020-07-24 21:44     ` kernel test robot
2020-07-24 15:58 ` [PATCH v4 net-next 05/16] sfc_ef100: reset-handling stub Edward Cree
2020-07-24 15:58 ` [PATCH v4 net-next 06/16] sfc_ef100: PHY probe stub Edward Cree
2020-07-24 15:58 ` [PATCH v4 net-next 07/16] sfc_ef100: don't call efx_reset_down()/up() on EF100 Edward Cree
2020-07-24 15:58 ` [PATCH v4 net-next 08/16] sfc_ef100: implement MCDI transport Edward Cree
2020-07-24 15:59 ` [PATCH v4 net-next 09/16] sfc_ef100: implement ndo_open/close and EVQ probing Edward Cree
2020-07-24 21:54   ` kernel test robot
2020-07-24 21:54     ` kernel test robot
2020-07-24 15:59 ` [PATCH v4 net-next 10/16] sfc_ef100: process events for MCDI completions Edward Cree
2020-07-24 15:59 ` [PATCH v4 net-next 11/16] sfc_ef100: read datapath caps, implement check_caps Edward Cree
2020-07-24 16:00 ` Edward Cree [this message]
2020-07-24 16:00 ` [PATCH v4 net-next 13/16] sfc_ef100: actually perform resets Edward Cree
2020-07-24 16:00 ` [PATCH v4 net-next 14/16] sfc_ef100: probe the PHY and configure the MAC Edward Cree
2020-07-24 16:01 ` [PATCH v4 net-next 15/16] sfc_ef100: read device MAC address at probe time Edward Cree
2020-07-24 16:01 ` [PATCH v4 net-next 16/16] sfc_ef100: implement ndo_get_phys_port_{id,name} Edward Cree

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=62851473-b710-af82-d836-9be1eb9947c4@solarflare.com \
    --to=ecree@solarflare.com \
    --cc=davem@davemloft.net \
    --cc=linux-net-drivers@solarflare.com \
    --cc=netdev@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.