From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 177A9C433E0 for ; Sun, 5 Jul 2020 19:57:03 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C766C20739 for ; Sun, 5 Jul 2020 19:57:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kWtw4Dby" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C766C20739 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:46444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jsAl3-0007Dg-UC for qemu-devel@archiver.kernel.org; Sun, 05 Jul 2020 15:57:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41578) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jsAkF-00066W-A0; Sun, 05 Jul 2020 15:56:11 -0400 Received: from mail-il1-x141.google.com ([2607:f8b0:4864:20::141]:33676) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jsAkC-0007O4-Fr; Sun, 05 Jul 2020 15:56:11 -0400 Received: by mail-il1-x141.google.com with SMTP id a11so22957968ilk.0; Sun, 05 Jul 2020 12:56:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kQ6l8az03kehxbkrP0p2iddBUqHaPLMKVPPFuTfHu9U=; b=kWtw4Dby/XYYuLXEnjh8R367jJFb2MdhvmUNhliOCOidwjq5kztJFVOEv4/R6vhWeC RY7gAm4KacL28+mwTTN5KpjoSdAo8vAjWE3civZNTdkbNc1OwRWFgI58VkcmUBPnwTeg VhVjkU+933Xy3DQPz37vhwqc6XpqR4/JEPHHwOiCcGP6IQ4b5r/zWA+E0QCxmgfpfKAP FjHH57TQKb3R/k2etDT0LHHlvwT02H37/vDecDoLgw7NpwRbhqCnns2Zh2ZdMB9ml7Cj epxlcJkXBVkK5YxWhnLxJGl3M8QLz5pFd//ugEQWgu7LWVPk9KIhC/8yCC1piehUBCVP 7tQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kQ6l8az03kehxbkrP0p2iddBUqHaPLMKVPPFuTfHu9U=; b=MAny0xrvsUTst07X1FVT8G3KYl7PrEsoGpWOMkC+/PzGNco6ETLhTZvrCK9dIM6Oau K+7djy4i+y9L+qOxLcdattNnLsUyjhmRO9Za7QDm5pnCTU+2LqNxcjuyh5X31xJixrkH krdikOLRay3M/lBxxdwy7YvV8iOAMrsJpCmG/M68ERV5kYc48IEAoHiPkn6jEzKfqDEd HAkYeuMTIyAl+rb8vEnRwxzF5TsPddavIdTNVSjFBL7EJgrY3C1h9p1pwmk5Synvjyoo 4ooRf0sEUmNW8a0vrOzI/lqGbkPrjy6WiVJhmKxeLHEnr0qCFczpn6LXNXY4npSRLqPL 8MHg== X-Gm-Message-State: AOAM531xKgzUubcZEy3clRS3LmsHdFRK0U10888rdQtItwJ7+Xpewvx5 pBQV8JMEPvlySbhhHH6hIZn3WUAh41ma58z3XVo= X-Google-Smtp-Source: ABdhPJx+ekJQHdSYhIZ8qbbqu+IUSLrvRvQOkodCUlCfQT65+PH7H0ICsQP//H8L6oiWIEw/oLgCAVEgTfwr7D2Bfgw= X-Received: by 2002:a92:844b:: with SMTP id l72mr28524731ild.19.1593978966003; Sun, 05 Jul 2020 12:56:06 -0700 (PDT) MIME-Version: 1.0 References: <20200704144943.18292-1-f4bug@amsat.org> <20200704144943.18292-23-f4bug@amsat.org> In-Reply-To: <20200704144943.18292-23-f4bug@amsat.org> From: Niek Linnenbank Date: Sun, 5 Jul 2020 21:55:57 +0200 Message-ID: Subject: Re: [PATCH 22/26] hw/usb/usb-hcd: Use OHCI type definitions To: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Content-Type: multipart/alternative; boundary="0000000000000c5dca05a9b726c6" Received-SPF: pass client-ip=2607:f8b0:4864:20::141; envelope-from=nieklinnenbank@gmail.com; helo=mail-il1-x141.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , "Michael S. Tsirkin" , Mark Cave-Ayland , QEMU Developers , Gerd Hoffmann , "Edgar E. Iglesias" , Huacai Chen , Stefano Stabellini , xen-devel@lists.xenproject.org, Yoshinori Sato , Paul Durrant , Magnus Damm , Markus Armbruster , =?UTF-8?Q?Herv=C3=A9_Poussineau?= , Anthony Perard , Samuel Thibault , Leif Lindholm , Aleksandar Rikalo , Eduardo Habkost , Alistair Francis , "Dr. David Alan Gilbert" , Beniamino Galvani , qemu-arm@nongnu.org, =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , Richard Henderson , Radoslaw Biernacki , Igor Mitsyanko , =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= , Paul Zimmerman , qemu-ppc@nongnu.org, David Gibson , Paolo Bonzini Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" --0000000000000c5dca05a9b726c6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jul 4, 2020, 16:50 Philippe Mathieu-Daud=C3=A9 wr= ote: > Various machine/board/soc models create OHCI device instances > with the generic QDEV API, and don't need to access USB internals. > > Simplify header inclusions by moving the QOM type names into a > simple header, with no need to include other "hw/usb" headers. > > Suggested-by: BALATON Zoltan > Signed-off-by: Philippe Mathieu-Daud=C3=A9 > Reviewed-by: Niek Linnenbank --- > hw/usb/hcd-ohci.h | 2 +- > include/hw/usb/usb-hcd.h | 16 ++++++++++++++++ > hw/arm/allwinner-a10.c | 2 +- > hw/arm/allwinner-h3.c | 9 +++++---- > hw/arm/pxa2xx.c | 3 ++- > hw/arm/realview.c | 3 ++- > hw/arm/versatilepb.c | 3 ++- > hw/display/sm501.c | 3 ++- > hw/ppc/mac_newworld.c | 3 ++- > hw/ppc/mac_oldworld.c | 3 ++- > hw/ppc/sam460ex.c | 3 ++- > hw/ppc/spapr.c | 3 ++- > hw/usb/hcd-ohci-pci.c | 2 +- > 13 files changed, 40 insertions(+), 15 deletions(-) > create mode 100644 include/hw/usb/usb-hcd.h > > diff --git a/hw/usb/hcd-ohci.h b/hw/usb/hcd-ohci.h > index 771927ea17..6949cf0dab 100644 > --- a/hw/usb/hcd-ohci.h > +++ b/hw/usb/hcd-ohci.h > @@ -21,6 +21,7 @@ > #ifndef HCD_OHCI_H > #define HCD_OHCI_H > > +#include "hw/usb/usb-hcd.h" > #include "sysemu/dma.h" > #include "usb-internal.h" > > @@ -91,7 +92,6 @@ typedef struct OHCIState { > void (*ohci_die)(struct OHCIState *ohci); > } OHCIState; > > -#define TYPE_SYSBUS_OHCI "sysbus-ohci" > #define SYSBUS_OHCI(obj) OBJECT_CHECK(OHCISysBusState, (obj), > TYPE_SYSBUS_OHCI) > > typedef struct { > diff --git a/include/hw/usb/usb-hcd.h b/include/hw/usb/usb-hcd.h > new file mode 100644 > index 0000000000..21fdfaf22d > --- /dev/null > +++ b/include/hw/usb/usb-hcd.h > @@ -0,0 +1,16 @@ > +/* > + * QEMU USB HCD types > + * > + * Copyright (c) 2020 Philippe Mathieu-Daud=C3=A9 > + * > + * SPDX-License-Identifier: GPL-2.0-or-later > + */ > + > +#ifndef HW_USB_HCD_TYPES_H > +#define HW_USB_HCD_TYPES_H > + > +/* OHCI */ > +#define TYPE_SYSBUS_OHCI "sysbus-ohci" > +#define TYPE_PCI_OHCI "pci-ohci" > + > +#endif > diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c > index 52e0d83760..53c24ff602 100644 > --- a/hw/arm/allwinner-a10.c > +++ b/hw/arm/allwinner-a10.c > @@ -25,7 +25,7 @@ > #include "hw/misc/unimp.h" > #include "sysemu/sysemu.h" > #include "hw/boards.h" > -#include "hw/usb/hcd-ohci.h" > +#include "hw/usb/usb-hcd.h" > > #define AW_A10_MMC0_BASE 0x01c0f000 > #define AW_A10_PIC_REG_BASE 0x01c20400 > diff --git a/hw/arm/allwinner-h3.c b/hw/arm/allwinner-h3.c > index 8e09468e86..d1d90ffa79 100644 > --- a/hw/arm/allwinner-h3.c > +++ b/hw/arm/allwinner-h3.c > @@ -28,6 +28,7 @@ > #include "hw/sysbus.h" > #include "hw/char/serial.h" > #include "hw/misc/unimp.h" > +#include "hw/usb/usb-hcd.h" > #include "hw/usb/hcd-ehci.h" > #include "hw/loader.h" > #include "sysemu/sysemu.h" > @@ -381,16 +382,16 @@ static void allwinner_h3_realize(DeviceState *dev, > Error **errp) > qdev_get_gpio_in(DEVICE(&s->gic), > AW_H3_GIC_SPI_EHCI3)); > > - sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_OHCI0], > + sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OHCI0], > qdev_get_gpio_in(DEVICE(&s->gic), > AW_H3_GIC_SPI_OHCI0)); > - sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_OHCI1], > + sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OHCI1], > qdev_get_gpio_in(DEVICE(&s->gic), > AW_H3_GIC_SPI_OHCI1)); > - sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_OHCI2], > + sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OHCI2], > qdev_get_gpio_in(DEVICE(&s->gic), > AW_H3_GIC_SPI_OHCI2)); > - sysbus_create_simple("sysbus-ohci", s->memmap[AW_H3_OHCI3], > + sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OHCI3], > qdev_get_gpio_in(DEVICE(&s->gic), > AW_H3_GIC_SPI_OHCI3)); > > diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c > index f104a33463..27196170f5 100644 > --- a/hw/arm/pxa2xx.c > +++ b/hw/arm/pxa2xx.c > @@ -18,6 +18,7 @@ > #include "hw/arm/pxa.h" > #include "sysemu/sysemu.h" > #include "hw/char/serial.h" > +#include "hw/usb/usb-hcd.h" > #include "hw/i2c/i2c.h" > #include "hw/irq.h" > #include "hw/qdev-properties.h" > @@ -2196,7 +2197,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_spac= e, > s->ssp[i] =3D (SSIBus *)qdev_get_child_bus(dev, "ssi"); > } > > - sysbus_create_simple("sysbus-ohci", 0x4c000000, > + sysbus_create_simple(TYPE_SYSBUS_OHCI, 0x4c000000, > qdev_get_gpio_in(s->pic, PXA2XX_PIC_USBH1)); > > s->pcmcia[0] =3D pxa2xx_pcmcia_init(address_space, 0x20000000); > diff --git a/hw/arm/realview.c b/hw/arm/realview.c > index b6c0a1adb9..0aa34bd4c2 100644 > --- a/hw/arm/realview.c > +++ b/hw/arm/realview.c > @@ -16,6 +16,7 @@ > #include "hw/net/lan9118.h" > #include "hw/net/smc91c111.h" > #include "hw/pci/pci.h" > +#include "hw/usb/usb-hcd.h" > #include "net/net.h" > #include "sysemu/sysemu.h" > #include "hw/boards.h" > @@ -256,7 +257,7 @@ static void realview_init(MachineState *machine, > sysbus_connect_irq(busdev, 3, pic[51]); > pci_bus =3D (PCIBus *)qdev_get_child_bus(dev, "pci"); > if (machine_usb(machine)) { > - pci_create_simple(pci_bus, -1, "pci-ohci"); > + pci_create_simple(pci_bus, -1, TYPE_PCI_OHCI); > } > n =3D drive_get_max_bus(IF_SCSI); > while (n >=3D 0) { > diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c > index e596b8170f..3e6224dc96 100644 > --- a/hw/arm/versatilepb.c > +++ b/hw/arm/versatilepb.c > @@ -17,6 +17,7 @@ > #include "net/net.h" > #include "sysemu/sysemu.h" > #include "hw/pci/pci.h" > +#include "hw/usb/usb-hcd.h" > #include "hw/i2c/i2c.h" > #include "hw/i2c/arm_sbcon_i2c.h" > #include "hw/irq.h" > @@ -273,7 +274,7 @@ static void versatile_init(MachineState *machine, int > board_id) > } > } > if (machine_usb(machine)) { > - pci_create_simple(pci_bus, -1, "pci-ohci"); > + pci_create_simple(pci_bus, -1, TYPE_PCI_OHCI); > } > n =3D drive_get_max_bus(IF_SCSI); > while (n >=3D 0) { > diff --git a/hw/display/sm501.c b/hw/display/sm501.c > index 9cccc68c35..5f076c841f 100644 > --- a/hw/display/sm501.c > +++ b/hw/display/sm501.c > @@ -33,6 +33,7 @@ > #include "hw/sysbus.h" > #include "migration/vmstate.h" > #include "hw/pci/pci.h" > +#include "hw/usb/usb-hcd.h" > #include "hw/qdev-properties.h" > #include "hw/i2c/i2c.h" > #include "hw/display/i2c-ddc.h" > @@ -1961,7 +1962,7 @@ static void sm501_realize_sysbus(DeviceState *dev, > Error **errp) > sysbus_init_mmio(sbd, &s->state.mmio_region); > > /* bridge to usb host emulation module */ > - usb_dev =3D qdev_new("sysbus-ohci"); > + usb_dev =3D qdev_new(TYPE_SYSBUS_OHCI); > qdev_prop_set_uint32(usb_dev, "num-ports", 2); > qdev_prop_set_uint64(usb_dev, "dma-offset", s->base); > sysbus_realize_and_unref(SYS_BUS_DEVICE(usb_dev), &error_fatal); > diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c > index 7bf69f4a1f..3c32c1831b 100644 > --- a/hw/ppc/mac_newworld.c > +++ b/hw/ppc/mac_newworld.c > @@ -55,6 +55,7 @@ > #include "hw/input/adb.h" > #include "hw/ppc/mac_dbdma.h" > #include "hw/pci/pci.h" > +#include "hw/usb/usb-hcd.h" > #include "net/net.h" > #include "sysemu/sysemu.h" > #include "hw/boards.h" > @@ -411,7 +412,7 @@ static void ppc_core99_init(MachineState *machine) > } > > if (machine->usb) { > - pci_create_simple(pci_bus, -1, "pci-ohci"); > + pci_create_simple(pci_bus, -1, TYPE_PCI_OHCI); > > /* U3 needs to use USB for input because Linux doesn't support > via-cuda > on PPC64 */ > diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c > index f8c204ead7..a429a3e1df 100644 > --- a/hw/ppc/mac_oldworld.c > +++ b/hw/ppc/mac_oldworld.c > @@ -37,6 +37,7 @@ > #include "hw/isa/isa.h" > #include "hw/pci/pci.h" > #include "hw/pci/pci_host.h" > +#include "hw/usb/usb-hcd.h" > #include "hw/boards.h" > #include "hw/nvram/fw_cfg.h" > #include "hw/char/escc.h" > @@ -301,7 +302,7 @@ static void ppc_heathrow_init(MachineState *machine) > qdev_realize_and_unref(dev, adb_bus, &error_fatal); > > if (machine_usb(machine)) { > - pci_create_simple(pci_bus, -1, "pci-ohci"); > + pci_create_simple(pci_bus, -1, TYPE_PCI_OHCI); > } > > if (graphic_depth !=3D 15 && graphic_depth !=3D 32 && graphic_depth = !=3D 8) > diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c > index 781b45e14b..ac60d17a86 100644 > --- a/hw/ppc/sam460ex.c > +++ b/hw/ppc/sam460ex.c > @@ -36,6 +36,7 @@ > #include "hw/i2c/ppc4xx_i2c.h" > #include "hw/i2c/smbus_eeprom.h" > #include "hw/usb/usb.h" > +#include "hw/usb/usb-hcd.h" > #include "hw/usb/hcd-ehci.h" > #include "hw/ppc/fdt.h" > #include "hw/qdev-properties.h" > @@ -372,7 +373,7 @@ static void sam460ex_init(MachineState *machine) > > /* USB */ > sysbus_create_simple(TYPE_PPC4xx_EHCI, 0x4bffd0400, uic[2][29]); > - dev =3D qdev_new("sysbus-ohci"); > + dev =3D qdev_new(TYPE_SYSBUS_OHCI); > qdev_prop_set_string(dev, "masterbus", "usb-bus.0"); > qdev_prop_set_uint32(dev, "num-ports", 6); > sbdev =3D SYS_BUS_DEVICE(dev); > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 0c0409077f..db1706a66c 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -71,6 +71,7 @@ > #include "exec/address-spaces.h" > #include "exec/ram_addr.h" > #include "hw/usb/usb.h" > +#include "hw/usb/usb-hcd.h" > #include "qemu/config-file.h" > #include "qemu/error-report.h" > #include "trace.h" > @@ -2958,7 +2959,7 @@ static void spapr_machine_init(MachineState *machin= e) > > if (machine->usb) { > if (smc->use_ohci_by_default) { > - pci_create_simple(phb->bus, -1, "pci-ohci"); > + pci_create_simple(phb->bus, -1, TYPE_PCI_OHCI); > } else { > pci_create_simple(phb->bus, -1, "nec-usb-xhci"); > } > diff --git a/hw/usb/hcd-ohci-pci.c b/hw/usb/hcd-ohci-pci.c > index cb6bc55f59..14df83ec2e 100644 > --- a/hw/usb/hcd-ohci-pci.c > +++ b/hw/usb/hcd-ohci-pci.c > @@ -29,8 +29,8 @@ > #include "trace.h" > #include "hcd-ohci.h" > #include "usb-internal.h" > +#include "hw/usb/usb-hcd.h" > > -#define TYPE_PCI_OHCI "pci-ohci" > #define PCI_OHCI(obj) OBJECT_CHECK(OHCIPCIState, (obj), TYPE_PCI_OHCI) > > typedef struct { > -- > 2.21.3 > > --0000000000000c5dca05a9b726c6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Sat, Jul 4, 2020, 16:50 Philippe Mathieu-Daud=C3=A9= <f4bug@amsat.org> wrote:
<= /div>
Various machine/board/soc models create= OHCI device instances
with the generic QDEV API, and don't need to access USB internals.

Simplify header inclusions by moving the QOM type names into a
simple header, with no need to include other "hw/usb" headers.
Suggested-by: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: Philippe Mathieu-Daud=C3=A9 <f4bug@amsat.org>
Reviewed-by: Niek Linnenbank <nieklinnenbank@gmail.com>

---
=C2=A0hw/usb/hcd-ohci.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 2 +-
=C2=A0include/hw/usb/usb-hcd.h | 16 ++++++++++++++++
=C2=A0hw/arm/allwinner-a10.c=C2=A0 =C2=A0|=C2=A0 2 +-
=C2=A0hw/arm/allwinner-h3.c=C2=A0 =C2=A0 |=C2=A0 9 +++++----
=C2=A0hw/arm/pxa2xx.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 3 ++-
=C2=A0hw/arm/realview.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 3 ++-
=C2=A0hw/arm/versatilepb.c=C2=A0 =C2=A0 =C2=A0|=C2=A0 3 ++-
=C2=A0hw/display/sm501.c=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 3 ++-
=C2=A0hw/ppc/mac_newworld.c=C2=A0 =C2=A0 |=C2=A0 3 ++-
=C2=A0hw/ppc/mac_oldworld.c=C2=A0 =C2=A0 |=C2=A0 3 ++-
=C2=A0hw/ppc/sam460ex.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 3 ++-
=C2=A0hw/ppc/spapr.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 3 ++-<= br> =C2=A0hw/usb/hcd-ohci-pci.c=C2=A0 =C2=A0 |=C2=A0 2 +-
=C2=A013 files changed, 40 insertions(+), 15 deletions(-)
=C2=A0create mode 100644 include/hw/usb/usb-hcd.h

diff --git a/hw/usb/hcd-ohci.h b/hw/usb/hcd-ohci.h
index 771927ea17..6949cf0dab 100644
--- a/hw/usb/hcd-ohci.h
+++ b/hw/usb/hcd-ohci.h
@@ -21,6 +21,7 @@
=C2=A0#ifndef HCD_OHCI_H
=C2=A0#define HCD_OHCI_H

+#include "hw/usb/usb-hcd.h"
=C2=A0#include "sysemu/dma.h"
=C2=A0#include "usb-internal.h"

@@ -91,7 +92,6 @@ typedef struct OHCIState {
=C2=A0 =C2=A0 =C2=A0void (*ohci_die)(struct OHCIState *ohci);
=C2=A0} OHCIState;

-#define TYPE_SYSBUS_OHCI "sysbus-ohci"
=C2=A0#define SYSBUS_OHCI(obj) OBJECT_CHECK(OHCISysBusState, (obj), TYPE_SY= SBUS_OHCI)

=C2=A0typedef struct {
diff --git a/include/hw/usb/usb-hcd.h b/include/hw/usb/usb-hcd.h
new file mode 100644
index 0000000000..21fdfaf22d
--- /dev/null
+++ b/include/hw/usb/usb-hcd.h
@@ -0,0 +1,16 @@
+/*
+ * QEMU USB HCD types
+ *
+ * Copyright (c) 2020=C2=A0 Philippe Mathieu-Daud=C3=A9 <f4bug@amsat.org>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef HW_USB_HCD_TYPES_H
+#define HW_USB_HCD_TYPES_H
+
+/* OHCI */
+#define TYPE_SYSBUS_OHCI=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "sy= sbus-ohci"
+#define TYPE_PCI_OHCI=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0"pci-ohci"
+
+#endif
diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c
index 52e0d83760..53c24ff602 100644
--- a/hw/arm/allwinner-a10.c
+++ b/hw/arm/allwinner-a10.c
@@ -25,7 +25,7 @@
=C2=A0#include "hw/misc/unimp.h"
=C2=A0#include "sysemu/sysemu.h"
=C2=A0#include "hw/boards.h"
-#include "hw/usb/hcd-ohci.h"
+#include "hw/usb/usb-hcd.h"

=C2=A0#define AW_A10_MMC0_BASE=C2=A0 =C2=A0 =C2=A0 =C2=A0 0x01c0f000
=C2=A0#define AW_A10_PIC_REG_BASE=C2=A0 =C2=A0 =C2=A00x01c20400
diff --git a/hw/arm/allwinner-h3.c b/hw/arm/allwinner-h3.c
index 8e09468e86..d1d90ffa79 100644
--- a/hw/arm/allwinner-h3.c
+++ b/hw/arm/allwinner-h3.c
@@ -28,6 +28,7 @@
=C2=A0#include "hw/sysbus.h"
=C2=A0#include "hw/char/serial.h"
=C2=A0#include "hw/misc/unimp.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "hw/usb/hcd-ehci.h"
=C2=A0#include "hw/loader.h"
=C2=A0#include "sysemu/sysemu.h"
@@ -381,16 +382,16 @@ static void allwinner_h3_realize(DeviceState *dev, Er= ror **errp)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 qdev_get_gpio_in(DEVICE(&s->gic),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0AW_H3_GIC_SPI_EHCI3));

-=C2=A0 =C2=A0 sysbus_create_simple("sysbus-ohci", s->memmap[A= W_H3_OHCI0],
+=C2=A0 =C2=A0 sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OH= CI0],
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 qdev_get_gpio_in(DEVICE(&s->gic),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0AW_H3_GIC_SPI_OHCI0));
-=C2=A0 =C2=A0 sysbus_create_simple("sysbus-ohci", s->memmap[A= W_H3_OHCI1],
+=C2=A0 =C2=A0 sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OH= CI1],
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 qdev_get_gpio_in(DEVICE(&s->gic),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0AW_H3_GIC_SPI_OHCI1));
-=C2=A0 =C2=A0 sysbus_create_simple("sysbus-ohci", s->memmap[A= W_H3_OHCI2],
+=C2=A0 =C2=A0 sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OH= CI2],
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 qdev_get_gpio_in(DEVICE(&s->gic),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0AW_H3_GIC_SPI_OHCI2));
-=C2=A0 =C2=A0 sysbus_create_simple("sysbus-ohci", s->memmap[A= W_H3_OHCI3],
+=C2=A0 =C2=A0 sysbus_create_simple(TYPE_SYSBUS_OHCI, s->memmap[AW_H3_OH= CI3],
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 qdev_get_gpio_in(DEVICE(&s->gic),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0AW_H3_GIC_SPI_OHCI3));

diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
index f104a33463..27196170f5 100644
--- a/hw/arm/pxa2xx.c
+++ b/hw/arm/pxa2xx.c
@@ -18,6 +18,7 @@
=C2=A0#include "hw/arm/pxa.h"
=C2=A0#include "sysemu/sysemu.h"
=C2=A0#include "hw/char/serial.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "hw/i2c/i2c.h"
=C2=A0#include "hw/irq.h"
=C2=A0#include "hw/qdev-properties.h"
@@ -2196,7 +2197,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0s->ssp[i] =3D (SSIBus *)qdev_get_child= _bus(dev, "ssi");
=C2=A0 =C2=A0 =C2=A0}

-=C2=A0 =C2=A0 sysbus_create_simple("sysbus-ohci", 0x4c000000, +=C2=A0 =C2=A0 sysbus_create_simple(TYPE_SYSBUS_OHCI, 0x4c000000,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 qdev_get_gpio_in(s->pic, PXA2XX_PIC_USBH1));

=C2=A0 =C2=A0 =C2=A0s->pcmcia[0] =3D pxa2xx_pcmcia_init(address_space, 0= x20000000);
diff --git a/hw/arm/realview.c b/hw/arm/realview.c
index b6c0a1adb9..0aa34bd4c2 100644
--- a/hw/arm/realview.c
+++ b/hw/arm/realview.c
@@ -16,6 +16,7 @@
=C2=A0#include "hw/net/lan9118.h"
=C2=A0#include "hw/net/smc91c111.h"
=C2=A0#include "hw/pci/pci.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "net/net.h"
=C2=A0#include "sysemu/sysemu.h"
=C2=A0#include "hw/boards.h"
@@ -256,7 +257,7 @@ static void realview_init(MachineState *machine,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sysbus_connect_irq(busdev, 3, pic[51]); =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pci_bus =3D (PCIBus *)qdev_get_child_bus(= dev, "pci");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (machine_usb(machine)) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, &= quot;pci-ohci");
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, T= YPE_PCI_OHCI);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0n =3D drive_get_max_bus(IF_SCSI);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0while (n >=3D 0) {
diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c
index e596b8170f..3e6224dc96 100644
--- a/hw/arm/versatilepb.c
+++ b/hw/arm/versatilepb.c
@@ -17,6 +17,7 @@
=C2=A0#include "net/net.h"
=C2=A0#include "sysemu/sysemu.h"
=C2=A0#include "hw/pci/pci.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "hw/i2c/i2c.h"
=C2=A0#include "hw/i2c/arm_sbcon_i2c.h"
=C2=A0#include "hw/irq.h"
@@ -273,7 +274,7 @@ static void versatile_init(MachineState *machine, int b= oard_id)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0if (machine_usb(machine)) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, "pci-ohci&= quot;);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, TYPE_PCI_OHCI);=
=C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0n =3D drive_get_max_bus(IF_SCSI);
=C2=A0 =C2=A0 =C2=A0while (n >=3D 0) {
diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index 9cccc68c35..5f076c841f 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -33,6 +33,7 @@
=C2=A0#include "hw/sysbus.h"
=C2=A0#include "migration/vmstate.h"
=C2=A0#include "hw/pci/pci.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "hw/qdev-properties.h"
=C2=A0#include "hw/i2c/i2c.h"
=C2=A0#include "hw/display/i2c-ddc.h"
@@ -1961,7 +1962,7 @@ static void sm501_realize_sysbus(DeviceState *dev, Er= ror **errp)
=C2=A0 =C2=A0 =C2=A0sysbus_init_mmio(sbd, &s->state.mmio_region);
=C2=A0 =C2=A0 =C2=A0/* bridge to usb host emulation module */
-=C2=A0 =C2=A0 usb_dev =3D qdev_new("sysbus-ohci");
+=C2=A0 =C2=A0 usb_dev =3D qdev_new(TYPE_SYSBUS_OHCI);
=C2=A0 =C2=A0 =C2=A0qdev_prop_set_uint32(usb_dev, "num-ports", 2)= ;
=C2=A0 =C2=A0 =C2=A0qdev_prop_set_uint64(usb_dev, "dma-offset", s= ->base);
=C2=A0 =C2=A0 =C2=A0sysbus_realize_and_unref(SYS_BUS_DEVICE(usb_dev), &= error_fatal);
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 7bf69f4a1f..3c32c1831b 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -55,6 +55,7 @@
=C2=A0#include "hw/input/adb.h"
=C2=A0#include "hw/ppc/mac_dbdma.h"
=C2=A0#include "hw/pci/pci.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "net/net.h"
=C2=A0#include "sysemu/sysemu.h"
=C2=A0#include "hw/boards.h"
@@ -411,7 +412,7 @@ static void ppc_core99_init(MachineState *machine)
=C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0if (machine->usb) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, "pci-ohci&= quot;);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, TYPE_PCI_OHCI);=

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* U3 needs to use USB for input because = Linux doesn't support via-cuda
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0on PPC64 */
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index f8c204ead7..a429a3e1df 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -37,6 +37,7 @@
=C2=A0#include "hw/isa/isa.h"
=C2=A0#include "hw/pci/pci.h"
=C2=A0#include "hw/pci/pci_host.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "hw/boards.h"
=C2=A0#include "hw/nvram/fw_cfg.h"
=C2=A0#include "hw/char/escc.h"
@@ -301,7 +302,7 @@ static void ppc_heathrow_init(MachineState *machine) =C2=A0 =C2=A0 =C2=A0qdev_realize_and_unref(dev, adb_bus, &error_fatal);=

=C2=A0 =C2=A0 =C2=A0if (machine_usb(machine)) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, "pci-ohci&= quot;);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(pci_bus, -1, TYPE_PCI_OHCI);=
=C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0if (graphic_depth !=3D 15 && graphic_depth !=3D= 32 && graphic_depth !=3D 8)
diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c
index 781b45e14b..ac60d17a86 100644
--- a/hw/ppc/sam460ex.c
+++ b/hw/ppc/sam460ex.c
@@ -36,6 +36,7 @@
=C2=A0#include "hw/i2c/ppc4xx_i2c.h"
=C2=A0#include "hw/i2c/smbus_eeprom.h"
=C2=A0#include "hw/usb/usb.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "hw/usb/hcd-ehci.h"
=C2=A0#include "hw/ppc/fdt.h"
=C2=A0#include "hw/qdev-properties.h"
@@ -372,7 +373,7 @@ static void sam460ex_init(MachineState *machine)

=C2=A0 =C2=A0 =C2=A0/* USB */
=C2=A0 =C2=A0 =C2=A0sysbus_create_simple(TYPE_PPC4xx_EHCI, 0x4bffd0400, uic= [2][29]);
-=C2=A0 =C2=A0 dev =3D qdev_new("sysbus-ohci");
+=C2=A0 =C2=A0 dev =3D qdev_new(TYPE_SYSBUS_OHCI);
=C2=A0 =C2=A0 =C2=A0qdev_prop_set_string(dev, "masterbus", "= usb-bus.0");
=C2=A0 =C2=A0 =C2=A0qdev_prop_set_uint32(dev, "num-ports", 6); =C2=A0 =C2=A0 =C2=A0sbdev =3D SYS_BUS_DEVICE(dev);
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 0c0409077f..db1706a66c 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -71,6 +71,7 @@
=C2=A0#include "exec/address-spaces.h"
=C2=A0#include "exec/ram_addr.h"
=C2=A0#include "hw/usb/usb.h"
+#include "hw/usb/usb-hcd.h"
=C2=A0#include "qemu/config-file.h"
=C2=A0#include "qemu/error-report.h"
=C2=A0#include "trace.h"
@@ -2958,7 +2959,7 @@ static void spapr_machine_init(MachineState *machine)=

=C2=A0 =C2=A0 =C2=A0if (machine->usb) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (smc->use_ohci_by_default) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(phb->bus, -= 1, "pci-ohci");
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pci_create_simple(phb->bus, -= 1, TYPE_PCI_OHCI);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0} else {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pci_create_simple(phb->b= us, -1, "nec-usb-xhci");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
diff --git a/hw/usb/hcd-ohci-pci.c b/hw/usb/hcd-ohci-pci.c
index cb6bc55f59..14df83ec2e 100644
--- a/hw/usb/hcd-ohci-pci.c
+++ b/hw/usb/hcd-ohci-pci.c
@@ -29,8 +29,8 @@
=C2=A0#include "trace.h"
=C2=A0#include "hcd-ohci.h"
=C2=A0#include "usb-internal.h"
+#include "hw/usb/usb-hcd.h"

-#define TYPE_PCI_OHCI "pci-ohci"
=C2=A0#define PCI_OHCI(obj) OBJECT_CHECK(OHCIPCIState, (obj), TYPE_PCI_OHCI= )

=C2=A0typedef struct {
--
2.21.3

--0000000000000c5dca05a9b726c6--