• Robert Hancock's avatar
    i2c: xiic: Add max_read_len quirk · 49b80958
    Robert Hancock authored
    This driver does not support reading more than 255 bytes at once because
    the register for storing the number of bytes to read is only 8 bits. Add
    a max_read_len quirk to enforce this.
    
    This was found when using this driver with the SFP driver, which was
    previously reading all 256 bytes in the SFP EEPROM in one transaction.
    This caused a bunch of hard-to-debug errors in the xiic driver since the
    driver/logic was treating the number of bytes to read as zero.
    Rejecting transactions that aren't supported at least allows the problem
    to be diagnosed more easily.
    Signed-off-by: default avatarRobert Hancock <hancock@sedsystems.ca>
    Reviewed-by: default avatarMichal Simek <michal.simek@xilinx.com>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    Cc: stable@kernel.org
    49b80958
i2c-xiic.c 24 KB