Message ID | 20180305215113.25085-1-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
Series | adb: add trace-events for monitoring keyboard/mouse during bus enumeration | expand |
On Mon, Mar 05, 2018 at 09:51:13PM +0000, Mark Cave-Ayland wrote: > This is useful to help diagnose problems related to address clashes during > MacOS 9 boot. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Applied, thanks. > --- > hw/input/adb-kbd.c | 4 ++++ > hw/input/adb-mouse.c | 5 +++++ > hw/input/trace-events | 5 +++++ > 3 files changed, 14 insertions(+) > > diff --git a/hw/input/adb-kbd.c b/hw/input/adb-kbd.c > index 266aed1b7b..50b62712c8 100644 > --- a/hw/input/adb-kbd.c > +++ b/hw/input/adb-kbd.c > @@ -258,6 +258,7 @@ static int adb_kbd_request(ADBDevice *d, uint8_t *obuf, > case ADB_CMD_CHANGE_ID_AND_ACT: > case ADB_CMD_CHANGE_ID_AND_ENABLE: > d->devaddr = buf[1] & 0xf; > + trace_adb_kbd_request_change_addr(d->devaddr); > break; > default: > d->devaddr = buf[1] & 0xf; > @@ -269,6 +270,9 @@ static int adb_kbd_request(ADBDevice *d, uint8_t *obuf, > if (buf[2] == 1 || buf[2] == 2 || buf[2] == 3) { > d->handler = buf[2]; > } > + > + trace_adb_kbd_request_change_addr_and_handler(d->devaddr, > + d->handler); > break; > } > } > diff --git a/hw/input/adb-mouse.c b/hw/input/adb-mouse.c > index 47e88faf25..3ba6027d33 100644 > --- a/hw/input/adb-mouse.c > +++ b/hw/input/adb-mouse.c > @@ -118,6 +118,7 @@ static int adb_mouse_request(ADBDevice *d, uint8_t *obuf, > s->dx = 0; > s->dy = 0; > s->dz = 0; > + trace_adb_mouse_flush(); > return 0; > } > > @@ -138,6 +139,7 @@ static int adb_mouse_request(ADBDevice *d, uint8_t *obuf, > case ADB_CMD_CHANGE_ID_AND_ACT: > case ADB_CMD_CHANGE_ID_AND_ENABLE: > d->devaddr = buf[1] & 0xf; > + trace_adb_mouse_request_change_addr(d->devaddr); > break; > default: > d->devaddr = buf[1] & 0xf; > @@ -155,6 +157,9 @@ static int adb_mouse_request(ADBDevice *d, uint8_t *obuf, > if (buf[2] == 1 || buf[2] == 2) { > d->handler = buf[2]; > } > + > + trace_adb_mouse_request_change_addr_and_handler(d->devaddr, > + d->handler); > break; > } > } > diff --git a/hw/input/trace-events b/hw/input/trace-events > index 5affabc81d..db72484a25 100644 > --- a/hw/input/trace-events > +++ b/hw/input/trace-events > @@ -4,10 +4,15 @@ > adb_kbd_no_key(void) "Ignoring NO_KEY" > adb_kbd_writereg(int reg, uint8_t val) "reg %d val 0x%2.2x" > adb_kbd_readreg(int reg, uint8_t val0, uint8_t val1) "reg %d obuf[0] 0x%2.2x obuf[1] 0x%2.2x" > +adb_kbd_request_change_addr(int devaddr) "change addr to 0x%x" > +adb_kbd_request_change_addr_and_handler(int devaddr, int handler) "change addr and handler to 0x%x, 0x%x" > > # hw/input/adb-mouse.c > +adb_mouse_flush(void) "flush" > adb_mouse_writereg(int reg, uint8_t val) "reg %d val 0x%2.2x" > adb_mouse_readreg(int reg, uint8_t val0, uint8_t val1) "reg %d obuf[0] 0x%2.2x obuf[1] 0x%2.2x" > +adb_mouse_request_change_addr(int devaddr) "change addr to 0x%x" > +adb_mouse_request_change_addr_and_handler(int devaddr, int handler) "change addr and handler to 0x%x, 0x%x" > > # hw/input/ps2.c > ps2_put_keycode(void *opaque, int keycode) "%p keycode 0x%02x"
diff --git a/hw/input/adb-kbd.c b/hw/input/adb-kbd.c index 266aed1b7b..50b62712c8 100644 --- a/hw/input/adb-kbd.c +++ b/hw/input/adb-kbd.c @@ -258,6 +258,7 @@ static int adb_kbd_request(ADBDevice *d, uint8_t *obuf, case ADB_CMD_CHANGE_ID_AND_ACT: case ADB_CMD_CHANGE_ID_AND_ENABLE: d->devaddr = buf[1] & 0xf; + trace_adb_kbd_request_change_addr(d->devaddr); break; default: d->devaddr = buf[1] & 0xf; @@ -269,6 +270,9 @@ static int adb_kbd_request(ADBDevice *d, uint8_t *obuf, if (buf[2] == 1 || buf[2] == 2 || buf[2] == 3) { d->handler = buf[2]; } + + trace_adb_kbd_request_change_addr_and_handler(d->devaddr, + d->handler); break; } } diff --git a/hw/input/adb-mouse.c b/hw/input/adb-mouse.c index 47e88faf25..3ba6027d33 100644 --- a/hw/input/adb-mouse.c +++ b/hw/input/adb-mouse.c @@ -118,6 +118,7 @@ static int adb_mouse_request(ADBDevice *d, uint8_t *obuf, s->dx = 0; s->dy = 0; s->dz = 0; + trace_adb_mouse_flush(); return 0; } @@ -138,6 +139,7 @@ static int adb_mouse_request(ADBDevice *d, uint8_t *obuf, case ADB_CMD_CHANGE_ID_AND_ACT: case ADB_CMD_CHANGE_ID_AND_ENABLE: d->devaddr = buf[1] & 0xf; + trace_adb_mouse_request_change_addr(d->devaddr); break; default: d->devaddr = buf[1] & 0xf; @@ -155,6 +157,9 @@ static int adb_mouse_request(ADBDevice *d, uint8_t *obuf, if (buf[2] == 1 || buf[2] == 2) { d->handler = buf[2]; } + + trace_adb_mouse_request_change_addr_and_handler(d->devaddr, + d->handler); break; } } diff --git a/hw/input/trace-events b/hw/input/trace-events index 5affabc81d..db72484a25 100644 --- a/hw/input/trace-events +++ b/hw/input/trace-events @@ -4,10 +4,15 @@ adb_kbd_no_key(void) "Ignoring NO_KEY" adb_kbd_writereg(int reg, uint8_t val) "reg %d val 0x%2.2x" adb_kbd_readreg(int reg, uint8_t val0, uint8_t val1) "reg %d obuf[0] 0x%2.2x obuf[1] 0x%2.2x" +adb_kbd_request_change_addr(int devaddr) "change addr to 0x%x" +adb_kbd_request_change_addr_and_handler(int devaddr, int handler) "change addr and handler to 0x%x, 0x%x" # hw/input/adb-mouse.c +adb_mouse_flush(void) "flush" adb_mouse_writereg(int reg, uint8_t val) "reg %d val 0x%2.2x" adb_mouse_readreg(int reg, uint8_t val0, uint8_t val1) "reg %d obuf[0] 0x%2.2x obuf[1] 0x%2.2x" +adb_mouse_request_change_addr(int devaddr) "change addr to 0x%x" +adb_mouse_request_change_addr_and_handler(int devaddr, int handler) "change addr and handler to 0x%x, 0x%x" # hw/input/ps2.c ps2_put_keycode(void *opaque, int keycode) "%p keycode 0x%02x"
This is useful to help diagnose problems related to address clashes during MacOS 9 boot. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/input/adb-kbd.c | 4 ++++ hw/input/adb-mouse.c | 5 +++++ hw/input/trace-events | 5 +++++ 3 files changed, 14 insertions(+)