diff options
author | arybchik <arybchik@FreeBSD.org> | 2016-06-04 16:31:04 +0000 |
---|---|---|
committer | arybchik <arybchik@FreeBSD.org> | 2016-06-04 16:31:04 +0000 |
commit | e6051453d475a6353a94e11c0b87e5497943897e (patch) | |
tree | 450f7ed2c2994fb9d63a9465536dc172e85822df | |
parent | ea37dd95380bc17a122e7dda882c90bf59c3095f (diff) | |
download | FreeBSD-src-e6051453d475a6353a94e11c0b87e5497943897e.zip FreeBSD-src-e6051453d475a6353a94e11c0b87e5497943897e.tar.gz |
MFC r299905
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.
-rw-r--r-- | sys/dev/sfxge/common/efx_lic.c | 10 |
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 8dfbd86..2f3bf67 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); |