Index: uspace/drv/bus/usb/usbhub/usbhub.c
===================================================================
--- uspace/drv/bus/usb/usbhub/usbhub.c	(revision 01bbbb214b5586742b81fb159fe769b0c167dc48)
+++ uspace/drv/bus/usb/usbhub/usbhub.c	(revision dbb9663316ea6d7478b1030015c0c9e090f19f83)
@@ -249,8 +249,6 @@
 	usb_log_debug("setting port count to %d\n", descriptor->ports_count);
 	hub_info->port_count = descriptor->ports_count;
-	bool is_power_switched =
-	    ((descriptor->hub_characteristics & 1) == 0);
-	bool has_individual_port_powering =
-	    ((descriptor->hub_characteristics & 1) != 0);
+	const bool is_power_switched =
+	    ((descriptor->hub_characteristics & 0x2) == 0);
 	hub_info->ports = malloc(
 	    sizeof (usb_hub_port_t) * (hub_info->port_count + 1));
@@ -264,4 +262,6 @@
 	if (is_power_switched) {
 		usb_log_debug("Hub power switched\n");
+		const bool has_individual_port_powering =
+		    descriptor->hub_characteristics & 0x1;
 
 		if (!has_individual_port_powering) {
Index: uspace/drv/bus/usb/usbhub/utils.c
===================================================================
--- uspace/drv/bus/usb/usbhub/utils.c	(revision 01bbbb214b5586742b81fb159fe769b0c167dc48)
+++ uspace/drv/bus/usb/usbhub/utils.c	(revision dbb9663316ea6d7478b1030015c0c9e090f19f83)
@@ -147,5 +147,5 @@
 	descriptor->ports_count = sdescriptor[2];
 	/// @fixme handling of endianness??
-	descriptor->hub_characteristics = sdescriptor[4] + 256 * sdescriptor[3];
+	descriptor->hub_characteristics = sdescriptor[3] + 256 * sdescriptor[4];
 	descriptor->pwr_on_2_good_time = sdescriptor[5];
 	descriptor->current_requirement = sdescriptor[6];
