Lines Matching refs:us

78 static int datafab_determine_lun(struct us_data *us,
122 datafab_bulk_read(struct us_data *us, unsigned char *data, unsigned int len) {
126 usb_stor_dbg(us, "len = %d\n", len);
127 return usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe,
133 datafab_bulk_write(struct us_data *us, unsigned char *data, unsigned int len) {
137 usb_stor_dbg(us, "len = %d\n", len);
138 return usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe,
143 static int datafab_read_data(struct us_data *us,
148 unsigned char *command = us->iobuf;
165 result = datafab_determine_lun(us, info);
200 result = datafab_bulk_write(us, command, 8);
205 result = datafab_bulk_read(us, buffer, len);
210 usb_stor_access_xfer_buf(buffer, len, us->srb,
226 static int datafab_write_data(struct us_data *us,
231 unsigned char *command = us->iobuf;
232 unsigned char *reply = us->iobuf;
249 result = datafab_determine_lun(us, info);
273 usb_stor_access_xfer_buf(buffer, len, us->srb,
288 result = datafab_bulk_write(us, command, 8);
293 result = datafab_bulk_write(us, buffer, len);
298 result = datafab_bulk_read(us, reply, 2);
303 usb_stor_dbg(us, "Gah! write return code: %02x %02x\n",
322 static int datafab_determine_lun(struct us_data *us,
332 unsigned char *command = us->iobuf;
344 usb_stor_dbg(us, "locating...\n");
351 rc = datafab_bulk_write(us, command, 8);
357 rc = datafab_bulk_read(us, buf, 512);
366 rc = datafab_bulk_write(us, command, 8);
372 rc = datafab_bulk_read(us, buf, 512);
389 static int datafab_id_device(struct us_data *us,
397 unsigned char *command = us->iobuf;
405 rc = datafab_determine_lun(us, info);
417 rc = datafab_bulk_write(us, command, 8);
425 rc = datafab_bulk_read(us, reply, 512);
445 static int datafab_handle_mode_sense(struct us_data *us,
463 struct datafab_info *info = (struct datafab_info *) (us->extra);
464 unsigned char *ptr = us->iobuf;
476 usb_stor_dbg(us, "Current values\n");
479 usb_stor_dbg(us, "Changeable values\n");
482 usb_stor_dbg(us, "Default values\n");
485 usb_stor_dbg(us, "Saves values\n");
556 static int datafab_transport(struct scsi_cmnd *srb, struct us_data *us)
561 unsigned char *ptr = us->iobuf;
566 if (!us->extra) {
567 us->extra = kzalloc(sizeof(struct datafab_info), GFP_NOIO);
568 if (!us->extra)
571 us->extra_destructor = datafab_info_destructor;
572 ((struct datafab_info *)us->extra)->lun = -1;
575 info = (struct datafab_info *) (us->extra);
578 usb_stor_dbg(us, "INQUIRY - Returning bogus response\n");
580 fill_inquiry_response(us, ptr, 36);
586 rc = datafab_id_device(us, info);
590 usb_stor_dbg(us, "READ_CAPACITY: %ld sectors, %ld bytes per sector\n",
603 usb_stor_dbg(us, "Gah! MODE_SELECT_10\n");
615 usb_stor_dbg(us, "READ_10: read block 0x%04lx count %ld\n",
617 return datafab_read_data(us, info, block, blocks);
629 usb_stor_dbg(us, "READ_12: read block 0x%04lx count %ld\n",
631 return datafab_read_data(us, info, block, blocks);
640 usb_stor_dbg(us, "WRITE_10: write block 0x%04lx count %ld\n",
642 return datafab_write_data(us, info, block, blocks);
654 usb_stor_dbg(us, "WRITE_12: write block 0x%04lx count %ld\n",
656 return datafab_write_data(us, info, block, blocks);
660 usb_stor_dbg(us, "TEST_UNIT_READY\n");
661 return datafab_id_device(us, info);
665 usb_stor_dbg(us, "REQUEST_SENSE - Returning faked response\n");
683 usb_stor_dbg(us, "MODE_SENSE_6 detected\n");
684 return datafab_handle_mode_sense(us, srb, 1);
688 usb_stor_dbg(us, "MODE_SENSE_10 detected\n");
689 return datafab_handle_mode_sense(us, srb, 0);
702 usb_stor_dbg(us, "START_STOP\n");
705 rc = datafab_id_device(us, info);
716 usb_stor_dbg(us, "Gah! Unknown command: %d (0x%x)\n",
727 struct us_data *us;
730 result = usb_stor_probe1(&us, intf, id,
735 us->transport_name = "Datafab Bulk-Only";
736 us->transport = datafab_transport;
737 us->transport_reset = usb_stor_Bulk_reset;
738 us->max_lun = 1;
740 result = usb_stor_probe2(us);