Lines Matching full:scp
273 if (cmd->SCp.phase & in_arbitration) { in fdomain_work()
279 cmd->SCp.phase = in_selection; in fdomain_work()
288 } else if (cmd->SCp.phase & in_selection) { in fdomain_work()
299 cmd->SCp.phase = in_other; in fdomain_work()
305 /* cur_cmd->SCp.phase == in_other: this is the body of the routine */ in fdomain_work()
311 outb(cmd->cmnd[cmd->SCp.sent_command++], in fdomain_work()
315 if (fd->chip != tmc1800 && !cmd->SCp.have_data_in) { in fdomain_work()
316 cmd->SCp.have_data_in = -1; in fdomain_work()
322 if (fd->chip != tmc1800 && !cmd->SCp.have_data_in) { in fdomain_work()
323 cmd->SCp.have_data_in = 1; in fdomain_work()
329 cmd->SCp.Status = inb(fd->base + REG_SCSI_DATA); in fdomain_work()
335 cmd->SCp.Message = inb(fd->base + REG_SCSI_DATA); in fdomain_work()
336 if (!cmd->SCp.Message) in fdomain_work()
342 if (fd->chip == tmc1800 && !cmd->SCp.have_data_in && in fdomain_work()
343 cmd->SCp.sent_command >= cmd->cmd_len) { in fdomain_work()
345 cmd->SCp.have_data_in = -1; in fdomain_work()
349 cmd->SCp.have_data_in = 1; in fdomain_work()
355 if (cmd->SCp.have_data_in == -1) /* DATA OUT */ in fdomain_work()
358 if (cmd->SCp.have_data_in == 1) /* DATA IN */ in fdomain_work()
362 fdomain_finish_cmd(fd, (cmd->SCp.Status & 0xff) | in fdomain_work()
363 ((cmd->SCp.Message & 0xff) << 8) | in fdomain_work()
366 if (cmd->SCp.phase & disconnect) { in fdomain_work()
402 cmd->SCp.Status = 0; in fdomain_queue()
403 cmd->SCp.Message = 0; in fdomain_queue()
404 cmd->SCp.have_data_in = 0; in fdomain_queue()
405 cmd->SCp.sent_command = 0; in fdomain_queue()
406 cmd->SCp.phase = in_arbitration; in fdomain_queue()
441 fd->cur_cmd->SCp.phase |= aborted; in fdomain_abort()