Loading drivers/net/ethernet/sfc/mcdi.c +16 −2 Original line number Diff line number Diff line Loading @@ -1132,13 +1132,27 @@ static int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating, goto fail; } if (driver_operating) { if (outlen >= MC_CMD_DRV_ATTACH_EXT_OUT_LEN) { efx->mcdi->fn_flags = MCDI_DWORD(outbuf, DRV_ATTACH_EXT_OUT_FUNC_FLAGS); } else { /* Synthesise flags for Siena */ efx->mcdi->fn_flags = 1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL | 1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED | (efx_port_num(efx) == 0) << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_PRIMARY; } } /* We currently assume we have control of the external link * and are completely trusted by firmware. Abort probing * if that's not true for this function. */ if (driver_operating && outlen >= MC_CMD_DRV_ATTACH_EXT_OUT_LEN && (MCDI_DWORD(outbuf, DRV_ATTACH_EXT_OUT_FUNC_FLAGS) & (efx->mcdi->fn_flags & (1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL | 1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED)) != (1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL | Loading drivers/net/ethernet/sfc/mcdi.h +2 −0 Original line number Diff line number Diff line Loading @@ -94,12 +94,14 @@ struct efx_mcdi_mtd_partition { * struct efx_mcdi_data - extra state for NICs that implement MCDI * @iface: Interface/protocol state * @hwmon: Hardware monitor state * @fn_flags: Flags for this function, as returned by %MC_CMD_DRV_ATTACH. */ struct efx_mcdi_data { struct efx_mcdi_iface iface; #ifdef CONFIG_SFC_MCDI_MON struct efx_mcdi_mon hwmon; #endif u32 fn_flags; }; #ifdef CONFIG_SFC_MCDI_MON Loading Loading
drivers/net/ethernet/sfc/mcdi.c +16 −2 Original line number Diff line number Diff line Loading @@ -1132,13 +1132,27 @@ static int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating, goto fail; } if (driver_operating) { if (outlen >= MC_CMD_DRV_ATTACH_EXT_OUT_LEN) { efx->mcdi->fn_flags = MCDI_DWORD(outbuf, DRV_ATTACH_EXT_OUT_FUNC_FLAGS); } else { /* Synthesise flags for Siena */ efx->mcdi->fn_flags = 1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL | 1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED | (efx_port_num(efx) == 0) << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_PRIMARY; } } /* We currently assume we have control of the external link * and are completely trusted by firmware. Abort probing * if that's not true for this function. */ if (driver_operating && outlen >= MC_CMD_DRV_ATTACH_EXT_OUT_LEN && (MCDI_DWORD(outbuf, DRV_ATTACH_EXT_OUT_FUNC_FLAGS) & (efx->mcdi->fn_flags & (1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL | 1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED)) != (1 << MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_LINKCTRL | Loading
drivers/net/ethernet/sfc/mcdi.h +2 −0 Original line number Diff line number Diff line Loading @@ -94,12 +94,14 @@ struct efx_mcdi_mtd_partition { * struct efx_mcdi_data - extra state for NICs that implement MCDI * @iface: Interface/protocol state * @hwmon: Hardware monitor state * @fn_flags: Flags for this function, as returned by %MC_CMD_DRV_ATTACH. */ struct efx_mcdi_data { struct efx_mcdi_iface iface; #ifdef CONFIG_SFC_MCDI_MON struct efx_mcdi_mon hwmon; #endif u32 fn_flags; }; #ifdef CONFIG_SFC_MCDI_MON Loading