[libvirt] [PATCH RESEND] add xhci support

Daniel P. Berrange berrange at redhat.com
Mon Jul 9 12:37:24 UTC 2012


On Mon, Jul 09, 2012 at 02:18:58PM +0200, Gerd Hoffmann wrote:
> qemu 1.1 features a xhci controller,
> this patch adds support for it.
> 
> Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
> ---
>  docs/formatdomain.html.in     |    4 ++--
>  docs/schemas/domaincommon.rng |    1 +
>  src/conf/domain_conf.c        |    3 ++-
>  src/conf/domain_conf.h        |    1 +
>  src/qemu/qemu_capabilities.c  |    3 +++
>  src/qemu/qemu_capabilities.h  |    1 +
>  src/qemu/qemu_command.c       |    5 ++++-
>  7 files changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
> index 1f30772..e1c0af5 100644
> --- a/docs/formatdomain.html.in
> +++ b/docs/formatdomain.html.in
> @@ -1820,8 +1820,8 @@
>        A "usb" controller has an optional attribute <code>model</code>,
>        which is one of "piix3-uhci", "piix4-uhci", "ehci",
>        "ich9-ehci1", "ich9-uhci1", "ich9-uhci2", "ich9-uhci3",
> -      "vt82c686b-uhci" or "pci-ohci".  The PowerPC64 "spapr-vio"
> -      addresses do not have an associated controller.
> +      "vt82c686b-uhci", "pci-ohci" or "nec-xhci".  The PowerPC64
> +      "spapr-vio" addresses do not have an associated controller.
>      </p>
>  
>      <p>
> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> index 46e539d..8630625 100644
> --- a/docs/schemas/domaincommon.rng
> +++ b/docs/schemas/domaincommon.rng
> @@ -1201,6 +1201,7 @@
>              <value>ich9-uhci3</value>
>              <value>vt82c686b-uhci</value>
>              <value>pci-ohci</value>
> +            <value>nec-xhci</value>
>            </choice>
>          </attribute>
>        </optional>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 81c6308..4651765 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -257,7 +257,8 @@ VIR_ENUM_IMPL(virDomainControllerModelUSB, VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST,
>                "ich9-uhci2",
>                "ich9-uhci3",
>                "vt82c686b-uhci",
> -              "pci-ohci")
> +              "pci-ohci",
> +              "nec-xhci")
>  
>  VIR_ENUM_IMPL(virDomainFS, VIR_DOMAIN_FS_TYPE_LAST,
>                "mount",
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 44280ba..3712785 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -631,6 +631,7 @@ enum virDomainControllerModelUSB {
>      VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_UHCI3,
>      VIR_DOMAIN_CONTROLLER_MODEL_USB_VT82C686B_UHCI,
>      VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI,
> +    VIR_DOMAIN_CONTROLLER_MODEL_USB_NEC_XHCI,
>  
>      VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST
>  };
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 4308833..578daeb 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -165,6 +165,7 @@ VIR_ENUM_IMPL(qemuCaps, QEMU_CAPS_LAST,
>  
>                "hda-micro", /* 95 */
>                "dump-guest-memory",
> +              "nec-usb-xhci",
>  
>      );
>  
> @@ -1421,6 +1422,8 @@ qemuCapsParseDeviceStr(const char *str, virBitmapPtr flags)
>          qemuCapsSet(flags, QEMU_CAPS_VT82C686B_USB_UHCI);
>      if (strstr(str, "name \"pci-ohci\""))
>          qemuCapsSet(flags, QEMU_CAPS_PCI_OHCI);
> +    if (strstr(str, "name \"nec-usb-xhci\""))
> +        qemuCapsSet(flags, QEMU_CAPS_NEC_USB_XHCI);
>      if (strstr(str, "name \"usb-redir\""))
>          qemuCapsSet(flags, QEMU_CAPS_USB_REDIR);
>      if (strstr(str, "name \"usb-hub\""))
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 640f7f5..83c135b 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -132,6 +132,7 @@ enum qemuCapsFlags {
>      QEMU_CAPS_NO_USER_CONFIG     = 94, /* -no-user-config */
>      QEMU_CAPS_HDA_MICRO          = 95, /* -device hda-micro */
>      QEMU_CAPS_DUMP_GUEST_MEMORY  = 96, /* dump-guest-memory command */
> +    QEMU_CAPS_NEC_USB_XHCI       = 97, /* -device nec-usb-xhci */
>  
>      QEMU_CAPS_LAST,                   /* this must always be the last item */
>  };
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index bd4f96a..6549f57 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -106,7 +106,8 @@ VIR_ENUM_IMPL(qemuControllerModelUSB, VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST,
>                "ich9-usb-uhci2",
>                "ich9-usb-uhci3",
>                "vt82c686b-usb-uhci",
> -              "pci-ohci");
> +              "pci-ohci",
> +              "nec-usb-xhci");
>  
>  VIR_ENUM_DECL(qemuDomainFSDriver)
>  VIR_ENUM_IMPL(qemuDomainFSDriver, VIR_DOMAIN_FS_DRIVER_TYPE_LAST,
> @@ -2598,6 +2599,8 @@ qemuControllerModelUSBToCaps(int model)
>          return QEMU_CAPS_VT82C686B_USB_UHCI;
>      case VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI:
>          return QEMU_CAPS_PCI_OHCI;
> +    case VIR_DOMAIN_CONTROLLER_MODEL_USB_NEC_XHCI:
> +        return QEMU_CAPS_NEC_USB_XHCI;
>      default:
>          return -1;
>      }

ACK


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list