Lines Matching refs:scsi_pointer
73 static struct scsi_pointer *nsp_priv(struct scsi_cmnd *cmd)
91 .cmd_size = sizeof(struct scsi_pointer),
191 struct scsi_pointer *scsi_pointer = nsp_priv(SCpnt);
227 scsi_pointer->Status = SAM_STAT_CHECK_CONDITION;
228 scsi_pointer->Message = 0;
229 scsi_pointer->have_data_in = IO_UNKNOWN;
230 scsi_pointer->sent_command = 0;
231 scsi_pointer->phase = PH_UNDETERMINED;
241 scsi_pointer->buffer = scsi_sglist(SCpnt);
242 scsi_pointer->ptr = BUFFER_ADDR(SCpnt);
243 scsi_pointer->this_residual = scsi_pointer->buffer->length;
244 scsi_pointer->buffers_residual = scsi_sg_count(SCpnt) - 1;
246 scsi_pointer->ptr = NULL;
247 scsi_pointer->this_residual = 0;
248 scsi_pointer->buffer = NULL;
249 scsi_pointer->buffers_residual = 0;
365 struct scsi_pointer *scsi_pointer = nsp_priv(SCpnt);
383 scsi_pointer->phase = PH_ARBSTART;
403 scsi_pointer->phase = PH_SELSTART;
579 struct scsi_pointer *scsi_pointer = nsp_priv(SCpnt);
597 if (len == 1 && scsi_pointer->phase == PH_MSG_OUT) {
620 struct scsi_pointer *scsi_pointer = nsp_priv(SCpnt);
626 if (scsi_pointer->have_data_in != IO_IN) {
641 scsi_pointer->phase = PH_DATA;
717 struct scsi_pointer *scsi_pointer = nsp_priv(SCpnt);
728 SCpnt, scsi_get_resid(SCpnt), ocount, scsi_pointer->ptr,
729 scsi_pointer->this_residual, scsi_pointer->buffer,
730 scsi_pointer->buffers_residual);
735 (scsi_pointer->this_residual > 0 ||
736 scsi_pointer->buffers_residual > 0)) {
743 //nsp_dbg(NSP_DEBUG_DATA_IO, "ptr=0x%p this=0x%x ocount=0x%x res=0x%x", scsi_pointer->ptr, scsi_pointer->this_residual, ocount, res);
746 //nsp_dbg(NSP_DEBUG_DATA_IO, " wait for data this=%d", scsi_pointer->this_residual);
760 res = min(res, scsi_pointer->this_residual);
765 nsp_fifo32_read(base, scsi_pointer->ptr, res >> 2);
768 nsp_fifo8_read(base, scsi_pointer->ptr, res);
773 nsp_mmio_fifo32_read(mmio_base, scsi_pointer->ptr,
783 scsi_pointer->ptr += res;
784 scsi_pointer->this_residual -= res;
786 //nsp_dbg(NSP_DEBUG_DATA_IO, "ptr=0x%p this_residual=0x%x ocount=0x%x", scsi_pointer->ptr, scsi_pointer->this_residual, ocount);
789 if (scsi_pointer->this_residual == 0 &&
790 scsi_pointer->buffers_residual != 0 ) {
792 scsi_pointer->buffers_residual--;
793 scsi_pointer->buffer = sg_next(scsi_pointer->buffer);
794 scsi_pointer->ptr = BUFFER_ADDR(SCpnt);
795 scsi_pointer->this_residual =
796 scsi_pointer->buffer->length;
799 //nsp_dbg(NSP_DEBUG_DATA_IO, "page: 0x%p, off: 0x%x", scsi_pointer->buffer->page, scsi_pointer->buffer->offset);
807 scsi_get_resid(SCpnt), scsi_pointer->this_residual,
808 scsi_pointer->buffers_residual);
820 struct scsi_pointer *scsi_pointer = nsp_priv(SCpnt);
831 data->FifoCount, scsi_pointer->ptr, scsi_pointer->this_residual,
832 scsi_pointer->buffer, scsi_pointer->buffers_residual,
838 (scsi_pointer->this_residual > 0 ||
839 scsi_pointer->buffers_residual > 0)) {
849 scsi_pointer->ptr -= res;
850 scsi_pointer->this_residual += res;
862 res = min(scsi_pointer->this_residual, WFIFO_CRIT);
864 //nsp_dbg(NSP_DEBUG_DATA_IO, "ptr=0x%p this=0x%x res=0x%x", scsi_pointer->ptr, scsi_pointer->this_residual, res);
868 nsp_fifo32_write(base, scsi_pointer->ptr, res >> 2);
871 nsp_fifo8_write(base, scsi_pointer->ptr, res);
876 nsp_mmio_fifo32_write(mmio_base, scsi_pointer->ptr,
886 scsi_pointer->ptr += res;
887 scsi_pointer->this_residual -= res;
891 if (scsi_pointer->this_residual == 0 &&
892 scsi_pointer->buffers_residual != 0 ) {
894 scsi_pointer->buffers_residual--;
895 scsi_pointer->buffer = sg_next(scsi_pointer->buffer);
896 scsi_pointer->ptr = BUFFER_ADDR(SCpnt);
897 scsi_pointer->this_residual =
898 scsi_pointer->buffer->length;
966 struct scsi_pointer *scsi_pointer;
1045 scsi_pointer = nsp_priv(tmpSC);
1047 ((scsi_pointer->Message & 0xff) << 8) |
1048 ((scsi_pointer->Status & 0xff) << 0);
1062 scsi_pointer = nsp_priv(tmpSC);
1085 switch (scsi_pointer->phase) {
1108 scsi_pointer->phase = PH_SELECTED;
1137 if ((scsi_pointer->phase == PH_MSG_IN ||
1138 scsi_pointer->phase == PH_MSG_OUT) &&
1145 if (scsi_pointer->Message == COMMAND_COMPLETE) {
1147 ((scsi_pointer->Message & 0xff) << 8) |
1148 ((scsi_pointer->Status & 0xff) << 0);
1177 scsi_pointer->phase = PH_COMMAND;
1193 scsi_pointer->phase = PH_DATA;
1194 scsi_pointer->have_data_in = IO_OUT;
1203 scsi_pointer->phase = PH_DATA;
1204 scsi_pointer->have_data_in = IO_IN;
1214 scsi_pointer->phase = PH_STATUS;
1216 scsi_pointer->Status = nsp_index_read(base, SCSIDATAWITHACK);
1218 scsi_pointer->Message, scsi_pointer->Status);
1228 scsi_pointer->phase = PH_MSG_OUT;
1261 scsi_pointer->phase = PH_MSG_IN;
1293 scsi_pointer->Message = tmp;
1296 scsi_pointer->Message, data->MsgLen);