• Alexander Zangerl's avatar
    iio: pressure: ms5611: ms5611_prom_is_valid false negative bug · fd39d966
    Alexander Zangerl authored
    The ms5611 driver falsely rejects lots of MS5607-02BA03-50 chips
    with "PROM integrity check failed" because it doesn't accept a prom crc
    value of zero as legitimate.
    
    According to the datasheet for this chip (and the manufacturer's
    application note about the PROM CRC), none of the possible values for the
    CRC are excluded - but the current code in ms5611_prom_is_valid() ends with
    
    return crc_orig != 0x0000 && crc == crc_orig
    
    Discussed with the driver author (Tomasz Duszynski) and he indicated that
    at that time (2015) he was dealing with some faulty chip samples which
    returned blank data under some circumstances and/or followed example code
    which indicated CRC zero being bad.
    
    As far as I can tell this exception should not be applied anymore; We've
    got a few hundred custom boards here with this chip where large numbers
    of the prom have a legitimate CRC value 0, and do work fine, but which the
    current driver code wrongly rejects.
    Signed-off-by: default avatarAlexander Zangerl <az@breathe-safe.com>
    Fixes: c0644160 ("iio: pressure: add support for MS5611 pressure and temperature sensor")
    Link: https://lore.kernel.org/r/2535-1695168070.831792@Ze3y.dhYT.s3fx
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    fd39d966
ms5611_core.c 9.89 KB