Index: uspace/lib/usbdev/src/devdrv.c
===================================================================
--- uspace/lib/usbdev/src/devdrv.c	(revision 8e4219abd8be9844df15e59ea2ac4481dbd47120)
+++ uspace/lib/usbdev/src/devdrv.c	(revision d93f5afb66a052121af391b708957e081d9184d7)
@@ -45,10 +45,8 @@
 /** USB device structure. */
 typedef struct usb_device {
-	/** Connection to USB hc, used by wire and arbitrary requests. */
-	usb_hc_connection_t hc_conn;
-	/** Connection backing the pipes.
-	 * Typically, you will not need to use this attribute at all.
-	 */
-	usb_device_connection_t wire;
+	/** Connection to device on USB bus */
+	usb_dev_session_t *bus_session;
+	/** devman handle */
+	devman_handle_t handle;
 	/** The default control pipe. */
 	usb_pipe_t ctrl_pipe;
@@ -78,8 +76,4 @@
 	void *driver_data;
 
-	/** Connection to device on USB bus */
-	usb_dev_session_t *bus_session;
-	/** devman handle */
-	devman_handle_t handle;
 } usb_device_t;
 
@@ -157,12 +151,9 @@
 	assert(usb_dev->descriptors.full_config == NULL);
 
-	/* It is worth to start a long transfer. */
-	usb_pipe_start_long_transfer(&usb_dev->ctrl_pipe);
-
 	/* Get the device descriptor. */
 	int rc = usb_request_get_device_descriptor(&usb_dev->ctrl_pipe,
 	    &usb_dev->descriptors.device);
 	if (rc != EOK) {
-		goto leave;
+		return rc;
 	}
 
@@ -173,6 +164,4 @@
 	    &usb_dev->descriptors.full_config_size);
 
-leave:
-	usb_pipe_end_long_transfer(&usb_dev->ctrl_pipe);
 
 	return rc;
@@ -198,5 +187,4 @@
  * - registers endpoints with the host controller
  *
- * @param[in] wire Initialized backing connection to the host controller.
  * @param[in] endpoints Endpoints description, NULL terminated.
  * @param[in] config_descr Configuration descriptor of active configuration.
@@ -240,5 +228,5 @@
 	int rc = usb_pipe_initialize_from_configuration(pipes, pipe_count,
 	    usb_dev->descriptors.full_config,
-	    usb_dev->descriptors.full_config_size, &usb_dev->wire,
+	    usb_dev->descriptors.full_config_size,
 	    usb_dev->bus_session);
 	if (rc != EOK) {
@@ -353,32 +341,4 @@
 }
 
-static int usb_dev_get_info(usb_device_t *usb_dev, devman_handle_t *handle,
-    usb_address_t *address, int *iface_no)
-{
-	assert(usb_dev);
-
-	int ret = EOK;
-	async_exch_t *exch = async_exchange_begin(usb_dev->bus_session);
-	if (!exch)
-		ret = ENOMEM;
-
-	if (ret == EOK && address)
-		ret = usb_get_my_address(exch, address);
-
-	if (ret == EOK && handle)
-		ret = usb_get_hc_handle(exch, handle);
-
-	if (ret == EOK && iface_no) {
-		ret = usb_get_my_interface(exch, iface_no);
-		if (ret == ENOTSUP) {
-			ret = EOK;
-			*iface_no = -1;
-		}
-	}
-
-	async_exchange_end(exch);
-	return ret;
-}
-
 /** Clean instance of a USB device.
  *
@@ -393,5 +353,4 @@
 		usb_device_destroy_pipes(usb_dev);
 		/* Ignore errors and hope for the best. */
-		usb_hc_connection_deinitialize(&usb_dev->hc_conn);
 		usb_alternate_interfaces_deinit(&usb_dev->alternate_interfaces);
 		usb_device_release_descriptors(usb_dev);
@@ -437,31 +396,8 @@
 	}
 
-	/* Get assigned params */
-	devman_handle_t hc_handle;
-	usb_address_t address;
-
-	int rc = usb_dev_get_info(usb_dev, &hc_handle, &address, NULL);
-	if (rc != EOK) {
-		usb_dev_disconnect(usb_dev->bus_session);
-		*errstr_ptr = "device parameters retrieval";
-		return rc;
-	}
-
-	/* Initialize hc connection. */
-	usb_hc_connection_initialize(&usb_dev->hc_conn, hc_handle);
-
-	/* Initialize backing wire and control pipe. */
-	rc = usb_device_connection_initialize(
-	    &usb_dev->wire, &usb_dev->hc_conn, address);
-	if (rc != EOK) {
-		usb_dev_disconnect(usb_dev->bus_session);
-		*errstr_ptr = "device connection initialization";
-		return rc;
-	}
-
 	/* This pipe was registered by the hub driver,
 	 * during device initialization. */
-	rc = usb_pipe_initialize_default_control(
-	    &usb_dev->ctrl_pipe, &usb_dev->wire, usb_dev->bus_session);
+	int rc = usb_pipe_initialize_default_control(
+	    &usb_dev->ctrl_pipe, usb_dev->bus_session);
 	if (rc != EOK) {
 		usb_dev_disconnect(usb_dev->bus_session);
@@ -470,17 +406,8 @@
 	}
 
-	/* Open hc connection for pipe registration. */
-	rc = usb_hc_connection_open(&usb_dev->hc_conn);
-	if (rc != EOK) {
-		usb_dev_disconnect(usb_dev->bus_session);
-		*errstr_ptr = "hc connection open";
-		return rc;
-	}
-
 	/* Retrieve standard descriptors. */
 	rc = usb_device_retrieve_descriptors(usb_dev);
 	if (rc != EOK) {
 		*errstr_ptr = "descriptor retrieval";
-		usb_hc_connection_close(&usb_dev->hc_conn);
 		usb_dev_disconnect(usb_dev->bus_session);
 		return rc;
@@ -499,5 +426,4 @@
 		rc = usb_device_create_pipes(usb_dev, endpoints);
 		if (rc != EOK) {
-			usb_hc_connection_close(&usb_dev->hc_conn);
 			usb_device_fini(usb_dev);
 			*errstr_ptr = "pipes initialization";
@@ -506,5 +432,4 @@
 	}
 
-	usb_hc_connection_close(&usb_dev->hc_conn);
 	return EOK;
 }
@@ -645,15 +570,4 @@
 }
 
-usb_address_t usb_device_address(usb_device_t *usb_dev)
-{
-	assert(usb_dev);
-	return usb_dev->wire.address;
-}
-
-devman_handle_t usb_device_hc_handle(usb_device_t *usb_dev)
-{
-	assert(usb_dev);
-	return usb_dev->hc_conn.hc_handle;
-}
 /**
  * @}
