Lines Matching defs:smid

303  *			 for the provided smid in BAR0 space.
306 * @smid: system request message index
312 _base_get_chain(struct MPT3SAS_ADAPTER *ioc, u16 smid,
321 chain_virt = base_chain + (smid * ioc->facts.MaxChainDepth *
329 * the provided smid.
332 * @smid: system request message index
338 _base_get_chain_phys(struct MPT3SAS_ADAPTER *ioc, u16 smid,
347 chain_phys = base_chain_phys + (smid * ioc->facts.MaxChainDepth *
354 * buffer address for the provided smid.
355 * (Each smid can have 64K starts from 17024)
358 * @smid: system request message index
364 _base_get_buffer_bar0(struct MPT3SAS_ADAPTER *ioc, u16 smid)
371 return chain_end + (smid * 64 * 1024);
376 * Host buffer Physical address for the provided smid.
377 * (Each smid can have 64K starts from 17024)
380 * @smid: system request message index
385 _base_get_buffer_phys_bar0(struct MPT3SAS_ADAPTER *ioc, u16 smid)
391 return chain_end_phys + (smid * 64 * 1024);
398 * (Each smid can have 64K starts from 17024)
431 * @smid: system request message index.
434 void *mpi_request, u16 smid)
466 /* From smid we can get scsi_cmd, once we have sg_scmd,
472 /* Get scsi_cmd using smid */
473 scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
492 * 17152 - x Host buffer mapped with smid.
493 * (Each smid can have 64K Max IO.)
498 buffer_iomem = _base_get_buffer_bar0(ioc, smid);
499 buffer_iomem_phys = _base_get_buffer_phys_bar0(ioc, smid);
532 smid, sge_chain_count);
536 smid, sge_chain_count);
633 u16 smid;
644 smid = mpt3sas_base_get_smid(ioc, ioc->scsih_cb_idx);
645 if (!smid) {
646 ioc_err(ioc, "Failed obtaining a smid %s\n", __func__);
650 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
651 ioc->scsih_cmds.smid = smid;
661 ioc->put_smid_default(ioc, smid);
1390 * @smid: system request message index
1395 _base_display_reply_info(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
1413 mpt3sas_base_get_msg_frame(ioc, smid));
1430 * @smid: system request message index
1439 mpt3sas_base_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
1446 return mpt3sas_check_for_pending_internal_cmds(ioc, smid);
1477 u16 smid;
1490 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
1491 if (!smid) {
1507 ack_request = mpt3sas_base_get_msg_frame(ioc, smid);
1514 ioc->put_smid_default(ioc, smid);
1528 _get_st_from_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid)
1532 if (WARN_ON(!smid) ||
1533 WARN_ON(smid >= ioc->hi_priority_smid))
1536 cmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
1546 * @smid: system request message index
1551 _base_get_cb_idx(struct MPT3SAS_ADAPTER *ioc, u16 smid)
1557 if (smid < ioc->hi_priority_smid) {
1560 if (smid < ctl_smid) {
1561 st = _get_st_from_smid(ioc, smid);
1564 } else if (smid == ctl_smid)
1566 } else if (smid < ioc->internal_smid) {
1567 i = smid - ioc->hi_priority_smid;
1569 } else if (smid <= ioc->hba_queue_depth) {
1570 i = smid - ioc->internal_smid;
1692 u16 smid;
1718 smid = le16_to_cpu(rpf->Default.DescriptorTypeDependent1);
1725 cb_idx = _base_get_cb_idx(ioc, smid);
1728 rc = mpt_callbacks[cb_idx](ioc, smid,
1731 mpt3sas_base_free_smid(ioc, smid);
1740 if (smid) {
1741 cb_idx = _base_get_cb_idx(ioc, smid);
1744 rc = mpt_callbacks[cb_idx](ioc, smid,
1748 smid, msix_index, reply);
1751 smid);
2138 * smid and smid's chain_offset.
2146 u16 smid = st->smid;
2148 atomic_read(&ioc->chain_lookup[smid - 1].chain_offset);
2153 chain_req = &ioc->chain_lookup[smid - 1].chains_per_smid[chain_offset];
2154 atomic_inc(&ioc->chain_lookup[smid - 1].chain_offset);
2221 * @smid: system request message index for getting asscociated SGL
2273 _base_build_nvme_prp(struct MPT3SAS_ADAPTER *ioc, u16 smid,
2301 prp_page = (__le64 *)mpt3sas_base_get_pcie_sgl(ioc, smid);
2302 prp_page_dma = mpt3sas_base_get_pcie_sgl_dma(ioc, smid);
2433 * @smid: msg Index
2443 u16 smid, int sge_count)
2494 curr_buff = mpt3sas_base_get_pcie_sgl(ioc, smid);
2495 msg_dma = mpt3sas_base_get_pcie_sgl_dma(ioc, smid);
2598 * @smid: system request message index
2606 Mpi25SCSIIORequest_t *mpi_request, u16 smid, struct scsi_cmnd *scmd,
2627 smid, sges_left);
2679 * @smid: system request message index
2690 struct scsi_cmnd *scmd, u16 smid, struct _pcie_device *unused)
2706 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
2819 * @smid: system request message index
2831 struct scsi_cmnd *scmd, u16 smid, struct _pcie_device *pcie_device)
2846 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
2858 smid, scmd, pcie_device) == 0)) {
3762 * @smid: system request message index(smid zero is invalid)
3767 mpt3sas_base_get_msg_frame(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3769 return (void *)(ioc->request + (smid * ioc->request_sz));
3775 * @smid: system request message index
3780 mpt3sas_base_get_sense_buffer(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3782 return (void *)(ioc->sense + ((smid - 1) * SCSI_SENSE_BUFFERSIZE));
3788 * @smid: system request message index
3793 mpt3sas_base_get_sense_buffer_dma(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3795 return cpu_to_le32(ioc->sense_dma + ((smid - 1) *
3802 * @smid: system request message index
3807 mpt3sas_base_get_pcie_sgl(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3809 return (void *)(ioc->pcie_sg_lookup[smid - 1].pcie_sgl);
3815 * @smid: system request message index
3820 mpt3sas_base_get_pcie_sgl_dma(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3822 return ioc->pcie_sg_lookup[smid - 1].pcie_sgl_dma;
3899 * mpt3sas_base_get_smid - obtain a free smid from internal queue
3903 * Return: smid (zero is invalid)
3910 u16 smid;
3915 ioc_err(ioc, "%s: smid not available\n", __func__);
3922 smid = request->smid;
3925 return smid;
3929 * mpt3sas_base_get_smid_scsiio - obtain a free smid from scsiio queue
3934 * Return: smid (zero is invalid)
3941 u16 smid;
3954 * tag = smid - 1;
3959 smid = tag + 1;
3961 request->smid = smid;
3964 return smid;
3968 * mpt3sas_base_get_smid_hpr - obtain a free smid from hi-priority queue
3972 * Return: smid (zero is invalid)
3979 u16 smid;
3990 smid = request->smid;
3993 return smid;
4012 if (WARN_ON(st->smid == 0))
4017 atomic_set(&ioc->chain_lookup[st->smid - 1].chain_offset, 0);
4018 st->smid = 0;
4022 * mpt3sas_base_free_smid - put smid back on free_list
4024 * @smid: system request message index
4027 mpt3sas_base_free_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid)
4032 if (smid < ioc->hi_priority_smid) {
4036 st = _get_st_from_smid(ioc, smid);
4043 request = mpt3sas_base_get_msg_frame(ioc, smid);
4048 ioc->io_queue_num[smid - 1] = 0;
4053 if (smid < ioc->internal_smid) {
4055 i = smid - ioc->hi_priority_smid;
4058 } else if (smid <= ioc->hba_queue_depth) {
4060 i = smid - ioc->internal_smid;
4120 * @smid: system request message index
4125 _base_set_and_get_msix_index(struct MPT3SAS_ADAPTER *ioc, u16 smid)
4129 if (smid < ioc->hi_priority_smid)
4130 st = _get_st_from_smid(ioc, smid);
4142 * @smid: system request message index
4147 u16 smid, u16 handle)
4152 __le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
4154 _clone_sg_entries(ioc, (void *) mfp, smid);
4156 MPI_FRAME_START_OFFSET + (smid * ioc->request_sz);
4160 descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4161 descriptor.SCSIIO.SMID = cpu_to_le16(smid);
4171 * @smid: system request message index
4175 _base_put_smid_scsi_io(struct MPT3SAS_ADAPTER *ioc, u16 smid, u16 handle)
4182 descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4183 descriptor.SCSIIO.SMID = cpu_to_le16(smid);
4193 * @smid: system request message index
4197 _base_put_smid_fast_path(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4205 descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4206 descriptor.SCSIIO.SMID = cpu_to_le16(smid);
4216 * @smid: system request message index
4220 _base_put_smid_hi_priority(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4228 __le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
4233 + (smid * ioc->request_sz);
4243 descriptor.HighPriority.SMID = cpu_to_le16(smid);
4259 * @smid: system request message index
4262 mpt3sas_base_put_smid_nvme_encap(struct MPT3SAS_ADAPTER *ioc, u16 smid)
4269 descriptor.Default.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4270 descriptor.Default.SMID = cpu_to_le16(smid);
4280 * @smid: system request message index
4283 _base_put_smid_default(struct MPT3SAS_ADAPTER *ioc, u16 smid)
4290 __le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
4292 _clone_sg_entries(ioc, (void *) mfp, smid);
4295 MPI_FRAME_START_OFFSET + (smid * ioc->request_sz);
4301 descriptor.Default.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4302 descriptor.Default.SMID = cpu_to_le16(smid);
4318 * @smid: system request message index
4324 _base_put_smid_scsi_io_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4331 descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4332 descriptor.SMID = cpu_to_le16(smid);
4341 * @smid: system request message index
4346 _base_put_smid_fast_path_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4353 descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4354 descriptor.SMID = cpu_to_le16(smid);
4363 * @smid: system request message index
4369 _base_put_smid_hi_priority_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4377 descriptor.SMID = cpu_to_le16(smid);
4386 * @smid: system request message index
4391 _base_put_smid_default_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid)
4397 descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4398 descriptor.SMID = cpu_to_le16(smid);
4670 u16 smid, ioc_status;
4690 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
4691 if (!smid) {
4692 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
4698 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
4699 ioc->base_cmds.smid = smid;
4707 ioc->put_smid_default(ioc, smid);
6467 * "frame for smid=0
6540 /* initialize hi-priority queue smid's */
6549 ioc_info(ioc, "hi_priority(0x%p): depth(%d), start smid(%d)\n",
6553 /* initialize internal queue smid's */
6562 ioc_info(ioc, "internal(0x%p): depth(%d), start smid(%d)\n",
7152 u16 smid;
7171 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
7172 if (!smid) {
7173 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
7180 request = mpt3sas_base_get_msg_frame(ioc, smid);
7181 ioc->base_cmds.smid = smid;
7187 ioc->put_smid_default(ioc, smid);
7233 u16 smid;
7252 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
7253 if (!smid) {
7254 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
7261 request = mpt3sas_base_get_msg_frame(ioc, smid);
7262 ioc->base_cmds.smid = smid;
7266 ioc->put_smid_default(ioc, smid);
7607 * @smid: system request message index
7615 mpt3sas_port_enable_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
7666 u16 smid;
7676 smid = mpt3sas_base_get_smid(ioc, ioc->port_enable_cb_idx);
7677 if (!smid) {
7678 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
7683 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
7684 ioc->port_enable_cmds.smid = smid;
7689 ioc->put_smid_default(ioc, smid);
7727 u16 smid;
7736 smid = mpt3sas_base_get_smid(ioc, ioc->port_enable_cb_idx);
7737 if (!smid) {
7738 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
7744 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
7745 ioc->port_enable_cmds.smid = smid;
7749 ioc->put_smid_default(ioc, smid);
7838 u16 smid;
7849 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
7850 if (!smid) {
7851 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
7855 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
7856 ioc->base_cmds.smid = smid;
7865 ioc->put_smid_default(ioc, smid);
8141 u16 smid;
8181 smid = ioc->hi_priority_smid;
8182 for (i = 0; i < ioc->hi_priority_depth; i++, smid++) {
8184 ioc->hpr_lookup[i].smid = smid;
8191 smid = ioc->internal_smid;
8192 for (i = 0; i < ioc->internal_depth; i++, smid++) {
8194 ioc->internal_lookup[i].smid = smid;
8699 mpt3sas_base_free_smid(ioc, ioc->transport_cmds.smid);
8704 mpt3sas_base_free_smid(ioc, ioc->base_cmds.smid);
8710 mpt3sas_base_free_smid(ioc, ioc->port_enable_cmds.smid);
8721 mpt3sas_base_free_smid(ioc, ioc->config_cmds.smid);
8722 ioc->config_cmds.smid = USHRT_MAX;