diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c
index 45f098826a..0145116e98 100644
--- a/src/libxl/libxl_capabilities.c
+++ b/src/libxl/libxl_capabilities.c
@@ -492,6 +492,11 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdevPtr dev)
VIR_DOMAIN_CAPS_ENUM_SET(dev->subsysType,
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI);
+#ifdef LIBXL_HAVE_PVUSB
+ VIR_DOMAIN_CAPS_ENUM_SET(dev->subsysType,
+ VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB);
+#endif
+
/* No virDomainHostdevCapsType for libxl */
virDomainCapsEnumClear(&dev->capsType);
diff --git a/tests/domaincapsschemadata/libxl-xenfv-usb.xml b/tests/domaincapsschemadata/libxl-xenfv-usb.xml
new file mode 100644
index 0000000000..c071d1240b
--- /dev/null
+++ b/tests/domaincapsschemadata/libxl-xenfv-usb.xml
@@ -0,0 +1,69 @@
+
+ /usr/bin/qemu-system-x86_64
+ xen
+ xenfv
+ x86_64
+
+
+
+ /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/ovmf.bin
+
+ rom
+ pflash
+
+
+ yes
+
+
+
+
+
+
+ disk
+ cdrom
+
+
+ ide
+ scsi
+ xen
+
+
+
+
+ sdl
+ vnc
+ spice
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+
+
+
+ xen
+
+
+
+
+
+
+
diff --git a/tests/domaincapsschemadata/libxl-xenpv-usb.xml b/tests/domaincapsschemadata/libxl-xenpv-usb.xml
new file mode 100644
index 0000000000..4dd07bd966
--- /dev/null
+++ b/tests/domaincapsschemadata/libxl-xenpv-usb.xml
@@ -0,0 +1,59 @@
+
+ /usr/bin/qemu-system-x86_64
+ xen
+ xenpv
+ x86_64
+
+
+
+
+
+
+
+ disk
+ cdrom
+
+
+ ide
+ scsi
+ xen
+
+
+
+
+ sdl
+ vnc
+ spice
+
+
+
+
+
+ subsystem
+
+
+ default
+ mandatory
+ requisite
+ optional
+
+
+ usb
+ pci
+
+
+
+ xen
+
+
+
+
+
+
+
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index 9fb2c974ec..ae311464d6 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -367,9 +367,17 @@ mymain(void)
#if WITH_LIBXL
- DO_TEST_LIBXL("libxl-xenpv", "/usr/bin/qemu-system-x86_64",
+# ifdef LIBXL_HAVE_PVUSB
+# define LIBXL_XENPV_CAPS "libxl-xenpv-usb"
+# define LIBXL_XENFV_CAPS "libxl-xenfv-usb"
+# else
+# define LIBXL_XENPV_CAPS "libxl-xenpv"
+# define LIBXL_XENFV_CAPS "libxl-xenfv"
+# endif
+
+ DO_TEST_LIBXL(LIBXL_XENPV_CAPS, "/usr/bin/qemu-system-x86_64",
"xenpv", "x86_64", VIR_DOMAIN_VIRT_XEN);
- DO_TEST_LIBXL("libxl-xenfv", "/usr/bin/qemu-system-x86_64",
+ DO_TEST_LIBXL(LIBXL_XENFV_CAPS, "/usr/bin/qemu-system-x86_64",
"xenfv", "x86_64", VIR_DOMAIN_VIRT_XEN);
#endif /* WITH_LIBXL */