]> git.baikalelectronics.ru Git - kernel.git/commit
bnx2x: Check if transceiver implements DDM before access
authorMauro S. M. Rodrigues <maurosr@linux.vnet.ibm.com>
Thu, 13 Jun 2019 19:25:40 +0000 (16:25 -0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Jun 2019 17:02:40 +0000 (10:02 -0700)
commit8cccbecd1577c209710356c5d710e59e4a7fa0d7
tree4ad7fd9eb912a8b9f7df9a889eda2c665bef8043
parentb6c58536fe0583faf03d16acb431af0c6832eae6
bnx2x: Check if transceiver implements DDM before access

Some transceivers may comply with SFF-8472 even though they do not
implement the Digital Diagnostic Monitoring (DDM) interface described in
the spec. The existence of such area is specified by the 6th bit of byte
92, set to 1 if implemented.

Currently, without checking this bit, bnx2x fails trying to read sfp
module's EEPROM with the follow message:

ethtool -m enP5p1s0f1
Cannot get Module EEPROM data: Input/output error

Because it fails to read the additional 256 bytes in which it is assumed
to exist the DDM data.

This issue was noticed using a Mellanox Passive DAC PN 01FT738. The EEPROM
data was confirmed by Mellanox as correct and similar to other Passive
DACs from other manufacturers.

Signed-off-by: Mauro S. M. Rodrigues <maurosr@linux.vnet.ibm.com>
Acked-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h