/titanic_50/usr/src/uts/common/io/scsi/adapters/smrt/ |
H A D | smrt_ciss.c | 349 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 D | smrt_interrupts.c | 34 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 D | smrt_ciss_simple.c | 24 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 D | smrt.c | 174 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 D | smrt_device.c | 45 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 D | smrt_hba.c | 79 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 D | smrt_logvol.c | 32 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 D | smrt_physical.c | 61 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 D | smrt_commands.c | 70 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 D | smrt_sata.c | 34 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 D | driver-storage-smrt.mf | 18 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 D | Makefile | 24 MODULE = smrt 28 CONF_SRCDIR = $(UTSBASE)/common/io/scsi/adapters/smrt
|
/titanic_50/usr/src/uts/common/sys/scsi/adapters/smrt/ |
H A D | smrt.h | 228 typedef struct smrt smrt_t; 237 struct smrt { struct
|
/titanic_50/usr/src/uts/intel/ |
H A D | Makefile.intel | 365 DRV_KMODS += smrt
|
/titanic_50/usr/src/uts/common/ |
H A D | Makefile.rules | 1078 $(OBJS_DIR)/%.o: $(UTSBASE)/common/io/scsi/adapters/smrt/%.c 2346 $(LINTS_DIR)/%.ln: $(UTSBASE)/common/io/scsi/adapters/smrt/%.c
|
H A D | Makefile.files | 2092 SMRT_OBJS = smrt.o \
|