• R
    net: sfp: read eeprom in maximum 16 byte increments · 9740f4ff
    Russell King 提交于
    [ Upstream commit 28e74a7cfd6403f0d1c0f8b10b45d6fae37b227e ]
    
    Some SFP modules do not like reads longer than 16 bytes, so read the
    EEPROM in chunks of 16 bytes at a time.  This behaviour is not specified
    in the SFP MSAs, which specifies:
    
     "The serial interface uses the 2-wire serial CMOS E2PROM protocol
      defined for the ATMEL AT24C01A/02/04 family of components."
    
    and
    
     "As long as the SFP+ receives an acknowledge, it shall serially clock
      out sequential data words. The sequence is terminated when the host
      responds with a NACK and a STOP instead of an acknowledge."
    
    We must avoid breaking a read across a 16-bit quantity in the diagnostic
    page, thankfully all 16-bit quantities in that page are naturally
    aligned.
    Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    9740f4ff
sfp.c 43.9 KB