qemu-e2k/hw/input
Peter Maydell bad187dfcb hw/input/tsc210x: Don't abort on bad SPI word widths
The tsc210x doesn't support anything other than 16-bit reads on the
SPI bus, but the guest can program the SPI controller to attempt
them anyway. If this happens, don't abort QEMU, just log this as
a guest error.

This fixes our machine_arm_n8x0.py:N8x0Machine.test_n800
acceptance test, which hits this assertion.

The reason we hit the assertion is because the guest kernel thinks
there is a TSC2005 on this SPI bus address, not a TSC210x.  (The n810
*does* have a TSC2005 at this address.) The TSC2005 supports the
24-bit accesses which the guest driver makes, and the TSC210x does
not (that is, our TSC210x emulation is not missing support for a word
width the hardware can handle).  It's not clear whether the problem
here is that the guest kernel incorrectly thinks the n800 has the
same device at this SPI bus address as the n810, or that QEMU's n810
board model doesn't get the SPI devices right.  At this late date
there no longer appears to be any reliable information on the web
about the hardware behaviour, but I am inclined to think this is a
guest kernel bug.  In any case, we prefer not to abort QEMU for
guest-triggerable conditions, so logging the error is the right thing
to do.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/736
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20220221140750.514557-1-peter.maydell@linaro.org
2022-03-02 19:27:36 +00:00
..
Kconfig ads7846: moves from the hw/display folder to the hw/input folder. 2020-12-13 17:54:55 +01:00
adb-internal.h Supply missing header guards 2019-06-12 13:20:21 +02:00
adb-kbd.c Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
adb-mouse.c Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
adb.c adb: Correct class size on TYPE_ADB_DEVICE 2020-09-08 10:08:42 +10:00
ads7846.c ads7846: moves from the hw/display folder to the hw/input folder. 2020-12-13 17:54:55 +01:00
hid.c hid: Implement support for side and extra buttons 2022-02-22 17:15:36 +01:00
lasips2.c hw/input/lasips2: Fix typos in function names 2021-10-31 21:05:40 +01:00
lm832x.c hw/input/lm832x: Define TYPE_LM8323 in public header 2021-07-08 14:15:01 -05:00
meson.build Drop the deprecated lm32 target 2021-05-12 18:20:25 +02:00
pckbd.c pckbd: clear outport_present in outer pre_load() 2021-05-26 11:33:19 +02:00
pl050.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ps2.c ps2: Initial horizontal scroll support 2022-01-13 15:33:18 +01:00
pxa2xx_keypad.c hw: Remove superfluous breaks 2020-09-01 08:38:00 +02:00
stellaris_input.c migration: Define VMSTATE_INSTANCE_ID_ANY 2020-01-20 09:10:23 +01:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
tsc210x.c hw/input/tsc210x: Don't abort on bad SPI word widths 2022-03-02 19:27:36 +00:00
tsc2005.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
vhost-user-input.c vhost: Distinguish errors in vhost_dev_get_config() 2021-06-30 13:18:42 +02:00
virtio-input-hid.c hw/input/virtio-input-hid.c: Don't undef CONFIG_CURSES 2020-07-24 16:15:28 +02:00
virtio-input-host.c Fix build with 64 bits time_t 2021-05-14 10:26:18 -04:00
virtio-input.c qdev: Unrealize must not fail 2020-05-15 07:08:14 +02:00