• Ian Abbott's avatar
    USB: serial: ftdi_sio: detect BM chip with iSerialNumber bug · 7e1e6ced
    Ian Abbott authored
    If a BM type chip has iSerialNumber set to 0 in its EEPROM, an incorrect
    value is read from the bcdDevice field of the USB descriptor, making it
    look like an AM type chip.  Attempt to correct this in
    ftdi_determine_type() by attempting to read the latency timer for an AM
    type chip if it has iSerialNumber set to 0.  If that succeeds, assume it
    is a BM type chip.
    
    Currently, read_latency_timer() bails out without reading the latency
    timer for an AM type chip, so factor out the guts of
    read_latency_timer() into a new function _read_latency_timer() that
    attempts to read the latency timer regardless of chip type, and returns
    either the latency timer value or a negative error number.
    Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    7e1e6ced
ftdi_sio.c 92.2 KB