diff --git a/lib/libusb/libusb.h b/lib/libusb/libusb.h --- a/lib/libusb/libusb.h +++ b/lib/libusb/libusb.h @@ -216,6 +216,7 @@ LIBUSB_SPEED_FULL = 2, LIBUSB_SPEED_HIGH = 3, LIBUSB_SPEED_SUPER = 4, + LIBUSB_SPEED_SUPER_PLUS = 5, }; enum libusb_transfer_status { diff --git a/lib/libusb/libusb01.c b/lib/libusb/libusb01.c --- a/lib/libusb/libusb01.c +++ b/lib/libusb/libusb01.c @@ -130,6 +130,8 @@ bufsize = 4096; } else if (speed == LIBUSB20_SPEED_SUPER) { bufsize = 65536; + } else if (speed == LIBUSB20_SPEED_SUPER_PLUS) { + bufsize = 131072; } else { bufsize = 16384; } diff --git a/lib/libusb/libusb10.c b/lib/libusb/libusb10.c --- a/lib/libusb/libusb10.c +++ b/lib/libusb/libusb10.c @@ -451,6 +451,8 @@ return (LIBUSB_SPEED_HIGH); case LIBUSB20_SPEED_SUPER: return (LIBUSB_SPEED_SUPER); + case LIBUSB20_SPEED_SUPER_PLUS: + return (LIBUSB_SPEED_SUPER_PLUS); default: break; } @@ -1080,6 +1082,9 @@ case LIBUSB20_SPEED_SUPER: ret = 65536; break; + case LIBUSB20_SPEED_SUPER_PLUS: + ret = 131072; + break; default: ret = 16384; break; diff --git a/lib/libusb/libusb20.h b/lib/libusb/libusb20.h --- a/lib/libusb/libusb20.h +++ b/lib/libusb/libusb20.h @@ -159,6 +159,7 @@ LIBUSB20_SPEED_HIGH, LIBUSB20_SPEED_VARIABLE, LIBUSB20_SPEED_SUPER, + LIBUSB20_SPEED_SUPER_PLUS, }; /** \ingroup misc diff --git a/lib/libusb/libusb20.3 b/lib/libusb/libusb20.3 --- a/lib/libusb/libusb20.3 +++ b/lib/libusb/libusb20.3 @@ -858,6 +858,7 @@ .It LIBUSB20_SPEED_HIGH .It LIBUSB20_SPEED_VARIABLE .It LIBUSB20_SPEED_SUPER +.It LIBUSB20_SPEED_SUPER_PLUS .El . .Pp diff --git a/usr.sbin/usbconfig/dump.c b/usr.sbin/usbconfig/dump.c --- a/usr.sbin/usbconfig/dump.c +++ b/usr.sbin/usbconfig/dump.c @@ -100,6 +100,8 @@ return ("VARIABLE (52-480Mbps)"); case LIBUSB20_SPEED_SUPER: return ("SUPER (5.0Gbps)"); + case LIBUSB20_SPEED_SUPER_PLUS: + return ("SUPER+(10-20Gbps)"); default: break; }