Index: uspace/drv/nic/ar9271/ar9271.c
===================================================================
--- uspace/drv/nic/ar9271/ar9271.c	(revision fb1007efd862a6a47e2acf22a761d8507bd10c0b)
+++ uspace/drv/nic/ar9271/ar9271.c	(revision fe97c5e008b48a42440c0aa06001d6f85d4346fe)
@@ -772,5 +772,6 @@
 		size_t chunk_size = min(remain_size, MAX_TRANSFER_SIZE);
 		memcpy(buffer, current_data, chunk_size);
-		int rc = usb_control_request_set(&usb_device->ctrl_pipe,
+		usb_pipe_t *ctrl_pipe = usb_device_get_default_pipe(usb_device);
+		int rc = usb_control_request_set(ctrl_pipe,
 		    USB_REQUEST_TYPE_VENDOR,
 		    USB_REQUEST_RECIPIENT_DEVICE,
@@ -799,5 +800,6 @@
 	 * device side buffer which we will check in htc_check_ready function.
 	*/
-	int rc = usb_control_request_set(&usb_device->ctrl_pipe,
+	usb_pipe_t *ctrl_pipe = usb_device_get_default_pipe(usb_device);
+	int rc = usb_control_request_set(ctrl_pipe,
 	    USB_REQUEST_TYPE_VENDOR,
 	    USB_REQUEST_RECIPIENT_DEVICE,
@@ -829,14 +831,7 @@
 {
 	/* USB framework initialization. */
-	usb_device_t *usb_device = calloc(1, sizeof(usb_device_t));
-	if (usb_device == NULL) {
-		usb_log_error("USB device structure allocation failed.\n");
-		return NULL;
-	}
-	
 	const char *err_msg = NULL;
-	int rc = usb_device_init(usb_device, dev, endpoints, &err_msg);
-	if (rc != EOK) {
-		free(usb_device);
+	int rc = usb_device_create_ddf(dev, endpoints, &err_msg);
+	if (rc != EOK) {
 		usb_log_error("Failed to create USB device: %s, "
 		    "ERR_NUM = %d\n", err_msg, rc);
@@ -847,5 +842,4 @@
 	ar9271_t *ar9271 = calloc(1, sizeof(ar9271_t));
 	if (!ar9271) {
-		free(usb_device);
 		usb_log_error("Failed to allocate memory for device "
 		    "structure.\n");
@@ -855,8 +849,7 @@
 	ar9271->ddf_dev = dev;
 	
-	rc = ar9271_init(ar9271, usb_device);
+	rc = ar9271_init(ar9271, usb_device_get(dev));
 	if (rc != EOK) {
 		free(ar9271);
-		free(usb_device);
 		usb_log_error("Failed to initialize AR9271 structure: %d\n",
 		    rc);
Index: uspace/drv/nic/ar9271/ath_usb.c
===================================================================
--- uspace/drv/nic/ar9271/ath_usb.c	(revision fb1007efd862a6a47e2acf22a761d8507bd10c0b)
+++ uspace/drv/nic/ar9271/ath_usb.c	(revision fe97c5e008b48a42440c0aa06001d6f85d4346fe)
@@ -98,7 +98,7 @@
 {
 	ath_usb_t *ath_usb = (ath_usb_t *) ath->specific_data;
-	usb_pipe_t *pipe =
-	    &ath_usb->usb_device->pipes[ath_usb->output_ctrl_pipe_number].pipe;
-	
+	usb_pipe_t *pipe = &usb_device_get_mapped_ep(
+	    ath_usb->usb_device, ath_usb->output_ctrl_pipe_number)->pipe;
+
 	return usb_pipe_write(pipe, buffer, buffer_size);
 }
@@ -118,7 +118,7 @@
 {
 	ath_usb_t *ath_usb = (ath_usb_t *) ath->specific_data;
-	usb_pipe_t *pipe =
-	    &ath_usb->usb_device->pipes[ath_usb->input_ctrl_pipe_number].pipe;
-	
+	usb_pipe_t *pipe = &usb_device_get_mapped_ep(
+	    ath_usb->usb_device, ath_usb->input_ctrl_pipe_number)->pipe;
+
 	return usb_pipe_read(pipe, buffer, buffer_size, transferred_size);
 }
@@ -141,19 +141,19 @@
 	memcpy(complete_buffer + sizeof(ath_usb_data_header_t),
 	    buffer, buffer_size);
-	
+
 	ath_usb_data_header_t *data_header =
 	    (ath_usb_data_header_t *) complete_buffer;
 	data_header->length = host2uint16_t_le(buffer_size);
 	data_header->tag = host2uint16_t_le(TX_TAG);
-	
+
 	ath_usb_t *ath_usb = (ath_usb_t *) ath->specific_data;
-	usb_pipe_t *pipe =
-	    &ath_usb->usb_device->pipes[ath_usb->output_data_pipe_number].pipe;
-	
+	usb_pipe_t *pipe = &usb_device_get_mapped_ep(
+	    ath_usb->usb_device, ath_usb->output_data_pipe_number)->pipe;
+
 	int ret_val = usb_pipe_write(pipe, complete_buffer,
 	    complete_buffer_size);
-	
+
 	free(complete_buffer);
-	
+
 	return ret_val;
 }
@@ -173,8 +173,7 @@
 {
 	ath_usb_t *ath_usb = (ath_usb_t *) ath->specific_data;
-	usb_pipe_t *pipe =
-	    &ath_usb->usb_device->pipes[ath_usb->input_data_pipe_number].pipe;
-	
-	return usb_pipe_read(pipe, buffer, buffer_size,
-	    transferred_size);
+	usb_pipe_t *pipe = &usb_device_get_mapped_ep(
+	    ath_usb->usb_device, ath_usb->input_data_pipe_number)->pipe;
+
+	return usb_pipe_read(pipe, buffer, buffer_size, transferred_size);
 }
