Lines Matching defs:smid

296  *			 for the provided smid in BAR0 space.
299 * @smid: system request message index
305 _base_get_chain(struct MPT3SAS_ADAPTER *ioc, u16 smid,
314 chain_virt = base_chain + (smid * ioc->facts.MaxChainDepth *
322 * the provided smid.
325 * @smid: system request message index
331 _base_get_chain_phys(struct MPT3SAS_ADAPTER *ioc, u16 smid,
340 chain_phys = base_chain_phys + (smid * ioc->facts.MaxChainDepth *
347 * buffer address for the provided smid.
348 * (Each smid can have 64K starts from 17024)
351 * @smid: system request message index
357 _base_get_buffer_bar0(struct MPT3SAS_ADAPTER *ioc, u16 smid)
364 return chain_end + (smid * 64 * 1024);
369 * Host buffer Physical address for the provided smid.
370 * (Each smid can have 64K starts from 17024)
373 * @smid: system request message index
378 _base_get_buffer_phys_bar0(struct MPT3SAS_ADAPTER *ioc, u16 smid)
384 return chain_end_phys + (smid * 64 * 1024);
391 * (Each smid can have 64K starts from 17024)
424 * @smid: system request message index.
427 void *mpi_request, u16 smid)
459 /* From smid we can get scsi_cmd, once we have sg_scmd,
465 /* Get scsi_cmd using smid */
466 scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
485 * 17152 - x Host buffer mapped with smid.
486 * (Each smid can have 64K Max IO.)
491 buffer_iomem = _base_get_buffer_bar0(ioc, smid);
492 buffer_iomem_phys = _base_get_buffer_phys_bar0(ioc, smid);
525 smid, sge_chain_count);
529 smid, sge_chain_count);
1297 * @smid: system request message index
1302 _base_display_reply_info(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
1320 mpt3sas_base_get_msg_frame(ioc, smid));
1337 * @smid: system request message index
1346 mpt3sas_base_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
1353 return mpt3sas_check_for_pending_internal_cmds(ioc, smid);
1384 u16 smid;
1397 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
1398 if (!smid) {
1414 ack_request = mpt3sas_base_get_msg_frame(ioc, smid);
1421 ioc->put_smid_default(ioc, smid);
1435 _get_st_from_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid)
1439 if (WARN_ON(!smid) ||
1440 WARN_ON(smid >= ioc->hi_priority_smid))
1443 cmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
1453 * @smid: system request message index
1458 _base_get_cb_idx(struct MPT3SAS_ADAPTER *ioc, u16 smid)
1464 if (smid < ioc->hi_priority_smid) {
1467 if (smid < ctl_smid) {
1468 st = _get_st_from_smid(ioc, smid);
1471 } else if (smid == ctl_smid)
1473 } else if (smid < ioc->internal_smid) {
1474 i = smid - ioc->hi_priority_smid;
1476 } else if (smid <= ioc->hba_queue_depth) {
1477 i = smid - ioc->internal_smid;
1550 u16 smid;
1576 smid = le16_to_cpu(rpf->Default.DescriptorTypeDependent1);
1583 cb_idx = _base_get_cb_idx(ioc, smid);
1586 rc = mpt_callbacks[cb_idx](ioc, smid,
1589 mpt3sas_base_free_smid(ioc, smid);
1598 if (smid) {
1599 cb_idx = _base_get_cb_idx(ioc, smid);
1602 rc = mpt_callbacks[cb_idx](ioc, smid,
1606 smid, msix_index, reply);
1609 smid);
1960 * smid and smid's chain_offset.
1968 u16 smid = st->smid;
1970 atomic_read(&ioc->chain_lookup[smid - 1].chain_offset);
1975 chain_req = &ioc->chain_lookup[smid - 1].chains_per_smid[chain_offset];
1976 atomic_inc(&ioc->chain_lookup[smid - 1].chain_offset);
2086 * @smid: system request message index for getting asscociated SGL
2094 _base_build_nvme_prp(struct MPT3SAS_ADAPTER *ioc, u16 smid,
2122 prp_page = (__le64 *)mpt3sas_base_get_pcie_sgl(ioc, smid);
2123 prp_page_dma = mpt3sas_base_get_pcie_sgl_dma(ioc, smid);
2254 * @smid: msg Index
2264 u16 smid, int sge_count)
2315 curr_buff = mpt3sas_base_get_pcie_sgl(ioc, smid);
2316 msg_dma = mpt3sas_base_get_pcie_sgl_dma(ioc, smid);
2419 * @smid: system request message index
2427 Mpi25SCSIIORequest_t *mpi_request, u16 smid, struct scsi_cmnd *scmd,
2452 smid, sges_left);
2504 * @smid: system request message index
2515 struct scsi_cmnd *scmd, u16 smid, struct _pcie_device *unused)
2531 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
2648 * @smid: system request message index
2660 struct scsi_cmnd *scmd, u16 smid, struct _pcie_device *pcie_device)
2675 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
2687 smid, scmd, pcie_device) == 0)) {
3493 * @smid: system request message index(smid zero is invalid)
3498 mpt3sas_base_get_msg_frame(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3500 return (void *)(ioc->request + (smid * ioc->request_sz));
3506 * @smid: system request message index
3511 mpt3sas_base_get_sense_buffer(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3513 return (void *)(ioc->sense + ((smid - 1) * SCSI_SENSE_BUFFERSIZE));
3519 * @smid: system request message index
3524 mpt3sas_base_get_sense_buffer_dma(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3526 return cpu_to_le32(ioc->sense_dma + ((smid - 1) *
3533 * @smid: system request message index
3538 mpt3sas_base_get_pcie_sgl(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3540 return (void *)(ioc->pcie_sg_lookup[smid - 1].pcie_sgl);
3546 * @smid: system request message index
3551 mpt3sas_base_get_pcie_sgl_dma(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3553 return ioc->pcie_sg_lookup[smid - 1].pcie_sgl_dma;
3639 * mpt3sas_base_get_smid - obtain a free smid from internal queue
3643 * Return: smid (zero is invalid)
3650 u16 smid;
3655 ioc_err(ioc, "%s: smid not available\n", __func__);
3662 smid = request->smid;
3665 return smid;
3669 * mpt3sas_base_get_smid_scsiio - obtain a free smid from scsiio queue
3674 * Return: smid (zero is invalid)
3682 u16 smid;
3684 smid = tag + 1;
3686 request->smid = smid;
3689 return smid;
3693 * mpt3sas_base_get_smid_hpr - obtain a free smid from hi-priority queue
3697 * Return: smid (zero is invalid)
3704 u16 smid;
3715 smid = request->smid;
3718 return smid;
3737 if (WARN_ON(st->smid == 0))
3742 atomic_set(&ioc->chain_lookup[st->smid - 1].chain_offset, 0);
3743 st->smid = 0;
3747 * mpt3sas_base_free_smid - put smid back on free_list
3749 * @smid: system request message index
3752 mpt3sas_base_free_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3757 if (smid < ioc->hi_priority_smid) {
3761 st = _get_st_from_smid(ioc, smid);
3768 request = mpt3sas_base_get_msg_frame(ioc, smid);
3777 if (smid < ioc->internal_smid) {
3779 i = smid - ioc->hi_priority_smid;
3782 } else if (smid <= ioc->hba_queue_depth) {
3784 i = smid - ioc->internal_smid;
3844 * @smid: system request message index
3849 _base_set_and_get_msix_index(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3853 if (smid < ioc->hi_priority_smid)
3854 st = _get_st_from_smid(ioc, smid);
3866 * @smid: system request message index
3871 u16 smid, u16 handle)
3876 __le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
3878 _clone_sg_entries(ioc, (void *) mfp, smid);
3880 MPI_FRAME_START_OFFSET + (smid * ioc->request_sz);
3884 descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
3885 descriptor.SCSIIO.SMID = cpu_to_le16(smid);
3895 * @smid: system request message index
3899 _base_put_smid_scsi_io(struct MPT3SAS_ADAPTER *ioc, u16 smid, u16 handle)
3906 descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
3907 descriptor.SCSIIO.SMID = cpu_to_le16(smid);
3917 * @smid: system request message index
3921 _base_put_smid_fast_path(struct MPT3SAS_ADAPTER *ioc, u16 smid,
3929 descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
3930 descriptor.SCSIIO.SMID = cpu_to_le16(smid);
3940 * @smid: system request message index
3944 _base_put_smid_hi_priority(struct MPT3SAS_ADAPTER *ioc, u16 smid,
3952 __le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
3957 + (smid * ioc->request_sz);
3967 descriptor.HighPriority.SMID = cpu_to_le16(smid);
3983 * @smid: system request message index
3986 mpt3sas_base_put_smid_nvme_encap(struct MPT3SAS_ADAPTER *ioc, u16 smid)
3993 descriptor.Default.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
3994 descriptor.Default.SMID = cpu_to_le16(smid);
4004 * @smid: system request message index
4007 _base_put_smid_default(struct MPT3SAS_ADAPTER *ioc, u16 smid)
4014 __le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
4016 _clone_sg_entries(ioc, (void *) mfp, smid);
4019 MPI_FRAME_START_OFFSET + (smid * ioc->request_sz);
4025 descriptor.Default.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4026 descriptor.Default.SMID = cpu_to_le16(smid);
4042 * @smid: system request message index
4048 _base_put_smid_scsi_io_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4055 descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4056 descriptor.SMID = cpu_to_le16(smid);
4065 * @smid: system request message index
4070 _base_put_smid_fast_path_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4077 descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4078 descriptor.SMID = cpu_to_le16(smid);
4087 * @smid: system request message index
4093 _base_put_smid_hi_priority_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
4101 descriptor.SMID = cpu_to_le16(smid);
4110 * @smid: system request message index
4115 _base_put_smid_default_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid)
4121 descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
4122 descriptor.SMID = cpu_to_le16(smid);
4393 u16 smid, ioc_status;
4413 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
4414 if (!smid) {
4415 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
4421 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
4422 ioc->base_cmds.smid = smid;
4430 ioc->put_smid_default(ioc, smid);
5357 * "frame for smid=0
5430 /* initialize hi-priority queue smid's */
5439 ioc_info(ioc, "hi_priority(0x%p): depth(%d), start smid(%d)\n",
5443 /* initialize internal queue smid's */
5452 ioc_info(ioc, "internal(0x%p): depth(%d), start smid(%d)\n",
6122 u16 smid;
6141 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
6142 if (!smid) {
6143 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
6150 request = mpt3sas_base_get_msg_frame(ioc, smid);
6151 ioc->base_cmds.smid = smid;
6157 ioc->put_smid_default(ioc, smid);
6203 u16 smid;
6222 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
6223 if (!smid) {
6224 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
6231 request = mpt3sas_base_get_msg_frame(ioc, smid);
6232 ioc->base_cmds.smid = smid;
6236 ioc->put_smid_default(ioc, smid);
6573 * @smid: system request message index
6581 mpt3sas_port_enable_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
6631 u16 smid;
6641 smid = mpt3sas_base_get_smid(ioc, ioc->port_enable_cb_idx);
6642 if (!smid) {
6643 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
6648 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
6649 ioc->port_enable_cmds.smid = smid;
6654 ioc->put_smid_default(ioc, smid);
6692 u16 smid;
6701 smid = mpt3sas_base_get_smid(ioc, ioc->port_enable_cb_idx);
6702 if (!smid) {
6703 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
6708 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
6709 ioc->port_enable_cmds.smid = smid;
6713 ioc->put_smid_default(ioc, smid);
6802 u16 smid;
6813 smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
6814 if (!smid) {
6815 ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
6819 mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
6820 ioc->base_cmds.smid = smid;
6829 ioc->put_smid_default(ioc, smid);
7096 u16 smid;
7136 smid = ioc->hi_priority_smid;
7137 for (i = 0; i < ioc->hi_priority_depth; i++, smid++) {
7139 ioc->hpr_lookup[i].smid = smid;
7146 smid = ioc->internal_smid;
7147 for (i = 0; i < ioc->internal_depth; i++, smid++) {
7149 ioc->internal_lookup[i].smid = smid;
7648 mpt3sas_base_free_smid(ioc, ioc->transport_cmds.smid);
7653 mpt3sas_base_free_smid(ioc, ioc->base_cmds.smid);
7659 mpt3sas_base_free_smid(ioc, ioc->port_enable_cmds.smid);
7672 mpt3sas_base_free_smid(ioc, ioc->config_cmds.smid);
7673 ioc->config_cmds.smid = USHRT_MAX;