qemu/hw/i2c
Peter Delevoryas b582b7a191 hw/i2c/aspeed: Fix DMA len write-enable bit handling
I noticed i2c rx transfers were getting shortened to "1" on Zephyr. It
seems to be because the Zephyr i2c driver sets the RX DMA len with the
RX field write-enable bit set (bit 31) to avoid a read-modify-write. [1]

/* 0x1C : I2CM Master DMA Transfer Length Register   */

I think we should be checking the write-enable bits on the incoming
value, not checking the register array. I'm not sure we're even writing
the write-enable bits to the register array, actually.

[1] db3dbcc9c5/drivers/i2c/i2c_aspeed.c (L145-L148)

Fixes: ba2cccd64e ("aspeed: i2c: Add new mode support")
Signed-off-by: Peter Delevoryas <pdel@fb.com>
Message-Id: <20220630045133.32251-3-me@pjd.dev>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-06-30 09:21:13 +02:00
..
aspeed_i2c.c hw/i2c/aspeed: Fix DMA len write-enable bit handling 2022-06-30 09:21:13 +02:00
bitbang_i2c.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
core.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
exynos4210_i2c.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
i2c_mux_pca954x.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
imx_i2c.c hw/i2c: Rename i2c_set_slave_address() -> i2c_slave_set_address() 2021-07-08 14:15:01 -05:00
Kconfig Kconfig: Add I2C_DEVICES device group 2022-02-21 13:30:20 +00:00
meson.build hw/i2c: add support for PMBus 2021-07-08 14:15:45 -05:00
microbit_i2c.c microbit_i2c: Fix coredump when dump-vmstate 2020-10-20 16:12:00 +01:00
mpc_i2c.c hw: Do not include qemu/log.h if it is not necessary 2021-05-02 17:24:50 +02:00
npcm7xx_smbus.c hw/i2c/npcm7xx_smbus: Simplify npcm7xx_smbus_init() 2021-03-05 15:17:34 +00:00
omap_i2c.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pm_smbus.c hw/i2c: Introduce i2c_start_recv() and i2c_start_send() 2021-07-08 14:15:01 -05:00
pmbus_device.c hw/i2c: pmbus: Page #255 is valid page for read requests. 2022-06-30 09:21:13 +02:00
ppc4xx_i2c.c hw/i2c/ppc4xx_i2c: Replace i2c_send_recv() by i2c_recv() & i2c_send() 2021-07-08 14:15:01 -05:00
smbus_eeprom.c i2c/smbus_eeprom: Add feature bit to SPD data 2021-07-29 10:59:49 +10:00
smbus_ich9.c acpi: ich9-smb: add support for AcpiDevAmlIf interface 2022-06-09 19:32:48 -04:00
smbus_master.c hw/i2c: Introduce i2c_start_recv() and i2c_start_send() 2021-07-08 14:15:01 -05:00
smbus_slave.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
trace-events hw/i2c/aspeed: rework raise interrupt trace event 2022-06-22 09:49:34 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
versatile_i2c.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00