All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	qemu-devel@nongnu.org, "Gerd Hoffmann" <kraxel@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Huacai Chen" <chenhc@lemote.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	"Yoshinori Sato" <ysato@users.sourceforge.jp>,
	"Paul Durrant" <paul@xen.org>,
	"Magnus Damm" <magnus.damm@gmail.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Samuel Thibault" <samuel.thibault@ens-lyon.org>,
	"Leif Lindholm" <leif@nuviainc.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Beniamino Galvani" <b.galvani@gmail.com>,
	"Niek Linnenbank" <nieklinnenbank@gmail.com>,
	qemu-arm@nongnu.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Radoslaw Biernacki" <radoslaw.biernacki@linaro.org>,
	"Igor Mitsyanko" <i.mitsyanko@gmail.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Paul Zimmerman" <pauldzim@gmail.com>,
	qemu-ppc@nongnu.org, "David Gibson" <david@gibson.dropbear.id.au>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH 22/26] hw/usb/usb-hcd: Use OHCI type definitions
Date: Sat, 4 Jul 2020 20:09:37 +0200	[thread overview]
Message-ID: <c966ff55-5499-b302-a5a5-2cc601c4a4f6@amsat.org> (raw)
In-Reply-To: <alpine.BSF.2.22.395.2007041909370.92265@zero.eik.bme.hu>

On 7/4/20 7:13 PM, BALATON Zoltan wrote:
> On Sat, 4 Jul 2020, Philippe Mathieu-Daudé wrote:
>> 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é <f4bug@amsat.org>
>> ---
>> hw/usb/hcd-ohci.h        |  2 +-
>> include/hw/usb/usb-hcd.h | 16 ++++++++++++++++
> 
> I wonder if we need a new header for this or these could just go in the
> new public hw/usb/usb.h as machines creating a HCD may also add devices
> (like keyboard/mouse) so probably will need both headers anyway so
> splitting it up may not worth it but I don't really mind, either way.

Hmm the rationale for this choice is: SoC might only instanciate USB HCI
via sysbus/qdev API, without any use of "hw/usb/usb.h". This is the
machine / board that instanciate USB devices and plug them to the HCI on
the SoC.

I can reword better the description.

> 
> For sm501 and sam460ex parts:
> 
> Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
> 
> Regards,
> BALATON Zoltan
> 
>> 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é <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            "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_space,
>>         s->ssp[i] = (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] = 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 = (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 = drive_get_max_bus(IF_SCSI);
>>         while (n >= 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 = drive_get_max_bus(IF_SCSI);
>>     while (n >= 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 = qdev_new("sysbus-ohci");
>> +    usb_dev = 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 != 15 && graphic_depth != 32 && graphic_depth != 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 = qdev_new("sysbus-ohci");
>> +    dev = qdev_new(TYPE_SYSBUS_OHCI);
>>     qdev_prop_set_string(dev, "masterbus", "usb-bus.0");
>>     qdev_prop_set_uint32(dev, "num-ports", 6);
>>     sbdev = 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
>> *machine)
>>
>>     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 {
>>


WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	qemu-devel@nongnu.org, "Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Huacai Chen" <chenhc@lemote.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	"Yoshinori Sato" <ysato@users.sourceforge.jp>,
	"Paul Durrant" <paul@xen.org>,
	"Magnus Damm" <magnus.damm@gmail.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Samuel Thibault" <samuel.thibault@ens-lyon.org>,
	"Leif Lindholm" <leif@nuviainc.com>,
	"Andrzej Zaborowski" <balrogg@gmail.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Beniamino Galvani" <b.galvani@gmail.com>,
	"Niek Linnenbank" <nieklinnenbank@gmail.com>,
	qemu-arm@nongnu.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Radoslaw Biernacki" <radoslaw.biernacki@linaro.org>,
	"Igor Mitsyanko" <i.mitsyanko@gmail.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Paul Zimmerman" <pauldzim@gmail.com>,
	qemu-ppc@nongnu.org, "David Gibson" <david@gibson.dropbear.id.au>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH 22/26] hw/usb/usb-hcd: Use OHCI type definitions
Date: Sat, 4 Jul 2020 20:09:37 +0200	[thread overview]
Message-ID: <c966ff55-5499-b302-a5a5-2cc601c4a4f6@amsat.org> (raw)
In-Reply-To: <alpine.BSF.2.22.395.2007041909370.92265@zero.eik.bme.hu>

On 7/4/20 7:13 PM, BALATON Zoltan wrote:
> On Sat, 4 Jul 2020, Philippe Mathieu-Daudé wrote:
>> 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é <f4bug@amsat.org>
>> ---
>> hw/usb/hcd-ohci.h        |  2 +-
>> include/hw/usb/usb-hcd.h | 16 ++++++++++++++++
> 
> I wonder if we need a new header for this or these could just go in the
> new public hw/usb/usb.h as machines creating a HCD may also add devices
> (like keyboard/mouse) so probably will need both headers anyway so
> splitting it up may not worth it but I don't really mind, either way.

Hmm the rationale for this choice is: SoC might only instanciate USB HCI
via sysbus/qdev API, without any use of "hw/usb/usb.h". This is the
machine / board that instanciate USB devices and plug them to the HCI on
the SoC.

I can reword better the description.

> 
> For sm501 and sam460ex parts:
> 
> Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
> 
> Regards,
> BALATON Zoltan
> 
>> 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é <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            "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_space,
>>         s->ssp[i] = (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] = 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 = (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 = drive_get_max_bus(IF_SCSI);
>>         while (n >= 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 = drive_get_max_bus(IF_SCSI);
>>     while (n >= 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 = qdev_new("sysbus-ohci");
>> +    usb_dev = 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 != 15 && graphic_depth != 32 && graphic_depth != 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 = qdev_new("sysbus-ohci");
>> +    dev = qdev_new(TYPE_SYSBUS_OHCI);
>>     qdev_prop_set_string(dev, "masterbus", "usb-bus.0");
>>     qdev_prop_set_uint32(dev, "num-ports", 6);
>>     sbdev = 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
>> *machine)
>>
>>     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 {
>>


  reply	other threads:[~2020-07-04 18:10 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-04 14:49 [PATCH 00/26] hw/usb: Give it love, reduce 'hw/usb.h' inclusion out of hw/usb/ Philippe Mathieu-Daudé
2020-07-04 14:49 ` Philippe Mathieu-Daudé
2020-07-04 14:49 ` [PATCH 01/26] hw/arm/sbsa-ref: Remove unused 'hw/usb.h' header Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:49   ` Alistair Francis
2020-07-06 16:49     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 02/26] hw/ppc/sam460ex: Add missing 'hw/pci/pci.h' header Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 16:29   ` BALATON Zoltan
2020-07-06 16:50   ` Alistair Francis
2020-07-06 16:50     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 03/26] hw/usb: Remove unused VM_USB_HUB_SIZE definition Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:51   ` Alistair Francis
2020-07-06 16:51     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 04/26] hw/usb: Reduce 'exec/memory.h' inclusion Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:52   ` Alistair Francis
2020-07-06 16:52     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 05/26] hw/usb/desc: Add missing header Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:55   ` Alistair Francis
2020-07-06 16:55     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 06/26] hw/usb/hcd-dwc2: Remove unnecessary includes Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:54   ` Alistair Francis
2020-07-06 16:54     ` Alistair Francis
2020-07-06 23:28   ` Paul Zimmerman
2020-07-06 23:28     ` Paul Zimmerman
2020-07-04 14:49 ` [PATCH 07/26] hw/usb/hcd-dwc2: Restrict some headers to source Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:54   ` Alistair Francis
2020-07-06 16:54     ` Alistair Francis
2020-07-06 23:27   ` Paul Zimmerman
2020-07-06 23:27     ` Paul Zimmerman
2020-07-04 14:49 ` [PATCH 08/26] hw/usb/hcd-dwc2: Restrict 'dwc2-regs.h' scope Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:47   ` Alistair Francis
2020-07-06 16:47     ` Alistair Francis
2020-07-06 23:29   ` Paul Zimmerman
2020-07-06 23:29     ` Paul Zimmerman
2020-07-04 14:49 ` [PATCH 09/26] hw/usb/hcd-ehci: Remove unnecessary include Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:56   ` Alistair Francis
2020-07-06 16:56     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 10/26] hw/usb/hcd-ehci: Move few definitions from header to source Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 17:00   ` Alistair Francis
2020-07-06 17:00     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 11/26] hw/usb/hcd-xhci: Add missing header Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:57   ` Alistair Francis
2020-07-06 16:57     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 12/26] hw/usb/hcd-musb: Restrict header scope Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 16:58   ` Alistair Francis
2020-07-06 16:58     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 13/26] hw/usb/desc: Reduce some declarations scope Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 17:00   ` Alistair Francis
2020-07-06 17:00     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 14/26] hw/usb/quirks: Rename included source with '.inc.c' suffix Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 17:02   ` Alistair Francis
2020-07-06 17:02     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 15/26] hw/usb: Add new 'usb-quirks.h' local header Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 17:45   ` Alistair Francis
2020-07-06 17:45     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 16/26] hw/usb/bus: Simplify usb_get_dev_path() Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 17:46   ` Alistair Francis
2020-07-06 17:46     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 17/26] hw/usb/bus: Rename usb_get_dev_path() as usb_get_full_dev_path() Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-06 17:46   ` Alistair Francis
2020-07-06 17:46     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 18/26] hw/usb/bus: Add usb_get_port_path() Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-07  0:07   ` Alistair Francis
2020-07-07  0:07     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 19/26] hw/ppc/spapr: Use usb_get_port_path() Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-07  0:07   ` Alistair Francis
2020-07-07  0:07     ` Alistair Francis
2020-07-04 14:49 ` [PATCH 20/26] hw/usb: Introduce "hw/usb/usb.h" public API Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 14:49 ` [PATCH 21/26] hw/usb: Move internal API to local 'usb-internal.h' header Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 14:49 ` [PATCH 22/26] hw/usb/usb-hcd: Use OHCI type definitions Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 17:13   ` BALATON Zoltan
2020-07-04 17:13     ` BALATON Zoltan
2020-07-04 18:09     ` Philippe Mathieu-Daudé [this message]
2020-07-04 18:09       ` Philippe Mathieu-Daudé
2020-07-05 19:55   ` Niek Linnenbank
2020-07-05 19:55     ` Niek Linnenbank
2020-07-04 14:49 ` [PATCH 23/26] hw/usb/usb-hcd: Use EHCI " Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 17:15   ` BALATON Zoltan
2020-07-04 17:15     ` BALATON Zoltan
2020-07-05  9:26     ` Philippe Mathieu-Daudé
2020-07-05  9:26       ` Philippe Mathieu-Daudé
2020-07-04 14:49 ` [PATCH 24/26] hw/usb/usb-hcd: Use UHCI " Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 17:17   ` BALATON Zoltan
2020-07-04 17:17     ` BALATON Zoltan
2020-07-04 18:12     ` Philippe Mathieu-Daudé
2020-07-04 18:12       ` Philippe Mathieu-Daudé
2020-07-04 19:44       ` BALATON Zoltan
2020-07-04 19:44         ` BALATON Zoltan
2020-07-04 19:49         ` Philippe Mathieu-Daudé
2020-07-04 19:49           ` Philippe Mathieu-Daudé
2020-07-05  5:37         ` Paolo Bonzini
2020-07-05  5:37           ` Paolo Bonzini
2020-07-04 14:49 ` [PATCH 25/26] hw/usb/usb-hcd: Use XHCI " Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 17:19   ` BALATON Zoltan
2020-07-04 17:19     ` BALATON Zoltan
2020-07-04 18:07     ` Philippe Mathieu-Daudé
2020-07-04 18:07       ` Philippe Mathieu-Daudé
2020-07-04 14:49 ` [PATCH 26/26] MAINTAINERS: Cover dwc-hsotg (dwc2) USB host controller emulation Philippe Mathieu-Daudé
2020-07-04 14:49   ` Philippe Mathieu-Daudé
2020-07-04 16:25   ` Paul Zimmerman
2020-07-04 16:25     ` Paul Zimmerman
2020-07-13  9:46 ` [PATCH 00/26] hw/usb: Give it love, reduce 'hw/usb.h' inclusion out of hw/usb/ Gerd Hoffmann
2020-07-13  9:46   ` Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c966ff55-5499-b302-a5a5-2cc601c4a4f6@amsat.org \
    --to=f4bug@amsat.org \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alistair@alistair23.me \
    --cc=anthony.perard@citrix.com \
    --cc=armbru@redhat.com \
    --cc=b.galvani@gmail.com \
    --cc=balaton@eik.bme.hu \
    --cc=chenhc@lemote.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=dgilbert@redhat.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=hpoussin@reactos.org \
    --cc=i.mitsyanko@gmail.com \
    --cc=kraxel@redhat.com \
    --cc=leif@nuviainc.com \
    --cc=magnus.damm@gmail.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mst@redhat.com \
    --cc=nieklinnenbank@gmail.com \
    --cc=paul@xen.org \
    --cc=pauldzim@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=radoslaw.biernacki@linaro.org \
    --cc=rth@twiddle.net \
    --cc=samuel.thibault@ens-lyon.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.