• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/

Lines Matching defs:SRpnt

204 static void osst_analyze_sense(struct osst_request *SRpnt, struct st_cmdstatus *s)
207 const u8 *sense = SRpnt->sense;
209 s->have_sense = scsi_normalize_sense(SRpnt->sense,
236 static int osst_chk_result(struct osst_tape * STp, struct osst_request * SRpnt)
239 int result = SRpnt->result;
240 u8 * sense = SRpnt->sense, scode;
250 osst_analyze_sense(SRpnt, cmdstatp);
260 SRpnt->cmd[0], SRpnt->cmd[1], SRpnt->cmd[2],
261 SRpnt->cmd[3], SRpnt->cmd[4], SRpnt->cmd[5]);
265 __scsi_print_sense("osst ", SRpnt->sense, SCSI_SENSE_BUFFERSIZE);
275 SRpnt->cmd[0] != MODE_SENSE &&
276 SRpnt->cmd[0] != TEST_UNIT_READY)) { /* Abnormal conditions for tape */
279 __scsi_print_sense("osst ", SRpnt->sense, SCSI_SENSE_BUFFERSIZE);
304 if (SRpnt->cmd[0] == READ_6)
306 else if (SRpnt->cmd[0] == WRITE_6)
324 struct osst_request *SRpnt = req->end_io_data;
325 struct osst_tape *STp = SRpnt->stp;
326 struct rq_map_data *mdata = &SRpnt->stp->buffer->map_data;
328 STp->buffer->cmdstat.midlevel_result = SRpnt->result = req->errors;
332 if (SRpnt->waiting)
333 complete(SRpnt->waiting);
335 if (SRpnt->bio) {
337 blk_rq_unmap_user(SRpnt->bio);
354 static int osst_execute(struct osst_request *SRpnt, const unsigned char *cmd,
360 struct rq_map_data *mdata = &SRpnt->stp->buffer->map_data;
365 req = blk_get_request(SRpnt->stp->device->request_queue, write, GFP_KERNEL);
372 SRpnt->bio = NULL;
397 SRpnt->bio = req->bio;
409 req->sense = SRpnt->sense;
413 req->end_io_data = SRpnt;
425 static struct osst_request * osst_do_scsi(struct osst_request *SRpnt, struct osst_tape *STp,
447 if (SRpnt == NULL) {
448 SRpnt = osst_allocate_request();
449 if (SRpnt == NULL) {
458 SRpnt->stp = STp;
464 (STp->buffer)->last_SRpnt = SRpnt;
468 SRpnt->waiting = waiting;
479 memcpy(SRpnt->cmd, cmd, sizeof(SRpnt->cmd));
483 if (osst_execute(SRpnt, cmd, COMMAND_SIZE(cmd[0]), direction, bp, bytes,
489 SRpnt->waiting = NULL;
490 STp->buffer->syscall_result = osst_chk_result(STp, SRpnt);
504 return SRpnt;
753 struct osst_request * SRpnt;
768 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, 0, DMA_NONE, STp->timeout, MAX_RETRIES, 1);
769 *aSRpnt = SRpnt;
770 if (!SRpnt) return (-EBUSY);
773 (( SRpnt->sense[2] == 2 && SRpnt->sense[12] == 4 &&
774 (SRpnt->sense[13] == 1 || SRpnt->sense[13] == 8) ) ||
775 ( SRpnt->sense[2] == 6 && SRpnt->sense[12] == 0x28 &&
776 SRpnt->sense[13] == 0 ) )) {
789 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE, STp->timeout, MAX_RETRIES, 1);
791 *aSRpnt = SRpnt;
800 STp->buffer->syscall_result, SRpnt->sense[0], SRpnt->sense[2],
801 SRpnt->sense[12], SRpnt->sense[13]);
817 struct osst_request * SRpnt;
829 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, 0, DMA_NONE, STp->timeout, MAX_RETRIES, 1);
830 *aSRpnt = SRpnt;
831 if (!SRpnt) return (-EBUSY);
834 SRpnt->sense[2] == 2 && SRpnt->sense[12] == 0x3a && SRpnt->sense[13] == 0 ) {
847 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE, STp->timeout, MAX_RETRIES, 1);
849 *aSRpnt = SRpnt;
853 if ( STp->buffer->syscall_result && SRpnt->sense[2] != 2 &&
854 SRpnt->sense[12] != 4 && SRpnt->sense[13] == 1) {
858 STp->buffer->syscall_result, SRpnt->sense[0], SRpnt->sense[2],
859 SRpnt->sense[12], SRpnt->sense[13]);
886 struct osst_request * SRpnt;
899 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, 0, DMA_NONE, STp->timeout, MAX_RETRIES, 1);
900 *aSRpnt = SRpnt;
901 if (!SRpnt) return (-EBUSY);
903 if ((SRpnt->sense[2] & 0x0f) == 2 && SRpnt->sense[12] == 4) {
904 if (SRpnt->sense[13] == 8) {
974 struct osst_request * SRpnt;
990 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, 0, DMA_NONE, STp->timeout,
995 if (STp->buffer->syscall_result && (SRpnt->sense[2] & 0x0f) != 2) {
1007 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 20, DMA_FROM_DEVICE, STp->timeout,
1033 struct osst_request * SRpnt;
1053 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, OS_FRAME_SIZE, DMA_FROM_DEVICE,
1055 *aSRpnt = SRpnt;
1056 if (!SRpnt)
1071 SRpnt->sense[0], SRpnt->sense[1],
1072 SRpnt->sense[2], SRpnt->sense[3],
1073 SRpnt->sense[4], SRpnt->sense[5],
1074 SRpnt->sense[6], SRpnt->sense[7]);
1104 struct osst_request * SRpnt ;
1129 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, 0, DMA_NONE, STp->timeout, MAX_RETRIES, 1);
1130 *aSRpnt = SRpnt;
1472 struct osst_request * SRpnt = * aSRpnt;
1510 SRpnt = osst_do_scsi(SRpnt, STp, cmd, OS_FRAME_SIZE, DMA_FROM_DEVICE,
1513 if ((STp->buffer)->syscall_result || !SRpnt) {
1516 *aSRpnt = SRpnt;
1526 *aSRpnt = SRpnt;
1553 SRpnt = * aSRpnt;
1582 SRpnt = osst_do_scsi(SRpnt, STp, cmd, OS_FRAME_SIZE, DMA_TO_DEVICE,
1598 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE,
1613 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE, STp->timeout,
1616 if (SRpnt->sense[2] == 2 && SRpnt->sense[12] == 4 &&
1617 (SRpnt->sense[13] == 1 || SRpnt->sense[13] == 8)) {
1632 *aSRpnt = SRpnt;
1634 if ((SRpnt->sense[ 2] & 0x0f) == 13 &&
1635 SRpnt->sense[12] == 0 &&
1636 SRpnt->sense[13] == 2) {
1641 i = ((SRpnt->sense[3] << 24) |
1642 (SRpnt->sense[4] << 16) |
1643 (SRpnt->sense[5] << 8) |
1644 SRpnt->sense[6] ) - new_frame;
1671 struct osst_request * SRpnt;
1718 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, OS_FRAME_SIZE, DMA_TO_DEVICE,
1720 *aSRpnt = SRpnt;
1723 if ((SRpnt->sense[ 2] & 0x0f) == 13 &&
1724 SRpnt->sense[12] == 0 &&
1725 SRpnt->sense[13] == 2) {
1772 struct osst_request * SRpnt = * aSRpnt;
1781 if ((SRpnt->sense[ 2] & 0x0f) != 3
1782 || SRpnt->sense[12] != 12
1783 || SRpnt->sense[13] != 0) {
1786 SRpnt->sense[2], SRpnt->sense[12], SRpnt->sense[13]);
1790 frame = (SRpnt->sense[3] << 24) |
1791 (SRpnt->sense[4] << 16) |
1792 (SRpnt->sense[5] << 8) |
1793 SRpnt->sense[6];
1794 skip = SRpnt->sense[9];
2156 struct osst_request * SRpnt = * aSRpnt;
2176 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_TO_DEVICE, STp->timeout, 0, 1);
2177 *aSRpnt = SRpnt;
2687 struct osst_request * SRpnt = * aSRpnt;
2716 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_FROM_DEVICE, STp->timeout, 0, 1);
2717 if (SRpnt == NULL) {
2723 *aSRpnt = SRpnt;
2753 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_TO_DEVICE, STp->timeout, 0, 1);
2754 *aSRpnt = SRpnt;
2767 SRpnt = * aSRpnt;
2793 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_TO_DEVICE, STp->timeout, 0, 1);
2794 *aSRpnt = SRpnt;
2808 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_FROM_DEVICE, STp->timeout, 0, 1);
2809 *aSRpnt = SRpnt;
2828 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_FROM_DEVICE, STp->timeout, 0, 1);
2829 *aSRpnt = SRpnt;
2886 struct osst_request * SRpnt;
2902 SRpnt = osst_do_scsi(*aSRpnt, STp, scmd, 20, DMA_FROM_DEVICE,
2904 if (!SRpnt) {
2908 *aSRpnt = SRpnt;
2911 result = ((SRpnt->sense[2] & 0x0f) == 3) ? -EIO : -EINVAL; /* 3: Write Error */
2918 memcpy (mysense, SRpnt->sense, 16);
2922 SRpnt = osst_do_scsi(SRpnt, STp, scmd, 20, DMA_FROM_DEVICE,
2927 SRpnt->sense[2],SRpnt->sense[12],SRpnt->sense[13]);
2930 memcpy (SRpnt->sense, mysense, 16);
2970 struct osst_request * SRpnt;
3001 SRpnt = osst_do_scsi(*aSRpnt, STp, scmd, 0, DMA_NONE, STp->long_timeout,
3003 if (!SRpnt)
3005 *aSRpnt = SRpnt;
3058 struct osst_request * SRpnt = *aSRpnt;
3063 if (SRpnt == (STp->buffer)->last_SRpnt)
3068 *aSRpnt = SRpnt = NULL;
3070 } else if (SRpnt)
3140 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, transfer, DMA_TO_DEVICE,
3142 *aSRpnt = SRpnt;
3143 if (!SRpnt)
3150 name, SRpnt->sense[0], SRpnt->sense[2],
3151 SRpnt->sense[12], SRpnt->sense[13]);
3153 if ((SRpnt->sense[0] & 0x70) == 0x70 &&
3154 (SRpnt->sense[2] & 0x40) &&
3155 (SRpnt->sense[2] & 0x0f) == NO_SENSE) {
3248 struct osst_request * SRpnt;
3275 // osst_build_stats(STp, &SRpnt);
3297 SRpnt = osst_do_scsi(*aSRpnt, STp, cmd, OS_FRAME_SIZE, DMA_TO_DEVICE, STp->timeout,
3299 if (!SRpnt)
3301 *aSRpnt = SRpnt;
3309 if ((SRpnt->sense[0] & 0x70) == 0x70 &&
3310 (SRpnt->sense[2] & 0x40)) {
3311 if ((SRpnt->sense[2] & 0x0f) == VOLUME_OVERFLOW)
3377 struct osst_request * SRpnt = NULL;
3461 retval = osst_flush_buffer(STp, &SRpnt, 0);
3476 osst_reset_header(STp, &SRpnt);
3481 if ((STp->fast_open && osst_verify_position(STp, &SRpnt)) ||
3525 if (SRpnt) printk(KERN_ERR "%s:A: Not supposed to have SRpnt at line %d\n", name, __LINE__);
3589 i = osst_write_frame(STp, &SRpnt, 1);
3621 if (SRpnt != NULL) {
3622 osst_release_request(SRpnt);
3623 SRpnt = NULL;
3670 i = osst_write_frame(STp, &SRpnt, 0);
3675 SRpnt = NULL; /* Prevent releasing this request! */
3684 if (SRpnt != NULL) osst_release_request(SRpnt);
3700 struct osst_request * SRpnt = NULL;
3749 retval = osst_flush_buffer(STp, &SRpnt, 0);
3794 special = osst_get_logical_frame(STp, &SRpnt, STp->frame_seq_number, 0);
3868 if (SRpnt != NULL) osst_release_request(SRpnt);
4064 struct osst_request * SRpnt = * aSRpnt;
4092 ioctl_result = osst_space_over_filemarks_forward_fast(STp, &SRpnt, cmd_in, arg);
4094 ioctl_result = osst_space_over_filemarks_forward_slow(STp, &SRpnt, cmd_in, arg);
4106 ioctl_result = osst_space_over_filemarks_backward(STp, &SRpnt, cmd_in, arg);
4128 ioctl_result = osst_seek_logical_blk(STp, &SRpnt, logical_blk_num);
4174 ioctl_result = osst_flush_write_buffer(STp, &SRpnt);
4182 ioctl_result |= osst_write_filemark(STp, &SRpnt);
4258 if ((osst_position_tape_and_confirm(STp, &SRpnt, STp->eod_frame_ppos) < 0) ||
4259 (osst_get_logical_frame(STp, &SRpnt, -1, 0) < 0)) {
4270 ioctl_result = osst_set_frame_position(STp, &SRpnt, STp->eod_frame_ppos, 0);
4278 ioctl_result = osst_reset_header(STp, &SRpnt);
4279 i = osst_write_eod(STp, &SRpnt);
4281 i = osst_position_tape_and_confirm(STp, &SRpnt, STp->eod_frame_ppos);
4334 SRpnt = osst_do_scsi(SRpnt, STp, cmd, datalen, direction, timeout, MAX_RETRIES, 1);
4338 if (!SRpnt) {
4373 ioctl_result = osst_seek_logical_blk(STp, &SRpnt, STp->logical_blk_num-1);
4396 ioctl_result = osst_position_tape_and_confirm(STp, &SRpnt, STp->first_data_ppos);
4402 if (osst_position_tape_and_confirm(STp, &SRpnt, STp->first_data_ppos) < 0)
4408 if (osst_position_tape_and_confirm(STp, &SRpnt, STp->eod_frame_ppos) < 0)
4421 } else if (SRpnt) { /* SCSI command was not completely successful. */
4422 if (SRpnt->sense[2] & 0x40) {
4429 if ((SRpnt->sense[2] & 0x0f) == BLANK_CHECK)
4432 if (cmd_in == MTLOAD && osst_wait_for_medium(STp, &SRpnt, 60))
4433 ioctl_result = osst_wait_ready(STp, &SRpnt, 5 * 60, OSST_WAIT_POSITION_COMPLETE);
4435 *aSRpnt = SRpnt;
4447 struct osst_request * SRpnt = NULL;
4550 SRpnt = osst_do_scsi(NULL, STp, cmd, 0, DMA_NONE, STp->timeout, MAX_RETRIES, 1);
4551 if (!SRpnt) {
4555 if ((SRpnt->sense[0] & 0x70) == 0x70 &&
4556 (SRpnt->sense[2] & 0x0f) == NOT_READY &&
4557 SRpnt->sense[12] == 4 ) {
4559 printk(OSST_DEB_MSG "%s:D: Unit not ready, cause %x\n", name, SRpnt->sense[13]);
4565 if (SRpnt->sense[13] == 2) { /* initialize command required (LOAD) */
4570 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE,
4573 osst_wait_ready(STp, &SRpnt, (SRpnt->sense[13]==1?15:3) * 60, 0);
4575 if ((SRpnt->sense[0] & 0x70) == 0x70 &&
4576 (SRpnt->sense[2] & 0x0f) == UNIT_ATTENTION) { /* New media? */
4587 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE,
4589 if ((SRpnt->sense[0] & 0x70) != 0x70 ||
4590 (SRpnt->sense[2] & 0x0f) != UNIT_ATTENTION)
4616 !SRpnt->result && SRpnt->sense[0] == 0) {
4624 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_FROM_DEVICE, STp->timeout, 0, 1);
4641 if (STp->header_ok && i == osst_get_frame_position(STp, &SRpnt)) {
4655 osst_release_request(SRpnt);
4668 (SRpnt->sense[2] != 2 || SRpnt->sense[12] != 0x3A) ) {
4687 SRpnt = osst_do_scsi(SRpnt, STp, cmd, cmd[4], DMA_TO_DEVICE, STp->timeout, 0, 1);
4696 SRpnt = osst_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE,
4698 if ((SRpnt->sense[0] & 0x70) != 0x70 ||
4699 (SRpnt->sense[2] & 0x0f) == NOT_READY)
4702 if ((SRpnt->sense[2] & 0x0f) == UNIT_ATTENTION) {
4721 if (osst_wait_ready(STp, &SRpnt, 15 * 60, 0))
4726 (SRpnt->sense[0] & 0x70) == 0x70 &&
4727 (SRpnt->sense[2] & 0x0f) == NOT_READY &&
4728 SRpnt->sense[12] == 0x3a) { /* Check ASC */
4732 osst_release_request(SRpnt);
4733 SRpnt = NULL;
4743 osst_configure_onstream(STp, &SRpnt);
4790 osst_analyze_headers(STp, &SRpnt);
4792 osst_release_request(SRpnt);
4793 SRpnt = NULL;
4798 if (SRpnt != NULL)
4799 osst_release_request(SRpnt);
4828 struct osst_request * SRpnt = NULL;
4836 result = osst_flush_write_buffer(STp, &SRpnt);
4850 result = osst_write_trailer(STp, &SRpnt, !(STp->rew_at_close));
4861 result = osst_flush_buffer(STp, &SRpnt, 0); /* this is the default path */
4863 result = cross_eof(STp, &SRpnt, 0);
4875 !(result = cross_eof(STp, &SRpnt, 1))) ||
4886 result2 = osst_position_tape_and_confirm(STp, &SRpnt, STp->first_data_ppos);
4891 if (SRpnt) osst_release_request(SRpnt);
4944 struct osst_request * SRpnt = NULL;
5035 i = osst_flush_buffer(STp, &SRpnt, i);
5082 i = osst_write_trailer(STp, &SRpnt,
5121 if ((i = osst_int_ioctl(STp, &SRpnt, MTREW, 0)) < 0 /*||
5140 i = osst_set_frame_position(STp, &SRpnt, mtc.mt_count, 0);
5142 i = osst_seek_sector(STp, &SRpnt, mtc.mt_count);
5155 cross_eof(STp, &SRpnt, 0);
5162 retval = osst_int_ioctl(STp, &SRpnt, mtc.mt_op, mtc.mt_count);
5171 if ((i = osst_flush_buffer(STp, &SRpnt, 0)) < 0) {
5248 blk = osst_get_frame_position(STp, &SRpnt);
5250 blk = osst_get_sector(STp, &SRpnt);
5261 if (SRpnt) osst_release_request(SRpnt);
5270 if (SRpnt) osst_release_request(SRpnt);