linux/drivers/i2c
Heiner Kallweit a6b8bb6a81 i2c: i801: Fix handling SMBHSTCNT_PEC_EN
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: Heiner Kallweit <hkallweit1@gmail.com>
Tested-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
2021-07-28 11:35:39 +02:00
..
algos i2c: algo: bit: use new macro to specifiy capabilities 2021-01-22 09:59:21 +01:00
busses i2c: i801: Fix handling SMBHSTCNT_PEC_EN 2021-07-28 11:35:39 +02:00
muxes i2c: muxes: i2c-arb-gpio-challenge: Demote non-conformant kernel-doc headers 2021-05-27 21:29:03 +02:00
i2c-boardinfo.c i2c: Remove support for dangling device properties 2021-04-10 21:43:02 +02:00
i2c-core-acpi.c ACPI: scan: Extend acpi_walk_dep_device_list() 2021-06-07 16:45:05 +02:00
i2c-core-base.c i2c: core: Disable client irq on reboot/shutdown 2021-06-24 22:03:55 +02:00
i2c-core-of.c
i2c-core-slave.c
i2c-core-smbus.c i2c: core-smbus: Expose PEC calculate function for generic use 2021-06-25 17:09:34 +02:00
i2c-core.h
i2c-dev.c i2c: dev: Add __user annotation 2021-06-24 21:47:43 +02:00
i2c-mux.c
i2c-slave-eeprom.c
i2c-slave-testunit.c i2c: testunit: add support for block process calls 2021-02-12 11:11:04 +01:00
i2c-smbus.c
i2c-stub.c
Kconfig
Makefile