Lines Matching refs:us
81 static int datafab_determine_lun(struct us_data *us,
125 datafab_bulk_read(struct us_data *us, unsigned char *data, unsigned int len) { in datafab_bulk_read() argument
129 usb_stor_dbg(us, "len = %d\n", len); in datafab_bulk_read()
130 return usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in datafab_bulk_read()
136 datafab_bulk_write(struct us_data *us, unsigned char *data, unsigned int len) { in datafab_bulk_write() argument
140 usb_stor_dbg(us, "len = %d\n", len); in datafab_bulk_write()
141 return usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in datafab_bulk_write()
146 static int datafab_read_data(struct us_data *us, in datafab_read_data() argument
151 unsigned char *command = us->iobuf; in datafab_read_data()
168 result = datafab_determine_lun(us, info); in datafab_read_data()
203 result = datafab_bulk_write(us, command, 8); in datafab_read_data()
208 result = datafab_bulk_read(us, buffer, len); in datafab_read_data()
213 usb_stor_access_xfer_buf(buffer, len, us->srb, in datafab_read_data()
229 static int datafab_write_data(struct us_data *us, in datafab_write_data() argument
234 unsigned char *command = us->iobuf; in datafab_write_data()
235 unsigned char *reply = us->iobuf; in datafab_write_data()
252 result = datafab_determine_lun(us, info); in datafab_write_data()
276 usb_stor_access_xfer_buf(buffer, len, us->srb, in datafab_write_data()
291 result = datafab_bulk_write(us, command, 8); in datafab_write_data()
296 result = datafab_bulk_write(us, buffer, len); in datafab_write_data()
301 result = datafab_bulk_read(us, reply, 2); in datafab_write_data()
306 usb_stor_dbg(us, "Gah! write return code: %02x %02x\n", in datafab_write_data()
325 static int datafab_determine_lun(struct us_data *us, in datafab_determine_lun() argument
335 unsigned char *command = us->iobuf; in datafab_determine_lun()
347 usb_stor_dbg(us, "locating...\n"); in datafab_determine_lun()
354 rc = datafab_bulk_write(us, command, 8); in datafab_determine_lun()
360 rc = datafab_bulk_read(us, buf, 512); in datafab_determine_lun()
369 rc = datafab_bulk_write(us, command, 8); in datafab_determine_lun()
375 rc = datafab_bulk_read(us, buf, 512); in datafab_determine_lun()
392 static int datafab_id_device(struct us_data *us, in datafab_id_device() argument
400 unsigned char *command = us->iobuf; in datafab_id_device()
408 rc = datafab_determine_lun(us, info); in datafab_id_device()
420 rc = datafab_bulk_write(us, command, 8); in datafab_id_device()
428 rc = datafab_bulk_read(us, reply, 512); in datafab_id_device()
448 static int datafab_handle_mode_sense(struct us_data *us, in datafab_handle_mode_sense() argument
466 struct datafab_info *info = (struct datafab_info *) (us->extra); in datafab_handle_mode_sense()
467 unsigned char *ptr = us->iobuf; in datafab_handle_mode_sense()
479 usb_stor_dbg(us, "Current values\n"); in datafab_handle_mode_sense()
482 usb_stor_dbg(us, "Changeable values\n"); in datafab_handle_mode_sense()
485 usb_stor_dbg(us, "Default values\n"); in datafab_handle_mode_sense()
488 usb_stor_dbg(us, "Saves values\n"); in datafab_handle_mode_sense()
559 static int datafab_transport(struct scsi_cmnd *srb, struct us_data *us) in datafab_transport() argument
564 unsigned char *ptr = us->iobuf; in datafab_transport()
569 if (!us->extra) { in datafab_transport()
570 us->extra = kzalloc(sizeof(struct datafab_info), GFP_NOIO); in datafab_transport()
571 if (!us->extra) in datafab_transport()
574 us->extra_destructor = datafab_info_destructor; in datafab_transport()
575 ((struct datafab_info *)us->extra)->lun = -1; in datafab_transport()
578 info = (struct datafab_info *) (us->extra); in datafab_transport()
581 usb_stor_dbg(us, "INQUIRY - Returning bogus response\n"); in datafab_transport()
583 fill_inquiry_response(us, ptr, 36); in datafab_transport()
589 rc = datafab_id_device(us, info); in datafab_transport()
593 usb_stor_dbg(us, "READ_CAPACITY: %ld sectors, %ld bytes per sector\n", in datafab_transport()
606 usb_stor_dbg(us, "Gah! MODE_SELECT_10\n"); in datafab_transport()
618 usb_stor_dbg(us, "READ_10: read block 0x%04lx count %ld\n", in datafab_transport()
620 return datafab_read_data(us, info, block, blocks); in datafab_transport()
632 usb_stor_dbg(us, "READ_12: read block 0x%04lx count %ld\n", in datafab_transport()
634 return datafab_read_data(us, info, block, blocks); in datafab_transport()
643 usb_stor_dbg(us, "WRITE_10: write block 0x%04lx count %ld\n", in datafab_transport()
645 return datafab_write_data(us, info, block, blocks); in datafab_transport()
657 usb_stor_dbg(us, "WRITE_12: write block 0x%04lx count %ld\n", in datafab_transport()
659 return datafab_write_data(us, info, block, blocks); in datafab_transport()
663 usb_stor_dbg(us, "TEST_UNIT_READY\n"); in datafab_transport()
664 return datafab_id_device(us, info); in datafab_transport()
668 usb_stor_dbg(us, "REQUEST_SENSE - Returning faked response\n"); in datafab_transport()
686 usb_stor_dbg(us, "MODE_SENSE_6 detected\n"); in datafab_transport()
687 return datafab_handle_mode_sense(us, srb, 1); in datafab_transport()
691 usb_stor_dbg(us, "MODE_SENSE_10 detected\n"); in datafab_transport()
692 return datafab_handle_mode_sense(us, srb, 0); in datafab_transport()
705 usb_stor_dbg(us, "START_STOP\n"); in datafab_transport()
708 rc = datafab_id_device(us, info); in datafab_transport()
719 usb_stor_dbg(us, "Gah! Unknown command: %d (0x%x)\n", in datafab_transport()
732 struct us_data *us; in datafab_probe() local
735 result = usb_stor_probe1(&us, intf, id, in datafab_probe()
741 us->transport_name = "Datafab Bulk-Only"; in datafab_probe()
742 us->transport = datafab_transport; in datafab_probe()
743 us->transport_reset = usb_stor_Bulk_reset; in datafab_probe()
744 us->max_lun = 1; in datafab_probe()
746 result = usb_stor_probe2(us); in datafab_probe()