.. | .. |
---|
974 | 974 | |
---|
975 | 975 | /* A QSFP+ NIC may actually have an SFP+ module attached. |
---|
976 | 976 | * The ID is page 0, byte 0. |
---|
| 977 | + * QSFP28 is of type SFF_8636, however, this is treated |
---|
| 978 | + * the same by ethtool, so we can also treat them the same. |
---|
977 | 979 | */ |
---|
978 | 980 | switch (efx_mcdi_phy_get_module_eeprom_byte(efx, 0, 0)) { |
---|
979 | | - case 0x3: |
---|
| 981 | + case 0x3: /* SFP */ |
---|
980 | 982 | return MC_CMD_MEDIA_SFP_PLUS; |
---|
981 | | - case 0xc: |
---|
982 | | - case 0xd: |
---|
| 983 | + case 0xc: /* QSFP */ |
---|
| 984 | + case 0xd: /* QSFP+ */ |
---|
| 985 | + case 0x11: /* QSFP28 */ |
---|
983 | 986 | return MC_CMD_MEDIA_QSFP_PLUS; |
---|
984 | 987 | default: |
---|
985 | 988 | return 0; |
---|
.. | .. |
---|
1077 | 1080 | |
---|
1078 | 1081 | case MC_CMD_MEDIA_QSFP_PLUS: |
---|
1079 | 1082 | modinfo->type = ETH_MODULE_SFF_8436; |
---|
1080 | | - modinfo->eeprom_len = ETH_MODULE_SFF_8436_LEN; |
---|
| 1083 | + modinfo->eeprom_len = ETH_MODULE_SFF_8436_MAX_LEN; |
---|
1081 | 1084 | break; |
---|
1082 | 1085 | |
---|
1083 | 1086 | default: |
---|