Symbol: sli4
drivers/scsi/elx/efct/efct_driver.c
93
struct sli4 *sli;
drivers/scsi/elx/efct/efct_hw.c
1156
struct sli4 *sli = &hw->sli;
drivers/scsi/elx/efct/efct_hw.c
1166
struct sli4 *sli = &hw->sli;
drivers/scsi/elx/efct/efct_hw.h
368
struct sli4 sli;
drivers/scsi/elx/efct/efct_hw_queues.c
197
struct sli4 *sli4 = &hw->sli;
drivers/scsi/elx/efct/efct_hw_queues.c
222
if (sli_cq_alloc_set(sli4, qs, num_cqs, entry_count, assefct)) {
drivers/scsi/elx/libefc/efclib.h
518
struct sli4 *sli;
drivers/scsi/elx/libefc_sli/sli4.c
1003
efc_log_err(sli4, "bad parameter sli4=%p q=%p\n", sli4, q);
drivers/scsi/elx/libefc_sli/sli4.c
1032
efc_log_info(sli4, "bad queue type %d\n", q->type);
drivers/scsi/elx/libefc_sli/sli4.c
1037
rc = sli_cmd_common_destroy_q(sli4, opcode, subsystem, q->id);
drivers/scsi/elx/libefc_sli/sli4.c
1041
rc = sli_bmbx_command(sli4);
drivers/scsi/elx/libefc_sli/sli4.c
1045
rc = sli_res_sli_config(sli4, sli4->bmbx.virt);
drivers/scsi/elx/libefc_sli/sli4.c
1049
res = (void *)((u8 *)sli4->bmbx.virt +
drivers/scsi/elx/libefc_sli/sli4.c
1052
efc_log_err(sli4, "destroy %s st=%#x addl=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
1061
__sli_queue_destroy(sli4, q);
drivers/scsi/elx/libefc_sli/sli4.c
1067
sli_queue_eq_arm(struct sli4 *sli4, struct sli4_queue *q, bool arm)
drivers/scsi/elx/libefc_sli/sli4.c
1074
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
1087
sli_queue_arm(struct sli4 *sli4, struct sli4_queue *q, bool arm)
drivers/scsi/elx/libefc_sli/sli4.c
1097
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
1106
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
1115
efc_log_info(sli4, "should only be used for EQ/CQ, not %s\n",
drivers/scsi/elx/libefc_sli/sli4.c
1125
sli_wq_write(struct sli4 *sli4, struct sli4_queue *q, u8 *entry)
drivers/scsi/elx/libefc_sli/sli4.c
1134
if (sli4->params.perf_wq_id_association)
drivers/scsi/elx/libefc_sli/sli4.c
1147
sli_mq_write(struct sli4 *sli4, struct sli4_queue *q, u8 *entry)
drivers/scsi/elx/libefc_sli/sli4.c
1168
sli_rq_write(struct sli4 *sli4, struct sli4_queue *q, u8 *entry)
drivers/scsi/elx/libefc_sli/sli4.c
1197
sli_eq_read(struct sli4 *sli4, struct sli4_queue *q, u8 *entry)
drivers/scsi/elx/libefc_sli/sli4.c
1215
if (sli4->if_type != SLI4_INTF_IF_TYPE_6) {
drivers/scsi/elx/libefc_sli/sli4.c
1230
if (sli4->if_type == SLI4_INTF_IF_TYPE_6 && q->index == 0)
drivers/scsi/elx/libefc_sli/sli4.c
1239
sli_cq_read(struct sli4 *sli4, struct sli4_queue *q, u8 *entry)
drivers/scsi/elx/libefc_sli/sli4.c
1259
if (sli4->if_type != SLI4_INTF_IF_TYPE_6) {
drivers/scsi/elx/libefc_sli/sli4.c
126
cqv2 = sli_config_cmd_init(sli4, buf, cmd_size, NULL);
drivers/scsi/elx/libefc_sli/sli4.c
1274
if (sli4->if_type == SLI4_INTF_IF_TYPE_6 && q->index == 0)
drivers/scsi/elx/libefc_sli/sli4.c
1283
sli_mq_read(struct sli4 *sli4, struct sli4_queue *q, u8 *entry)
drivers/scsi/elx/libefc_sli/sli4.c
1307
sli_eq_parse(struct sli4 *sli4, u8 *buf, u16 *cq_id)
drivers/scsi/elx/libefc_sli/sli4.c
1316
efc_log_err(sli4, "bad parameters sli4=%p buf=%p cq_id=%p\n",
drivers/scsi/elx/libefc_sli/sli4.c
1317
sli4, buf, cq_id);
drivers/scsi/elx/libefc_sli/sli4.c
1329
efc_log_info(sli4, "sentinel EQE\n");
drivers/scsi/elx/libefc_sli/sli4.c
1333
efc_log_info(sli4, "Unsupported EQE: major %x minor %x\n",
drivers/scsi/elx/libefc_sli/sli4.c
1342
sli_cq_parse(struct sli4 *sli4, struct sli4_queue *cq, u8 *cqe,
drivers/scsi/elx/libefc_sli/sli4.c
1348
efc_log_err(sli4, "bad params sli4=%p cq=%p cqe=%p etype=%p q_id=%p\n",
drivers/scsi/elx/libefc_sli/sli4.c
1349
sli4, cq, cqe, etype, q_id);
drivers/scsi/elx/libefc_sli/sli4.c
1361
rc = sli_cqe_mq(sli4, mcqe);
drivers/scsi/elx/libefc_sli/sli4.c
1365
rc = sli_fc_cqe_parse(sli4, cq, cqe, etype, q_id);
drivers/scsi/elx/libefc_sli/sli4.c
1372
sli_abort_wqe(struct sli4 *sli, void *buf, enum sli4_abort_type type,
drivers/scsi/elx/libefc_sli/sli4.c
1418
sli_els_request64_wqe(struct sli4 *sli, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.c
155
efc_log_err(sli4, "num_pages %d not valid\n", num_pages);
drivers/scsi/elx/libefc_sli/sli4.c
1563
sli_fcp_icmnd64_wqe(struct sli4 *sli, void *buf, struct efc_dma *sgl, u16 xri,
drivers/scsi/elx/libefc_sli/sli4.c
159
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
1628
sli_fcp_iread64_wqe(struct sli4 *sli, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.c
1729
sli_fcp_iwrite64_wqe(struct sli4 *sli, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.c
178
sli_cmd_common_create_eq(struct sli4 *sli4, void *buf, struct efc_dma *qmem)
drivers/scsi/elx/libefc_sli/sli4.c
1823
sli_fcp_treceive64_wqe(struct sli4 *sli, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.c
187
eq = sli_config_cmd_init(sli4, buf, SLI4_CFG_PYLD_LENGTH(cmn_create_eq),
drivers/scsi/elx/libefc_sli/sli4.c
192
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
1941
sli_fcp_cont_treceive64_wqe(struct sli4 *sli, void *buf,
drivers/scsi/elx/libefc_sli/sli4.c
1960
sli_fcp_trsp64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.c
1966
memset(buf, 0, sli4->wqe_size);
drivers/scsi/elx/libefc_sli/sli4.c
1974
if (sli4->params.sgl_pre_registered || port_owned)
drivers/scsi/elx/libefc_sli/sli4.c
2016
if (params->app_id && sli4->wqe_size == SLI4_WQE_EXT_BYTES &&
drivers/scsi/elx/libefc_sli/sli4.c
2026
sli_fcp_tsend64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.c
2035
memset(buf, 0, sli4->wqe_size);
drivers/scsi/elx/libefc_sli/sli4.c
2038
efc_log_err(sli4, "bad parameter sgl=%p virt=%p\n",
drivers/scsi/elx/libefc_sli/sli4.c
2045
if (sli4->params.sgl_pre_registered) {
drivers/scsi/elx/libefc_sli/sli4.c
2124
if (sli4->params.perf_hint) {
drivers/scsi/elx/libefc_sli/sli4.c
2142
if (params->app_id && sli4->wqe_size == SLI4_WQE_EXT_BYTES &&
drivers/scsi/elx/libefc_sli/sli4.c
2152
sli_gen_request64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.c
2159
memset(buf, 0, sli4->wqe_size);
drivers/scsi/elx/libefc_sli/sli4.c
2162
efc_log_err(sli4, "bad parameter sgl=%p virt=%p\n",
drivers/scsi/elx/libefc_sli/sli4.c
2169
if (sli4->params.sgl_pre_registered) {
drivers/scsi/elx/libefc_sli/sli4.c
218
efc_log_err(sli4, "num_pages %d not valid\n", num_pages);
drivers/scsi/elx/libefc_sli/sli4.c
222
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
2225
sli_send_frame_wqe(struct sli4 *sli, void *buf, u8 sof, u8 eof, u32 *hdr,
drivers/scsi/elx/libefc_sli/sli4.c
2275
sli_xmit_bls_rsp64_wqe(struct sli4 *sli, void *buf,
drivers/scsi/elx/libefc_sli/sli4.c
2348
sli_xmit_els_rsp64_wqe(struct sli4 *sli, void *buf, struct efc_dma *rsp,
drivers/scsi/elx/libefc_sli/sli4.c
2406
sli_xmit_sequence64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *payload,
drivers/scsi/elx/libefc_sli/sli4.c
241
sli_cmd_common_create_mq_ext(struct sli4 *sli4, void *buf, struct efc_dma *qmem,
drivers/scsi/elx/libefc_sli/sli4.c
2411
memset(buf, 0, sli4->wqe_size);
drivers/scsi/elx/libefc_sli/sli4.c
2414
efc_log_err(sli4, "bad parameter sgl=%p virt=%p\n",
drivers/scsi/elx/libefc_sli/sli4.c
2419
if (sli4->params.sgl_pre_registered)
drivers/scsi/elx/libefc_sli/sli4.c
2478
sli_requeue_xri_wqe(struct sli4 *sli4, void *buf, u16 xri, u16 tag, u16 cq_id)
drivers/scsi/elx/libefc_sli/sli4.c
2482
memset(buf, 0, sli4->wqe_size);
drivers/scsi/elx/libefc_sli/sli4.c
2495
sli_fc_process_link_attention(struct sli4 *sli4, void *acqe)
drivers/scsi/elx/libefc_sli/sli4.c
250
mq = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
2500
efc_log_info(sli4, "link=%d attn_type=%#x top=%#x speed=%#x pfault=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2504
efc_log_info(sli4, "shared_lnk_status=%#x logl_lnk_speed=%#x evttag=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2509
if (!sli4->link)
drivers/scsi/elx/libefc_sli/sli4.c
2522
efc_log_info(sli4, "attn_type: no hard alpa\n");
drivers/scsi/elx/libefc_sli/sli4.c
2526
efc_log_info(sli4, "attn_type: unknown\n");
drivers/scsi/elx/libefc_sli/sli4.c
2534
efc_log_info(sli4, "event_type: FC shared link event\n");
drivers/scsi/elx/libefc_sli/sli4.c
2537
efc_log_info(sli4, "event_type: unknown\n");
drivers/scsi/elx/libefc_sli/sli4.c
2549
efc_log_info(sli4, "topology Internal loopback\n");
drivers/scsi/elx/libefc_sli/sli4.c
2553
efc_log_info(sli4, "topology serdes loopback\n");
drivers/scsi/elx/libefc_sli/sli4.c
2557
efc_log_info(sli4, "topology: unknown\n");
drivers/scsi/elx/libefc_sli/sli4.c
2563
sli4->link(sli4->link_arg, (void *)&event);
drivers/scsi/elx/libefc_sli/sli4.c
2569
sli_fc_cqe_parse(struct sli4 *sli4, struct sli4_queue *cq,
drivers/scsi/elx/libefc_sli/sli4.c
2586
efc_log_info(sli4, "WCQE: status=%#x hw_status=%#x tag=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2589
efc_log_info(sli4, "w1=%#x w2=%#x xb=%d\n",
drivers/scsi/elx/libefc_sli/sli4.c
2593
efc_log_info(sli4, " %08X %08X %08X %08X\n",
drivers/scsi/elx/libefc_sli/sli4.c
2637
efc_log_info(sli4, "Optimized DATA CQE: status=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2639
efc_log_info(sli4, "hstat=%#x xri=%#x dpl=%#x w3=%#x xb=%d\n",
drivers/scsi/elx/libefc_sli/sli4.c
2675
efc_log_info(sli4, "CQE completion code %d not handled\n",
drivers/scsi/elx/libefc_sli/sli4.c
2686
sli_fc_response_length(struct sli4 *sli4, u8 *cqe)
drivers/scsi/elx/libefc_sli/sli4.c
2694
sli_fc_io_length(struct sli4 *sli4, u8 *cqe)
drivers/scsi/elx/libefc_sli/sli4.c
2702
sli_fc_els_did(struct sli4 *sli4, u8 *cqe, u32 *d_id)
drivers/scsi/elx/libefc_sli/sli4.c
2715
sli_fc_ext_status(struct sli4 *sli4, u8 *cqe)
drivers/scsi/elx/libefc_sli/sli4.c
2746
sli_fc_rqe_rqid_and_index(struct sli4 *sli4, u8 *cqe, u16 *rq_id, u32 *index)
drivers/scsi/elx/libefc_sli/sli4.c
276
efc_log_info(sli4, "num_pages %d not valid\n", num_pages);
drivers/scsi/elx/libefc_sli/sli4.c
2769
efc_log_info(sli4, "status=%02x (%s) rq_id=%d\n",
drivers/scsi/elx/libefc_sli/sli4.c
2775
efc_log_info(sli4, "pdpl=%x sof=%02x eof=%02x hdpl=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2792
efc_log_info(sli4, "status=%02x (%s) rq_id=%d, index=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2797
efc_log_info(sli4, "pdpl=%x sof=%02x eof=%02x hdpl=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2811
efc_log_info(sli4, "stat=%02x (%s) rqid=%d, idx=%x pdpl=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2817
efc_log_info(sli4, "hdpl=%x oox=%d agxr=%d xri=0x%x rpi=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
282
if (sli4->params.mq_create_version) {
drivers/scsi/elx/libefc_sli/sli4.c
2837
efc_log_info(sli4, "stat=%02x (%s) rq_id=%d, idx=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2841
efc_log_info(sli4, "rq_id=%#x sdpl=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2851
efc_log_info(sli4, "status=%02x rq_id=%d, index=%x pdpl=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2856
efc_log_info(sli4, "sof=%02x eof=%02x hdpl=%x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2865
sli_bmbx_wait(struct sli4 *sli4, u32 msec)
drivers/scsi/elx/libefc_sli/sli4.c
2873
val = readl(sli4->reg[0] + SLI4_BMBX_REG);
drivers/scsi/elx/libefc_sli/sli4.c
2884
sli_bmbx_write(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
2889
val = sli_bmbx_write_hi(sli4->bmbx.phys);
drivers/scsi/elx/libefc_sli/sli4.c
2890
writel(val, (sli4->reg[0] + SLI4_BMBX_REG));
drivers/scsi/elx/libefc_sli/sli4.c
2892
if (sli_bmbx_wait(sli4, SLI4_BMBX_DELAY_US)) {
drivers/scsi/elx/libefc_sli/sli4.c
2893
efc_log_crit(sli4, "BMBX WRITE_HI failed\n");
drivers/scsi/elx/libefc_sli/sli4.c
2896
val = sli_bmbx_write_lo(sli4->bmbx.phys);
drivers/scsi/elx/libefc_sli/sli4.c
2897
writel(val, (sli4->reg[0] + SLI4_BMBX_REG));
drivers/scsi/elx/libefc_sli/sli4.c
2900
return sli_bmbx_wait(sli4, SLI4_BMBX_TIMEOUT_MSEC);
drivers/scsi/elx/libefc_sli/sli4.c
2904
sli_bmbx_command(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
2906
void *cqe = (u8 *)sli4->bmbx.virt + SLI4_BMBX_SIZE;
drivers/scsi/elx/libefc_sli/sli4.c
2908
if (sli_fw_error_status(sli4) > 0) {
drivers/scsi/elx/libefc_sli/sli4.c
2909
efc_log_crit(sli4, "Chip is in an error state -Mailbox command rejected");
drivers/scsi/elx/libefc_sli/sli4.c
2910
efc_log_crit(sli4, " status=%#x error1=%#x error2=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2911
sli_reg_read_status(sli4),
drivers/scsi/elx/libefc_sli/sli4.c
2912
sli_reg_read_err1(sli4),
drivers/scsi/elx/libefc_sli/sli4.c
2913
sli_reg_read_err2(sli4));
drivers/scsi/elx/libefc_sli/sli4.c
2918
if (sli_bmbx_write(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
2919
efc_log_crit(sli4, "bmbx write fail phys=%pad reg=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
2920
&sli4->bmbx.phys, readl(sli4->reg[0] + SLI4_BMBX_REG));
drivers/scsi/elx/libefc_sli/sli4.c
2927
return sli_cqe_mq(sli4, cqe);
drivers/scsi/elx/libefc_sli/sli4.c
2929
efc_log_crit(sli4, "invalid or wrong type\n");
drivers/scsi/elx/libefc_sli/sli4.c
2934
sli_cmd_config_link(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
2948
sli_cmd_down_link(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
2962
sli_cmd_dump_type4(struct sli4 *sli4, void *buf, u16 wki)
drivers/scsi/elx/libefc_sli/sli4.c
2975
sli_cmd_common_read_transceiver_data(struct sli4 *sli4, void *buf, u32 page_num,
drivers/scsi/elx/libefc_sli/sli4.c
2986
req = sli_config_cmd_init(sli4, buf, psize, dma);
drivers/scsi/elx/libefc_sli/sli4.c
2995
req->port = cpu_to_le32(sli4->port_number);
drivers/scsi/elx/libefc_sli/sli4.c
3001
sli_cmd_read_link_stats(struct sli4 *sli4, void *buf, u8 req_ext_counters,
drivers/scsi/elx/libefc_sli/sli4.c
301
sli_cmd_wq_create(struct sli4 *sli4, void *buf, struct efc_dma *qmem, u16 cq_id)
drivers/scsi/elx/libefc_sli/sli4.c
3025
sli_cmd_read_status(struct sli4 *sli4, void *buf, u8 clear_counters)
drivers/scsi/elx/libefc_sli/sli4.c
3043
sli_cmd_init_link(struct sli4 *sli4, void *buf, u32 speed, u8 reset_alpa)
drivers/scsi/elx/libefc_sli/sli4.c
3068
efc_log_info(sli4, "unsupported FC speed %d\n", speed);
drivers/scsi/elx/libefc_sli/sli4.c
3073
switch (sli4->topology) {
drivers/scsi/elx/libefc_sli/sli4.c
3083
efc_log_info(sli4, "unsupported FC-AL speed %d\n",
drivers/scsi/elx/libefc_sli/sli4.c
3094
efc_log_info(sli4, "unsupported topology %#x\n", sli4->topology);
drivers/scsi/elx/libefc_sli/sli4.c
310
wq = sli_config_cmd_init(sli4, buf, SLI4_CFG_PYLD_LENGTH(wq_create),
drivers/scsi/elx/libefc_sli/sli4.c
3111
sli_cmd_init_vfi(struct sli4 *sli4, void *buf, u16 vfi, u16 fcfi, u16 vpi)
drivers/scsi/elx/libefc_sli/sli4.c
3136
sli_cmd_init_vpi(struct sli4 *sli4, void *buf, u16 vpi, u16 vfi)
drivers/scsi/elx/libefc_sli/sli4.c
3150
sli_cmd_post_xri(struct sli4 *sli4, void *buf, u16 xri_base, u16 xri_count)
drivers/scsi/elx/libefc_sli/sli4.c
3168
sli_cmd_release_xri(struct sli4 *sli4, void *buf, u8 num_xri)
drivers/scsi/elx/libefc_sli/sli4.c
317
n_wqe = qmem->size / sli4->wqe_size;
drivers/scsi/elx/libefc_sli/sli4.c
3182
sli_cmd_read_config(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
3194
sli_cmd_read_nvparms(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
3206
sli_cmd_write_nvparms(struct sli4 *sli4, void *buf, u8 *wwpn, u8 *wwnn,
drivers/scsi/elx/libefc_sli/sli4.c
3223
sli_cmd_read_rev(struct sli4 *sli4, void *buf, struct efc_dma *vpd)
drivers/scsi/elx/libefc_sli/sli4.c
3248
sli_cmd_read_sparm64(struct sli4 *sli4, void *buf, struct efc_dma *dma, u16 vpi)
drivers/scsi/elx/libefc_sli/sli4.c
3253
efc_log_err(sli4, "special VPI not supported!!!\n");
drivers/scsi/elx/libefc_sli/sli4.c
3258
efc_log_err(sli4, "bad DMA buffer\n");
drivers/scsi/elx/libefc_sli/sli4.c
3280
sli_cmd_read_topology(struct sli4 *sli4, void *buf, struct efc_dma *dma)
drivers/scsi/elx/libefc_sli/sli4.c
3288
efc_log_err(sli4, "loop map buffer too small %zx\n", dma->size);
drivers/scsi/elx/libefc_sli/sli4.c
3310
sli_cmd_reg_fcfi(struct sli4 *sli4, void *buf, u16 index,
drivers/scsi/elx/libefc_sli/sli4.c
3347
sli_cmd_reg_fcfi_mrq(struct sli4 *sli4, void *buf, u8 mode, u16 fcf_index,
drivers/scsi/elx/libefc_sli/sli4.c
3396
sli_cmd_reg_rpi(struct sli4 *sli4, void *buf, u32 rpi, u32 vpi, u32 fc_id,
drivers/scsi/elx/libefc_sli/sli4.c
3436
sli_cmd_reg_vfi(struct sli4 *sli4, void *buf, size_t size,
drivers/scsi/elx/libefc_sli/sli4.c
3458
reg_vfi->e_d_tov = cpu_to_le32(sli4->e_d_tov);
drivers/scsi/elx/libefc_sli/sli4.c
3459
reg_vfi->r_a_tov = cpu_to_le32(sli4->r_a_tov);
drivers/scsi/elx/libefc_sli/sli4.c
3470
sli_cmd_reg_vpi(struct sli4 *sli4, void *buf, u32 fc_id, __be64 sli_wwpn,
drivers/scsi/elx/libefc_sli/sli4.c
3495
sli_cmd_request_features(struct sli4 *sli4, void *buf, u32 features_mask,
drivers/scsi/elx/libefc_sli/sli4.c
3513
sli_cmd_unreg_fcfi(struct sli4 *sli4, void *buf, u16 indicator)
drivers/scsi/elx/libefc_sli/sli4.c
352
if (sli4->wqe_size == SLI4_WQE_EXT_BYTES)
drivers/scsi/elx/libefc_sli/sli4.c
3526
sli_cmd_unreg_rpi(struct sli4 *sli4, void *buf, u16 indicator,
drivers/scsi/elx/libefc_sli/sli4.c
3555
efc_log_info(sli4, "unknown type %#x\n", which);
drivers/scsi/elx/libefc_sli/sli4.c
3566
sli_cmd_unreg_vfi(struct sli4 *sli4, void *buf, u16 index, u32 which)
drivers/scsi/elx/libefc_sli/sli4.c
3594
sli_cmd_unreg_vpi(struct sli4 *sli4, void *buf, u16 indicator, u32 which)
drivers/scsi/elx/libefc_sli/sli4.c
3627
sli_cmd_common_modify_eq_delay(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.c
3634
req = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3655
sli4_cmd_lowlevel_set_watchdog(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.c
3660
req = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3672
sli_cmd_common_get_cntl_attributes(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.c
3677
hdr = sli_config_cmd_init(sli4, buf, SLI4_RQST_CMDSZ(hdr), dma);
drivers/scsi/elx/libefc_sli/sli4.c
368
sli_cmd_rq_create_v1(struct sli4 *sli4, void *buf, struct efc_dma *qmem,
drivers/scsi/elx/libefc_sli/sli4.c
3689
sli_cmd_common_get_cntl_addl_attributes(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.c
3694
hdr = sli_config_cmd_init(sli4, buf, SLI4_RQST_CMDSZ(hdr), dma);
drivers/scsi/elx/libefc_sli/sli4.c
3706
sli_cmd_common_nop(struct sli4 *sli4, void *buf, uint64_t context)
drivers/scsi/elx/libefc_sli/sli4.c
3710
nop = sli_config_cmd_init(sli4, buf, SLI4_CFG_PYLD_LENGTH(cmn_nop),
drivers/scsi/elx/libefc_sli/sli4.c
3724
sli_cmd_common_get_resource_extent_info(struct sli4 *sli4, void *buf, u16 rtype)
drivers/scsi/elx/libefc_sli/sli4.c
3728
ext = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3743
sli_cmd_common_get_sli4_parameters(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
3747
hdr = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
376
rq = sli_config_cmd_init(sli4, buf, SLI4_CFG_PYLD_LENGTH(rq_create_v1),
drivers/scsi/elx/libefc_sli/sli4.c
3760
sli_cmd_common_get_port_name(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
3764
pname = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3780
sli_cmd_common_write_object(struct sli4 *sli4, void *buf, u16 noc,
drivers/scsi/elx/libefc_sli/sli4.c
3789
wr_obj = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3823
sli_cmd_common_delete_object(struct sli4 *sli4, void *buf, char *obj_name)
drivers/scsi/elx/libefc_sli/sli4.c
3827
req = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3841
sli_cmd_common_read_object(struct sli4 *sli4, void *buf, u32 desired_read_len,
drivers/scsi/elx/libefc_sli/sli4.c
3847
rd_obj = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3880
sli_cmd_dmtf_exec_clp_cmd(struct sli4 *sli4, void *buf, struct efc_dma *cmd,
drivers/scsi/elx/libefc_sli/sli4.c
3885
clp_cmd = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3903
sli_cmd_common_set_dump_location(struct sli4 *sli4, void *buf, bool query,
drivers/scsi/elx/libefc_sli/sli4.c
391
efc_log_info(sli4, "num_pages %d not valid, max %d\n",
drivers/scsi/elx/libefc_sli/sli4.c
3910
set_dump_loc = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3946
sli_cmd_common_set_features(struct sli4 *sli4, void *buf, u32 feature,
drivers/scsi/elx/libefc_sli/sli4.c
3951
cmd = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
3968
sli_cqe_mq(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
3981
efc_log_info(sli4, "status(st=%#x ext=%#x con=%d cmp=%d ae=%d val=%d)\n",
drivers/scsi/elx/libefc_sli/sli4.c
3994
sli_cqe_async(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
4000
efc_log_err(sli4, "bad parameter sli4=%p buf=%p\n", sli4, buf);
drivers/scsi/elx/libefc_sli/sli4.c
4006
efc_log_info(sli4, "Unsupported by FC link, evt code:%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4010
efc_log_info(sli4, "ACQE GRP5\n");
drivers/scsi/elx/libefc_sli/sli4.c
4013
efc_log_info(sli4, "ACQE SLI Port, type=0x%x, data1,2=0x%08x,0x%08x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4019
rc = sli_fc_process_link_attention(sli4, buf);
drivers/scsi/elx/libefc_sli/sli4.c
4022
efc_log_info(sli4, "ACQE unknown=%#x\n", acqe->event_code);
drivers/scsi/elx/libefc_sli/sli4.c
4029
sli_fw_ready(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4034
val = sli_reg_read_status(sli4);
drivers/scsi/elx/libefc_sli/sli4.c
4039
sli_wait_for_fw_ready(struct sli4 *sli4, u32 timeout_ms)
drivers/scsi/elx/libefc_sli/sli4.c
4046
if (sli_fw_ready(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
405
if (buffer_size < sli4->rq_min_buf_size ||
drivers/scsi/elx/libefc_sli/sli4.c
4056
sli_sliport_reset(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
406
buffer_size > sli4->rq_max_buf_size) {
drivers/scsi/elx/libefc_sli/sli4.c
4063
writel(val, (sli4->reg[0] + SLI4_PORT_CTRL_REG));
drivers/scsi/elx/libefc_sli/sli4.c
4065
rc = sli_wait_for_fw_ready(sli4, SLI4_FW_READY_TIMEOUT_MSEC);
drivers/scsi/elx/libefc_sli/sli4.c
4067
efc_log_crit(sli4, "port failed to become ready after initialization\n");
drivers/scsi/elx/libefc_sli/sli4.c
407
efc_log_err(sli4, "buffer_size %d out of range (%d-%d)\n",
drivers/scsi/elx/libefc_sli/sli4.c
4073
sli_fw_init(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4078
if (!sli_wait_for_fw_ready(sli4, SLI4_FW_READY_TIMEOUT_MSEC)) {
drivers/scsi/elx/libefc_sli/sli4.c
4079
efc_log_crit(sli4, "FW status is NOT ready\n");
drivers/scsi/elx/libefc_sli/sli4.c
408
buffer_size, sli4->rq_min_buf_size,
drivers/scsi/elx/libefc_sli/sli4.c
4086
return sli_sliport_reset(sli4);
drivers/scsi/elx/libefc_sli/sli4.c
409
sli4->rq_max_buf_size);
drivers/scsi/elx/libefc_sli/sli4.c
4090
sli_request_features(struct sli4 *sli4, u32 *features, bool query)
drivers/scsi/elx/libefc_sli/sli4.c
4092
struct sli4_cmd_request_features *req_features = sli4->bmbx.virt;
drivers/scsi/elx/libefc_sli/sli4.c
4094
if (sli_cmd_request_features(sli4, sli4->bmbx.virt, *features, query)) {
drivers/scsi/elx/libefc_sli/sli4.c
4095
efc_log_err(sli4, "bad REQUEST_FEATURES write\n");
drivers/scsi/elx/libefc_sli/sli4.c
4099
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4100
efc_log_crit(sli4, "bootstrap mailbox write fail\n");
drivers/scsi/elx/libefc_sli/sli4.c
4105
efc_log_err(sli4, "REQUEST_FEATURES bad status %#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4115
sli_calc_max_qentries(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4121
sli4->qinfo.max_qentries[q] =
drivers/scsi/elx/libefc_sli/sli4.c
4122
sli_convert_mask_to_count(sli4->qinfo.count_method[q],
drivers/scsi/elx/libefc_sli/sli4.c
4123
sli4->qinfo.count_mask[q]);
drivers/scsi/elx/libefc_sli/sli4.c
4131
qentries = sli4->qinfo.max_qentries[q];
drivers/scsi/elx/libefc_sli/sli4.c
4133
efc_log_info(sli4, "[%s]: max_qentries from %d to %d\n",
drivers/scsi/elx/libefc_sli/sli4.c
4135
sli4->qinfo.max_qentries[q], qentries);
drivers/scsi/elx/libefc_sli/sli4.c
4136
sli4->qinfo.max_qentries[q] = qentries;
drivers/scsi/elx/libefc_sli/sli4.c
4141
sli_get_read_config(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4143
struct sli4_rsp_read_config *conf = sli4->bmbx.virt;
drivers/scsi/elx/libefc_sli/sli4.c
4147
if (sli_cmd_read_config(sli4, sli4->bmbx.virt)) {
drivers/scsi/elx/libefc_sli/sli4.c
4148
efc_log_err(sli4, "bad READ_CONFIG write\n");
drivers/scsi/elx/libefc_sli/sli4.c
4152
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4153
efc_log_crit(sli4, "bootstrap mailbox fail (READ_CONFIG)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4158
efc_log_err(sli4, "READ_CONFIG bad status %#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4163
sli4->params.has_extents =
drivers/scsi/elx/libefc_sli/sli4.c
4165
if (sli4->params.has_extents) {
drivers/scsi/elx/libefc_sli/sli4.c
4166
efc_log_err(sli4, "extents not supported\n");
drivers/scsi/elx/libefc_sli/sli4.c
4170
base = sli4->ext[0].base;
drivers/scsi/elx/libefc_sli/sli4.c
4180
sli4->ext[i].number = 1;
drivers/scsi/elx/libefc_sli/sli4.c
4181
sli4->ext[i].n_alloc = 0;
drivers/scsi/elx/libefc_sli/sli4.c
4182
sli4->ext[i].base = &base[i];
drivers/scsi/elx/libefc_sli/sli4.c
4185
sli4->ext[SLI4_RSRC_VFI].base[0] = le16_to_cpu(conf->vfi_base);
drivers/scsi/elx/libefc_sli/sli4.c
4186
sli4->ext[SLI4_RSRC_VFI].size = le16_to_cpu(conf->vfi_count);
drivers/scsi/elx/libefc_sli/sli4.c
4188
sli4->ext[SLI4_RSRC_VPI].base[0] = le16_to_cpu(conf->vpi_base);
drivers/scsi/elx/libefc_sli/sli4.c
4189
sli4->ext[SLI4_RSRC_VPI].size = le16_to_cpu(conf->vpi_count);
drivers/scsi/elx/libefc_sli/sli4.c
4191
sli4->ext[SLI4_RSRC_RPI].base[0] = le16_to_cpu(conf->rpi_base);
drivers/scsi/elx/libefc_sli/sli4.c
4192
sli4->ext[SLI4_RSRC_RPI].size = le16_to_cpu(conf->rpi_count);
drivers/scsi/elx/libefc_sli/sli4.c
4194
sli4->ext[SLI4_RSRC_XRI].base[0] = le16_to_cpu(conf->xri_base);
drivers/scsi/elx/libefc_sli/sli4.c
4195
sli4->ext[SLI4_RSRC_XRI].size = le16_to_cpu(conf->xri_count);
drivers/scsi/elx/libefc_sli/sli4.c
4197
sli4->ext[SLI4_RSRC_FCFI].base[0] = 0;
drivers/scsi/elx/libefc_sli/sli4.c
4198
sli4->ext[SLI4_RSRC_FCFI].size = le16_to_cpu(conf->fcfi_count);
drivers/scsi/elx/libefc_sli/sli4.c
4201
total = sli4->ext[i].number * sli4->ext[i].size;
drivers/scsi/elx/libefc_sli/sli4.c
4202
sli4->ext[i].use_map = bitmap_zalloc(total, GFP_KERNEL);
drivers/scsi/elx/libefc_sli/sli4.c
4203
if (!sli4->ext[i].use_map) {
drivers/scsi/elx/libefc_sli/sli4.c
4204
efc_log_err(sli4, "bitmap memory allocation failed %d\n",
drivers/scsi/elx/libefc_sli/sli4.c
4208
sli4->ext[i].map_size = total;
drivers/scsi/elx/libefc_sli/sli4.c
4211
sli4->topology = (le32_to_cpu(conf->topology_dword) &
drivers/scsi/elx/libefc_sli/sli4.c
4213
switch (sli4->topology) {
drivers/scsi/elx/libefc_sli/sli4.c
4215
efc_log_info(sli4, "FC (unknown)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4218
efc_log_info(sli4, "FC (direct attach)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4221
efc_log_info(sli4, "FC (arbitrated loop)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4224
efc_log_info(sli4, "bad topology %#x\n", sli4->topology);
drivers/scsi/elx/libefc_sli/sli4.c
4227
sli4->e_d_tov = le16_to_cpu(conf->e_d_tov);
drivers/scsi/elx/libefc_sli/sli4.c
4228
sli4->r_a_tov = le16_to_cpu(conf->r_a_tov);
drivers/scsi/elx/libefc_sli/sli4.c
4230
sli4->link_module_type = le16_to_cpu(conf->lmt);
drivers/scsi/elx/libefc_sli/sli4.c
4232
sli4->qinfo.max_qcount[SLI4_QTYPE_EQ] = le16_to_cpu(conf->eq_count);
drivers/scsi/elx/libefc_sli/sli4.c
4233
sli4->qinfo.max_qcount[SLI4_QTYPE_CQ] = le16_to_cpu(conf->cq_count);
drivers/scsi/elx/libefc_sli/sli4.c
4234
sli4->qinfo.max_qcount[SLI4_QTYPE_WQ] = le16_to_cpu(conf->wq_count);
drivers/scsi/elx/libefc_sli/sli4.c
4235
sli4->qinfo.max_qcount[SLI4_QTYPE_RQ] = le16_to_cpu(conf->rq_count);
drivers/scsi/elx/libefc_sli/sli4.c
4242
sli4->qinfo.max_qcount[SLI4_QTYPE_MQ] = SLI4_USER_MQ_COUNT;
drivers/scsi/elx/libefc_sli/sli4.c
4247
sli_get_sli4_parameters(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4258
if (sli_cmd_common_get_sli4_parameters(sli4, sli4->bmbx.virt))
drivers/scsi/elx/libefc_sli/sli4.c
4262
(((u8 *)sli4->bmbx.virt) +
drivers/scsi/elx/libefc_sli/sli4.c
4265
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4266
efc_log_crit(sli4, "bootstrap mailbox write fail\n");
drivers/scsi/elx/libefc_sli/sli4.c
427
sli_cmd_rq_create_v2(struct sli4 *sli4, u32 num_rqs,
drivers/scsi/elx/libefc_sli/sli4.c
4271
efc_log_err(sli4, "COMMON_GET_SLI4_PARAMETERS bad status %#x",
drivers/scsi/elx/libefc_sli/sli4.c
4273
efc_log_err(sli4, "additional status %#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4285
sli4->params.auto_reg = (dw_loopback & SLI4_PARAM_AREG);
drivers/scsi/elx/libefc_sli/sli4.c
4286
sli4->params.auto_xfer_rdy = (dw_loopback & SLI4_PARAM_AGXF);
drivers/scsi/elx/libefc_sli/sli4.c
4287
sli4->params.hdr_template_req = (dw_loopback & SLI4_PARAM_HDRR);
drivers/scsi/elx/libefc_sli/sli4.c
4288
sli4->params.t10_dif_inline_capable = (dw_loopback & SLI4_PARAM_TIMM);
drivers/scsi/elx/libefc_sli/sli4.c
4289
sli4->params.t10_dif_separate_capable = (dw_loopback & SLI4_PARAM_TSMM);
drivers/scsi/elx/libefc_sli/sli4.c
4291
sli4->params.mq_create_version = GET_Q_CREATE_VERSION(dw_mq_pg_cnt);
drivers/scsi/elx/libefc_sli/sli4.c
4292
sli4->params.cq_create_version = GET_Q_CREATE_VERSION(dw_cq_pg_cnt);
drivers/scsi/elx/libefc_sli/sli4.c
4294
sli4->rq_min_buf_size = le16_to_cpu(parms->min_rq_buffer_size);
drivers/scsi/elx/libefc_sli/sli4.c
4295
sli4->rq_max_buf_size = le32_to_cpu(parms->max_rq_buffer_size);
drivers/scsi/elx/libefc_sli/sli4.c
4297
sli4->qinfo.qpage_count[SLI4_QTYPE_EQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4299
sli4->qinfo.qpage_count[SLI4_QTYPE_CQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4301
sli4->qinfo.qpage_count[SLI4_QTYPE_MQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4303
sli4->qinfo.qpage_count[SLI4_QTYPE_WQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4305
sli4->qinfo.qpage_count[SLI4_QTYPE_RQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4310
sli4->qinfo.count_mask[SLI4_QTYPE_EQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4312
sli4->qinfo.count_method[SLI4_QTYPE_EQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4315
sli4->qinfo.count_mask[SLI4_QTYPE_CQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4317
sli4->qinfo.count_method[SLI4_QTYPE_CQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4320
sli4->qinfo.count_mask[SLI4_QTYPE_MQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4322
sli4->qinfo.count_method[SLI4_QTYPE_MQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4325
sli4->qinfo.count_mask[SLI4_QTYPE_WQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4327
sli4->qinfo.count_method[SLI4_QTYPE_WQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4330
sli4->qinfo.count_mask[SLI4_QTYPE_RQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4332
sli4->qinfo.count_method[SLI4_QTYPE_RQ] =
drivers/scsi/elx/libefc_sli/sli4.c
4336
sli_calc_max_qentries(sli4);
drivers/scsi/elx/libefc_sli/sli4.c
4341
sli4->max_sgl_pages = (dw_sgl_pg_cnt & SLI4_PARAM_SGL_PAGE_CNT_MASK);
drivers/scsi/elx/libefc_sli/sli4.c
4344
sli4->sgl_page_sizes = (dw_sgl_pg_cnt &
drivers/scsi/elx/libefc_sli/sli4.c
4347
sli4->sge_supported_length = le32_to_cpu(parms->sge_supported_length);
drivers/scsi/elx/libefc_sli/sli4.c
4348
sli4->params.sgl_pre_reg_required = (dw_loopback & SLI4_PARAM_SGLR);
drivers/scsi/elx/libefc_sli/sli4.c
4350
sli4->params.sgl_pre_registered = true;
drivers/scsi/elx/libefc_sli/sli4.c
4352
sli4->params.perf_hint = dw_loopback & SLI4_PARAM_PHON;
drivers/scsi/elx/libefc_sli/sli4.c
4353
sli4->params.perf_wq_id_association = (dw_loopback & SLI4_PARAM_PHWQ);
drivers/scsi/elx/libefc_sli/sli4.c
4355
sli4->rq_batch = (le16_to_cpu(parms->dw15w1_rq_db_window) &
drivers/scsi/elx/libefc_sli/sli4.c
4361
sli4->wqe_size = SLI4_WQE_EXT_BYTES;
drivers/scsi/elx/libefc_sli/sli4.c
4363
sli4->wqe_size = SLI4_WQE_BYTES;
drivers/scsi/elx/libefc_sli/sli4.c
4369
sli_get_ctrl_attributes(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4381
memset(sli4->vpd_data.virt, 0, sli4->vpd_data.size);
drivers/scsi/elx/libefc_sli/sli4.c
4382
if (sli_cmd_common_get_cntl_attributes(sli4, sli4->bmbx.virt,
drivers/scsi/elx/libefc_sli/sli4.c
4383
&sli4->vpd_data)) {
drivers/scsi/elx/libefc_sli/sli4.c
4384
efc_log_err(sli4, "bad COMMON_GET_CNTL_ATTRIBUTES write\n");
drivers/scsi/elx/libefc_sli/sli4.c
4388
attr = sli4->vpd_data.virt;
drivers/scsi/elx/libefc_sli/sli4.c
4390
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4391
efc_log_crit(sli4, "bootstrap mailbox write fail\n");
drivers/scsi/elx/libefc_sli/sli4.c
4396
efc_log_err(sli4, "COMMON_GET_CNTL_ATTRIBUTES bad status %#x",
drivers/scsi/elx/libefc_sli/sli4.c
4398
efc_log_err(sli4, "additional status %#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
44
sli_config_cmd_init(struct sli4 *sli4, void *buf, u32 length,
drivers/scsi/elx/libefc_sli/sli4.c
4403
sli4->port_number = attr->port_num_type_flags & SLI4_CNTL_ATTR_PORTNUM;
drivers/scsi/elx/libefc_sli/sli4.c
4405
memcpy(sli4->bios_version_string, attr->bios_version_str,
drivers/scsi/elx/libefc_sli/sli4.c
4406
sizeof(sli4->bios_version_string));
drivers/scsi/elx/libefc_sli/sli4.c
4411
data.virt = dma_alloc_coherent(&sli4->pci->dev, data.size,
drivers/scsi/elx/libefc_sli/sli4.c
4415
efc_log_err(sli4, "Failed to allocate memory for GET_CNTL_ADDL_ATTR\n");
drivers/scsi/elx/libefc_sli/sli4.c
4419
if (sli_cmd_common_get_cntl_addl_attributes(sli4, sli4->bmbx.virt,
drivers/scsi/elx/libefc_sli/sli4.c
4421
efc_log_err(sli4, "bad GET_CNTL_ADDL_ATTR write\n");
drivers/scsi/elx/libefc_sli/sli4.c
4422
dma_free_coherent(&sli4->pci->dev, data.size,
drivers/scsi/elx/libefc_sli/sli4.c
4427
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4428
efc_log_crit(sli4, "mailbox fail (GET_CNTL_ADDL_ATTR)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4429
dma_free_coherent(&sli4->pci->dev, data.size,
drivers/scsi/elx/libefc_sli/sli4.c
4436
efc_log_err(sli4, "GET_CNTL_ADDL_ATTR bad status %#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4438
dma_free_coherent(&sli4->pci->dev, data.size,
drivers/scsi/elx/libefc_sli/sli4.c
4443
memcpy(sli4->ipl_name, add_attr->ipl_file_name, sizeof(sli4->ipl_name));
drivers/scsi/elx/libefc_sli/sli4.c
4445
efc_log_info(sli4, "IPL:%s\n", (char *)sli4->ipl_name);
drivers/scsi/elx/libefc_sli/sli4.c
4447
dma_free_coherent(&sli4->pci->dev, data.size, data.virt,
drivers/scsi/elx/libefc_sli/sli4.c
4454
sli_get_fw_rev(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4456
struct sli4_cmd_read_rev *read_rev = sli4->bmbx.virt;
drivers/scsi/elx/libefc_sli/sli4.c
4458
if (sli_cmd_read_rev(sli4, sli4->bmbx.virt, &sli4->vpd_data))
drivers/scsi/elx/libefc_sli/sli4.c
4461
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4462
efc_log_crit(sli4, "bootstrap mailbox write fail (READ_REV)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4467
efc_log_err(sli4, "READ_REV bad status %#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
447
dma->virt = dma_alloc_coherent(&sli4->pci->dev, dma->size,
drivers/scsi/elx/libefc_sli/sli4.c
4472
sli4->fw_rev[0] = le32_to_cpu(read_rev->first_fw_id);
drivers/scsi/elx/libefc_sli/sli4.c
4473
memcpy(sli4->fw_name[0], read_rev->first_fw_name,
drivers/scsi/elx/libefc_sli/sli4.c
4474
sizeof(sli4->fw_name[0]));
drivers/scsi/elx/libefc_sli/sli4.c
4476
sli4->fw_rev[1] = le32_to_cpu(read_rev->second_fw_id);
drivers/scsi/elx/libefc_sli/sli4.c
4477
memcpy(sli4->fw_name[1], read_rev->second_fw_name,
drivers/scsi/elx/libefc_sli/sli4.c
4478
sizeof(sli4->fw_name[1]));
drivers/scsi/elx/libefc_sli/sli4.c
4480
sli4->hw_rev[0] = le32_to_cpu(read_rev->first_hw_rev);
drivers/scsi/elx/libefc_sli/sli4.c
4481
sli4->hw_rev[1] = le32_to_cpu(read_rev->second_hw_rev);
drivers/scsi/elx/libefc_sli/sli4.c
4482
sli4->hw_rev[2] = le32_to_cpu(read_rev->third_hw_rev);
drivers/scsi/elx/libefc_sli/sli4.c
4484
efc_log_info(sli4, "FW1:%s (%08x) / FW2:%s (%08x)\n",
drivers/scsi/elx/libefc_sli/sli4.c
4488
efc_log_info(sli4, "HW1: %08x / HW2: %08x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4495
efc_log_info(sli4, "VPD length: avail=%d return=%d actual=%d\n",
drivers/scsi/elx/libefc_sli/sli4.c
4501
sli4->vpd_length = le32_to_cpu(read_rev->returned_vpd_length);
drivers/scsi/elx/libefc_sli/sli4.c
4506
sli_get_config(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4514
if (sli_get_read_config(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
4517
if (sli_get_sli4_parameters(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
4520
if (sli_get_ctrl_attributes(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
4523
if (sli_cmd_common_get_port_name(sli4, sli4->bmbx.virt))
drivers/scsi/elx/libefc_sli/sli4.c
4527
(((u8 *)sli4->bmbx.virt) +
drivers/scsi/elx/libefc_sli/sli4.c
4530
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4531
efc_log_crit(sli4, "bootstrap mailbox fail (GET_PORT_NAME)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4535
sli4->port_name[0] = port_name->port_name[sli4->port_number];
drivers/scsi/elx/libefc_sli/sli4.c
4536
sli4->port_name[1] = '\0';
drivers/scsi/elx/libefc_sli/sli4.c
4538
if (sli_get_fw_rev(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
454
req = sli_config_cmd_init(sli4, sli4->bmbx.virt, payload_size, dma);
drivers/scsi/elx/libefc_sli/sli4.c
4541
if (sli_cmd_read_nvparms(sli4, sli4->bmbx.virt)) {
drivers/scsi/elx/libefc_sli/sli4.c
4542
efc_log_err(sli4, "bad READ_NVPARMS write\n");
drivers/scsi/elx/libefc_sli/sli4.c
4546
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4547
efc_log_crit(sli4, "bootstrap mailbox fail (READ_NVPARMS)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4551
read_nvparms = sli4->bmbx.virt;
drivers/scsi/elx/libefc_sli/sli4.c
4553
efc_log_err(sli4, "READ_NVPARMS bad status %#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4558
memcpy(sli4->wwpn, read_nvparms->wwpn, sizeof(sli4->wwpn));
drivers/scsi/elx/libefc_sli/sli4.c
4559
memcpy(sli4->wwnn, read_nvparms->wwnn, sizeof(sli4->wwnn));
drivers/scsi/elx/libefc_sli/sli4.c
4561
efc_log_info(sli4, "WWPN %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4562
sli4->wwpn[0], sli4->wwpn[1], sli4->wwpn[2], sli4->wwpn[3],
drivers/scsi/elx/libefc_sli/sli4.c
4563
sli4->wwpn[4], sli4->wwpn[5], sli4->wwpn[6], sli4->wwpn[7]);
drivers/scsi/elx/libefc_sli/sli4.c
4564
efc_log_info(sli4, "WWNN %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4565
sli4->wwnn[0], sli4->wwnn[1], sli4->wwnn[2], sli4->wwnn[3],
drivers/scsi/elx/libefc_sli/sli4.c
4566
sli4->wwnn[4], sli4->wwnn[5], sli4->wwnn[6], sli4->wwnn[7]);
drivers/scsi/elx/libefc_sli/sli4.c
4572
sli_setup(struct sli4 *sli4, void *os, struct pci_dev *pdev,
drivers/scsi/elx/libefc_sli/sli4.c
4583
memset(sli4, 0, sizeof(struct sli4));
drivers/scsi/elx/libefc_sli/sli4.c
4585
sli4->os = os;
drivers/scsi/elx/libefc_sli/sli4.c
4586
sli4->pci = pdev;
drivers/scsi/elx/libefc_sli/sli4.c
4589
sli4->reg[i] = reg[i];
drivers/scsi/elx/libefc_sli/sli4.c
4598
efc_log_err(sli4, "SLI_INTF is not valid\n");
drivers/scsi/elx/libefc_sli/sli4.c
4604
efc_log_err(sli4, "Unsupported SLI revision (intf=%#x)\n", intf);
drivers/scsi/elx/libefc_sli/sli4.c
4608
sli4->sli_family = intf & SLI4_INTF_FAMILY_MASK;
drivers/scsi/elx/libefc_sli/sli4.c
4610
sli4->if_type = intf & SLI4_INTF_IF_TYPE_MASK;
drivers/scsi/elx/libefc_sli/sli4.c
4611
efc_log_info(sli4, "status=%#x error1=%#x error2=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4612
sli_reg_read_status(sli4),
drivers/scsi/elx/libefc_sli/sli4.c
4613
sli_reg_read_err1(sli4),
drivers/scsi/elx/libefc_sli/sli4.c
4614
sli_reg_read_err2(sli4));
drivers/scsi/elx/libefc_sli/sli4.c
4623
family = sli4->sli_family;
drivers/scsi/elx/libefc_sli/sli4.c
4632
sli4->asic_type = family;
drivers/scsi/elx/libefc_sli/sli4.c
4633
sli4->asic_rev = rev_id;
drivers/scsi/elx/libefc_sli/sli4.c
4638
if (!sli4->asic_type) {
drivers/scsi/elx/libefc_sli/sli4.c
4639
efc_log_err(sli4, "no matching asic family/rev found: %02x/%02x\n",
drivers/scsi/elx/libefc_sli/sli4.c
4650
sli4->bmbx.size = SLI4_BMBX_SIZE + sizeof(struct sli4_mcqe);
drivers/scsi/elx/libefc_sli/sli4.c
4651
sli4->bmbx.virt = dma_alloc_coherent(&pdev->dev, sli4->bmbx.size,
drivers/scsi/elx/libefc_sli/sli4.c
4652
&sli4->bmbx.phys, GFP_KERNEL);
drivers/scsi/elx/libefc_sli/sli4.c
4653
if (!sli4->bmbx.virt) {
drivers/scsi/elx/libefc_sli/sli4.c
4654
memset(&sli4->bmbx, 0, sizeof(struct efc_dma));
drivers/scsi/elx/libefc_sli/sli4.c
4655
efc_log_err(sli4, "bootstrap mailbox allocation failed\n");
drivers/scsi/elx/libefc_sli/sli4.c
4659
if (sli4->bmbx.phys & SLI4_BMBX_MASK_LO) {
drivers/scsi/elx/libefc_sli/sli4.c
4660
efc_log_err(sli4, "bad alignment for bootstrap mailbox\n");
drivers/scsi/elx/libefc_sli/sli4.c
4664
efc_log_info(sli4, "bmbx v=%p p=0x%x %08x s=%zd\n", sli4->bmbx.virt,
drivers/scsi/elx/libefc_sli/sli4.c
4665
upper_32_bits(sli4->bmbx.phys),
drivers/scsi/elx/libefc_sli/sli4.c
4666
lower_32_bits(sli4->bmbx.phys), sli4->bmbx.size);
drivers/scsi/elx/libefc_sli/sli4.c
4669
sli4->vpd_data.size = 4096;
drivers/scsi/elx/libefc_sli/sli4.c
4670
sli4->vpd_data.virt = dma_alloc_coherent(&pdev->dev,
drivers/scsi/elx/libefc_sli/sli4.c
4671
sli4->vpd_data.size,
drivers/scsi/elx/libefc_sli/sli4.c
4672
&sli4->vpd_data.phys,
drivers/scsi/elx/libefc_sli/sli4.c
4674
if (!sli4->vpd_data.virt) {
drivers/scsi/elx/libefc_sli/sli4.c
4675
memset(&sli4->vpd_data, 0, sizeof(struct efc_dma));
drivers/scsi/elx/libefc_sli/sli4.c
4677
efc_log_info(sli4, "VPD buffer allocation failed\n");
drivers/scsi/elx/libefc_sli/sli4.c
4680
if (!sli_fw_init(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4681
efc_log_err(sli4, "FW initialization failed\n");
drivers/scsi/elx/libefc_sli/sli4.c
4689
sli4->features = (SLI4_REQFEAT_IAAB | SLI4_REQFEAT_NPIV |
drivers/scsi/elx/libefc_sli/sli4.c
4697
if (sli4->params.perf_hint)
drivers/scsi/elx/libefc_sli/sli4.c
4698
sli4->features |= SLI4_REQFEAT_PERFH;
drivers/scsi/elx/libefc_sli/sli4.c
4700
if (sli_request_features(sli4, &sli4->features, true))
drivers/scsi/elx/libefc_sli/sli4.c
4703
if (sli_get_config(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
4710
sli_init(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4712
if (sli4->params.has_extents) {
drivers/scsi/elx/libefc_sli/sli4.c
4713
efc_log_info(sli4, "extend allocation not supported\n");
drivers/scsi/elx/libefc_sli/sli4.c
4717
sli4->features &= (~SLI4_REQFEAT_HLM);
drivers/scsi/elx/libefc_sli/sli4.c
4718
sli4->features &= (~SLI4_REQFEAT_RXSEQ);
drivers/scsi/elx/libefc_sli/sli4.c
4719
sli4->features &= (~SLI4_REQFEAT_RXRI);
drivers/scsi/elx/libefc_sli/sli4.c
4721
if (sli_request_features(sli4, &sli4->features, false))
drivers/scsi/elx/libefc_sli/sli4.c
4728
sli_reset(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4732
if (!sli_fw_init(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4733
efc_log_crit(sli4, "FW initialization failed\n");
drivers/scsi/elx/libefc_sli/sli4.c
4737
kfree(sli4->ext[0].base);
drivers/scsi/elx/libefc_sli/sli4.c
4738
sli4->ext[0].base = NULL;
drivers/scsi/elx/libefc_sli/sli4.c
4741
bitmap_free(sli4->ext[i].use_map);
drivers/scsi/elx/libefc_sli/sli4.c
4742
sli4->ext[i].use_map = NULL;
drivers/scsi/elx/libefc_sli/sli4.c
4743
sli4->ext[i].base = NULL;
drivers/scsi/elx/libefc_sli/sli4.c
4746
return sli_get_config(sli4);
drivers/scsi/elx/libefc_sli/sli4.c
4750
sli_fw_reset(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4755
if (!sli_wait_for_fw_ready(sli4, SLI4_FW_READY_TIMEOUT_MSEC)) {
drivers/scsi/elx/libefc_sli/sli4.c
4756
efc_log_crit(sli4, "FW status is NOT ready\n");
drivers/scsi/elx/libefc_sli/sli4.c
4761
writel(SLI4_PHYDEV_CTRL_FRST, (sli4->reg[0] + SLI4_PHYDEV_CTRL_REG));
drivers/scsi/elx/libefc_sli/sli4.c
4764
if (!sli_wait_for_fw_ready(sli4, SLI4_FW_READY_TIMEOUT_MSEC)) {
drivers/scsi/elx/libefc_sli/sli4.c
4765
efc_log_crit(sli4, "Failed to be ready after firmware reset\n");
drivers/scsi/elx/libefc_sli/sli4.c
4772
sli_teardown(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4776
kfree(sli4->ext[0].base);
drivers/scsi/elx/libefc_sli/sli4.c
4777
sli4->ext[0].base = NULL;
drivers/scsi/elx/libefc_sli/sli4.c
4780
sli4->ext[i].base = NULL;
drivers/scsi/elx/libefc_sli/sli4.c
4782
bitmap_free(sli4->ext[i].use_map);
drivers/scsi/elx/libefc_sli/sli4.c
4783
sli4->ext[i].use_map = NULL;
drivers/scsi/elx/libefc_sli/sli4.c
4786
if (!sli_sliport_reset(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
4787
efc_log_err(sli4, "FW deinitialization failed\n");
drivers/scsi/elx/libefc_sli/sli4.c
4789
dma_free_coherent(&sli4->pci->dev, sli4->vpd_data.size,
drivers/scsi/elx/libefc_sli/sli4.c
4790
sli4->vpd_data.virt, sli4->vpd_data.phys);
drivers/scsi/elx/libefc_sli/sli4.c
4791
memset(&sli4->vpd_data, 0, sizeof(struct efc_dma));
drivers/scsi/elx/libefc_sli/sli4.c
4793
dma_free_coherent(&sli4->pci->dev, sli4->bmbx.size,
drivers/scsi/elx/libefc_sli/sli4.c
4794
sli4->bmbx.virt, sli4->bmbx.phys);
drivers/scsi/elx/libefc_sli/sli4.c
4795
memset(&sli4->bmbx, 0, sizeof(struct efc_dma));
drivers/scsi/elx/libefc_sli/sli4.c
4799
sli_callback(struct sli4 *sli4, enum sli4_callback which,
drivers/scsi/elx/libefc_sli/sli4.c
4803
efc_log_err(sli4, "bad parameter sli4=%p which=%#x func=%p\n",
drivers/scsi/elx/libefc_sli/sli4.c
4804
sli4, which, func);
drivers/scsi/elx/libefc_sli/sli4.c
4810
sli4->link = func;
drivers/scsi/elx/libefc_sli/sli4.c
4811
sli4->link_arg = arg;
drivers/scsi/elx/libefc_sli/sli4.c
4814
efc_log_info(sli4, "unknown callback %#x\n", which);
drivers/scsi/elx/libefc_sli/sli4.c
4822
sli_eq_modify_delay(struct sli4 *sli4, struct sli4_queue *eq,
drivers/scsi/elx/libefc_sli/sli4.c
4825
sli_cmd_common_modify_eq_delay(sli4, sli4->bmbx.virt, eq, num_eq,
drivers/scsi/elx/libefc_sli/sli4.c
4828
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
4829
efc_log_crit(sli4, "bootstrap mailbox write fail (MODIFY EQ DELAY)\n");
drivers/scsi/elx/libefc_sli/sli4.c
4832
if (sli_res_sli_config(sli4, sli4->bmbx.virt)) {
drivers/scsi/elx/libefc_sli/sli4.c
4833
efc_log_err(sli4, "bad status MODIFY EQ DELAY\n");
drivers/scsi/elx/libefc_sli/sli4.c
4841
sli_resource_alloc(struct sli4 *sli4, enum sli4_resource rtype,
drivers/scsi/elx/libefc_sli/sli4.c
4859
find_first_zero_bit(sli4->ext[rtype].use_map,
drivers/scsi/elx/libefc_sli/sli4.c
4860
sli4->ext[rtype].map_size);
drivers/scsi/elx/libefc_sli/sli4.c
4861
if (position >= sli4->ext[rtype].map_size) {
drivers/scsi/elx/libefc_sli/sli4.c
4862
efc_log_err(sli4, "out of resource %d (alloc=%d)\n",
drivers/scsi/elx/libefc_sli/sli4.c
4863
rtype, sli4->ext[rtype].n_alloc);
drivers/scsi/elx/libefc_sli/sli4.c
4867
set_bit(position, sli4->ext[rtype].use_map);
drivers/scsi/elx/libefc_sli/sli4.c
4870
size = sli4->ext[rtype].size;
drivers/scsi/elx/libefc_sli/sli4.c
4875
*rid = sli4->ext[rtype].base[ext_idx] + item_idx;
drivers/scsi/elx/libefc_sli/sli4.c
4877
sli4->ext[rtype].n_alloc++;
drivers/scsi/elx/libefc_sli/sli4.c
488
__sli_queue_destroy(struct sli4 *sli4, struct sli4_queue *q)
drivers/scsi/elx/libefc_sli/sli4.c
4887
sli_resource_free(struct sli4 *sli4, enum sli4_resource rtype, u32 rid)
drivers/scsi/elx/libefc_sli/sli4.c
4903
base = sli4->ext[rtype].base;
drivers/scsi/elx/libefc_sli/sli4.c
4904
size = sli4->ext[rtype].size;
drivers/scsi/elx/libefc_sli/sli4.c
4914
for (x = 0; x < sli4->ext[rtype].number; x++) {
drivers/scsi/elx/libefc_sli/sli4.c
4919
clear_bit((x * size) + rid, sli4->ext[rtype].use_map);
drivers/scsi/elx/libefc_sli/sli4.c
493
dma_free_coherent(&sli4->pci->dev, q->dma.size,
drivers/scsi/elx/libefc_sli/sli4.c
4932
sli_resource_reset(struct sli4 *sli4, enum sli4_resource rtype)
drivers/scsi/elx/libefc_sli/sli4.c
4942
for (i = 0; i < sli4->ext[rtype].map_size; i++)
drivers/scsi/elx/libefc_sli/sli4.c
4943
clear_bit(i, sli4->ext[rtype].use_map);
drivers/scsi/elx/libefc_sli/sli4.c
4953
int sli_raise_ue(struct sli4 *sli4, u8 dump)
drivers/scsi/elx/libefc_sli/sli4.c
4959
writel(val, (sli4->reg[0] + SLI4_PORT_CTRL_REG));
drivers/scsi/elx/libefc_sli/sli4.c
4965
writel(val, (sli4->reg[0] + SLI4_PHYDEV_CTRL_REG));
drivers/scsi/elx/libefc_sli/sli4.c
4971
int sli_dump_is_ready(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4981
port_val = sli_reg_read_status(sli4);
drivers/scsi/elx/libefc_sli/sli4.c
4982
bmbx_val = readl(sli4->reg[0] + SLI4_BMBX_REG);
drivers/scsi/elx/libefc_sli/sli4.c
499
__sli_queue_init(struct sli4 *sli4, struct sli4_queue *q, u32 qtype,
drivers/scsi/elx/libefc_sli/sli4.c
4995
bool sli_reset_required(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.c
4999
val = sli_reg_read_status(sli4);
drivers/scsi/elx/libefc_sli/sli4.c
5004
sli_cmd_post_sgl_pages(struct sli4 *sli4, void *buf, u16 xri,
drivers/scsi/elx/libefc_sli/sli4.c
5012
post = sli_config_cmd_init(sli4, buf,
drivers/scsi/elx/libefc_sli/sli4.c
503
efc_log_err(sli4, "%s failed\n", __func__);
drivers/scsi/elx/libefc_sli/sli4.c
5048
sli_cmd_post_hdr_templates(struct sli4 *sli4, void *buf, struct efc_dma *dma,
drivers/scsi/elx/libefc_sli/sli4.c
5067
payload_dma->virt = dma_alloc_coherent(&sli4->pci->dev,
drivers/scsi/elx/libefc_sli/sli4.c
5072
efc_log_err(sli4, "mbox payload memory allocation fail\n");
drivers/scsi/elx/libefc_sli/sli4.c
5075
req = sli_config_cmd_init(sli4, buf, payload_size, payload_dma);
drivers/scsi/elx/libefc_sli/sli4.c
5077
req = sli_config_cmd_init(sli4, buf, payload_size, NULL);
drivers/scsi/elx/libefc_sli/sli4.c
5084
rpi = sli4->ext[SLI4_RSRC_RPI].base[0];
drivers/scsi/elx/libefc_sli/sli4.c
51
efc_log_err(sli4, "Too big for an embedded cmd with len(%d)\n",
drivers/scsi/elx/libefc_sli/sli4.c
510
q->dma.virt = dma_alloc_coherent(&sli4->pci->dev, q->dma.size,
drivers/scsi/elx/libefc_sli/sli4.c
5104
sli_fc_get_rpi_requirements(struct sli4 *sli4, u32 n_rpi)
drivers/scsi/elx/libefc_sli/sli4.c
5109
if (sli4->params.hdr_template_req)
drivers/scsi/elx/libefc_sli/sli4.c
514
efc_log_err(sli4, "%s allocation failed\n", SLI4_QNAME[qtype]);
drivers/scsi/elx/libefc_sli/sli4.c
545
sli_fc_rq_alloc(struct sli4 *sli4, struct sli4_queue *q,
drivers/scsi/elx/libefc_sli/sli4.c
549
if (__sli_queue_init(sli4, q, SLI4_QTYPE_RQ, SLI4_RQE_SIZE,
drivers/scsi/elx/libefc_sli/sli4.c
553
if (sli_cmd_rq_create_v1(sli4, sli4->bmbx.virt, &q->dma, cq->id,
drivers/scsi/elx/libefc_sli/sli4.c
557
if (__sli_create_queue(sli4, q))
drivers/scsi/elx/libefc_sli/sli4.c
561
efc_log_info(sli4, "bad header RQ_ID %d\n", q->id);
drivers/scsi/elx/libefc_sli/sli4.c
564
efc_log_info(sli4, "bad data RQ_ID %d\n", q->id);
drivers/scsi/elx/libefc_sli/sli4.c
576
__sli_queue_destroy(sli4, q);
drivers/scsi/elx/libefc_sli/sli4.c
581
sli_fc_rq_set_alloc(struct sli4 *sli4, u32 num_rq_pairs,
drivers/scsi/elx/libefc_sli/sli4.c
593
if (__sli_queue_init(sli4, qs[i], SLI4_QTYPE_RQ,
drivers/scsi/elx/libefc_sli/sli4.c
600
if (sli_cmd_rq_create_v2(sli4, num_rqs, qs, base_cq_id,
drivers/scsi/elx/libefc_sli/sli4.c
606
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
607
efc_log_err(sli4, "bootstrap mailbox write failed RQSet\n");
drivers/scsi/elx/libefc_sli/sli4.c
611
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
612
db_regaddr = sli4->reg[1] + SLI4_IF6_RQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
614
db_regaddr = sli4->reg[0] + SLI4_RQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
618
efc_log_err(sli4, "bad create RQSet status=%#x addl=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
633
dma_free_coherent(&sli4->pci->dev, dma.size, dma.virt, dma.phys);
drivers/scsi/elx/libefc_sli/sli4.c
639
__sli_queue_destroy(sli4, qs[i]);
drivers/scsi/elx/libefc_sli/sli4.c
642
dma_free_coherent(&sli4->pci->dev, dma.size, dma.virt,
drivers/scsi/elx/libefc_sli/sli4.c
649
sli_res_sli_config(struct sli4 *sli4, void *buf)
drivers/scsi/elx/libefc_sli/sli4.c
656
efc_log_err(sli4, "bad parameter buf=%p cmd=%#x\n", buf,
drivers/scsi/elx/libefc_sli/sli4.c
667
efc_log_info(sli4, "external buffers not supported\n");
drivers/scsi/elx/libefc_sli/sli4.c
672
__sli_create_queue(struct sli4 *sli4, struct sli4_queue *q)
drivers/scsi/elx/libefc_sli/sli4.c
676
if (sli_bmbx_command(sli4)) {
drivers/scsi/elx/libefc_sli/sli4.c
677
efc_log_crit(sli4, "bootstrap mailbox write fail %s\n",
drivers/scsi/elx/libefc_sli/sli4.c
681
if (sli_res_sli_config(sli4, sli4->bmbx.virt)) {
drivers/scsi/elx/libefc_sli/sli4.c
682
efc_log_err(sli4, "bad status create %s\n",
drivers/scsi/elx/libefc_sli/sli4.c
686
res_q = (void *)((u8 *)sli4->bmbx.virt +
drivers/scsi/elx/libefc_sli/sli4.c
690
efc_log_err(sli4, "bad create %s status=%#x addl=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
698
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
699
q->db_regaddr = sli4->reg[1] + SLI4_IF6_EQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
701
q->db_regaddr = sli4->reg[0] + SLI4_EQCQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
704
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
705
q->db_regaddr = sli4->reg[1] + SLI4_IF6_CQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
707
q->db_regaddr = sli4->reg[0] + SLI4_EQCQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
710
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
711
q->db_regaddr = sli4->reg[1] + SLI4_IF6_MQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
713
q->db_regaddr = sli4->reg[0] + SLI4_MQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
716
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
717
q->db_regaddr = sli4->reg[1] + SLI4_IF6_RQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
719
q->db_regaddr = sli4->reg[0] + SLI4_RQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
722
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
723
q->db_regaddr = sli4->reg[1] + SLI4_IF6_WQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
725
q->db_regaddr = sli4->reg[0] + SLI4_IO_WQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
735
sli_get_queue_entry_size(struct sli4 *sli4, u32 qtype)
drivers/scsi/elx/libefc_sli/sli4.c
750
size = sli4->wqe_size;
drivers/scsi/elx/libefc_sli/sli4.c
756
efc_log_info(sli4, "unknown queue type %d\n", qtype);
drivers/scsi/elx/libefc_sli/sli4.c
763
sli_queue_alloc(struct sli4 *sli4, u32 qtype,
drivers/scsi/elx/libefc_sli/sli4.c
771
size = sli_get_queue_entry_size(sli4, qtype);
drivers/scsi/elx/libefc_sli/sli4.c
776
if (__sli_queue_init(sli4, q, qtype, size, n_entries, align))
drivers/scsi/elx/libefc_sli/sli4.c
78
sli4->bmbx_non_emb_pmd = dma;
drivers/scsi/elx/libefc_sli/sli4.c
781
if (!sli_cmd_common_create_eq(sli4, sli4->bmbx.virt, &q->dma) &&
drivers/scsi/elx/libefc_sli/sli4.c
782
!__sli_create_queue(sli4, q))
drivers/scsi/elx/libefc_sli/sli4.c
787
if (!sli_cmd_common_create_cq(sli4, sli4->bmbx.virt, &q->dma,
drivers/scsi/elx/libefc_sli/sli4.c
789
!__sli_create_queue(sli4, q))
drivers/scsi/elx/libefc_sli/sli4.c
795
if (!sli_cmd_common_create_mq_ext(sli4, sli4->bmbx.virt,
drivers/scsi/elx/libefc_sli/sli4.c
797
!__sli_create_queue(sli4, q))
drivers/scsi/elx/libefc_sli/sli4.c
802
if (!sli_cmd_wq_create(sli4, sli4->bmbx.virt, &q->dma,
drivers/scsi/elx/libefc_sli/sli4.c
804
!__sli_create_queue(sli4, q))
drivers/scsi/elx/libefc_sli/sli4.c
809
efc_log_info(sli4, "unknown queue type %d\n", qtype);
drivers/scsi/elx/libefc_sli/sli4.c
812
__sli_queue_destroy(sli4, q);
drivers/scsi/elx/libefc_sli/sli4.c
816
static int sli_cmd_cq_set_create(struct sli4 *sli4,
drivers/scsi/elx/libefc_sli/sli4.c
851
dma->virt = dma_alloc_coherent(&sli4->pci->dev, dma->size,
drivers/scsi/elx/libefc_sli/sli4.c
858
req = sli_config_cmd_init(sli4, sli4->bmbx.virt, payload_size, dma);
drivers/scsi/elx/libefc_sli/sli4.c
884
efc_log_info(sli4, "num_pages %d not valid\n", num_pages_cq);
drivers/scsi/elx/libefc_sli/sli4.c
890
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
917
sli_cq_alloc_set(struct sli4 *sli4, struct sli4_queue *qs[],
drivers/scsi/elx/libefc_sli/sli4.c
92
sli_cmd_common_create_cq(struct sli4 *sli4, void *buf, struct efc_dma *qmem,
drivers/scsi/elx/libefc_sli/sli4.c
927
if (__sli_queue_init(sli4, qs[i], SLI4_QTYPE_CQ, SLI4_CQE_BYTES,
drivers/scsi/elx/libefc_sli/sli4.c
932
if (sli_cmd_cq_set_create(sli4, qs, num_cqs, eqs, &dma))
drivers/scsi/elx/libefc_sli/sli4.c
935
if (sli_bmbx_command(sli4))
drivers/scsi/elx/libefc_sli/sli4.c
938
if (sli4->if_type == SLI4_INTF_IF_TYPE_6)
drivers/scsi/elx/libefc_sli/sli4.c
939
db_regaddr = sli4->reg[1] + SLI4_IF6_CQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
941
db_regaddr = sli4->reg[0] + SLI4_EQCQ_DB_REG;
drivers/scsi/elx/libefc_sli/sli4.c
945
efc_log_err(sli4, "bad create CQSet status=%#x addl=%#x\n",
drivers/scsi/elx/libefc_sli/sli4.c
952
efc_log_crit(sli4, "Requested count CQs doesn't match.\n");
drivers/scsi/elx/libefc_sli/sli4.c
961
dma_free_coherent(&sli4->pci->dev, dma.size, dma.virt, dma.phys);
drivers/scsi/elx/libefc_sli/sli4.c
967
__sli_queue_destroy(sli4, qs[i]);
drivers/scsi/elx/libefc_sli/sli4.c
970
dma_free_coherent(&sli4->pci->dev, dma.size, dma.virt,
drivers/scsi/elx/libefc_sli/sli4.c
977
sli_cmd_common_destroy_q(struct sli4 *sli4, u8 opc, u8 subsystem, u16 q_id)
drivers/scsi/elx/libefc_sli/sli4.c
982
req = sli_config_cmd_init(sli4, sli4->bmbx.virt,
drivers/scsi/elx/libefc_sli/sli4.c
995
sli_queue_free(struct sli4 *sli4, struct sli4_queue *q,
drivers/scsi/elx/libefc_sli/sli4.h
3735
sli_get_max_sge(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.h
3737
return sli4->sge_supported_length;
drivers/scsi/elx/libefc_sli/sli4.h
3741
sli_get_max_sgl(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.h
3743
if (sli4->sgl_page_sizes != 1) {
drivers/scsi/elx/libefc_sli/sli4.h
3744
efc_log_err(sli4, "unsupported SGL page sizes %#x\n",
drivers/scsi/elx/libefc_sli/sli4.h
3745
sli4->sgl_page_sizes);
drivers/scsi/elx/libefc_sli/sli4.h
3749
return (sli4->max_sgl_pages * SLI_PAGE_SIZE) / sizeof(struct sli4_sge);
drivers/scsi/elx/libefc_sli/sli4.h
3753
sli_get_medium(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.h
3755
switch (sli4->topology) {
drivers/scsi/elx/libefc_sli/sli4.h
3766
sli_get_lmt(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.h
3768
return sli4->link_module_type;
drivers/scsi/elx/libefc_sli/sli4.h
3772
sli_set_topology(struct sli4 *sli4, u32 value)
drivers/scsi/elx/libefc_sli/sli4.h
3780
sli4->topology = value;
drivers/scsi/elx/libefc_sli/sli4.h
3783
efc_log_err(sli4, "unsupported topology %#x\n", value);
drivers/scsi/elx/libefc_sli/sli4.h
3806
sli_reg_read_status(struct sli4 *sli)
drivers/scsi/elx/libefc_sli/sli4.h
3812
sli_fw_error_status(struct sli4 *sli4)
drivers/scsi/elx/libefc_sli/sli4.h
3814
return (sli_reg_read_status(sli4) & SLI4_PORT_STATUS_ERR) ? 1 : 0;
drivers/scsi/elx/libefc_sli/sli4.h
3818
sli_reg_read_err1(struct sli4 *sli)
drivers/scsi/elx/libefc_sli/sli4.h
3824
sli_reg_read_err2(struct sli4 *sli)
drivers/scsi/elx/libefc_sli/sli4.h
3830
sli_fc_rqe_length(struct sli4 *sli4, void *cqe, u32 *len_hdr,
drivers/scsi/elx/libefc_sli/sli4.h
3847
sli_fc_rqe_fcfi(struct sli4 *sli4, void *cqe)
drivers/scsi/elx/libefc_sli/sli4.h
3880
sli_cmd_config_link(struct sli4 *sli4, void *buf);
drivers/scsi/elx/libefc_sli/sli4.h
3882
sli_cmd_down_link(struct sli4 *sli4, void *buf);
drivers/scsi/elx/libefc_sli/sli4.h
3884
sli_cmd_dump_type4(struct sli4 *sli4, void *buf, u16 wki);
drivers/scsi/elx/libefc_sli/sli4.h
3886
sli_cmd_common_read_transceiver_data(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
3889
sli_cmd_read_link_stats(struct sli4 *sli4, void *buf, u8 req_stats,
drivers/scsi/elx/libefc_sli/sli4.h
3892
sli_cmd_read_status(struct sli4 *sli4, void *buf, u8 clear);
drivers/scsi/elx/libefc_sli/sli4.h
3894
sli_cmd_init_link(struct sli4 *sli4, void *buf, u32 speed,
drivers/scsi/elx/libefc_sli/sli4.h
3897
sli_cmd_init_vfi(struct sli4 *sli4, void *buf, u16 vfi, u16 fcfi,
drivers/scsi/elx/libefc_sli/sli4.h
3900
sli_cmd_init_vpi(struct sli4 *sli4, void *buf, u16 vpi, u16 vfi);
drivers/scsi/elx/libefc_sli/sli4.h
3902
sli_cmd_post_xri(struct sli4 *sli4, void *buf, u16 base, u16 cnt);
drivers/scsi/elx/libefc_sli/sli4.h
3904
sli_cmd_release_xri(struct sli4 *sli4, void *buf, u8 num_xri);
drivers/scsi/elx/libefc_sli/sli4.h
3906
sli_cmd_read_sparm64(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
3909
sli_cmd_read_topology(struct sli4 *sli4, void *buf, struct efc_dma *dma);
drivers/scsi/elx/libefc_sli/sli4.h
3911
sli_cmd_read_nvparms(struct sli4 *sli4, void *buf);
drivers/scsi/elx/libefc_sli/sli4.h
3913
sli_cmd_write_nvparms(struct sli4 *sli4, void *buf, u8 *wwpn,
drivers/scsi/elx/libefc_sli/sli4.h
3916
sli_cmd_reg_fcfi(struct sli4 *sli4, void *buf, u16 index,
drivers/scsi/elx/libefc_sli/sli4.h
3919
sli_cmd_reg_fcfi_mrq(struct sli4 *sli4, void *buf, u8 mode, u16 index,
drivers/scsi/elx/libefc_sli/sli4.h
3923
sli_cmd_reg_rpi(struct sli4 *sli4, void *buf, u32 rpi, u32 vpi, u32 fc_id,
drivers/scsi/elx/libefc_sli/sli4.h
3926
sli_cmd_unreg_fcfi(struct sli4 *sli4, void *buf, u16 indicator);
drivers/scsi/elx/libefc_sli/sli4.h
3928
sli_cmd_unreg_rpi(struct sli4 *sli4, void *buf, u16 indicator,
drivers/scsi/elx/libefc_sli/sli4.h
3931
sli_cmd_reg_vpi(struct sli4 *sli4, void *buf, u32 fc_id,
drivers/scsi/elx/libefc_sli/sli4.h
3934
sli_cmd_reg_vfi(struct sli4 *sli4, void *buf, size_t size,
drivers/scsi/elx/libefc_sli/sli4.h
3938
sli_cmd_unreg_vpi(struct sli4 *sli4, void *buf, u16 id, u32 type);
drivers/scsi/elx/libefc_sli/sli4.h
3940
sli_cmd_unreg_vfi(struct sli4 *sli4, void *buf, u16 idx, u32 type);
drivers/scsi/elx/libefc_sli/sli4.h
3942
sli_cmd_common_nop(struct sli4 *sli4, void *buf, uint64_t context);
drivers/scsi/elx/libefc_sli/sli4.h
3944
sli_cmd_common_get_resource_extent_info(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
3947
sli_cmd_common_get_sli4_parameters(struct sli4 *sli4, void *buf);
drivers/scsi/elx/libefc_sli/sli4.h
3949
sli_cmd_common_write_object(struct sli4 *sli4, void *buf, u16 noc,
drivers/scsi/elx/libefc_sli/sli4.h
3952
sli_cmd_common_delete_object(struct sli4 *sli4, void *buf, char *object_name);
drivers/scsi/elx/libefc_sli/sli4.h
3954
sli_cmd_common_read_object(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
3957
sli_cmd_dmtf_exec_clp_cmd(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
3960
sli_cmd_common_set_dump_location(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
3963
sli_cmd_common_set_features(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
3966
int sli_cqe_mq(struct sli4 *sli4, void *buf);
drivers/scsi/elx/libefc_sli/sli4.h
3967
int sli_cqe_async(struct sli4 *sli4, void *buf);
drivers/scsi/elx/libefc_sli/sli4.h
3970
sli_setup(struct sli4 *sli4, void *os, struct pci_dev *pdev, void __iomem *r[]);
drivers/scsi/elx/libefc_sli/sli4.h
3971
void sli_calc_max_qentries(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
3972
int sli_init(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
3973
int sli_reset(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
3974
int sli_fw_reset(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
3975
void sli_teardown(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
3977
sli_callback(struct sli4 *sli4, enum sli4_callback cb, void *func, void *arg);
drivers/scsi/elx/libefc_sli/sli4.h
3979
sli_bmbx_command(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
3981
__sli_queue_init(struct sli4 *sli4, struct sli4_queue *q, u32 qtype,
drivers/scsi/elx/libefc_sli/sli4.h
3984
__sli_create_queue(struct sli4 *sli4, struct sli4_queue *q);
drivers/scsi/elx/libefc_sli/sli4.h
3986
sli_eq_modify_delay(struct sli4 *sli4, struct sli4_queue *eq, u32 num_eq,
drivers/scsi/elx/libefc_sli/sli4.h
3989
sli_queue_alloc(struct sli4 *sli4, u32 qtype, struct sli4_queue *q,
drivers/scsi/elx/libefc_sli/sli4.h
3992
sli_cq_alloc_set(struct sli4 *sli4, struct sli4_queue *qs[], u32 num_cqs,
drivers/scsi/elx/libefc_sli/sli4.h
3995
sli_get_queue_entry_size(struct sli4 *sli4, u32 qtype);
drivers/scsi/elx/libefc_sli/sli4.h
3997
sli_queue_free(struct sli4 *sli4, struct sli4_queue *q, u32 destroy_queues,
drivers/scsi/elx/libefc_sli/sli4.h
4000
sli_queue_eq_arm(struct sli4 *sli4, struct sli4_queue *q, bool arm);
drivers/scsi/elx/libefc_sli/sli4.h
4002
sli_queue_arm(struct sli4 *sli4, struct sli4_queue *q, bool arm);
drivers/scsi/elx/libefc_sli/sli4.h
4005
sli_wq_write(struct sli4 *sli4, struct sli4_queue *q, u8 *entry);
drivers/scsi/elx/libefc_sli/sli4.h
4007
sli_mq_write(struct sli4 *sli4, struct sli4_queue *q, u8 *entry);
drivers/scsi/elx/libefc_sli/sli4.h
4009
sli_rq_write(struct sli4 *sli4, struct sli4_queue *q, u8 *entry);
drivers/scsi/elx/libefc_sli/sli4.h
4011
sli_eq_read(struct sli4 *sli4, struct sli4_queue *q, u8 *entry);
drivers/scsi/elx/libefc_sli/sli4.h
4013
sli_cq_read(struct sli4 *sli4, struct sli4_queue *q, u8 *entry);
drivers/scsi/elx/libefc_sli/sli4.h
4015
sli_mq_read(struct sli4 *sli4, struct sli4_queue *q, u8 *entry);
drivers/scsi/elx/libefc_sli/sli4.h
4017
sli_resource_alloc(struct sli4 *sli4, enum sli4_resource rtype, u32 *rid,
drivers/scsi/elx/libefc_sli/sli4.h
4020
sli_resource_free(struct sli4 *sli4, enum sli4_resource rtype, u32 rid);
drivers/scsi/elx/libefc_sli/sli4.h
4022
sli_resource_reset(struct sli4 *sli4, enum sli4_resource rtype);
drivers/scsi/elx/libefc_sli/sli4.h
4024
sli_eq_parse(struct sli4 *sli4, u8 *buf, u16 *cq_id);
drivers/scsi/elx/libefc_sli/sli4.h
4026
sli_cq_parse(struct sli4 *sli4, struct sli4_queue *cq, u8 *cqe,
drivers/scsi/elx/libefc_sli/sli4.h
4029
int sli_raise_ue(struct sli4 *sli4, u8 dump);
drivers/scsi/elx/libefc_sli/sli4.h
4030
int sli_dump_is_ready(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
4031
bool sli_reset_required(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
4032
bool sli_fw_ready(struct sli4 *sli4);
drivers/scsi/elx/libefc_sli/sli4.h
4035
sli_fc_process_link_attention(struct sli4 *sli4, void *acqe);
drivers/scsi/elx/libefc_sli/sli4.h
4037
sli_fc_cqe_parse(struct sli4 *sli4, struct sli4_queue *cq,
drivers/scsi/elx/libefc_sli/sli4.h
4040
u32 sli_fc_response_length(struct sli4 *sli4, u8 *cqe);
drivers/scsi/elx/libefc_sli/sli4.h
4041
u32 sli_fc_io_length(struct sli4 *sli4, u8 *cqe);
drivers/scsi/elx/libefc_sli/sli4.h
4042
int sli_fc_els_did(struct sli4 *sli4, u8 *cqe, u32 *d_id);
drivers/scsi/elx/libefc_sli/sli4.h
4043
u32 sli_fc_ext_status(struct sli4 *sli4, u8 *cqe);
drivers/scsi/elx/libefc_sli/sli4.h
4045
sli_fc_rqe_rqid_and_index(struct sli4 *sli4, u8 *cqe, u16 *rq_id, u32 *index);
drivers/scsi/elx/libefc_sli/sli4.h
4047
sli_cmd_wq_create(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
4049
int sli_cmd_post_sgl_pages(struct sli4 *sli4, void *buf, u16 xri,
drivers/scsi/elx/libefc_sli/sli4.h
4053
sli_cmd_post_hdr_templates(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
4056
sli_fc_rq_alloc(struct sli4 *sli4, struct sli4_queue *q, u32 n_entries,
drivers/scsi/elx/libefc_sli/sli4.h
4059
sli_fc_rq_set_alloc(struct sli4 *sli4, u32 num_rq_pairs, struct sli4_queue *q[],
drivers/scsi/elx/libefc_sli/sli4.h
4061
u32 sli_fc_get_rpi_requirements(struct sli4 *sli4, u32 n_rpi);
drivers/scsi/elx/libefc_sli/sli4.h
4063
sli_abort_wqe(struct sli4 *sli4, void *buf, enum sli4_abort_type type,
drivers/scsi/elx/libefc_sli/sli4.h
4067
sli_send_frame_wqe(struct sli4 *sli4, void *buf, u8 sof, u8 eof,
drivers/scsi/elx/libefc_sli/sli4.h
4072
sli_xmit_els_rsp64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *rsp,
drivers/scsi/elx/libefc_sli/sli4.h
4076
sli_els_request64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4080
sli_fcp_icmnd64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl, u16 xri,
drivers/scsi/elx/libefc_sli/sli4.h
4084
sli_fcp_iread64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4090
sli_fcp_iwrite64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4096
sli_fcp_treceive64_wqe(struct sli4 *sli, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4100
sli_fcp_cont_treceive64_wqe(struct sli4 *sli, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4105
sli_fcp_trsp64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4109
sli_fcp_tsend64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4113
sli_gen_request64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *sgl,
drivers/scsi/elx/libefc_sli/sli4.h
4117
sli_xmit_bls_rsp64_wqe(struct sli4 *sli4, void *buf,
drivers/scsi/elx/libefc_sli/sli4.h
4121
sli_xmit_sequence64_wqe(struct sli4 *sli4, void *buf, struct efc_dma *payload,
drivers/scsi/elx/libefc_sli/sli4.h
4125
sli_requeue_xri_wqe(struct sli4 *sli4, void *buf, u16 xri, u16 tag, u16 cq_id);
drivers/scsi/elx/libefc_sli/sli4.h
4127
sli4_cmd_lowlevel_set_watchdog(struct sli4 *sli4, void *buf, size_t size,
drivers/scsi/lpfc/lpfc_init.c
10975
pring->sli.sli4.wqp = (void *)wq;
drivers/scsi/lpfc/lpfc_sli.h
314
struct lpfc_sli4_ring sli4;