Lines Matching refs:fcmd
355 static int soc_hw_enque (fc_channel *fc, fcp_cmnd *fcmd) in soc_hw_enque() argument
366 if (fcmd->proto == TYPE_SCSI_FCP) in soc_hw_enque()
370 SOD(("Putting a FCP packet type %d into hw queue %d\n", fcmd->proto, qno)) in soc_hw_enque()
390 switch (fcmd->proto) { in soc_hw_enque()
392 request->shdr.token = TOKEN(TYPE_SCSI_FCP, port->mask, fcmd->token); in soc_hw_enque()
393 request->data[0].base = fc->dma_scsi_cmd + fcmd->token * sizeof(fcp_cmd); in soc_hw_enque()
395 request->data[1].base = fc->dma_scsi_rsp + fcmd->token * fc->rsp_size; in soc_hw_enque()
397 if (fcmd->data) { in soc_hw_enque()
399 i = fc->scsi_cmd_pool[fcmd->token].fcp_data_len; in soc_hw_enque()
401 request->data[2].base = fcmd->data; in soc_hw_enque()
404 (fc->scsi_cmd_pool[fcmd->token].fcp_cntl & FCP_CNTL_WRITE) ? in soc_hw_enque()
426 request->shdr.token = TOKEN(PROTO_OFFLINE, port->mask, fcmd->token); in soc_hw_enque()
442 request->shdr.token = TOKEN(fcmd->proto, port->mask, fcmd->token); in soc_hw_enque()
445 memcpy (fch, &fcmd->fch, sizeof(fc_hdr)); in soc_hw_enque()
446 request->data[0].count = fcmd->cmdlen; in soc_hw_enque()
447 request->data[1].count = fcmd->rsplen; in soc_hw_enque()
448 request->type = fcmd->class; in soc_hw_enque()
449 switch (fcmd->class) { in soc_hw_enque()
451 request->data[0].base = fcmd->cmd; in soc_hw_enque()
452 request->data[0].count = fcmd->cmdlen; in soc_hw_enque()
454 request->shdr.bytecnt = fcmd->cmdlen; in soc_hw_enque()
458 request->data[0].base = fcmd->rsp; in soc_hw_enque()
459 request->data[0].count = fcmd->rsplen; in soc_hw_enque()
465 request->data[0].base = fcmd->cmd; in soc_hw_enque()
466 request->data[1].base = fcmd->rsp; in soc_hw_enque()
467 request->data[0].count = fcmd->cmdlen; in soc_hw_enque()
468 request->data[1].count = fcmd->rsplen; in soc_hw_enque()
470 request->shdr.bytecnt = fcmd->cmdlen; in soc_hw_enque()
475 request->data[0].base = fcmd->cmd; in soc_hw_enque()
476 request->data[1].base = fcmd->rsp; in soc_hw_enque()
477 request->data[0].count = fcmd->cmdlen; in soc_hw_enque()
478 request->data[1].count = fcmd->rsplen; in soc_hw_enque()
480 (fcmd->class == FC_CLASS_IO_READ) ? in soc_hw_enque()
482 if (fcmd->data) { in soc_hw_enque()
483 request->data[2].base = fcmd->data; in soc_hw_enque()
484 request->data[2].count = fcmd->datalen; in soc_hw_enque()
485 request->shdr.bytecnt = fcmd->datalen; in soc_hw_enque()