• H
    i2c: i801: Fix handling SMBHSTCNT_PEC_EN · a6b8bb6a
    Heiner Kallweit 提交于
    Bit SMBHSTCNT_PEC_EN is used only if software calculates the CRC and
    uses register SMBPEC. This is not supported by the driver, it supports
    hw-calculation of CRC only (using bit SMBAUXSTS_CRCE). The chip spec
    states the following, therefore never set bit SMBHSTCNT_PEC_EN.
    
    Chapter SMBus CRC Generation and Checking
    If the AAC bit is set in the Auxiliary Control register, the PCH
    automatically calculates and drives CRC at the end of the transmitted
    packet for write cycles, and will check the CRC for read cycles. It will
    not transmit the contents of the PEC register for CRC. The PEC bit must
    not be set in the Host Control register. If this bit is set, unspecified
    behavior will result.
    
    This patch is based solely on the specification and compile-tested only,
    because I have no PEC-capable devices.
    Signed-off-by: NHeiner Kallweit <hkallweit1@gmail.com>
    Tested-by: NJean Delvare <jdelvare@suse.de>
    Signed-off-by: NWolfram Sang <wsa@kernel.org>
    a6b8bb6a
i2c-i801.c 58.4 KB