Lines Matching refs:us
128 static int usb_stor_msg_common(struct us_data *us, int timeout) in usb_stor_msg_common() argument
135 if (test_bit(US_FLIDX_ABORTING, &us->dflags)) in usb_stor_msg_common()
142 us->current_urb->context = &urb_done; in usb_stor_msg_common()
143 us->current_urb->transfer_flags = 0; in usb_stor_msg_common()
149 if (us->current_urb->transfer_buffer == us->iobuf) in usb_stor_msg_common()
150 us->current_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; in usb_stor_msg_common()
151 us->current_urb->transfer_dma = us->iobuf_dma; in usb_stor_msg_common()
154 status = usb_submit_urb(us->current_urb, GFP_NOIO); in usb_stor_msg_common()
162 set_bit(US_FLIDX_URB_ACTIVE, &us->dflags); in usb_stor_msg_common()
165 if (test_bit(US_FLIDX_ABORTING, &us->dflags)) { in usb_stor_msg_common()
168 if (test_and_clear_bit(US_FLIDX_URB_ACTIVE, &us->dflags)) { in usb_stor_msg_common()
169 usb_stor_dbg(us, "-- cancelling URB\n"); in usb_stor_msg_common()
170 usb_unlink_urb(us->current_urb); in usb_stor_msg_common()
178 clear_bit(US_FLIDX_URB_ACTIVE, &us->dflags); in usb_stor_msg_common()
181 usb_stor_dbg(us, "%s -- cancelling URB\n", in usb_stor_msg_common()
183 usb_kill_urb(us->current_urb); in usb_stor_msg_common()
187 return us->current_urb->status; in usb_stor_msg_common()
194 int usb_stor_control_msg(struct us_data *us, unsigned int pipe, in usb_stor_control_msg() argument
200 usb_stor_dbg(us, "rq=%02x rqtype=%02x value=%04x index=%02x len=%u\n", in usb_stor_control_msg()
204 us->cr->bRequestType = requesttype; in usb_stor_control_msg()
205 us->cr->bRequest = request; in usb_stor_control_msg()
206 us->cr->wValue = cpu_to_le16(value); in usb_stor_control_msg()
207 us->cr->wIndex = cpu_to_le16(index); in usb_stor_control_msg()
208 us->cr->wLength = cpu_to_le16(size); in usb_stor_control_msg()
211 usb_fill_control_urb(us->current_urb, us->pusb_dev, pipe, in usb_stor_control_msg()
212 (unsigned char*) us->cr, data, size, in usb_stor_control_msg()
214 status = usb_stor_msg_common(us, timeout); in usb_stor_control_msg()
218 status = us->current_urb->actual_length; in usb_stor_control_msg()
235 int usb_stor_clear_halt(struct us_data *us, unsigned int pipe) in usb_stor_clear_halt() argument
243 result = usb_stor_control_msg(us, us->send_ctrl_pipe, in usb_stor_clear_halt()
249 usb_reset_endpoint(us->pusb_dev, endp); in usb_stor_clear_halt()
251 usb_stor_dbg(us, "result = %d\n", result); in usb_stor_clear_halt()
264 static int interpret_urb_result(struct us_data *us, unsigned int pipe, in interpret_urb_result() argument
267 usb_stor_dbg(us, "Status code %d; transferred %u/%u\n", in interpret_urb_result()
274 usb_stor_dbg(us, "-- short transfer\n"); in interpret_urb_result()
278 usb_stor_dbg(us, "-- transfer complete\n"); in interpret_urb_result()
286 usb_stor_dbg(us, "-- stall on control pipe\n"); in interpret_urb_result()
291 usb_stor_dbg(us, "clearing endpoint halt for pipe 0x%x\n", in interpret_urb_result()
293 if (usb_stor_clear_halt(us, pipe) < 0) in interpret_urb_result()
299 usb_stor_dbg(us, "-- babble\n"); in interpret_urb_result()
304 usb_stor_dbg(us, "-- transfer cancelled\n"); in interpret_urb_result()
309 usb_stor_dbg(us, "-- short read transfer\n"); in interpret_urb_result()
314 usb_stor_dbg(us, "-- abort or disconnect in progress\n"); in interpret_urb_result()
319 usb_stor_dbg(us, "-- unknown error\n"); in interpret_urb_result()
328 int usb_stor_ctrl_transfer(struct us_data *us, unsigned int pipe, in usb_stor_ctrl_transfer() argument
334 usb_stor_dbg(us, "rq=%02x rqtype=%02x value=%04x index=%02x len=%u\n", in usb_stor_ctrl_transfer()
338 us->cr->bRequestType = requesttype; in usb_stor_ctrl_transfer()
339 us->cr->bRequest = request; in usb_stor_ctrl_transfer()
340 us->cr->wValue = cpu_to_le16(value); in usb_stor_ctrl_transfer()
341 us->cr->wIndex = cpu_to_le16(index); in usb_stor_ctrl_transfer()
342 us->cr->wLength = cpu_to_le16(size); in usb_stor_ctrl_transfer()
345 usb_fill_control_urb(us->current_urb, us->pusb_dev, pipe, in usb_stor_ctrl_transfer()
346 (unsigned char*) us->cr, data, size, in usb_stor_ctrl_transfer()
348 result = usb_stor_msg_common(us, 0); in usb_stor_ctrl_transfer()
350 return interpret_urb_result(us, pipe, size, result, in usb_stor_ctrl_transfer()
351 us->current_urb->actual_length); in usb_stor_ctrl_transfer()
362 static int usb_stor_intr_transfer(struct us_data *us, void *buf, in usb_stor_intr_transfer() argument
366 unsigned int pipe = us->recv_intr_pipe; in usb_stor_intr_transfer()
369 usb_stor_dbg(us, "xfer %u bytes\n", length); in usb_stor_intr_transfer()
372 maxp = usb_maxpacket(us->pusb_dev, pipe, usb_pipeout(pipe)); in usb_stor_intr_transfer()
377 usb_fill_int_urb(us->current_urb, us->pusb_dev, pipe, buf, in usb_stor_intr_transfer()
379 us->ep_bInterval); in usb_stor_intr_transfer()
380 result = usb_stor_msg_common(us, 0); in usb_stor_intr_transfer()
382 return interpret_urb_result(us, pipe, length, result, in usb_stor_intr_transfer()
383 us->current_urb->actual_length); in usb_stor_intr_transfer()
391 int usb_stor_bulk_transfer_buf(struct us_data *us, unsigned int pipe, in usb_stor_bulk_transfer_buf() argument
396 usb_stor_dbg(us, "xfer %u bytes\n", length); in usb_stor_bulk_transfer_buf()
399 usb_fill_bulk_urb(us->current_urb, us->pusb_dev, pipe, buf, length, in usb_stor_bulk_transfer_buf()
401 result = usb_stor_msg_common(us, 0); in usb_stor_bulk_transfer_buf()
405 *act_len = us->current_urb->actual_length; in usb_stor_bulk_transfer_buf()
406 return interpret_urb_result(us, pipe, length, result, in usb_stor_bulk_transfer_buf()
407 us->current_urb->actual_length); in usb_stor_bulk_transfer_buf()
417 static int usb_stor_bulk_transfer_sglist(struct us_data *us, unsigned int pipe, in usb_stor_bulk_transfer_sglist() argument
424 if (test_bit(US_FLIDX_ABORTING, &us->dflags)) in usb_stor_bulk_transfer_sglist()
428 usb_stor_dbg(us, "xfer %u bytes, %d entries\n", length, num_sg); in usb_stor_bulk_transfer_sglist()
429 result = usb_sg_init(&us->current_sg, us->pusb_dev, pipe, 0, in usb_stor_bulk_transfer_sglist()
432 usb_stor_dbg(us, "usb_sg_init returned %d\n", result); in usb_stor_bulk_transfer_sglist()
438 set_bit(US_FLIDX_SG_ACTIVE, &us->dflags); in usb_stor_bulk_transfer_sglist()
441 if (test_bit(US_FLIDX_ABORTING, &us->dflags)) { in usb_stor_bulk_transfer_sglist()
444 if (test_and_clear_bit(US_FLIDX_SG_ACTIVE, &us->dflags)) { in usb_stor_bulk_transfer_sglist()
445 usb_stor_dbg(us, "-- cancelling sg request\n"); in usb_stor_bulk_transfer_sglist()
446 usb_sg_cancel(&us->current_sg); in usb_stor_bulk_transfer_sglist()
451 usb_sg_wait(&us->current_sg); in usb_stor_bulk_transfer_sglist()
452 clear_bit(US_FLIDX_SG_ACTIVE, &us->dflags); in usb_stor_bulk_transfer_sglist()
454 result = us->current_sg.status; in usb_stor_bulk_transfer_sglist()
456 *act_len = us->current_sg.bytes; in usb_stor_bulk_transfer_sglist()
457 return interpret_urb_result(us, pipe, length, result, in usb_stor_bulk_transfer_sglist()
458 us->current_sg.bytes); in usb_stor_bulk_transfer_sglist()
465 int usb_stor_bulk_srb(struct us_data* us, unsigned int pipe, in usb_stor_bulk_srb() argument
469 int result = usb_stor_bulk_transfer_sglist(us, pipe, scsi_sglist(srb), in usb_stor_bulk_srb()
487 int usb_stor_bulk_transfer_sg(struct us_data* us, unsigned int pipe, in usb_stor_bulk_transfer_sg() argument
496 result = usb_stor_bulk_transfer_sglist(us, pipe, in usb_stor_bulk_transfer_sg()
502 result = usb_stor_bulk_transfer_buf(us, pipe, buf, in usb_stor_bulk_transfer_sg()
522 static void last_sector_hacks(struct us_data *us, struct scsi_cmnd *srb) in last_sector_hacks() argument
541 if (!us->use_last_sector_hacks) in last_sector_hacks()
565 us->use_last_sector_hacks = 0; in last_sector_hacks()
576 if (++us->last_sector_retries < 3) in last_sector_hacks()
589 us->last_sector_retries = 0; in last_sector_hacks()
597 void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us) in usb_stor_invoke_transport() argument
604 result = us->transport(srb, us); in usb_stor_invoke_transport()
609 if (test_bit(US_FLIDX_TIMED_OUT, &us->dflags)) { in usb_stor_invoke_transport()
610 usb_stor_dbg(us, "-- command was aborted\n"); in usb_stor_invoke_transport()
617 usb_stor_dbg(us, "-- transport indicates error, resetting\n"); in usb_stor_invoke_transport()
625 last_sector_hacks(us, srb); in usb_stor_invoke_transport()
644 if ((us->protocol == USB_PR_CB || us->protocol == USB_PR_DPCM_USB) && in usb_stor_invoke_transport()
646 usb_stor_dbg(us, "-- CB transport device requiring auto-sense\n"); in usb_stor_invoke_transport()
656 usb_stor_dbg(us, "-- transport indicates command failure\n"); in usb_stor_invoke_transport()
668 !(us->fflags & US_FL_SANE_SENSE) && in usb_stor_invoke_transport()
669 !(us->fflags & US_FL_BAD_SENSE) && in usb_stor_invoke_transport()
671 usb_stor_dbg(us, "-- SAT supported, increasing auto-sense\n"); in usb_stor_invoke_transport()
672 us->fflags |= US_FL_SANE_SENSE; in usb_stor_invoke_transport()
685 usb_stor_dbg(us, "-- unexpectedly short transfer\n"); in usb_stor_invoke_transport()
698 if (us->fflags & US_FL_SANE_SENSE) in usb_stor_invoke_transport()
701 usb_stor_dbg(us, "Issuing auto-REQUEST_SENSE\n"); in usb_stor_invoke_transport()
706 if (us->subclass == USB_SC_RBC || us->subclass == USB_SC_SCSI || in usb_stor_invoke_transport()
707 us->subclass == USB_SC_CYP_ATACB) in usb_stor_invoke_transport()
714 temp_result = us->transport(us->srb, us); in usb_stor_invoke_transport()
719 if (test_bit(US_FLIDX_TIMED_OUT, &us->dflags)) { in usb_stor_invoke_transport()
720 usb_stor_dbg(us, "-- auto-sense aborted\n"); in usb_stor_invoke_transport()
725 us->fflags &= ~US_FL_SANE_SENSE; in usb_stor_invoke_transport()
726 us->fflags |= US_FL_BAD_SENSE; in usb_stor_invoke_transport()
738 usb_stor_dbg(us, "-- auto-sense failure, retry small sense\n"); in usb_stor_invoke_transport()
740 us->fflags &= ~US_FL_SANE_SENSE; in usb_stor_invoke_transport()
741 us->fflags |= US_FL_BAD_SENSE; in usb_stor_invoke_transport()
747 usb_stor_dbg(us, "-- auto-sense failure\n"); in usb_stor_invoke_transport()
754 if (!(us->fflags & US_FL_SCM_MULT_TARG)) in usb_stor_invoke_transport()
764 !(us->fflags & US_FL_SANE_SENSE) && in usb_stor_invoke_transport()
765 !(us->fflags & US_FL_BAD_SENSE) && in usb_stor_invoke_transport()
767 usb_stor_dbg(us, "-- SANE_SENSE support enabled\n"); in usb_stor_invoke_transport()
768 us->fflags |= US_FL_SANE_SENSE; in usb_stor_invoke_transport()
773 usb_stor_dbg(us, "-- Sense data truncated to %i from %i\n", in usb_stor_invoke_transport()
782 usb_stor_dbg(us, "-- Result from auto-sense is %d\n", in usb_stor_invoke_transport()
784 usb_stor_dbg(us, "-- code: 0x%x, key: 0x%x, ASC: 0x%x, ASCQ: 0x%x\n", in usb_stor_invoke_transport()
788 usb_stor_show_sense(us, sshdr.sense_key, sshdr.asc, sshdr.ascq); in usb_stor_invoke_transport()
834 if (unlikely((us->fflags & US_FL_INITIAL_READ10) && in usb_stor_invoke_transport()
837 set_bit(US_FLIDX_READ10_WORKED, &us->dflags); in usb_stor_invoke_transport()
838 } else if (test_bit(US_FLIDX_READ10_WORKED, &us->dflags)) { in usb_stor_invoke_transport()
839 clear_bit(US_FLIDX_READ10_WORKED, &us->dflags); in usb_stor_invoke_transport()
840 set_bit(US_FLIDX_REDO_READ10, &us->dflags); in usb_stor_invoke_transport()
848 if (test_bit(US_FLIDX_REDO_READ10, &us->dflags)) { in usb_stor_invoke_transport()
849 clear_bit(US_FLIDX_REDO_READ10, &us->dflags); in usb_stor_invoke_transport()
860 last_sector_hacks(us, srb); in usb_stor_invoke_transport()
870 scsi_lock(us_to_host(us)); in usb_stor_invoke_transport()
871 set_bit(US_FLIDX_RESETTING, &us->dflags); in usb_stor_invoke_transport()
872 clear_bit(US_FLIDX_ABORTING, &us->dflags); in usb_stor_invoke_transport()
873 scsi_unlock(us_to_host(us)); in usb_stor_invoke_transport()
877 mutex_unlock(&us->dev_mutex); in usb_stor_invoke_transport()
878 result = usb_stor_port_reset(us); in usb_stor_invoke_transport()
879 mutex_lock(&us->dev_mutex); in usb_stor_invoke_transport()
882 scsi_lock(us_to_host(us)); in usb_stor_invoke_transport()
883 usb_stor_report_device_reset(us); in usb_stor_invoke_transport()
884 scsi_unlock(us_to_host(us)); in usb_stor_invoke_transport()
885 us->transport_reset(us); in usb_stor_invoke_transport()
887 clear_bit(US_FLIDX_RESETTING, &us->dflags); in usb_stor_invoke_transport()
888 last_sector_hacks(us, srb); in usb_stor_invoke_transport()
892 void usb_stor_stop_transport(struct us_data *us) in usb_stor_stop_transport() argument
898 if (test_and_clear_bit(US_FLIDX_URB_ACTIVE, &us->dflags)) { in usb_stor_stop_transport()
899 usb_stor_dbg(us, "-- cancelling URB\n"); in usb_stor_stop_transport()
900 usb_unlink_urb(us->current_urb); in usb_stor_stop_transport()
904 if (test_and_clear_bit(US_FLIDX_SG_ACTIVE, &us->dflags)) { in usb_stor_stop_transport()
905 usb_stor_dbg(us, "-- cancelling sg request\n"); in usb_stor_stop_transport()
906 usb_sg_cancel(&us->current_sg); in usb_stor_stop_transport()
914 int usb_stor_CB_transport(struct scsi_cmnd *srb, struct us_data *us) in usb_stor_CB_transport() argument
922 result = usb_stor_ctrl_transfer(us, us->send_ctrl_pipe, in usb_stor_CB_transport()
925 us->ifnum, srb->cmnd, srb->cmd_len); in usb_stor_CB_transport()
928 usb_stor_dbg(us, "Call to usb_stor_ctrl_transfer() returned %d\n", in usb_stor_CB_transport()
945 us->recv_bulk_pipe : us->send_bulk_pipe; in usb_stor_CB_transport()
946 result = usb_stor_bulk_srb(us, pipe, srb); in usb_stor_CB_transport()
947 usb_stor_dbg(us, "CBI data stage result is 0x%x\n", result); in usb_stor_CB_transport()
961 if (us->protocol != USB_PR_CBI) in usb_stor_CB_transport()
964 result = usb_stor_intr_transfer(us, us->iobuf, 2); in usb_stor_CB_transport()
965 usb_stor_dbg(us, "Got interrupt data (0x%x, 0x%x)\n", in usb_stor_CB_transport()
966 us->iobuf[0], us->iobuf[1]); in usb_stor_CB_transport()
977 if (us->subclass == USB_SC_UFI) { in usb_stor_CB_transport()
981 if (us->iobuf[0]) in usb_stor_CB_transport()
992 if (us->iobuf[0]) { in usb_stor_CB_transport()
993 usb_stor_dbg(us, "CBI IRQ data showed reserved bType 0x%x\n", in usb_stor_CB_transport()
994 us->iobuf[0]); in usb_stor_CB_transport()
1000 switch (us->iobuf[1] & 0x0F) { in usb_stor_CB_transport()
1013 usb_stor_clear_halt(us, pipe); in usb_stor_CB_transport()
1023 int usb_stor_Bulk_max_lun(struct us_data *us) in usb_stor_Bulk_max_lun() argument
1028 us->iobuf[0] = 0; in usb_stor_Bulk_max_lun()
1029 result = usb_stor_control_msg(us, us->recv_ctrl_pipe, in usb_stor_Bulk_max_lun()
1033 0, us->ifnum, us->iobuf, 1, 10*HZ); in usb_stor_Bulk_max_lun()
1035 usb_stor_dbg(us, "GetMaxLUN command result is %d, data is %d\n", in usb_stor_Bulk_max_lun()
1036 result, us->iobuf[0]); in usb_stor_Bulk_max_lun()
1044 if (us->iobuf[0] < 16) { in usb_stor_Bulk_max_lun()
1045 return us->iobuf[0]; in usb_stor_Bulk_max_lun()
1047 dev_info(&us->pusb_intf->dev, in usb_stor_Bulk_max_lun()
1049 us->iobuf[0]); in usb_stor_Bulk_max_lun()
1063 int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us) in usb_stor_Bulk_transport() argument
1065 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in usb_stor_Bulk_transport()
1066 struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf; in usb_stor_Bulk_transport()
1075 if (unlikely(us->fflags & US_FL_BULK32)) { in usb_stor_Bulk_transport()
1077 us->iobuf[31] = 0; in usb_stor_Bulk_transport()
1085 bcb->Tag = ++us->tag; in usb_stor_Bulk_transport()
1087 if (us->fflags & US_FL_SCM_MULT_TARG) in usb_stor_Bulk_transport()
1096 usb_stor_dbg(us, "Bulk Command S 0x%x T 0x%x L %d F %d Trg %d LUN %d CL %d\n", in usb_stor_Bulk_transport()
1101 result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in usb_stor_Bulk_transport()
1103 usb_stor_dbg(us, "Bulk command transfer result=%d\n", result); in usb_stor_Bulk_transport()
1113 if (unlikely(us->fflags & US_FL_GO_SLOW)) in usb_stor_Bulk_transport()
1118 us->recv_bulk_pipe : us->send_bulk_pipe; in usb_stor_Bulk_transport()
1119 result = usb_stor_bulk_srb(us, pipe, srb); in usb_stor_Bulk_transport()
1120 usb_stor_dbg(us, "Bulk data transfer result 0x%x\n", result); in usb_stor_Bulk_transport()
1152 usb_stor_dbg(us, "Device skipped data phase\n"); in usb_stor_Bulk_transport()
1164 usb_stor_dbg(us, "Attempting to get CSW...\n"); in usb_stor_Bulk_transport()
1165 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1173 usb_stor_dbg(us, "Received 0-length CSW; retrying...\n"); in usb_stor_Bulk_transport()
1174 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1182 usb_stor_dbg(us, "Attempting to get CSW (2nd try)...\n"); in usb_stor_Bulk_transport()
1183 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in usb_stor_Bulk_transport()
1188 usb_stor_dbg(us, "Bulk status result = %d\n", result); in usb_stor_Bulk_transport()
1195 usb_stor_dbg(us, "Bulk Status S 0x%x T 0x%x R %u Stat 0x%x\n", in usb_stor_Bulk_transport()
1198 if (!(bcs->Tag == us->tag || (us->fflags & US_FL_BULK_IGNORE_TAG)) || in usb_stor_Bulk_transport()
1200 usb_stor_dbg(us, "Bulk logical error\n"); in usb_stor_Bulk_transport()
1208 if (!us->bcs_signature) { in usb_stor_Bulk_transport()
1209 us->bcs_signature = bcs->Signature; in usb_stor_Bulk_transport()
1210 if (us->bcs_signature != cpu_to_le32(US_BULK_CS_SIGN)) in usb_stor_Bulk_transport()
1211 usb_stor_dbg(us, "Learnt BCS signature 0x%08X\n", in usb_stor_Bulk_transport()
1212 le32_to_cpu(us->bcs_signature)); in usb_stor_Bulk_transport()
1213 } else if (bcs->Signature != us->bcs_signature) { in usb_stor_Bulk_transport()
1214 usb_stor_dbg(us, "Signature mismatch: got %08X, expecting %08X\n", in usb_stor_Bulk_transport()
1216 le32_to_cpu(us->bcs_signature)); in usb_stor_Bulk_transport()
1222 if (residue && !(us->fflags & US_FL_IGNORE_RESIDUE)) { in usb_stor_Bulk_transport()
1234 us->fflags |= US_FL_IGNORE_RESIDUE; in usb_stor_Bulk_transport()
1285 static int usb_stor_reset_common(struct us_data *us, in usb_stor_reset_common() argument
1292 if (test_bit(US_FLIDX_DISCONNECTING, &us->dflags)) { in usb_stor_reset_common()
1293 usb_stor_dbg(us, "No reset during disconnect\n"); in usb_stor_reset_common()
1297 result = usb_stor_control_msg(us, us->send_ctrl_pipe, in usb_stor_reset_common()
1301 usb_stor_dbg(us, "Soft reset failed: %d\n", result); in usb_stor_reset_common()
1307 wait_event_interruptible_timeout(us->delay_wait, in usb_stor_reset_common()
1308 test_bit(US_FLIDX_DISCONNECTING, &us->dflags), in usb_stor_reset_common()
1310 if (test_bit(US_FLIDX_DISCONNECTING, &us->dflags)) { in usb_stor_reset_common()
1311 usb_stor_dbg(us, "Reset interrupted by disconnect\n"); in usb_stor_reset_common()
1315 usb_stor_dbg(us, "Soft reset: clearing bulk-in endpoint halt\n"); in usb_stor_reset_common()
1316 result = usb_stor_clear_halt(us, us->recv_bulk_pipe); in usb_stor_reset_common()
1318 usb_stor_dbg(us, "Soft reset: clearing bulk-out endpoint halt\n"); in usb_stor_reset_common()
1319 result2 = usb_stor_clear_halt(us, us->send_bulk_pipe); in usb_stor_reset_common()
1325 usb_stor_dbg(us, "Soft reset failed\n"); in usb_stor_reset_common()
1327 usb_stor_dbg(us, "Soft reset done\n"); in usb_stor_reset_common()
1335 int usb_stor_CB_reset(struct us_data *us) in usb_stor_CB_reset() argument
1337 memset(us->iobuf, 0xFF, CB_RESET_CMD_SIZE); in usb_stor_CB_reset()
1338 us->iobuf[0] = SEND_DIAGNOSTIC; in usb_stor_CB_reset()
1339 us->iobuf[1] = 4; in usb_stor_CB_reset()
1340 return usb_stor_reset_common(us, US_CBI_ADSC, in usb_stor_CB_reset()
1342 0, us->ifnum, us->iobuf, CB_RESET_CMD_SIZE); in usb_stor_CB_reset()
1349 int usb_stor_Bulk_reset(struct us_data *us) in usb_stor_Bulk_reset() argument
1351 return usb_stor_reset_common(us, US_BULK_RESET_REQUEST, in usb_stor_Bulk_reset()
1353 0, us->ifnum, NULL, 0); in usb_stor_Bulk_reset()
1360 int usb_stor_port_reset(struct us_data *us) in usb_stor_port_reset() argument
1365 if (us->pusb_dev->quirks & USB_QUIRK_RESET) in usb_stor_port_reset()
1368 result = usb_lock_device_for_reset(us->pusb_dev, us->pusb_intf); in usb_stor_port_reset()
1370 usb_stor_dbg(us, "unable to lock device for reset: %d\n", in usb_stor_port_reset()
1374 if (test_bit(US_FLIDX_DISCONNECTING, &us->dflags)) { in usb_stor_port_reset()
1376 usb_stor_dbg(us, "No reset during disconnect\n"); in usb_stor_port_reset()
1378 result = usb_reset_device(us->pusb_dev); in usb_stor_port_reset()
1379 usb_stor_dbg(us, "usb_reset_device returns %d\n", in usb_stor_port_reset()
1382 usb_unlock_device(us->pusb_dev); in usb_stor_port_reset()