Lines Matching refs:qdio
680 static struct zfcp_fsf_req *zfcp_fsf_req_create(struct zfcp_qdio *qdio, in zfcp_fsf_req_create() argument
684 struct zfcp_adapter *adapter = qdio->adapter; in zfcp_fsf_req_create()
722 zfcp_qdio_req_init(adapter->qdio, &req->qdio_req, req->req_id, sbtype, in zfcp_fsf_req_create()
731 struct zfcp_qdio *qdio = adapter->qdio; in zfcp_fsf_req_send() local
737 req->qdio_req.qdio_outb_usage = atomic_read(&qdio->req_q_free); in zfcp_fsf_req_send()
739 if (zfcp_qdio_send(qdio, &req->qdio_req)) { in zfcp_fsf_req_send()
761 int zfcp_fsf_status_read(struct zfcp_qdio *qdio) in zfcp_fsf_status_read() argument
763 struct zfcp_adapter *adapter = qdio->adapter; in zfcp_fsf_status_read()
769 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_status_read()
770 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_status_read()
773 req = zfcp_fsf_req_create(qdio, FSF_QTCB_UNSOLICITED_STATUS, in zfcp_fsf_status_read()
790 zfcp_qdio_fill_next(qdio, &req->qdio_req, sr_buf, sizeof(*sr_buf)); in zfcp_fsf_status_read()
791 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_status_read()
806 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_status_read()
878 struct zfcp_qdio *qdio = zfcp_sdev->port->adapter->qdio; in zfcp_fsf_abort_fcp_cmnd() local
881 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_abort_fcp_cmnd()
882 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_abort_fcp_cmnd()
884 req = zfcp_fsf_req_create(qdio, FSF_QTCB_ABORT_FCP_CMND, in zfcp_fsf_abort_fcp_cmnd()
886 qdio->adapter->pool.scsi_abort); in zfcp_fsf_abort_fcp_cmnd()
896 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_abort_fcp_cmnd()
912 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_abort_fcp_cmnd()
963 static void zfcp_fsf_setup_ct_els_unchained(struct zfcp_qdio *qdio, in zfcp_fsf_setup_ct_els_unchained() argument
968 zfcp_qdio_fill_next(qdio, q_req, sg_virt(sg_req), sg_req->length); in zfcp_fsf_setup_ct_els_unchained()
969 zfcp_qdio_fill_next(qdio, q_req, sg_virt(sg_resp), sg_resp->length); in zfcp_fsf_setup_ct_els_unchained()
970 zfcp_qdio_set_sbale_last(qdio, q_req); in zfcp_fsf_setup_ct_els_unchained()
978 struct zfcp_qdio *qdio = adapter->qdio; in zfcp_fsf_setup_ct_els_sbals() local
983 if (zfcp_qdio_sbals_from_sg(qdio, &req->qdio_req, sg_req)) in zfcp_fsf_setup_ct_els_sbals()
985 if (zfcp_qdio_sbals_from_sg(qdio, &req->qdio_req, sg_resp)) in zfcp_fsf_setup_ct_els_sbals()
988 zfcp_qdio_set_data_div(qdio, &req->qdio_req, in zfcp_fsf_setup_ct_els_sbals()
990 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_setup_ct_els_sbals()
991 zfcp_qdio_set_scount(qdio, &req->qdio_req); in zfcp_fsf_setup_ct_els_sbals()
997 zfcp_fsf_setup_ct_els_unchained(qdio, &req->qdio_req, in zfcp_fsf_setup_ct_els_sbals()
1005 if (zfcp_qdio_sbals_from_sg(qdio, &req->qdio_req, sg_req)) in zfcp_fsf_setup_ct_els_sbals()
1010 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_setup_ct_els_sbals()
1011 zfcp_qdio_skip_to_last_sbale(qdio, &req->qdio_req); in zfcp_fsf_setup_ct_els_sbals()
1013 if (zfcp_qdio_sbals_from_sg(qdio, &req->qdio_req, sg_resp)) in zfcp_fsf_setup_ct_els_sbals()
1018 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_setup_ct_els_sbals()
1053 struct zfcp_qdio *qdio = wka_port->adapter->qdio; in zfcp_fsf_send_ct() local
1057 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_send_ct()
1058 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_send_ct()
1061 req = zfcp_fsf_req_create(qdio, FSF_QTCB_SEND_GENERIC, in zfcp_fsf_send_ct()
1089 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_send_ct()
1145 struct zfcp_qdio *qdio = adapter->qdio; in zfcp_fsf_send_els() local
1148 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_send_els()
1149 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_send_els()
1152 req = zfcp_fsf_req_create(qdio, FSF_QTCB_SEND_ELS, in zfcp_fsf_send_els()
1163 zfcp_qdio_sbal_limit(qdio, &req->qdio_req, 2); in zfcp_fsf_send_els()
1185 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_send_els()
1192 struct zfcp_qdio *qdio = erp_action->adapter->qdio; in zfcp_fsf_exchange_config_data() local
1195 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_config_data()
1196 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_exchange_config_data()
1199 req = zfcp_fsf_req_create(qdio, FSF_QTCB_EXCHANGE_CONFIG_DATA, in zfcp_fsf_exchange_config_data()
1201 qdio->adapter->pool.erp_req); in zfcp_fsf_exchange_config_data()
1209 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_exchange_config_data()
1225 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_config_data()
1229 int zfcp_fsf_exchange_config_data_sync(struct zfcp_qdio *qdio, in zfcp_fsf_exchange_config_data_sync() argument
1235 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_config_data_sync()
1236 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_exchange_config_data_sync()
1239 req = zfcp_fsf_req_create(qdio, FSF_QTCB_EXCHANGE_CONFIG_DATA, in zfcp_fsf_exchange_config_data_sync()
1247 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_exchange_config_data_sync()
1259 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_config_data_sync()
1267 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_config_data_sync()
1278 struct zfcp_qdio *qdio = erp_action->adapter->qdio; in zfcp_fsf_exchange_port_data() local
1282 if (!(qdio->adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT)) in zfcp_fsf_exchange_port_data()
1285 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_port_data()
1286 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_exchange_port_data()
1289 req = zfcp_fsf_req_create(qdio, FSF_QTCB_EXCHANGE_PORT_DATA, in zfcp_fsf_exchange_port_data()
1291 qdio->adapter->pool.erp_req); in zfcp_fsf_exchange_port_data()
1299 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_exchange_port_data()
1312 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_port_data()
1322 int zfcp_fsf_exchange_port_data_sync(struct zfcp_qdio *qdio, in zfcp_fsf_exchange_port_data_sync() argument
1328 if (!(qdio->adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT)) in zfcp_fsf_exchange_port_data_sync()
1331 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_port_data_sync()
1332 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_exchange_port_data_sync()
1335 req = zfcp_fsf_req_create(qdio, FSF_QTCB_EXCHANGE_PORT_DATA, in zfcp_fsf_exchange_port_data_sync()
1346 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_exchange_port_data_sync()
1351 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_port_data_sync()
1361 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_exchange_port_data_sync()
1437 struct zfcp_qdio *qdio = erp_action->adapter->qdio; in zfcp_fsf_open_port() local
1442 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_open_port()
1443 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_open_port()
1446 req = zfcp_fsf_req_create(qdio, FSF_QTCB_OPEN_PORT_WITH_DID, in zfcp_fsf_open_port()
1448 qdio->adapter->pool.erp_req); in zfcp_fsf_open_port()
1456 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_open_port()
1473 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_open_port()
1504 struct zfcp_qdio *qdio = erp_action->adapter->qdio; in zfcp_fsf_close_port() local
1508 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_close_port()
1509 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_close_port()
1512 req = zfcp_fsf_req_create(qdio, FSF_QTCB_CLOSE_PORT, in zfcp_fsf_close_port()
1514 qdio->adapter->pool.erp_req); in zfcp_fsf_close_port()
1522 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_close_port()
1537 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_close_port()
1577 struct zfcp_qdio *qdio = wka_port->adapter->qdio; in zfcp_fsf_open_wka_port() local
1581 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_open_wka_port()
1582 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_open_wka_port()
1585 req = zfcp_fsf_req_create(qdio, FSF_QTCB_OPEN_PORT_WITH_DID, in zfcp_fsf_open_wka_port()
1587 qdio->adapter->pool.erp_req); in zfcp_fsf_open_wka_port()
1595 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_open_wka_port()
1606 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_open_wka_port()
1630 struct zfcp_qdio *qdio = wka_port->adapter->qdio; in zfcp_fsf_close_wka_port() local
1634 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_close_wka_port()
1635 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_close_wka_port()
1638 req = zfcp_fsf_req_create(qdio, FSF_QTCB_CLOSE_PORT, in zfcp_fsf_close_wka_port()
1640 qdio->adapter->pool.erp_req); in zfcp_fsf_close_wka_port()
1648 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_close_wka_port()
1659 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_close_wka_port()
1719 struct zfcp_qdio *qdio = erp_action->adapter->qdio; in zfcp_fsf_close_physical_port() local
1723 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_close_physical_port()
1724 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_close_physical_port()
1727 req = zfcp_fsf_req_create(qdio, FSF_QTCB_CLOSE_PHYSICAL_PORT, in zfcp_fsf_close_physical_port()
1729 qdio->adapter->pool.erp_req); in zfcp_fsf_close_physical_port()
1737 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_close_physical_port()
1752 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_close_physical_port()
1838 struct zfcp_qdio *qdio = adapter->qdio; in zfcp_fsf_open_lun() local
1842 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_open_lun()
1843 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_open_lun()
1846 req = zfcp_fsf_req_create(qdio, FSF_QTCB_OPEN_LUN, in zfcp_fsf_open_lun()
1856 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_open_lun()
1875 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_open_lun()
1928 struct zfcp_qdio *qdio = erp_action->adapter->qdio; in zfcp_fsf_close_lun() local
1933 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_close_lun()
1934 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_close_lun()
1937 req = zfcp_fsf_req_create(qdio, FSF_QTCB_CLOSE_LUN, in zfcp_fsf_close_lun()
1939 qdio->adapter->pool.erp_req); in zfcp_fsf_close_lun()
1947 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_close_lun()
1963 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_close_lun()
2202 struct zfcp_qdio *qdio = adapter->qdio; in zfcp_fsf_fcp_cmnd() local
2210 spin_lock_irqsave(&qdio->req_q_lock, flags); in zfcp_fsf_fcp_cmnd()
2211 if (atomic_read(&qdio->req_q_free) <= 0) { in zfcp_fsf_fcp_cmnd()
2212 atomic_inc(&qdio->req_q_full); in zfcp_fsf_fcp_cmnd()
2219 req = zfcp_fsf_req_create(qdio, FSF_QTCB_FCP_CMND, in zfcp_fsf_fcp_cmnd()
2250 zfcp_qdio_set_data_div(qdio, &req->qdio_req, in zfcp_fsf_fcp_cmnd()
2252 retval = zfcp_qdio_sbals_from_sg(qdio, &req->qdio_req, in zfcp_fsf_fcp_cmnd()
2260 retval = zfcp_qdio_sbals_from_sg(qdio, &req->qdio_req, in zfcp_fsf_fcp_cmnd()
2265 zfcp_qdio_set_sbale_last(adapter->qdio, &req->qdio_req); in zfcp_fsf_fcp_cmnd()
2267 zfcp_qdio_set_scount(qdio, &req->qdio_req); in zfcp_fsf_fcp_cmnd()
2279 spin_unlock_irqrestore(&qdio->req_q_lock, flags); in zfcp_fsf_fcp_cmnd()
2310 struct zfcp_qdio *qdio = zfcp_sdev->port->adapter->qdio; in zfcp_fsf_fcp_task_mgmt() local
2316 spin_lock_irq(&qdio->req_q_lock); in zfcp_fsf_fcp_task_mgmt()
2317 if (zfcp_qdio_sbal_get(qdio)) in zfcp_fsf_fcp_task_mgmt()
2320 req = zfcp_fsf_req_create(qdio, FSF_QTCB_FCP_CMND, in zfcp_fsf_fcp_task_mgmt()
2322 qdio->adapter->pool.scsi_req); in zfcp_fsf_fcp_task_mgmt()
2337 zfcp_qdio_set_sbale_last(qdio, &req->qdio_req); in zfcp_fsf_fcp_task_mgmt()
2349 spin_unlock_irq(&qdio->req_q_lock); in zfcp_fsf_fcp_task_mgmt()
2358 void zfcp_fsf_reqid_check(struct zfcp_qdio *qdio, int sbal_idx) in zfcp_fsf_reqid_check() argument
2360 struct zfcp_adapter *adapter = qdio->adapter; in zfcp_fsf_reqid_check()
2361 struct qdio_buffer *sbal = qdio->res_q[sbal_idx]; in zfcp_fsf_reqid_check()