i2c-c2k: Don't send ACK for the last received byte

According to the I2C spec the last byte of a read transfer must not be
acknowledged. The i2c-c2k driver ACKs the last byte and then reads an
extra byte which it NAKs. This extra byte causes issues with certain
slaves like the Infineon TPM where the TPM considers the byte as
consumed, while the driver doesn't. The i2c-c2k kernel driver
implements the correct behavior and does not send an ACK for the last
byte.

Change-Id: I8f20402ebd65560685b869a81d8507011f344e62
1 file changed