aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sfxge
diff options
context:
space:
mode:
authorAndrew Rybchenko <arybchik@FreeBSD.org>2016-05-16 06:40:17 +0000
committerAndrew Rybchenko <arybchik@FreeBSD.org>2016-05-16 06:40:17 +0000
commitb59e9e4a81072a49a1e04d77d95b7421ff4d796c (patch)
tree0103ab24e45ba33aa148a895f882a8dac124bce3 /sys/dev/sfxge
parentf6d61784ad85e662e238c00620fe83a5d6096691 (diff)
downloadsrc-b59e9e4a81072a49a1e04d77d95b7421ff4d796c.tar.gz
src-b59e9e4a81072a49a1e04d77d95b7421ff4d796c.zip
sfxge(4): fix V1 licensing MCDI operations
Implementation of the MCDI commands for Siena boards was requesting the wrong operation. Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com> Sponsored by: Solarflare Communications, Inc. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D6370
Notes
Notes: svn path=/head/; revision=299905
Diffstat (limited to 'sys/dev/sfxge')
-rw-r--r--sys/dev/sfxge/common/efx_lic.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/sfxge/common/efx_lic.c b/sys/dev/sfxge/common/efx_lic.c
index 8dfbd86ce9bb..2f3bf67c0ed9 100644
--- a/sys/dev/sfxge/common/efx_lic.c
+++ b/sys/dev/sfxge/common/efx_lic.c
@@ -349,12 +349,15 @@ efx_mcdi_fc_license_update_license(
EFSYS_ASSERT(enp->en_family == EFX_FAMILY_SIENA);
(void) memset(payload, 0, sizeof (payload));
- req.emr_cmd = MC_CMD_FC_OP_LICENSE;
+ req.emr_cmd = MC_CMD_FC;
req.emr_in_buf = payload;
req.emr_in_length = MC_CMD_FC_IN_LICENSE_LEN;
req.emr_out_buf = payload;
req.emr_out_length = 0;
+ MCDI_IN_SET_DWORD(req, FC_IN_CMD,
+ MC_CMD_FC_OP_LICENSE);
+
MCDI_IN_SET_DWORD(req, FC_IN_LICENSE_OP,
MC_CMD_FC_IN_LICENSE_UPDATE_LICENSE);
@@ -393,12 +396,15 @@ efx_mcdi_fc_license_get_key_stats(
EFSYS_ASSERT(enp->en_family == EFX_FAMILY_SIENA);
(void) memset(payload, 0, sizeof (payload));
- req.emr_cmd = MC_CMD_FC_OP_LICENSE;
+ req.emr_cmd = MC_CMD_FC;
req.emr_in_buf = payload;
req.emr_in_length = MC_CMD_FC_IN_LICENSE_LEN;
req.emr_out_buf = payload;
req.emr_out_length = MC_CMD_FC_OUT_LICENSE_LEN;
+ MCDI_IN_SET_DWORD(req, FC_IN_CMD,
+ MC_CMD_FC_OP_LICENSE);
+
MCDI_IN_SET_DWORD(req, FC_IN_LICENSE_OP,
MC_CMD_FC_IN_LICENSE_GET_KEY_STATS);