Lines Matching +full:cpu +full:- +full:centric
4 * Copyright (C) 2017-2023 Broadcom. All Rights Reserved. The term *
6 * Copyright (C) 2004-2016 Emulex. All rights reserved. *
9 * Portions Copyright (C) 2004-2005 Christoph Hellwig *
17 * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE *
64 #define LPFC_IOCB_LIST_CNT 2250 /* list of IOCBs for fast-path usage. */
100 /* Number of MSI-X vectors the driver uses */
132 * Provide for FC4 TYPE x28 - NVME. The
339 (vport->vmid_priority_tagging ? 1 : 0)
388 LPFC_LINK_UP = 5, /* Link is up - issue READ_LA */
389 LPFC_CLEAR_LA = 6, /* authentication cmplt - issue
392 LPFC_HBA_ERROR = -1
521 #define LPFC_CGN_INFO_SZ (sizeof(struct lpfc_cgn_info) - \
552 /* Several of these flags are HBA centric and should be moved to
553 * phba->link_flag (e.g. FC_PTP, FC_PUBLIC_LOOP)
865 /* Assign IRQs only on non-hyperthreaded CPUs. This is the
917 /* Slow-path IOCB process function jump table entries */
1005 #define HBA_SP_QUEUE_EVT 0x8 /* Slow-path qevt posted to worker thread*/
1025 #define HBA_NEEDS_CFG_PORT 0x2000000 /* SLI3 - needs a CONFIG_PORT mbox */
1032 uint32_t fcp_ring_in_use; /* When polling test if intr-hndlr active*/
1084 u8 nsler; /* Firmware supports FC-NVMe-2 SLER */
1225 PCI BAR0 with dual-ULP support */
1227 PCI BAR2 with dual-ULP support */
1229 PCI BAR4 with dual-ULP support */
1306 #define LPFC_MAX_VPI 0xFF /* Max number VPI supported 0 - 0xff */
1370 #define LPFC_INJERR_LBA_OFF (sector_t)(-1)
1375 /* iDiag debugfs sub-directory */
1613 if (phba->cfg_topology == FLAGS_LOCAL_LB) in lpfc_set_loopback_flag()
1614 phba->link_flag |= LS_LOOPBACK_MODE; in lpfc_set_loopback_flag()
1616 phba->link_flag &= ~LS_LOOPBACK_MODE; in lpfc_set_loopback_flag()
1622 return phba->link_state == LPFC_LINK_UP || in lpfc_is_link_up()
1623 phba->link_state == LPFC_CLEAR_LA || in lpfc_is_link_up()
1624 phba->link_state == LPFC_HBA_READY; in lpfc_is_link_up()
1631 set_bit(LPFC_DATA_READY, &phba->data_flags); in lpfc_worker_wake_up()
1634 wake_up(&phba->work_waitq); in lpfc_worker_wake_up()
1644 return -EIO; in lpfc_readl()
1656 phba->sli.slistat.err_attn_event++; in lpfc_sli_read_hs()
1659 if (lpfc_readl(phba->HSregaddr, &phba->work_hs) || in lpfc_sli_read_hs()
1660 lpfc_readl(phba->MBslimaddr + 0xa8, &phba->work_status[0]) || in lpfc_sli_read_hs()
1661 lpfc_readl(phba->MBslimaddr + 0xac, &phba->work_status[1])) { in lpfc_sli_read_hs()
1662 return -EIO; in lpfc_sli_read_hs()
1666 writel(HA_ERATT, phba->HAregaddr); in lpfc_sli_read_hs()
1667 readl(phba->HAregaddr); /* flush */ in lpfc_sli_read_hs()
1668 phba->pport->stopped = 1; in lpfc_sli_read_hs()
1677 if (phba->sli_rev != LPFC_SLI_REV4 && in lpfc_phba_elsring()
1678 phba->sli_rev != LPFC_SLI_REV3 && in lpfc_phba_elsring()
1679 phba->sli_rev != LPFC_SLI_REV2) in lpfc_phba_elsring()
1682 if (phba->sli_rev == LPFC_SLI_REV4) { in lpfc_phba_elsring()
1683 if (phba->sli4_hba.els_wq) in lpfc_phba_elsring()
1684 return phba->sli4_hba.els_wq->pring; in lpfc_phba_elsring()
1688 return &phba->sli.sli3_ring[LPFC_ELS_RING]; in lpfc_phba_elsring()
1692 * lpfc_next_online_cpu - Finds next online CPU on cpumask
1694 * @start: starting cpu index
1696 * Note: If no valid cpu found, then nr_cpu_ids is returned.
1712 * lpfc_next_present_cpu - Finds next present CPU after n
1713 * @n: the cpu prior to search
1715 * Note: If no next present cpu, then fallback to first present cpu.
1720 unsigned int cpu; in lpfc_next_present_cpu() local
1722 cpu = cpumask_next(n, cpu_present_mask); in lpfc_next_present_cpu()
1724 if (cpu >= nr_cpu_ids) in lpfc_next_present_cpu()
1725 cpu = cpumask_first(cpu_present_mask); in lpfc_next_present_cpu()
1727 return cpu; in lpfc_next_present_cpu()
1731 * lpfc_sli4_mod_hba_eq_delay - update EQ delay
1744 bf_set(lpfc_sliport_eqdelay_id, ®_data, eq->queue_id); in lpfc_sli4_mod_hba_eq_delay()
1746 writel(reg_data.word0, phba->sli4_hba.u.if_type2.EQDregaddr); in lpfc_sli4_mod_hba_eq_delay()
1747 eq->q_mode = delay; in lpfc_sli4_mod_hba_eq_delay()
1780 * lpfc_is_vmid_enabled - returns if VMID is enabled for either switch types
1785 * ---------------------------------------------------
1787 * ---------------------------------------------------
1795 ---------------------------------------------------
1800 return phba->cfg_vmid_app_header || phba->cfg_vmid_priority_tagging; in lpfc_is_vmid_enabled()
1806 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_ulpstatus()
1807 return bf_get(lpfc_wcqe_c_status, &iocbq->wcqe_cmpl); in get_job_ulpstatus()
1809 return iocbq->iocb.ulpStatus; in get_job_ulpstatus()
1815 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_word4()
1816 return iocbq->wcqe_cmpl.parameter; in get_job_word4()
1818 return iocbq->iocb.un.ulpWord[4]; in get_job_word4()
1824 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_cmnd()
1825 return bf_get(wqe_cmnd, &iocbq->wqe.generic.wqe_com); in get_job_cmnd()
1827 return iocbq->iocb.ulpCommand; in get_job_cmnd()
1833 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_ulpcontext()
1834 return bf_get(wqe_ctxt_tag, &iocbq->wqe.generic.wqe_com); in get_job_ulpcontext()
1836 return iocbq->iocb.ulpContext; in get_job_ulpcontext()
1842 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_rcvoxid()
1843 return bf_get(wqe_rcvoxid, &iocbq->wqe.generic.wqe_com); in get_job_rcvoxid()
1845 return iocbq->iocb.unsli3.rcvsli3.ox_id; in get_job_rcvoxid()
1851 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_data_placed()
1852 return iocbq->wcqe_cmpl.total_data_placed; in get_job_data_placed()
1854 return iocbq->iocb.un.genreq64.bdl.bdeSize; in get_job_data_placed()
1860 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_abtsiotag()
1861 return iocbq->wqe.abort_cmd.wqe_com.abort_tag; in get_job_abtsiotag()
1863 return iocbq->iocb.un.acxri.abortIoTag; in get_job_abtsiotag()
1869 if (phba->sli_rev == LPFC_SLI_REV4) in get_job_els_rsp64_did()
1870 return bf_get(wqe_els_did, &iocbq->wqe.els_req.wqe_dest); in get_job_els_rsp64_did()
1872 return iocbq->iocb.un.elsreq64.remoteID; in get_job_els_rsp64_did()