• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/scsi/

Lines Matching refs:request_id

125 static int twa_aen_read_queue(TW_Device_Extension *tw_dev, int request_id);
127 static void twa_aen_sync_time(TW_Device_Extension *tw_dev, int request_id);
130 static int twa_fill_sense(TW_Device_Extension *tw_dev, int request_id, int copy_sense, int print_host);
131 static void twa_free_request_id(TW_Device_Extension *tw_dev,int request_id);
132 static void twa_get_request_id(TW_Device_Extension *tw_dev, int *request_id);
143 static void twa_load_sgl(TW_Device_Extension *tw_dev, TW_Command_Full *full_command_packet, int request_id, dma_addr_t dma_handle, int length);
144 static int twa_poll_response(TW_Device_Extension *tw_dev, int request_id, int seconds);
146 static int twa_post_command_packet(TW_Device_Extension *tw_dev, int request_id, char internal);
149 static int twa_scsiop_execute_scsi(TW_Device_Extension *tw_dev, int request_id, char *cdb, int use_sg, TW_SG_Entry *sglistarg);
150 static void twa_scsiop_execute_scsi_complete(TW_Device_Extension *tw_dev, int request_id);
152 static void twa_unmap_scsi_data(TW_Device_Extension *tw_dev, int request_id);
229 static int twa_aen_complete(TW_Device_Extension *tw_dev, int request_id)
237 header = (TW_Command_Apache_Header *)tw_dev->generic_buffer_virt[request_id];
240 full_command_packet = tw_dev->command_packet_virt[request_id];
246 if (twa_aen_read_queue(tw_dev, request_id))
259 twa_aen_sync_time(tw_dev, request_id);
266 if (twa_aen_read_queue(tw_dev, request_id))
275 tw_dev->state[request_id] = TW_S_COMPLETED;
276 twa_free_request_id(tw_dev, request_id);
285 int request_id = 0;
299 full_command_packet = tw_dev->command_packet_virt[request_id];
310 sglist[0].address = tw_dev->generic_buffer_phys[request_id];
318 tw_dev->srb[request_id] = NULL;
322 if (twa_scsiop_execute_scsi(tw_dev, request_id, cdb, 1, sglist)) {
328 if (twa_poll_response(tw_dev, request_id, 30)) {
335 header = (TW_Command_Apache_Header *)tw_dev->generic_buffer_virt[request_id];
369 tw_dev->state[request_id] = TW_S_INITIAL;
430 static int twa_aen_read_queue(TW_Device_Extension *tw_dev, int request_id)
437 full_command_packet = tw_dev->command_packet_virt[request_id];
448 sglist[0].address = tw_dev->generic_buffer_phys[request_id];
451 tw_dev->srb[request_id] = NULL;
454 if (twa_scsiop_execute_scsi(tw_dev, request_id, cdb, 1, sglist)) {
478 static void twa_aen_sync_time(TW_Device_Extension *tw_dev, int request_id)
488 full_command_packet = tw_dev->command_packet_virt[request_id];
492 command_packet->request_id = request_id;
493 command_packet->byte8_offset.param.sgl[0].address = TW_CPU_TO_SGL(tw_dev->generic_buffer_phys[request_id]);
499 param = (TW_Param_Apache *)tw_dev->generic_buffer_virt[request_id];
515 tw_dev->srb[request_id] = NULL;
518 twa_post_command_packet(tw_dev, request_id, 1);
646 int request_id = 0;
699 twa_get_request_id(tw_dev, &request_id);
702 tw_dev->srb[request_id] = NULL;
705 tw_dev->chrdev_request_id = request_id;
710 twa_load_sgl(tw_dev, full_command_packet, request_id, dma_handle, data_buffer_length_adjusted);
712 memcpy(tw_dev->command_packet_virt[request_id], &(tw_ioctl->firmware_command), sizeof(TW_Command_Full));
715 twa_post_command_packet(tw_dev, request_id, 1);
735 memcpy(&(tw_ioctl->firmware_command), tw_dev->command_packet_virt[request_id], sizeof(TW_Command_Full));
740 tw_dev->state[request_id] = TW_S_COMPLETED;
741 twa_free_request_id(tw_dev, request_id);
985 static int twa_fill_sense(TW_Device_Extension *tw_dev, int request_id, int copy_sense, int print_host)
992 full_command_packet = tw_dev->command_packet_virt[request_id];
1020 memcpy(tw_dev->srb[request_id]->sense_buffer, full_command_packet->header.sense_data, TW_SENSE_DATA_LENGTH);
1021 tw_dev->srb[request_id]->result = (full_command_packet->command.newcommand.status << 1);
1049 static void twa_free_request_id(TW_Device_Extension *tw_dev, int request_id)
1051 tw_dev->free_queue[tw_dev->free_tail] = request_id;
1052 tw_dev->state[request_id] = TW_S_FINISHED;
1057 static void *twa_get_param(TW_Device_Extension *tw_dev, int request_id, int table_id, int parameter_id, int parameter_size_bytes)
1065 full_command_packet = tw_dev->command_packet_virt[request_id];
1071 command_packet->request_id = request_id;
1075 param = (TW_Param_Apache *)tw_dev->generic_buffer_virt[request_id];
1081 command_packet->byte8_offset.param.sgl[0].address = TW_CPU_TO_SGL(tw_dev->generic_buffer_phys[request_id]);
1085 twa_post_command_packet(tw_dev, request_id, 1);
1088 if (twa_poll_response(tw_dev, request_id, 30))
1094 tw_dev->state[request_id] = TW_S_INITIAL;
1100 static void twa_get_request_id(TW_Device_Extension *tw_dev, int *request_id)
1102 *request_id = tw_dev->free_queue[tw_dev->free_head];
1104 tw_dev->state[*request_id] = TW_S_STARTED;
1121 int request_id = 0, retval = 1;
1124 full_command_packet = tw_dev->command_packet_virt[request_id];
1130 tw_initconnect->request_id = request_id;
1149 twa_post_command_packet(tw_dev, request_id, 1);
1152 if (twa_poll_response(tw_dev, request_id, 30)) {
1166 tw_dev->state[request_id] = TW_S_INITIAL;
1220 int request_id, error = 0;
1259 twa_get_request_id(tw_dev, &request_id);
1261 error = twa_aen_read_queue(tw_dev, request_id);
1263 tw_dev->state[request_id] = TW_S_COMPLETED;
1264 twa_free_request_id(tw_dev, request_id);
1275 request_id = tw_dev->pending_queue[tw_dev->pending_head];
1276 if (tw_dev->state[request_id] != TW_S_PENDING) {
1281 if (twa_post_command_packet(tw_dev, request_id, 1)==0) {
1298 request_id = TW_RESID_OUT(response_que.response_id);
1299 full_command_packet = tw_dev->command_packet_virt[request_id];
1303 if (tw_dev->srb[request_id] != NULL) {
1304 error = twa_fill_sense(tw_dev, request_id, 1, 1);
1307 if (request_id != tw_dev->chrdev_request_id) {
1308 error = twa_fill_sense(tw_dev, request_id, 0, 1);
1314 if (tw_dev->state[request_id] != TW_S_POSTED) {
1315 if (tw_dev->srb[request_id] != NULL) {
1323 if (tw_dev->srb[request_id] == NULL) {
1324 if (request_id != tw_dev->chrdev_request_id) {
1325 if (twa_aen_complete(tw_dev, request_id))
1334 cmd = tw_dev->srb[request_id];
1336 twa_scsiop_execute_scsi_complete(tw_dev, request_id);
1350 if (full_command_packet->command.newcommand.sg_list[0].length < scsi_bufflen(tw_dev->srb[request_id]))
1355 tw_dev->state[request_id] = TW_S_COMPLETED;
1356 twa_free_request_id(tw_dev, request_id);
1358 tw_dev->srb[request_id]->scsi_done(tw_dev->srb[request_id]);
1359 twa_unmap_scsi_data(tw_dev, request_id);
1379 static void twa_load_sgl(TW_Device_Extension *tw_dev, TW_Command_Full *full_command_packet, int request_id, dma_addr_t dma_handle, int length)
1392 cpu_to_le16(TW_REQ_LUN_IN(TW_LUN_OUT(newcommand->request_id__lunl), request_id));
1401 oldcommand->request_id = request_id;
1418 static int twa_map_scsi_sg_data(TW_Device_Extension *tw_dev, int request_id)
1421 struct scsi_cmnd *cmd = tw_dev->srb[request_id];
1438 static int twa_poll_response(TW_Device_Extension *tw_dev, int request_id, int seconds)
1442 TW_Command_Full *full_command_packet = tw_dev->command_packet_virt[request_id];
1447 if (request_id != response_request_id) {
1454 twa_fill_sense(tw_dev, request_id, 0, 0);
1461 twa_fill_sense(tw_dev, request_id, 0, 0);
1532 static int twa_post_command_packet(TW_Device_Extension *tw_dev, int request_id, char internal)
1538 command_que_value = tw_dev->command_packet_phys[request_id];
1552 if (((tw_dev->pending_request_count > 0) && (tw_dev->state[request_id] != TW_S_PENDING)) || (status_reg_value & TW_STATUS_COMMAND_QUEUE_FULL)) {
1561 if (tw_dev->state[request_id] != TW_S_PENDING) {
1562 tw_dev->state[request_id] = TW_S_PENDING;
1567 tw_dev->pending_queue[tw_dev->pending_tail] = request_id;
1586 tw_dev->state[request_id] = TW_S_POSTED;
1770 int request_id, retval;
1791 twa_get_request_id(tw_dev, &request_id);
1794 tw_dev->srb[request_id] = SCpnt;
1799 retval = twa_scsiop_execute_scsi(tw_dev, request_id, NULL, 0, NULL);
1802 twa_free_request_id(tw_dev, request_id);
1805 tw_dev->state[request_id] = TW_S_COMPLETED;
1806 twa_free_request_id(tw_dev, request_id);
1816 static int twa_scsiop_execute_scsi(TW_Device_Extension *tw_dev, int request_id, char *cdb, int use_sg, TW_SG_Entry *sglistarg)
1826 if (tw_dev->srb[request_id]) {
1827 srb = tw_dev->srb[request_id];
1833 full_command_packet = tw_dev->command_packet_virt[request_id];
1851 cpu_to_le16(TW_REQ_LUN_IN(srb->device->lun, request_id));
1854 cpu_to_le16(TW_REQ_LUN_IN(0, request_id));
1869 tw_dev->generic_buffer_virt[request_id],
1871 command_packet->sg_list[0].address = TW_CPU_TO_SGL(tw_dev->generic_buffer_phys[request_id]);
1874 sg_count = twa_map_scsi_sg_data(tw_dev, request_id);
1887 command_packet->sgl_entries__lunh = cpu_to_le16(TW_REQ_LUN_IN((srb->device->lun >> 4), scsi_sg_count(tw_dev->srb[request_id])));
1917 tw_dev->sgl_entries = scsi_sg_count(tw_dev->srb[request_id]);
1924 retval = twa_post_command_packet(tw_dev, request_id, 0);
1926 twa_post_command_packet(tw_dev, request_id, 1);
1934 static void twa_scsiop_execute_scsi_complete(TW_Device_Extension *tw_dev, int request_id)
1936 struct scsi_cmnd *cmd = tw_dev->srb[request_id];
1942 void *buf = tw_dev->generic_buffer_virt[request_id];
1991 static void twa_unmap_scsi_data(TW_Device_Extension *tw_dev, int request_id)
1993 struct scsi_cmnd *cmd = tw_dev->srb[request_id];