qemu-e2k/hw/i2c
Peter Maydell 9706e0162d hw/i2c/bitbang_i2c: Handle NACKs from devices
If the guest attempts to talk to a nonexistent device over i2c,
the i2c_start_transfer() function will return non-zero, indicating
that the bus is signalling a NACK. Similarly, if the i2c_send()
function returns nonzero then the target device returned a NACK.
Handle this possibility in the bitbang_i2c code, by returning
the state machine to the STOPPED state and returning the NACK
bit to the guest.

This bit of missing functionality was spotted by Coverity
(it noticed that we weren't checking the return value from
i2c_start_transfer()).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1477332749-27098-1-git-send-email-peter.maydell@linaro.org
2016-11-07 10:01:15 +00:00
..
Makefile.objs hw/i2c-ddc.c: Implement DDC I2C slave 2016-06-14 15:59:15 +01:00
aspeed_i2c.c i2c: add aspeed i2c controller 2016-06-06 16:59:29 +01:00
bitbang_i2c.c hw/i2c/bitbang_i2c: Handle NACKs from devices 2016-11-07 10:01:15 +00:00
bitbang_i2c.h i2c: Rename i2c_bus to I2CBus 2014-02-14 16:22:31 +01:00
core.c i2c: Add asserts for second smbus i2c_start_transfer() 2016-10-24 16:48:02 +01:00
exynos4210_i2c.c hw/i2c: QOM'ify exynos4210_i2c.c 2016-06-14 15:59:13 +01:00
i2c-ddc.c hw/i2c-ddc.c: Implement DDC I2C slave 2016-06-14 15:59:15 +01:00
imx_i2c.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
omap_i2c.c hw/i2c: QOM'ify omap_i2c.c 2016-06-14 15:59:13 +01:00
pm_smbus.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
smbus.c i2c: Add asserts for second smbus i2c_start_transfer() 2016-10-24 16:48:02 +01:00
smbus_eeprom.c hw: Clean up includes 2016-01-29 15:07:25 +00:00
smbus_ich9.c ICH9 SMB: make TYPE_ICH9_SMB_DEVICE macro public 2016-06-29 14:03:46 +02:00
versatile_i2c.c hw/i2c: QOM'ify versatile_i2c.c 2016-06-14 15:59:13 +01:00