mirror of
https://github.com/torvalds/linux.git
synced 2024-12-16 08:02:17 +00:00
sfc: Support extraction of CAPABILITIES from GET_BOARD_CFG response.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
parent
5f3f9d6c44
commit
6aa9c7f625
@ -678,7 +678,7 @@ fail:
|
||||
}
|
||||
|
||||
int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address,
|
||||
u16 *fw_subtype_list)
|
||||
u16 *fw_subtype_list, u32 *capabilities)
|
||||
{
|
||||
uint8_t outbuf[MC_CMD_GET_BOARD_CFG_OUT_LENMIN];
|
||||
size_t outlen;
|
||||
@ -708,6 +708,14 @@ int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address,
|
||||
outbuf + MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_OFST,
|
||||
MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM *
|
||||
sizeof(fw_subtype_list[0]));
|
||||
if (capabilities) {
|
||||
if (port_num)
|
||||
*capabilities = MCDI_DWORD(outbuf,
|
||||
GET_BOARD_CFG_OUT_CAPABILITIES_PORT1);
|
||||
else
|
||||
*capabilities = MCDI_DWORD(outbuf,
|
||||
GET_BOARD_CFG_OUT_CAPABILITIES_PORT0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -97,7 +97,7 @@ extern void efx_mcdi_print_fwver(struct efx_nic *efx, char *buf, size_t len);
|
||||
extern int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating,
|
||||
bool *was_attached_out);
|
||||
extern int efx_mcdi_get_board_cfg(struct efx_nic *efx, u8 *mac_address,
|
||||
u16 *fw_subtype_list);
|
||||
u16 *fw_subtype_list, u32 *capabilities);
|
||||
extern int efx_mcdi_log_ctrl(struct efx_nic *efx, bool evq, bool uart,
|
||||
u32 dest_evq);
|
||||
extern int efx_mcdi_nvram_types(struct efx_nic *efx, u32 *nvram_types_out);
|
||||
|
@ -631,7 +631,7 @@ static int siena_mtd_get_fw_subtypes(struct efx_nic *efx,
|
||||
uint16_t fw_subtype_list[MC_CMD_GET_BOARD_CFG_OUT_FW_SUBTYPE_LIST_MINNUM];
|
||||
int rc;
|
||||
|
||||
rc = efx_mcdi_get_board_cfg(efx, NULL, fw_subtype_list);
|
||||
rc = efx_mcdi_get_board_cfg(efx, NULL, fw_subtype_list, NULL);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
|
@ -216,7 +216,7 @@ static int siena_reset_hw(struct efx_nic *efx, enum reset_type method)
|
||||
|
||||
static int siena_probe_nvconfig(struct efx_nic *efx)
|
||||
{
|
||||
return efx_mcdi_get_board_cfg(efx, efx->net_dev->perm_addr, NULL);
|
||||
return efx_mcdi_get_board_cfg(efx, efx->net_dev->perm_addr, NULL, NULL);
|
||||
}
|
||||
|
||||
static int siena_probe_nic(struct efx_nic *efx)
|
||||
|
Loading…
Reference in New Issue
Block a user