Hi, > -----Original Message----- > From: Gerd Hoffmann <kra...@redhat.com> > Sent: Tuesday, October 20, 2020 1:19 PM > To: qemu-devel@nongnu.org > Cc: Sergio Lopez <s...@redhat.com>; Sai Pavan Boddu <saip...@xilinx.com>; > Igor Mammedov <imamm...@redhat.com>; Michael S. Tsirkin > <m...@redhat.com>; Marcel Apfelbaum <marcel.apfelb...@gmail.com>; > Paolo Bonzini <pbonz...@redhat.com>; Thomas Huth <th...@redhat.com>; > Richard Henderson <r...@twiddle.net>; Gerd Hoffmann <kra...@redhat.com>; > Eduardo Habkost <ehabk...@redhat.com>; Laurent Vivier > <lviv...@redhat.com> > Subject: [PATCH v3 02/10] usb/xhci: add include/hw/usb/xhci.h header file > > Move a bunch of defines which might be needed outside core xhci code to that > place. Add XHCI_ prefixes to avoid name clashes. > No functional change. > > Signed-off-by: Gerd Hoffmann <kra...@redhat.com> [Sai Pavan Boddu] Looks good.
Reviewed-by: Sai Pavan Boddu <sai.pavan.bo...@xilinx.com> Regards, Sai Pavan > --- > hw/usb/hcd-xhci-sysbus.h | 1 - > hw/usb/hcd-xhci.h | 22 ++++++---------------- > include/hw/usb/xhci.h | 19 +++++++++++++++++++ > hw/usb/hcd-xhci-nec.c | 4 ++-- > hw/usb/hcd-xhci-pci.c | 4 ++-- > hw/usb/hcd-xhci-sysbus.c | 4 ++-- > hw/usb/hcd-xhci.c | 34 ++++++++++++++++------------------ > 7 files changed, 47 insertions(+), 41 deletions(-) create mode 100644 > include/hw/usb/xhci.h > > diff --git a/hw/usb/hcd-xhci-sysbus.h b/hw/usb/hcd-xhci-sysbus.h index > a308753ceb9b..fdfcbbee3bf4 100644 > --- a/hw/usb/hcd-xhci-sysbus.h > +++ b/hw/usb/hcd-xhci-sysbus.h > @@ -15,7 +15,6 @@ > #include "hcd-xhci.h" > #include "hw/sysbus.h" > > -#define TYPE_XHCI_SYSBUS "sysbus-xhci" > #define XHCI_SYSBUS(obj) \ > OBJECT_CHECK(XHCISysbusState, (obj), TYPE_XHCI_SYSBUS) > > diff --git a/hw/usb/hcd-xhci.h b/hw/usb/hcd-xhci.h index > f859a17e73ee..ccf50ae28bed 100644 > --- a/hw/usb/hcd-xhci.h > +++ b/hw/usb/hcd-xhci.h > @@ -24,23 +24,13 @@ > #include "qom/object.h" > > #include "hw/usb.h" > +#include "hw/usb/xhci.h" > #include "sysemu/dma.h" > > -#define TYPE_XHCI "base-xhci" > -#define TYPE_NEC_XHCI "nec-usb-xhci" > -#define TYPE_QEMU_XHCI "qemu-xhci" > - > OBJECT_DECLARE_SIMPLE_TYPE(XHCIState, XHCI) > > -#define MAXPORTS_2 15 > -#define MAXPORTS_3 15 > - > -#define MAXPORTS (MAXPORTS_2 + MAXPORTS_3) -#define MAXSLOTS 64 - > #define MAXINTRS 16 > - > /* Very pessimistic, let's hope it's enough for all cases */ -#define > EV_QUEUE > (((3 * 24) + 16) * MAXSLOTS) > +#define EV_QUEUE (((3 * 24) + 16) * XHCI_MAXSLOTS) > > typedef struct XHCIStreamContext XHCIStreamContext; typedef struct > XHCIEPContext XHCIEPContext; @@ -217,15 +207,15 @@ typedef struct > XHCIState { > uint32_t dcbaap_high; > uint32_t config; > > - USBPort uports[MAX_CONST(MAXPORTS_2, MAXPORTS_3)]; > - XHCIPort ports[MAXPORTS]; > - XHCISlot slots[MAXSLOTS]; > + USBPort uports[MAX_CONST(XHCI_MAXPORTS_2, XHCI_MAXPORTS_3)]; > + XHCIPort ports[XHCI_MAXPORTS]; > + XHCISlot slots[XHCI_MAXSLOTS]; > uint32_t numports; > > /* Runtime Registers */ > int64_t mfindex_start; > QEMUTimer *mfwrap_timer; > - XHCIInterrupter intr[MAXINTRS]; > + XHCIInterrupter intr[XHCI_MAXINTRS]; > > XHCIRing cmd_ring; > > diff --git a/include/hw/usb/xhci.h b/include/hw/usb/xhci.h new file mode > 100644 index 000000000000..dc0c29930dcc > --- /dev/null > +++ b/include/hw/usb/xhci.h > @@ -0,0 +1,19 @@ > +#ifndef HW_USB_XHCI_H > +#define HW_USB_XHCI_H > + > +#define TYPE_XHCI "base-xhci" > +#define TYPE_NEC_XHCI "nec-usb-xhci" > +#define TYPE_QEMU_XHCI "qemu-xhci" > +#define TYPE_XHCI_SYSBUS "sysbus-xhci" > + > +#define XHCI_MAXPORTS_2 15 > +#define XHCI_MAXPORTS_3 15 > + > +#define XHCI_MAXPORTS (XHCI_MAXPORTS_2 + XHCI_MAXPORTS_3) #define > +XHCI_MAXSLOTS 64 #define XHCI_MAXINTRS 16 > + > +/* must be power of 2 */ > +#define XHCI_LEN_REGS 0x4000 > + > +#endif > diff --git a/hw/usb/hcd-xhci-nec.c b/hw/usb/hcd-xhci-nec.c index > 2efa6fa0f8af..5707b2cabd16 100644 > --- a/hw/usb/hcd-xhci-nec.c > +++ b/hw/usb/hcd-xhci-nec.c > @@ -34,8 +34,8 @@ static Property nec_xhci_properties[] = { > xhci.flags, XHCI_FLAG_SS_FIRST, true), > DEFINE_PROP_BIT("force-pcie-endcap", XHCIPciState, xhci.flags, > XHCI_FLAG_FORCE_PCIE_ENDCAP, false), > - DEFINE_PROP_UINT32("intrs", XHCIPciState, xhci.numintrs, MAXINTRS), > - DEFINE_PROP_UINT32("slots", XHCIPciState, xhci.numslots, MAXSLOTS), > + DEFINE_PROP_UINT32("intrs", XHCIPciState, xhci.numintrs, > XHCI_MAXINTRS), > + DEFINE_PROP_UINT32("slots", XHCIPciState, xhci.numslots, > + XHCI_MAXSLOTS), > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c index > a6d746e1da38..b78fcd2bb2d5 100644 > --- a/hw/usb/hcd-xhci-pci.c > +++ b/hw/usb/hcd-xhci-pci.c > @@ -240,8 +240,8 @@ static void qemu_xhci_instance_init(Object *obj) > > s->msi = ON_OFF_AUTO_OFF; > s->msix = ON_OFF_AUTO_AUTO; > - xhci->numintrs = MAXINTRS; > - xhci->numslots = MAXSLOTS; > + xhci->numintrs = XHCI_MAXINTRS; > + xhci->numslots = XHCI_MAXSLOTS; > xhci_set_flag(xhci, XHCI_FLAG_SS_FIRST); } > > diff --git a/hw/usb/hcd-xhci-sysbus.c b/hw/usb/hcd-xhci-sysbus.c index > 852ca5103b4d..570618467356 100644 > --- a/hw/usb/hcd-xhci-sysbus.c > +++ b/hw/usb/hcd-xhci-sysbus.c > @@ -69,8 +69,8 @@ static void xhci_sysbus_instance_init(Object *obj) } > > static Property xhci_sysbus_props[] = { > - DEFINE_PROP_UINT32("intrs", XHCISysbusState, xhci.numintrs, MAXINTRS), > - DEFINE_PROP_UINT32("slots", XHCISysbusState, xhci.numslots, MAXSLOTS), > + DEFINE_PROP_UINT32("intrs", XHCISysbusState, xhci.numintrs, > XHCI_MAXINTRS), > + DEFINE_PROP_UINT32("slots", XHCISysbusState, xhci.numslots, > + XHCI_MAXSLOTS), > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index > 5e8bed9ef90c..79ce5c4be6c4 100644 > --- a/hw/usb/hcd-xhci.c > +++ b/hw/usb/hcd-xhci.c > @@ -46,15 +46,13 @@ > #define TRANSFER_LIMIT 256 > > #define LEN_CAP 0x40 > -#define LEN_OPER (0x400 + 0x10 * MAXPORTS) > -#define LEN_RUNTIME ((MAXINTRS + 1) * 0x20) > -#define LEN_DOORBELL ((MAXSLOTS + 1) * 0x20) > +#define LEN_OPER (0x400 + 0x10 * XHCI_MAXPORTS) > +#define LEN_RUNTIME ((XHCI_MAXINTRS + 1) * 0x20) > +#define LEN_DOORBELL ((XHCI_MAXSLOTS + 1) * 0x20) > > #define OFF_OPER LEN_CAP > #define OFF_RUNTIME 0x1000 > #define OFF_DOORBELL 0x2000 > -/* must be power of 2 */ > -#define LEN_REGS 0x4000 > > #if (OFF_OPER + LEN_OPER) > OFF_RUNTIME #error Increase OFF_RUNTIME > @@ -62,8 +60,8 @@ #if (OFF_RUNTIME + LEN_RUNTIME) > OFF_DOORBELL > #error Increase OFF_DOORBELL #endif -#if (OFF_DOORBELL + LEN_DOORBELL) > > LEN_REGS -# error Increase LEN_REGS > +#if (OFF_DOORBELL + LEN_DOORBELL) > XHCI_LEN_REGS # error Increase > +XHCI_LEN_REGS > #endif > > /* bit definitions */ > @@ -3276,11 +3274,11 @@ static void usb_xhci_init(XHCIState *xhci) > > xhci->usbsts = USBSTS_HCH; > > - if (xhci->numports_2 > MAXPORTS_2) { > - xhci->numports_2 = MAXPORTS_2; > + if (xhci->numports_2 > XHCI_MAXPORTS_2) { > + xhci->numports_2 = XHCI_MAXPORTS_2; > } > - if (xhci->numports_3 > MAXPORTS_3) { > - xhci->numports_3 = MAXPORTS_3; > + if (xhci->numports_3 > XHCI_MAXPORTS_3) { > + xhci->numports_3 = XHCI_MAXPORTS_3; > } > usbports = MAX(xhci->numports_2, xhci->numports_3); > xhci->numports = xhci->numports_2 + xhci->numports_3; @@ -3302,7 > +3300,7 @@ static void usb_xhci_init(XHCIState *xhci) > USB_SPEED_MASK_LOW | > USB_SPEED_MASK_FULL | > USB_SPEED_MASK_HIGH; > - assert(i < MAXPORTS); > + assert(i < XHCI_MAXPORTS); > snprintf(port->name, sizeof(port->name), "usb2 port #%d", i+1); > speedmask |= port->speedmask; > } > @@ -3316,7 +3314,7 @@ static void usb_xhci_init(XHCIState *xhci) > } > port->uport = &xhci->uports[i]; > port->speedmask = USB_SPEED_MASK_SUPER; > - assert(i < MAXPORTS); > + assert(i < XHCI_MAXPORTS); > snprintf(port->name, sizeof(port->name), "usb3 port #%d", i+1); > speedmask |= port->speedmask; > } > @@ -3331,8 +3329,8 @@ static void usb_xhci_realize(DeviceState *dev, Error > **errp) > > XHCIState *xhci = XHCI(dev); > > - if (xhci->numintrs > MAXINTRS) { > - xhci->numintrs = MAXINTRS; > + if (xhci->numintrs > XHCI_MAXINTRS) { > + xhci->numintrs = XHCI_MAXINTRS; > } > while (xhci->numintrs & (xhci->numintrs - 1)) { /* ! power of 2 */ > xhci->numintrs++; > @@ -3340,8 +3338,8 @@ static void usb_xhci_realize(DeviceState *dev, Error > **errp) > if (xhci->numintrs < 1) { > xhci->numintrs = 1; > } > - if (xhci->numslots > MAXSLOTS) { > - xhci->numslots = MAXSLOTS; > + if (xhci->numslots > XHCI_MAXSLOTS) { > + xhci->numslots = XHCI_MAXSLOTS; > } > if (xhci->numslots < 1) { > xhci->numslots = 1; > @@ -3355,7 +3353,7 @@ static void usb_xhci_realize(DeviceState *dev, Error > **errp) > usb_xhci_init(xhci); > xhci->mfwrap_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, > xhci_mfwrap_timer, xhci); > > - memory_region_init(&xhci->mem, OBJECT(dev), "xhci", LEN_REGS); > + memory_region_init(&xhci->mem, OBJECT(dev), "xhci", XHCI_LEN_REGS); > memory_region_init_io(&xhci->mem_cap, OBJECT(dev), &xhci_cap_ops, > xhci, > "capabilities", LEN_CAP); > memory_region_init_io(&xhci->mem_oper, OBJECT(dev), &xhci_oper_ops, > xhci, > -- > 2.27.0