52cc6a492b
The I2C block read function of pm_smbus was completely broken. It required doing some direct I2C handling because it didn't have a defined size, the OS code just reads bytes until it marks the transaction finished. This also required adjusting how the AMIBIOS workaround code worked, the I2C block mode was setting STS_HOST_BUSY during a transaction, so that bit could no longer be used to inform the host status read code to start the transaction. Create a explicit bool for that operation. Also, don't read the next byte from the device in byte-by-byte mode unless the OS is actually clearing the byte done bit. Just assuming that's what the OS is doing is a bad idea. Signed-off-by: Corey Minyard <cminyard@mvista.com> |
||
---|---|---|
.. | ||
aspeed_i2c.c | ||
bitbang_i2c.c | ||
bitbang_i2c.h | ||
core.c | ||
exynos4210_i2c.c | ||
i2c-ddc.c | ||
imx_i2c.c | ||
Makefile.objs | ||
microbit_i2c.c | ||
omap_i2c.c | ||
pm_smbus.c | ||
ppc4xx_i2c.c | ||
smbus_eeprom.c | ||
smbus_ich9.c | ||
smbus_master.c | ||
smbus_slave.c | ||
trace-events | ||
versatile_i2c.c |