Lines Matching refs:crq
53 struct viosrp_crq *crq);
101 struct viosrp_crq *crq;
106 /* create a PING crq */
107 crq = (struct viosrp_crq *)&buffer;
108 crq->valid = VALID_CMD_RESP_EL;
109 crq->format = MESSAGE_IN_CRQ;
110 crq->status = PING;
332 struct viosrp_crq *crq;
336 crq = (struct viosrp_crq *)&buffer;
337 crq->valid = VALID_INIT_MSG;
338 crq->format = format;
359 struct viosrp_crq *crq;
362 crq = ibmvscsis_cmd_q_dequeue(vscsi->cmd_q.mask, &vscsi->cmd_q.index,
364 if (!crq) {
366 } else if (crq->valid == VALID_INIT_MSG && crq->format == INIT_MSG) {
368 crq->valid = INVALIDATE_CMD_RESP_EL;
376 crq = ibmvscsis_cmd_q_dequeue(vscsi->cmd_q.mask,
379 if (crq) {
380 *format = (uint)(crq->format);
382 crq->valid = INVALIDATE_CMD_RESP_EL;
386 *format = (uint)(crq->format);
388 crq->valid = INVALIDATE_CMD_RESP_EL;
755 * @crq: Pointer to CRQ element containing the Init Message
760 static long ibmvscsis_init_msg(struct scsi_info *vscsi, struct viosrp_crq *crq)
779 if (crq->format == INIT_MSG) {
781 } else if (crq->format == INIT_COMPLETE_MSG) {
786 (uint)crq->format);
978 struct viosrp_crq *crq;
981 crq = vscsi->cmd_q.base_addr + vscsi->cmd_q.index;
984 vscsi->flags, vscsi->state, (int)crq->valid);
986 if (!(vscsi->flags & PREP_FOR_SUSPEND_ABORTED) && !(crq->valid)) {
996 ((crq->valid) && ((crq->valid != VALID_TRANS_EVENT) ||
997 (crq->format != RESUME_FROM_SUSP)))) {
1009 if ((crq->valid) && ((crq->valid != VALID_TRANS_EVENT) ||
1010 (crq->format != RESUME_FROM_SUSP)))
1022 * @crq: Pointer to CRQ entry containing the Transport Event
1031 struct viosrp_crq *crq)
1036 (int)crq->format, vscsi->flags, vscsi->state);
1038 switch (crq->format) {
1043 if (crq->format == MIGRATED)
1096 dev_dbg(&vscsi->dev, "Prep for Suspend, crq status = 0x%x\n",
1097 (int)crq->status);
1107 if (crq->status == CRQ_ENTRY_OVERWRITTEN)
1125 dev_dbg(&vscsi->dev, "Resume from Suspend, crq status = 0x%x\n",
1126 (int)crq->status);
1130 if ((crq->status == CRQ_ENTRY_OVERWRITTEN) ||
1143 (uint)crq->format);
1169 struct viosrp_crq *crq;
1178 crq = vscsi->cmd_q.base_addr + vscsi->cmd_q.index;
1179 valid = crq->valid;
1188 rc = ibmvscsis_parse_command(vscsi, crq);
1190 if ((uint)crq->valid == VALID_TRANS_EVENT) {
1197 rc = ibmvscsis_trans_event(vscsi, crq);
1221 crq->valid = INVALIDATE_CMD_RESP_EL;
1223 crq = vscsi->cmd_q.base_addr + vscsi->cmd_q.index;
1224 valid = crq->valid;
1234 valid = crq->valid;
1432 * @crq: Pointer to CRQ entry containing the request
1442 struct viosrp_crq *crq)
1448 len = be16_to_cpu(crq->IU_length);
1456 be64_to_cpu(crq->IU_data_ptr),
1462 iue->remote_token = crq->IU_data_ptr;
1465 be64_to_cpu(crq->IU_data_ptr), cmd->init_time);
1853 dev_err(&vscsi->dev, "client crq full too long\n");
1878 struct viosrp_crq *crq = (struct viosrp_crq *)&msg_hi;
1933 crq->valid = VALID_CMD_RESP_EL;
1934 crq->format = cmd->rsp.format;
1937 crq->status = VIOSRP_ADAPTER_FAIL;
1939 crq->IU_length = cpu_to_be16(cmd->rsp.len);
1983 struct viosrp_crq *crq)
1994 be64_to_cpu(crq->IU_data_ptr));
2020 * @crq: Pointer to the CRQ entry containing the MAD request
2025 static long ibmvscsis_mad(struct scsi_info *vscsi, struct viosrp_crq *crq)
2071 rc = ibmvscsis_copy_crq_packet(vscsi, cmd, crq);
2083 ibmvscsis_send_mad_resp(vscsi, cmd, crq);
2269 * @crq: Pointer to CRQ entry containing the SRP Login request
2276 struct viosrp_crq *crq)
2340 * @crq: Pointer to CRQ entry containing the Implicit Logout request
2350 struct viosrp_crq *crq)
2373 static void ibmvscsis_srp_cmd(struct scsi_info *vscsi, struct viosrp_crq *crq)
2399 rc = ibmvscsis_copy_crq_packet(vscsi, cmd, crq);
2408 rc = ibmvscsis_srp_login(vscsi, cmd, crq);
2437 rc = ibmvscsis_srp_i_logout(vscsi, cmd, crq);
2451 rc = ibmvscsis_srp_login(vscsi, cmd, crq);
2475 struct viosrp_crq *crq;
2479 crq = (struct viosrp_crq *)&buffer;
2480 crq->valid = VALID_CMD_RESP_EL;
2481 crq->format = (u8)MESSAGE_IN_CRQ;
2482 crq->status = PING_RESPONSE;
2514 * @crq: Pointer to CRQ element containing the SRP request
2524 struct viosrp_crq *crq)
2528 switch (crq->valid) {
2530 switch (crq->format) {
2543 rc = ibmvscsis_mad(vscsi, crq);
2548 ibmvscsis_srp_cmd(vscsi, crq);
2552 if (crq->status == PING)
2558 (uint)crq->format);
2566 rc = ibmvscsis_trans_event(vscsi, crq);
2570 rc = ibmvscsis_init_msg(vscsi, crq);
2575 (uint)crq->valid);
3334 struct viosrp_crq *crq;
3358 crq = vscsi->cmd_q.base_addr + vscsi->cmd_q.index;
3359 valid = crq->valid;
3374 rc = ibmvscsis_parse_command(vscsi, crq);
3376 if ((uint)crq->valid == VALID_TRANS_EVENT) {
3383 rc = ibmvscsis_trans_event(vscsi, crq);
3404 crq->valid = INVALIDATE_CMD_RESP_EL;
3406 crq = vscsi->cmd_q.base_addr + vscsi->cmd_q.index;
3407 valid = crq->valid;
3417 valid = crq->valid;
3422 dev_dbg(&vscsi->dev, "handle_crq, error: flags 0x%x, state 0x%hx, crq index 0x%x\n",