Home
last modified time | relevance | path

Searched refs:smrt (Results 1 – 16 of 16) sorted by relevance

/titanic_50/usr/src/uts/common/io/scsi/adapters/smrt/
H A Dsmrt_ciss.c349 smrt_t *smrt = arg; in smrt_periodic() local
351 mutex_enter(&smrt->smrt_mutex); in smrt_periodic()
359 if ((smrt->smrt_status & SMRT_CTLR_DISCOVERY_PERIODIC) != 0 && in smrt_periodic()
360 (smrt->smrt_status & SMRT_CTLR_DISCOVERY_RUNNING) == 0 && in smrt_periodic()
361 (smrt->smrt_status & SMRT_CTLR_STATUS_RESETTING) == 0) { in smrt_periodic()
362 if (ddi_taskq_dispatch(smrt->smrt_discover_taskq, in smrt_periodic()
363 smrt_discover, smrt, DDI_NOSLEEP) != DDI_SUCCESS) { in smrt_periodic()
364 smrt->smrt_stats.smrts_discovery_tq_errors++; in smrt_periodic()
366 smrt->smrt_status &= ~SMRT_CTLR_DISCOVERY_PERIODIC; in smrt_periodic()
370 if (!(smrt->smrt_status & SMRT_CTLR_STATUS_RUNNING)) { in smrt_periodic()
[all …]
H A Dsmrt_interrupts.c34 smrt_try_msix(smrt_t *smrt) in smrt_try_msix() argument
36 char *fwver = smrt->smrt_versions.smrtv_firmware_rev; in smrt_try_msix()
43 if (smrt->smrt_pci_vendor == SMRT_VENDOR_HP && in smrt_try_msix()
44 smrt->smrt_pci_device == SMRT_DEVICE_GEN9) { in smrt_try_msix()
61 dev_err(smrt->smrt_dip, CE_NOTE, "!trying MSI-X interrupts " in smrt_try_msix()
70 smrt_interrupts_disable(smrt_t *smrt) in smrt_interrupts_disable() argument
72 if (smrt->smrt_interrupt_cap & DDI_INTR_FLAG_BLOCK) { in smrt_interrupts_disable()
73 return (ddi_intr_block_disable(smrt->smrt_interrupts, in smrt_interrupts_disable()
74 smrt->smrt_ninterrupts)); in smrt_interrupts_disable()
76 VERIFY3S(smrt->smrt_ninterrupts, ==, 1); in smrt_interrupts_disable()
[all …]
H A Dsmrt_ciss_simple.c24 smrt_t *smrt = (smrt_t *)arg1; in smrt_isr_hw_simple()
25 uint32_t isr = smrt_get32(smrt, CISS_I2O_INTERRUPT_STATUS); in smrt_isr_hw_simple()
28 mutex_enter(&smrt->smrt_mutex); in smrt_isr_hw_simple()
29 if (!(smrt->smrt_status & SMRT_CTLR_STATUS_RUNNING)) { in smrt_isr_hw_simple()
30 smrt->smrt_stats.smrts_unclaimed_interrupts++; in smrt_isr_hw_simple()
31 smrt->smrt_last_interrupt_unclaimed = now; in smrt_isr_hw_simple()
37 mutex_exit(&smrt->smrt_mutex); in smrt_isr_hw_simple()
45 smrt->smrt_stats.smrts_unclaimed_interrupts++; in smrt_isr_hw_simple()
46 smrt->smrt_last_interrupt_unclaimed = now; in smrt_isr_hw_simple()
52 smrt_lockup_check(smrt); in smrt_isr_hw_simple()
[all …]
H A Dsmrt.c174 smrt_t *smrt; in smrt_iport_attach() local
188 smrt = ddi_get_soft_state(smrt_state, instance); in smrt_iport_attach()
189 VERIFY(smrt != NULL); in smrt_iport_attach()
192 if (smrt_logvol_hba_setup(smrt, dip) != DDI_SUCCESS) in smrt_iport_attach()
194 smrt->smrt_virt_iport = dip; in smrt_iport_attach()
196 if (smrt_phys_hba_setup(smrt, dip) != DDI_SUCCESS) in smrt_iport_attach()
198 smrt->smrt_phys_iport = dip; in smrt_iport_attach()
211 smrt_t *smrt; in smrt_iport_detach() local
218 smrt = tran->tran_hba_private; in smrt_iport_detach()
219 VERIFY(smrt != NULL); in smrt_iport_detach()
[all …]
H A Dsmrt_device.c45 smrt_locate_cfgtbl(smrt_t *smrt, pci_regspec_t *regs, unsigned nregs, in smrt_locate_cfgtbl() argument
52 cfg_offset = smrt_get32(smrt, CISS_I2O_CFGTBL_CFG_OFFSET); in smrt_locate_cfgtbl()
53 mem_offset = smrt_get32(smrt, CISS_I2O_CFGTBL_MEM_OFFSET); in smrt_locate_cfgtbl()
97 smrt_identify_device(smrt_t *smrt) in smrt_identify_device() argument
101 if (pci_config_setup(smrt->smrt_dip, &pci_hdl) != DDI_SUCCESS) in smrt_identify_device()
104 smrt->smrt_pci_vendor = pci_config_get16(pci_hdl, PCI_CONF_VENID); in smrt_identify_device()
105 smrt->smrt_pci_device = pci_config_get16(pci_hdl, PCI_CONF_DEVID); in smrt_identify_device()
113 smrt_map_device(smrt_t *smrt) in smrt_map_device() argument
117 dev_info_t *dip = smrt->smrt_dip; in smrt_map_device()
130 if (smrt_locate_bar(regs, nregs, &smrt->smrt_i2o_bar) != in smrt_map_device()
[all …]
H A Dsmrt_hba.c79 smrt_t *smrt = (smrt_t *)hba_tran->tran_hba_private; in smrt_logvol_tran_tgt_init() local
80 dev_info_t *dip = smrt->smrt_dip; in smrt_logvol_tran_tgt_init()
102 mutex_enter(&smrt->smrt_mutex); in smrt_logvol_tran_tgt_init()
104 if (smrt->smrt_status & SMRT_CTLR_STATUS_DETACHING) { in smrt_logvol_tran_tgt_init()
109 mutex_exit(&smrt->smrt_mutex); in smrt_logvol_tran_tgt_init()
117 if ((smlv = smrt_logvol_lookup_by_id(smrt, targ)) == NULL) { in smrt_logvol_tran_tgt_init()
118 mutex_exit(&smrt->smrt_mutex); in smrt_logvol_tran_tgt_init()
131 smtg->smtg_ctlr = smrt; in smrt_logvol_tran_tgt_init()
132 list_insert_tail(&smrt->smrt_targets, smtg); in smrt_logvol_tran_tgt_init()
139 mutex_exit(&smrt->smrt_mutex); in smrt_logvol_tran_tgt_init()
[all …]
H A Dsmrt_logvol.c32 smrt_logvol_lookup_by_id(smrt_t *smrt, unsigned long id) in smrt_logvol_lookup_by_id() argument
34 VERIFY(MUTEX_HELD(&smrt->smrt_mutex)); in smrt_logvol_lookup_by_id()
36 for (smrt_volume_t *smlv = list_head(&smrt->smrt_volumes); in smrt_logvol_lookup_by_id()
37 smlv != NULL; smlv = list_next(&smrt->smrt_volumes, smlv)) { in smrt_logvol_lookup_by_id()
47 smrt_read_logvols(smrt_t *smrt, smrt_report_logical_lun_t *smrll, uint64_t gen) in smrt_read_logvols() argument
53 VERIFY(MUTEX_HELD(&smrt->smrt_mutex)); in smrt_read_logvols()
66 if ((smlv = smrt_logvol_lookup_by_id(smrt, in smrt_read_logvols()
81 smlv->smlv_ctlr = smrt; in smrt_read_logvols()
82 list_insert_tail(&smrt->smrt_volumes, smlv); in smrt_read_logvols()
94 scsi_hba_tgtmap_set_add(smrt->smrt_virt_tgtmap, in smrt_read_logvols()
[all …]
H A Dsmrt_physical.c61 smrt_phys_lookup_by_ua(smrt_t *smrt, const char *ua) in smrt_phys_lookup_by_ua() argument
63 VERIFY(MUTEX_HELD(&smrt->smrt_mutex)); in smrt_phys_lookup_by_ua()
72 for (smrt_physical_t *smpt = list_head(&smrt->smrt_physicals); in smrt_phys_lookup_by_ua()
73 smpt != NULL; smpt = list_next(&smrt->smrt_physicals, smpt)) { in smrt_phys_lookup_by_ua()
97 smrt_phys_lookup_by_wwn(smrt_t *smrt, uint64_t wwn) in smrt_phys_lookup_by_wwn() argument
99 VERIFY(MUTEX_HELD(&smrt->smrt_mutex)); in smrt_phys_lookup_by_wwn()
101 for (smrt_physical_t *smpt = list_head(&smrt->smrt_physicals); in smrt_phys_lookup_by_wwn()
102 smpt != NULL; smpt = list_next(&smrt->smrt_physicals, smpt)) { in smrt_phys_lookup_by_wwn()
111 smrt_phys_identify(smrt_t *smrt, smrt_identify_physical_drive_t *info, in smrt_phys_identify() argument
122 if ((smcm = smrt_command_alloc(smrt, SMRT_CMDTYPE_INTERNAL, in smrt_phys_identify()
[all …]
H A Dsmrt_commands.c70 smrt_contig_alloc(smrt_t *smrt, smrt_dma_t *smdma, size_t sz, int kmflags, in smrt_contig_alloc() argument
75 dev_info_t *dip = smrt->smrt_dip; in smrt_contig_alloc()
153 smrt_command_alloc_impl(smrt_t *smrt, smrt_command_type_t type, int kmflags) in smrt_command_alloc_impl() argument
163 smcm->smcm_ctlr = smrt; in smrt_command_alloc_impl()
177 if (smrt_contig_alloc(smrt, &smcm->smcm_contig, contig_size, in smrt_command_alloc_impl()
205 smrt_command_alloc_preinit(smrt_t *smrt, size_t datasize, int kmflags) in smrt_command_alloc_preinit() argument
209 if ((smcm = smrt_command_alloc_impl(smrt, SMRT_CMDTYPE_PREINIT, in smrt_command_alloc_preinit()
223 if (smrt_command_attach_internal(smrt, smcm, datasize, kmflags) != 0) { in smrt_command_alloc_preinit()
232 smrt_command_alloc(smrt_t *smrt, smrt_command_type_t type, int kmflags) in smrt_command_alloc() argument
238 if ((smcm = smrt_command_alloc_impl(smrt, type, kmflags)) == NULL) { in smrt_command_alloc()
[all …]
H A Dsmrt_sata.c34 smrt_sata_determine_wwn(smrt_t *smrt, PhysDevAddr_t *addr, uint64_t *wwnp, in smrt_sata_determine_wwn() argument
45 if ((smcm = smrt_command_alloc(smrt, SMRT_CMDTYPE_INTERNAL, in smrt_sata_determine_wwn()
46 KM_NOSLEEP)) == NULL || smrt_command_attach_internal(smrt, smcm, in smrt_sata_determine_wwn()
68 mutex_enter(&smrt->smrt_mutex); in smrt_sata_determine_wwn()
74 if ((r = smrt_submit(smrt, smcm)) != 0) { in smrt_sata_determine_wwn()
75 mutex_exit(&smrt->smrt_mutex); in smrt_sata_determine_wwn()
80 if ((r = smrt_poll_for(smrt, smcm)) != 0) { in smrt_sata_determine_wwn()
91 mutex_exit(&smrt->smrt_mutex); in smrt_sata_determine_wwn()
100 mutex_exit(&smrt->smrt_mutex); in smrt_sata_determine_wwn()
109 dev_err(smrt->smrt_dip, CE_WARN, "physical target " in smrt_sata_determine_wwn()
[all …]
/titanic_50/usr/src/pkg/manifests/
H A Ddriver-storage-smrt.mf18 set name=pkg.fmri value=pkg:/driver/storage/smrt@$(PKGVERS)
27 driver name=smrt class=scsi-self-identifying \
65 file path=kernel/drv/$(ARCH64)/smrt group=sys
66 file path=kernel/drv/smrt.conf group=sys
/titanic_50/usr/src/uts/intel/smrt/
H A DMakefile24 MODULE = smrt
28 CONF_SRCDIR = $(UTSBASE)/common/io/scsi/adapters/smrt
/titanic_50/usr/src/uts/common/sys/scsi/adapters/smrt/
H A Dsmrt.h228 typedef struct smrt smrt_t;
237 struct smrt { struct
/titanic_50/usr/src/uts/intel/
H A DMakefile.intel365 DRV_KMODS += smrt
/titanic_50/usr/src/uts/common/
H A DMakefile.rules1078 $(OBJS_DIR)/%.o: $(UTSBASE)/common/io/scsi/adapters/smrt/%.c
2346 $(LINTS_DIR)/%.ln: $(UTSBASE)/common/io/scsi/adapters/smrt/%.c
H A DMakefile.files2092 SMRT_OBJS = smrt.o \