 +		}
 +		break;
 +	
-+	case M_DATA_COMPLETE:
++	case DEV_ACTIVATE_DATA_COMPLETE:
 +		timeout = fpi_timeout_add(1, async_sleep_cb, ssm);
 +
 +		if (timeout == NULL) {

+	
+	struct usb_action *action = &data->actions[ssm->cur_state];
+	struct libusb_transfer *transfer;
+	int ret;
+	enum {BULK_TIMEOUT = 5000};
+	
+	switch (action->type) {
+	case ACTION_SEND:

+			return;
+		}
+		libusb_fill_bulk_transfer(transfer, data->device->udev, action->endpoint, data->receive_buf,
+		                          action->size, async_recv_cb, ssm, data->timeout);
+		ret = libusb_submit_transfer(transfer);
+		break;
+		
