• 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 refs:current_SC

399 static struct scsi_cmnd  *current_SC;
1083 current_SC->result = error;
1084 if (current_SC->scsi_done)
1085 current_SC->scsi_done( current_SC );
1086 else panic( "scsi: <fdomain> current_SC->scsi_done() == NULL" );
1116 if (!in_command || !current_SC) { /* Spurious interrupt */
1118 printk( "Spurious interrupt, in_command = %d, current_SC = %x\n",
1119 in_command, current_SC );
1125 if (current_SC->SCp.phase & aborted) {
1137 if (current_SC->SCp.phase & in_arbitration) {
1143 spin_lock_irqsave(current_SC->device->host->host_lock, flags);
1145 spin_unlock_irqrestore(current_SC->device->host->host_lock, flags);
1148 current_SC->SCp.phase = in_selection;
1153 outb(adapter_mask | (1 << scmd_id(current_SC)), port_base + SCSI_Data_NoACK);
1161 } else if (current_SC->SCp.phase & in_selection) {
1165 if (fdomain_select( scmd_id(current_SC) )) {
1169 spin_lock_irqsave(current_SC->device->host->host_lock, flags);
1171 spin_unlock_irqrestore(current_SC->device->host->host_lock, flags);
1181 current_SC->SCp.phase = in_other;
1190 /* current_SC->SCp.phase == in_other: this is the body of the routine */
1199 outb(current_SC->cmnd[current_SC->SCp.sent_command++],
1203 current_SC->cmnd[ current_SC->SCp.sent_command - 1] );
1207 if (chip != tmc1800 && !current_SC->SCp.have_data_in) {
1208 current_SC->SCp.have_data_in = -1;
1213 if (chip != tmc1800 && !current_SC->SCp.have_data_in) {
1214 current_SC->SCp.have_data_in = 1;
1219 current_SC->SCp.Status = inb(port_base + Read_SCSI_Data);
1221 printk( "Status = %x, ", current_SC->SCp.Status );
1224 if (current_SC->SCp.Status
1225 && current_SC->SCp.Status != 2
1226 && current_SC->SCp.Status != 8) {
1228 current_SC->device->id,
1229 current_SC->cmnd[0],
1230 current_SC->SCp.Status );
1238 current_SC->SCp.Message = inb(port_base + Read_SCSI_Data);
1240 printk( "Message = %x, ", current_SC->SCp.Message );
1242 if (!current_SC->SCp.Message) ++done;
1244 if (current_SC->SCp.Message) {
1246 current_SC->SCp.Message );
1253 if (chip == tmc1800 && !current_SC->SCp.have_data_in
1254 && (current_SC->SCp.sent_command >= current_SC->cmd_len)) {
1256 if(current_SC->sc_data_direction == DMA_TO_DEVICE)
1258 current_SC->SCp.have_data_in = -1;
1263 current_SC->SCp.have_data_in = 1;
1268 if (current_SC->SCp.have_data_in == -1) { /* DATA OUT */
1273 if (data_count > current_SC->SCp.this_residual)
1274 data_count = current_SC->SCp.this_residual;
1280 outb(*current_SC->SCp.ptr++, port_base + Write_FIFO);
1281 --current_SC->SCp.this_residual;
1284 outsw(port_base + Write_FIFO, current_SC->SCp.ptr, data_count);
1285 current_SC->SCp.ptr += 2 * data_count;
1286 current_SC->SCp.this_residual -= 2 * data_count;
1289 if (!current_SC->SCp.this_residual) {
1290 if (current_SC->SCp.buffers_residual) {
1291 --current_SC->SCp.buffers_residual;
1292 ++current_SC->SCp.buffer;
1293 current_SC->SCp.ptr = sg_virt(current_SC->SCp.buffer);
1294 current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
1301 if (current_SC->SCp.have_data_in == 1) { /* DATA IN */
1306 if (data_count > current_SC->SCp.this_residual)
1307 data_count = current_SC->SCp.this_residual;
1313 *current_SC->SCp.ptr++ = inb(port_base + Read_FIFO);
1314 --current_SC->SCp.this_residual;
1317 insw(port_base + Read_FIFO, current_SC->SCp.ptr, data_count);
1318 current_SC->SCp.ptr += 2 * data_count;
1319 current_SC->SCp.this_residual -= 2 * data_count;
1322 if (!current_SC->SCp.this_residual
1323 && current_SC->SCp.buffers_residual) {
1324 --current_SC->SCp.buffers_residual;
1325 ++current_SC->SCp.buffer;
1326 current_SC->SCp.ptr = sg_virt(current_SC->SCp.buffer);
1327 current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
1334 printk( " ** IN DONE %d ** ", current_SC->SCp.have_data_in );
1338 if (current_SC->cmnd[0] == REQUEST_SENSE && !current_SC->SCp.Status) {
1339 char *buf = scsi_sglist(current_SC);
1366 spin_lock_irqsave(current_SC->device->host->host_lock, flags);
1367 my_done( (current_SC->SCp.Status & 0xff)
1368 | ((current_SC->SCp.Message & 0xff) << 8) | (DID_OK << 16) );
1369 spin_unlock_irqrestore(current_SC->device->host->host_lock, flags);
1375 if (current_SC->SCp.phase & disconnect) {
1404 current_SC = SCpnt; /* Save this for the done function */
1405 current_SC->scsi_done = done;
1409 if (scsi_sg_count(current_SC)) {
1410 current_SC->SCp.buffer = scsi_sglist(current_SC);
1411 current_SC->SCp.ptr = sg_virt(current_SC->SCp.buffer);
1412 current_SC->SCp.this_residual = current_SC->SCp.buffer->length;
1413 current_SC->SCp.buffers_residual = scsi_sg_count(current_SC) - 1;
1415 current_SC->SCp.ptr = NULL;
1416 current_SC->SCp.this_residual = 0;
1417 current_SC->SCp.buffer = NULL;
1418 current_SC->SCp.buffers_residual = 0;
1421 current_SC->SCp.Status = 0;
1422 current_SC->SCp.Message = 0;
1423 current_SC->SCp.have_data_in = 0;
1424 current_SC->SCp.sent_command = 0;
1425 current_SC->SCp.phase = in_arbitration;
1528 current_SC->SCp.phase |= aborted;
1529 current_SC->result = DID_ABORT << 16;