Message ID | 20201026083401.13231-4-mark.cave-ayland@ilande.co.uk |
---|---|
State | Accepted |
Commit | ebb1132023db782570e4157112b8e2c0ea00f4fc |
Headers | show |
Series | dev-serial: minor fixes and improvements | expand |
Mark Cave-Ayland, le lun. 26 oct. 2020 08:33:55 +0000, a ecrit: > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> > --- > hw/usb/dev-serial.c | 28 ++++++++++++++-------------- > hw/usb/trace-events | 8 ++++++++ > 2 files changed, 22 insertions(+), 14 deletions(-) > > diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c > index 77ce89d38b..abc316c7bf 100644 > --- a/hw/usb/dev-serial.c > +++ b/hw/usb/dev-serial.c > @@ -20,15 +20,8 @@ > #include "chardev/char-serial.h" > #include "chardev/char-fe.h" > #include "qom/object.h" > +#include "trace.h" > > -//#define DEBUG_Serial > - > -#ifdef DEBUG_Serial > -#define DPRINTF(fmt, ...) \ > -do { printf("usb-serial: " fmt , ## __VA_ARGS__); } while (0) > -#else > -#define DPRINTF(fmt, ...) do {} while(0) > -#endif > > #define RECV_BUF (512 - (2 * 8)) > > @@ -205,8 +198,9 @@ static void usb_serial_reset(USBSerialState *s) > static void usb_serial_handle_reset(USBDevice *dev) > { > USBSerialState *s = USB_SERIAL(dev); > + USBBus *bus = usb_bus_from_device(dev); > > - DPRINTF("Reset\n"); > + trace_usb_serial_reset(bus->busnr, dev->addr); > > usb_serial_reset(s); > /* TODO: Reset char device, send BREAK? */ > @@ -244,9 +238,11 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > int length, uint8_t *data) > { > USBSerialState *s = USB_SERIAL(dev); > + USBBus *bus = usb_bus_from_device(dev); > int ret; > > - DPRINTF("got control %x, value %x\n", request, value); > + trace_usb_serial_handle_control(bus->busnr, dev->addr, request, value); > + > ret = usb_desc_handle_control(dev, p, request, value, index, length, data); > if (ret >= 0) { > return; > @@ -326,7 +322,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > s->params.parity = 'E'; > break; > default: > - DPRINTF("unsupported parity %d\n", value & FTDI_PARITY); > + trace_usb_serial_unsupported_parity(bus->busnr, dev->addr, > + value & FTDI_PARITY); > goto fail; > } > > @@ -338,7 +335,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > s->params.stop_bits = 2; > break; > default: > - DPRINTF("unsupported stop bits %d\n", value & FTDI_STOP); > + trace_usb_serial_unsupported_stopbits(bus->busnr, dev->addr, > + value & FTDI_STOP); > goto fail; > } > > @@ -367,7 +365,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > break; > default: > fail: > - DPRINTF("got unsupported/bogus control %x, value %x\n", request, value); > + trace_usb_serial_unsupported_control(bus->busnr, dev->addr, request, > + value); > p->status = USB_RET_STALL; > break; > } > @@ -431,6 +430,7 @@ static void usb_serial_token_in(USBSerialState *s, USBPacket *p) > static void usb_serial_handle_data(USBDevice *dev, USBPacket *p) > { > USBSerialState *s = USB_SERIAL(dev); > + USBBus *bus = usb_bus_from_device(dev); > uint8_t devep = p->ep->nr; > struct iovec *iov; > int i; > @@ -459,7 +459,7 @@ static void usb_serial_handle_data(USBDevice *dev, USBPacket *p) > break; > > default: > - DPRINTF("Bad token\n"); > + trace_usb_serial_bad_token(bus->busnr, dev->addr); > fail: > p->status = USB_RET_STALL; > break; > diff --git a/hw/usb/trace-events b/hw/usb/trace-events > index 72e4298780..e5871cbbbc 100644 > --- a/hw/usb/trace-events > +++ b/hw/usb/trace-events > @@ -320,3 +320,11 @@ usb_host_parse_interface(int bus, int addr, int num, int alt, int active) "dev % > usb_host_parse_endpoint(int bus, int addr, int ep, const char *dir, const char *type, int active) "dev %d:%d, ep %d, %s, %s, active %d" > usb_host_parse_error(int bus, int addr, const char *errmsg) "dev %d:%d, msg %s" > usb_host_remote_wakeup_removed(int bus, int addr) "dev %d:%d" > + > +# dev-serial.c > +usb_serial_reset(int bus, int addr) "dev %d:%d reset" > +usb_serial_handle_control(int bus, int addr, int request, int value) "dev %d:%d got control 0x%x, value 0x%x" > +usb_serial_unsupported_parity(int bus, int addr, int value) "dev %d:%d unsupported parity %d" > +usb_serial_unsupported_stopbits(int bus, int addr, int value) "dev %d:%d unsupported stop bits %d" > +usb_serial_unsupported_control(int bus, int addr, int request, int value) "dev %d:%d got unsupported/bogus control 0x%x, value 0x%x" > +usb_serial_bad_token(int bus, int addr) "dev %d:%d bad token" > -- > 2.20.1 > -- Samuel The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first. (Arno Schaefer's .sig)
On 10/26/20 9:33 AM, Mark Cave-Ayland wrote: > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > --- > hw/usb/dev-serial.c | 28 ++++++++++++++-------------- > hw/usb/trace-events | 8 ++++++++ > 2 files changed, 22 insertions(+), 14 deletions(-) > > diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c > index 77ce89d38b..abc316c7bf 100644 > --- a/hw/usb/dev-serial.c > +++ b/hw/usb/dev-serial.c > @@ -20,15 +20,8 @@ > #include "chardev/char-serial.h" > #include "chardev/char-fe.h" > #include "qom/object.h" > +#include "trace.h" > > -//#define DEBUG_Serial > - > -#ifdef DEBUG_Serial > -#define DPRINTF(fmt, ...) \ > -do { printf("usb-serial: " fmt , ## __VA_ARGS__); } while (0) > -#else > -#define DPRINTF(fmt, ...) do {} while(0) > -#endif > > #define RECV_BUF (512 - (2 * 8)) > > @@ -205,8 +198,9 @@ static void usb_serial_reset(USBSerialState *s) > static void usb_serial_handle_reset(USBDevice *dev) > { > USBSerialState *s = USB_SERIAL(dev); > + USBBus *bus = usb_bus_from_device(dev); > > - DPRINTF("Reset\n"); > + trace_usb_serial_reset(bus->busnr, dev->addr); > > usb_serial_reset(s); > /* TODO: Reset char device, send BREAK? */ > @@ -244,9 +238,11 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > int length, uint8_t *data) > { > USBSerialState *s = USB_SERIAL(dev); > + USBBus *bus = usb_bus_from_device(dev); > int ret; > > - DPRINTF("got control %x, value %x\n", request, value); > + trace_usb_serial_handle_control(bus->busnr, dev->addr, request, value); > + > ret = usb_desc_handle_control(dev, p, request, value, index, length, data); > if (ret >= 0) { > return; > @@ -326,7 +322,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > s->params.parity = 'E'; > break; > default: > - DPRINTF("unsupported parity %d\n", value & FTDI_PARITY); > + trace_usb_serial_unsupported_parity(bus->busnr, dev->addr, > + value & FTDI_PARITY); > goto fail; > } > > @@ -338,7 +335,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > s->params.stop_bits = 2; > break; > default: > - DPRINTF("unsupported stop bits %d\n", value & FTDI_STOP); > + trace_usb_serial_unsupported_stopbits(bus->busnr, dev->addr, > + value & FTDI_STOP); > goto fail; > } > > @@ -367,7 +365,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, > break; > default: > fail: > - DPRINTF("got unsupported/bogus control %x, value %x\n", request, value); > + trace_usb_serial_unsupported_control(bus->busnr, dev->addr, request, > + value); > p->status = USB_RET_STALL; > break; > } > @@ -431,6 +430,7 @@ static void usb_serial_token_in(USBSerialState *s, USBPacket *p) > static void usb_serial_handle_data(USBDevice *dev, USBPacket *p) > { > USBSerialState *s = USB_SERIAL(dev); > + USBBus *bus = usb_bus_from_device(dev); > uint8_t devep = p->ep->nr; > struct iovec *iov; > int i; > @@ -459,7 +459,7 @@ static void usb_serial_handle_data(USBDevice *dev, USBPacket *p) > break; > > default: > - DPRINTF("Bad token\n"); > + trace_usb_serial_bad_token(bus->busnr, dev->addr); > fail: > p->status = USB_RET_STALL; > break; > diff --git a/hw/usb/trace-events b/hw/usb/trace-events > index 72e4298780..e5871cbbbc 100644 > --- a/hw/usb/trace-events > +++ b/hw/usb/trace-events > @@ -320,3 +320,11 @@ usb_host_parse_interface(int bus, int addr, int num, int alt, int active) "dev % > usb_host_parse_endpoint(int bus, int addr, int ep, const char *dir, const char *type, int active) "dev %d:%d, ep %d, %s, %s, active %d" > usb_host_parse_error(int bus, int addr, const char *errmsg) "dev %d:%d, msg %s" > usb_host_remote_wakeup_removed(int bus, int addr) "dev %d:%d" > + > +# dev-serial.c > +usb_serial_reset(int bus, int addr) "dev %d:%d reset" > +usb_serial_handle_control(int bus, int addr, int request, int value) "dev %d:%d got control 0x%x, value 0x%x" > +usb_serial_unsupported_parity(int bus, int addr, int value) "dev %d:%d unsupported parity %d" > +usb_serial_unsupported_stopbits(int bus, int addr, int value) "dev %d:%d unsupported stop bits %d" > +usb_serial_unsupported_control(int bus, int addr, int request, int value) "dev %d:%d got unsupported/bogus control 0x%x, value 0x%x" > +usb_serial_bad_token(int bus, int addr) "dev %d:%d bad token" In all formats, 'addr' is unsigned -> "%u". Using %u: Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index 77ce89d38b..abc316c7bf 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -20,15 +20,8 @@ #include "chardev/char-serial.h" #include "chardev/char-fe.h" #include "qom/object.h" +#include "trace.h" -//#define DEBUG_Serial - -#ifdef DEBUG_Serial -#define DPRINTF(fmt, ...) \ -do { printf("usb-serial: " fmt , ## __VA_ARGS__); } while (0) -#else -#define DPRINTF(fmt, ...) do {} while(0) -#endif #define RECV_BUF (512 - (2 * 8)) @@ -205,8 +198,9 @@ static void usb_serial_reset(USBSerialState *s) static void usb_serial_handle_reset(USBDevice *dev) { USBSerialState *s = USB_SERIAL(dev); + USBBus *bus = usb_bus_from_device(dev); - DPRINTF("Reset\n"); + trace_usb_serial_reset(bus->busnr, dev->addr); usb_serial_reset(s); /* TODO: Reset char device, send BREAK? */ @@ -244,9 +238,11 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, int length, uint8_t *data) { USBSerialState *s = USB_SERIAL(dev); + USBBus *bus = usb_bus_from_device(dev); int ret; - DPRINTF("got control %x, value %x\n", request, value); + trace_usb_serial_handle_control(bus->busnr, dev->addr, request, value); + ret = usb_desc_handle_control(dev, p, request, value, index, length, data); if (ret >= 0) { return; @@ -326,7 +322,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, s->params.parity = 'E'; break; default: - DPRINTF("unsupported parity %d\n", value & FTDI_PARITY); + trace_usb_serial_unsupported_parity(bus->busnr, dev->addr, + value & FTDI_PARITY); goto fail; } @@ -338,7 +335,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, s->params.stop_bits = 2; break; default: - DPRINTF("unsupported stop bits %d\n", value & FTDI_STOP); + trace_usb_serial_unsupported_stopbits(bus->busnr, dev->addr, + value & FTDI_STOP); goto fail; } @@ -367,7 +365,8 @@ static void usb_serial_handle_control(USBDevice *dev, USBPacket *p, break; default: fail: - DPRINTF("got unsupported/bogus control %x, value %x\n", request, value); + trace_usb_serial_unsupported_control(bus->busnr, dev->addr, request, + value); p->status = USB_RET_STALL; break; } @@ -431,6 +430,7 @@ static void usb_serial_token_in(USBSerialState *s, USBPacket *p) static void usb_serial_handle_data(USBDevice *dev, USBPacket *p) { USBSerialState *s = USB_SERIAL(dev); + USBBus *bus = usb_bus_from_device(dev); uint8_t devep = p->ep->nr; struct iovec *iov; int i; @@ -459,7 +459,7 @@ static void usb_serial_handle_data(USBDevice *dev, USBPacket *p) break; default: - DPRINTF("Bad token\n"); + trace_usb_serial_bad_token(bus->busnr, dev->addr); fail: p->status = USB_RET_STALL; break; diff --git a/hw/usb/trace-events b/hw/usb/trace-events index 72e4298780..e5871cbbbc 100644 --- a/hw/usb/trace-events +++ b/hw/usb/trace-events @@ -320,3 +320,11 @@ usb_host_parse_interface(int bus, int addr, int num, int alt, int active) "dev % usb_host_parse_endpoint(int bus, int addr, int ep, const char *dir, const char *type, int active) "dev %d:%d, ep %d, %s, %s, active %d" usb_host_parse_error(int bus, int addr, const char *errmsg) "dev %d:%d, msg %s" usb_host_remote_wakeup_removed(int bus, int addr) "dev %d:%d" + +# dev-serial.c +usb_serial_reset(int bus, int addr) "dev %d:%d reset" +usb_serial_handle_control(int bus, int addr, int request, int value) "dev %d:%d got control 0x%x, value 0x%x" +usb_serial_unsupported_parity(int bus, int addr, int value) "dev %d:%d unsupported parity %d" +usb_serial_unsupported_stopbits(int bus, int addr, int value) "dev %d:%d unsupported stop bits %d" +usb_serial_unsupported_control(int bus, int addr, int request, int value) "dev %d:%d got unsupported/bogus control 0x%x, value 0x%x" +usb_serial_bad_token(int bus, int addr) "dev %d:%d bad token"
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/usb/dev-serial.c | 28 ++++++++++++++-------------- hw/usb/trace-events | 8 ++++++++ 2 files changed, 22 insertions(+), 14 deletions(-)