Lines Matching refs:us

177     struct us_data *us = (struct us_data *) pTimer->data_ex;  in timeout_handler()  local
179 struct usb_hcd *hcd = (struct usb_hcd*) us->current_urb->dev->bus->hcpriv; in timeout_handler()
198 US_DEBUGP("Timeout -- cancelling URB %p\n",us->current_urb); in timeout_handler()
200 usb_pipedevice (us->current_urb->pipe), in timeout_handler()
201 usb_pipeendpoint (us->current_urb->pipe), in timeout_handler()
202 …usb_pipein (us->current_urb->pipe) ? "in" : "out", us->current_urb->status, us->current_urb->trans… in timeout_handler()
207 usb_unlink_urb(us->current_urb); in timeout_handler()
251 void usb_Stor_wait_for_completion(struct completion *x, S32 waitFlag, struct us_data *us, U32 u32Wa… in usb_Stor_wait_for_completion() argument
260 usb_unlink_urb(us->current_urb); in usb_Stor_wait_for_completion()
271 static int usb_stor_msg_common(struct us_data *us, int timeout) in usb_stor_msg_common() argument
281 if (us->flags & DONT_SUBMIT) in usb_stor_msg_common()
288 us->current_urb->context = &urb_done; in usb_stor_msg_common()
289 us->current_urb->actual_length = 0; in usb_stor_msg_common()
290 us->current_urb->error_count = 0; in usb_stor_msg_common()
291 us->current_urb->status = 0; in usb_stor_msg_common()
294 us->current_urb->transfer_flags = in usb_stor_msg_common()
296 if (us->current_urb->transfer_buffer == us->iobuf) in usb_stor_msg_common()
297 us->current_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; in usb_stor_msg_common()
298 us->current_urb->transfer_dma = us->iobuf_dma; in usb_stor_msg_common()
299 us->current_urb->setup_dma = us->cr_dma; in usb_stor_msg_common()
304 struct usb_hcd *hcd = us->pusb_dev->bus->hcpriv; in usb_stor_msg_common()
308 us->current_urb->WaitFlag_storage = WaitFlag; in usb_stor_msg_common()
310 status = usb_submit_urb(us->current_urb, GFP_NOIO); in usb_stor_msg_common()
317 set_bit(US_FLIDX_URB_ACTIVE, &us->flags, U32); in usb_stor_msg_common()
320 if (us->flags & DONT_SUBMIT) { in usb_stor_msg_common()
323 if (test_and_clear_bit(US_FLIDX_URB_ACTIVE, &us->flags)) { in usb_stor_msg_common()
325 usb_unlink_urb(us->current_urb); in usb_stor_msg_common()
339 to_timer.data_ex = (U32) us; in usb_stor_msg_common()
348 usb_Stor_wait_for_completion(&urb_done, WaitFlag, us, timeout); in usb_stor_msg_common()
350 clear_bit(US_FLIDX_URB_ACTIVE, &us->flags, U32); in usb_stor_msg_common()
365 return us->current_urb->status; in usb_stor_msg_common()
379 int usb_stor_control_msg(struct us_data *us, U32 pipe, in usb_stor_control_msg() argument
390 us->cr->bRequestType = requesttype; in usb_stor_control_msg()
391 us->cr->bRequest = request; in usb_stor_control_msg()
392 us->cr->wValue = CPUToLE16(value); in usb_stor_control_msg()
393 us->cr->wIndex = CPUToLE16(index); in usb_stor_control_msg()
394 us->cr->wLength = CPUToLE16(size); in usb_stor_control_msg()
397 usb_fill_control_urb(us->current_urb, us->pusb_dev, pipe, in usb_stor_control_msg()
398 (unsigned char*) us->cr, data, size, in usb_stor_control_msg()
400 status = usb_stor_msg_common(us, timeout); in usb_stor_control_msg()
404 status = us->current_urb->actual_length; in usb_stor_control_msg()
409 int usb_stor_clear_halt(struct us_data *us, U32 pipe) in usb_stor_clear_halt() argument
417 result = usb_stor_control_msg(us, us->send_ctrl_pipe, in usb_stor_clear_halt()
422 usb_endpoint_running(us->pusb_dev, usb_pipeendpoint(pipe), in usb_stor_clear_halt()
425 usb_settoggle(us->pusb_dev, usb_pipeendpoint(pipe), in usb_stor_clear_halt()
444 static int interpret_urb_result(struct us_data *us, U32 pipe, in interpret_urb_result() argument
471 if (usb_stor_clear_halt(us, pipe) < 0) in interpret_urb_result()
510 int usb_stor_ctrl_transfer(struct us_data *us, U32 pipe, in usb_stor_ctrl_transfer() argument
521 us->cr->bRequestType = requesttype; in usb_stor_ctrl_transfer()
522 us->cr->bRequest = request; in usb_stor_ctrl_transfer()
523 us->cr->wValue = CPUToLE16(value); in usb_stor_ctrl_transfer()
524 us->cr->wIndex = CPUToLE16(index); in usb_stor_ctrl_transfer()
525 us->cr->wLength = CPUToLE16(size); in usb_stor_ctrl_transfer()
528 usb_fill_control_urb(us->current_urb, us->pusb_dev, pipe, in usb_stor_ctrl_transfer()
529 (unsigned char*) us->cr, data, size, in usb_stor_ctrl_transfer()
531 result = usb_stor_msg_common(us, 10000); in usb_stor_ctrl_transfer()
533 return interpret_urb_result(us, pipe, size, result, in usb_stor_ctrl_transfer()
534 us->current_urb->actual_length); in usb_stor_ctrl_transfer()
538 int usb_stor_intr_transfer(struct us_data *us, void *buf, U32 length) in usb_stor_intr_transfer() argument
541 U32 pipe = us->recv_intr_pipe; in usb_stor_intr_transfer()
547 maxp = usb_maxpacket(us->pusb_dev, pipe, usb_pipeout(pipe)); in usb_stor_intr_transfer()
553 usb_fill_bulk_urb(us->current_urb, us->pusb_dev, pipe, buf, in usb_stor_intr_transfer()
556 usb_fill_int_urb(us->current_urb, us->pusb_dev, pipe, buf, in usb_stor_intr_transfer()
558 us->ep_bInterval); in usb_stor_intr_transfer()
562 result = usb_stor_msg_common(us, 10000); in usb_stor_intr_transfer()
564 return interpret_urb_result(us, pipe, length, result, in usb_stor_intr_transfer()
565 us->current_urb->actual_length); in usb_stor_intr_transfer()
589 int usb_stor_bulk_transfer_buf(struct us_data *us, U32 pipe, in usb_stor_bulk_transfer_buf() argument
595 usb_fill_bulk_urb(us->current_urb, us->pusb_dev, pipe, buf, length, in usb_stor_bulk_transfer_buf()
597 result = usb_stor_msg_common(us, 10000); in usb_stor_bulk_transfer_buf()
600 *act_len = us->current_urb->actual_length; in usb_stor_bulk_transfer_buf()
601 return interpret_urb_result(us, pipe, length, result, in usb_stor_bulk_transfer_buf()
602 us->current_urb->actual_length); in usb_stor_bulk_transfer_buf()
613 int usb_stor_bulk_transfer_async_prepare(struct us_data *us, struct urb *purb, U32 pipe, in usb_stor_bulk_transfer_async_prepare() argument
618 usb_fill_bulk_urb(purb, us->pusb_dev, pipe, buf, length, in usb_stor_bulk_transfer_async_prepare()
629 if (purb->transfer_buffer == us->iobuf) in usb_stor_bulk_transfer_async_prepare()
635 int usb_stor_bulk_transfer_async_wait(struct us_data *us, struct urb *purb, in usb_stor_bulk_transfer_async_wait() argument
642 status = interpret_urb_result(us, pipe, length, purb->status, in usb_stor_bulk_transfer_async_wait()
644 clear_bit(US_FLIDX_URB_ACTIVE, &us->flags, U32); in usb_stor_bulk_transfer_async_wait()
651 int usb_stor_bulk_transfer_async_send(struct us_data *us, struct urb *purb) in usb_stor_bulk_transfer_async_send() argument
660 set_bit(US_FLIDX_URB_ACTIVE, &us->flags, U32); in usb_stor_bulk_transfer_async_send()
669 purb->to_timer.data_ex = (U32) us; in usb_stor_bulk_transfer_async_send()
678 int usb_stor_bulk_transfer_sglist(struct us_data *us, U32 pipe,
685 if (us->flags & DONT_SUBMIT)
691 result = usb_sg_init(&us->current_sg, us->pusb_dev, pipe, 0,
699 set_bit(US_FLIDX_SG_ACTIVE, &us->flags);
702 if (us->flags & DONT_SUBMIT) {
705 if (test_and_clear_bit(US_FLIDX_SG_ACTIVE, &us->flags)) {
707 usb_sg_cancel(&us->current_sg);
712 usb_sg_wait(&us->current_sg);
713 clear_bit(US_FLIDX_SG_ACTIVE, &us->flags);
715 result = us->current_sg.status;
717 *act_len = us->current_sg.bytes;
718 return interpret_urb_result(us, pipe, length, result,
719 us->current_sg.bytes);
724 int usb_stor_bulk_transfer_sg(struct us_data* us, U32 pipe, in usb_stor_bulk_transfer_sg() argument
740 result = usb_stor_bulk_transfer_buf(us, pipe, buf, in usb_stor_bulk_transfer_sg()
752 void usb_stor_invoke_transport(Scsi_Cmnd *srb, struct us_data *us) in usb_stor_invoke_transport() argument
769 result = us->transport(srb, us); in usb_stor_invoke_transport()
771 if (us->sm_state == US_STATE_ABORTING) in usb_stor_invoke_transport()
810 if (us->protocol == US_PR_CB || us->protocol == US_PR_DPCM_USB) in usb_stor_invoke_transport()
818 if (us->subclass == US_SC_UFI && in usb_stor_invoke_transport()
865 if (us->subclass == US_SC_RBC || us->subclass == US_SC_SCSI) in usb_stor_invoke_transport()
926 temp_result = us->transport(&us->srb, us); in usb_stor_invoke_transport()
944 if (us->sm_state == US_STATE_ABORTING) in usb_stor_invoke_transport()
955 if (!(us->flags & US_FL_SCM_MULT_TARG)) in usb_stor_invoke_transport()
1019 if ((us->protocol == US_PR_CB || us->protocol == US_PR_DPCM_USB) && in usb_stor_invoke_transport()
1027 usb_reset_device(us->pusb_dev); in usb_stor_invoke_transport()
1033 if (us->protocol == US_PR_BULK) in usb_stor_invoke_transport()
1036 clear_bit(US_FLIDX_ABORTING, &us->flags, U32); in usb_stor_invoke_transport()
1038 usb_reset_device(us->pusb_dev); //Note_Timeout in usb_stor_invoke_transport()
1043 void usb_stor_stop_transport(struct us_data *us) in usb_stor_stop_transport() argument
1048 if (test_and_clear_bit(US_FLIDX_URB_ACTIVE, &us->flags)) { in usb_stor_stop_transport()
1050 usb_unlink_urb(us->current_urb); in usb_stor_stop_transport()
1058 int usb_stor_CBI_transport(Scsi_Cmnd *srb, struct us_data *us) in usb_stor_CBI_transport() argument
1065 result = usb_stor_ctrl_transfer(us, us->send_ctrl_pipe, in usb_stor_CBI_transport()
1068 us->ifnum, srb->cmnd, srb->cmd_len); in usb_stor_CBI_transport()
1089 us->recv_bulk_pipe : us->send_bulk_pipe; in usb_stor_CBI_transport()
1090 result = usb_stor_bulk_transfer_sg(us, pipe, in usb_stor_CBI_transport()
1119 result = usb_stor_intr_transfer(us, us->iobuf, 2); in usb_stor_CBI_transport()
1121 us->iobuf[0], us->iobuf[1]); in usb_stor_CBI_transport()
1126 if (us->subclass == US_SC_UFI) in usb_stor_CBI_transport()
1133 if (us->iobuf[0]) in usb_stor_CBI_transport()
1171 if (us->iobuf[0]) in usb_stor_CBI_transport()
1174 us->iobuf[0]); in usb_stor_CBI_transport()
1178 switch (us->iobuf[1] & 0x0F) in usb_stor_CBI_transport()
1223 int usb_stor_CB_transport(Scsi_Cmnd *srb, struct us_data *us) in usb_stor_CB_transport() argument
1230 result = usb_stor_ctrl_transfer(us, us->send_ctrl_pipe, in usb_stor_CB_transport()
1233 us->ifnum, srb->cmnd, srb->cmd_len); in usb_stor_CB_transport()
1284 us->recv_bulk_pipe : us->send_bulk_pipe; in usb_stor_CB_transport()
1285 result = usb_stor_bulk_transfer_sg(us, pipe, in usb_stor_CB_transport()
1298 int usb_stor_Bulk_max_lun(struct us_data *us) in usb_stor_Bulk_max_lun() argument
1303 result = usb_stor_control_msg(us, us->recv_ctrl_pipe, in usb_stor_Bulk_max_lun()
1307 0, us->ifnum, us->iobuf, 1, HZ); in usb_stor_Bulk_max_lun()
1310 result, us->iobuf[0]); in usb_stor_Bulk_max_lun()
1314 return us->iobuf[0]; in usb_stor_Bulk_max_lun()
1331 int usb_stor_Bulk_transport(Scsi_Cmnd *srb, struct us_data *us) in usb_stor_Bulk_transport() argument
1334 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *)(us->iobuf - tmp_iobuf); in usb_stor_Bulk_transport()
1335 struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *)(us->iobuf - tmp_iobuf); in usb_stor_Bulk_transport()
1363 result = usb_stor_bulk_transfer_async_prepare(us, us->current_urb, us->send_bulk_pipe, in usb_stor_Bulk_transport()
1369 result = usb_stor_bulk_transfer_async_send(us, us->current_urb); in usb_stor_Bulk_transport()
1376 us->recv_bulk_pipe : us->send_bulk_pipe; in usb_stor_Bulk_transport()
1379 result = usb_stor_bulk_transfer_async_prepare(us, us->data_urb, pipe, in usb_stor_Bulk_transport()
1385 result = usb_stor_bulk_transfer_async_wait(us, us->current_urb, in usb_stor_Bulk_transport()
1386 us->send_bulk_pipe, US_BULK_CB_WRAP_LEN); in usb_stor_Bulk_transport()
1391 result = usb_stor_bulk_transfer_async_send(us, us->data_urb); in usb_stor_Bulk_transport()
1406 CSW_relt = usb_stor_bulk_transfer_async_prepare(us, us->status_urb, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1415 result = usb_stor_bulk_transfer_async_wait(us, us->data_urb, pipe, transfer_length); in usb_stor_Bulk_transport()
1422 result = usb_stor_bulk_transfer_async_wait(us, us->current_urb, in usb_stor_Bulk_transport()
1423 us->send_bulk_pipe, US_BULK_CB_WRAP_LEN); in usb_stor_Bulk_transport()
1432 result = usb_stor_bulk_transfer_async_prepare(us, us->status_urb, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1438 result = usb_stor_bulk_transfer_async_send(us, us->status_urb); in usb_stor_Bulk_transport()
1447 result = usb_stor_bulk_transfer_async_wait(us, us->status_urb, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1453 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1457 result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in usb_stor_Bulk_transport()
1467 us->recv_bulk_pipe : us->send_bulk_pipe; in usb_stor_Bulk_transport()
1468 result = usb_stor_bulk_transfer_sg(us, pipe, in usb_stor_Bulk_transport()
1482 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1490 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1574 static int usb_stor_reset_common(struct us_data *us, in usb_stor_reset_common() argument
1583 result = usb_stor_control_msg(us, us->send_ctrl_pipe, in usb_stor_reset_common()
1593 up(&us->dev_semaphore); in usb_stor_reset_common()
1597 down(&us->dev_semaphore); in usb_stor_reset_common()
1599 if (test_bit(US_FLIDX_DISCONNECTING, &us->flags)) in usb_stor_reset_common()
1606 result = usb_stor_clear_halt(us, us->recv_bulk_pipe); in usb_stor_reset_common()
1609 result2 = usb_stor_clear_halt(us, us->send_bulk_pipe); in usb_stor_reset_common()
1653 int usb_stor_CB_reset(struct us_data *us) in usb_stor_CB_reset() argument
1657 memset(us->iobuf, 0xFF, CB_RESET_CMD_SIZE); in usb_stor_CB_reset()
1658 us->iobuf[0] = SEND_DIAGNOSTIC; in usb_stor_CB_reset()
1659 us->iobuf[1] = 4; in usb_stor_CB_reset()
1660 return usb_stor_reset_common(us, US_CBI_ADSC, in usb_stor_CB_reset()
1662 0, us->ifnum, us->iobuf, CB_RESET_CMD_SIZE); in usb_stor_CB_reset()
1666 int usb_stor_Bulk_reset(struct us_data *us) in usb_stor_Bulk_reset() argument
1670 return usb_stor_reset_common(us, US_BULK_RESET_REQUEST, in usb_stor_Bulk_reset()
1672 0, us->ifnum, NULL, 0); in usb_stor_Bulk_reset()