Lines Matching defs:mpt

69 mptsas_smhba_add_hba_prop(mptsas_t *mpt, data_type_t dt,
73 mptsas_smhba_show_phy_info(mptsas_t *mpt);
76 mptsas_smhba_add_hba_prop(mptsas_t *mpt, data_type_t dt,
79 ASSERT(mpt != NULL);
83 if (ddi_prop_update_int(DDI_DEV_T_NONE, mpt->m_dip,
85 mptsas_log(mpt, CE_WARN,
90 if (ddi_prop_update_string(DDI_DEV_T_NONE, mpt->m_dip,
92 mptsas_log(mpt, CE_WARN,
97 mptsas_log(mpt, CE_WARN, "%s: "
104 mptsas_smhba_show_phy_info(mptsas_t *mpt)
108 ASSERT(mpt != NULL);
111 mptsas_log(mpt, CE_WARN,
115 i, mpt->m_phy_info[i].smhba_info.owner_devhdl,
116 mpt->m_phy_info[i].smhba_info.attached_devhdl,
117 mpt->m_phy_info[i].smhba_info.attached_phy_identify,
118 mpt->m_phy_info[i].smhba_info.programmed_link_rate,
119 mpt->m_phy_info[i].smhba_info.hw_link_rate,
120 mpt->m_phy_info[i].smhba_info.negotiated_link_rate,
121 mpt->m_phy_info[i].smhba_info.path);
149 mptsas_smhba_update_phy_props(mptsas_t *mpt, dev_info_t *dip,
158 mptsas_log(mpt, CE_WARN, "%s: nvlist_alloc() failed", __func__);
165 mptsas_log(mpt, CE_WARN,
186 mptsas_smhba_set_one_phy_props(mptsas_t *mpt, dev_info_t *dip, uint8_t phy_id,
191 ASSERT(phy_id < mpt->m_num_phys);
194 &mpt->m_phy_info[phy_id].smhba_info, phy_id, attached_devhdl);
196 mptsas_smhba_update_phy_props(mpt, dip, &phy_props, 1);
202 mptsas_smhba_set_all_phy_props(mptsas_t *mpt, dev_info_t *dip, uint8_t phy_nums,
213 for (i = 0, j = 0; i < mpt->m_num_phys && j < phy_nums; i++)
214 if (phy_mask == mpt->m_phy_info[i].phy_mask)
216 &mpt->m_phy_info[i].smhba_info, i, attached_devhdl);
218 mptsas_smhba_update_phy_props(mpt, dip, phy_props, j);
230 mptsas_smhba_log_sysevent(mptsas_t *mpt, char *subclass, char *etype,
239 if (mpt->m_dip == NULL)
260 (void) ddi_pathname(mpt->m_dip, pname);
264 mptsas_log(mpt, CE_WARN,
271 ddi_get_instance(mpt->m_dip)) != 0)
291 (void) ddi_log_sysevent(mpt->m_dip, DDI_VENDOR_SUNW, EC_HBA, subclass,
300 mptsas_create_phy_stats(mptsas_t *mpt, char *iport, dev_info_t *dip)
310 ASSERT(mpt != NULL);
312 for (i = 0; i < mpt->m_num_phys; i++) {
315 (void) sprintf(phymask, "%x", mpt->m_phy_info[i].phy_mask);
318 phyp = &mpt->m_phy_info[i].smhba_info;
331 (longlong_t)mpt->un.m_base_wwid,
340 mptsas_log(mpt, CE_WARN,
382 mptsas_t *mpt;
388 mpt = (mptsas_t *)pptr->mpt;
389 ASSERT((mpt != NULL));
396 mutex_enter(&mpt->m_mutex);
398 ret = mptsas_get_sas_phy_page1(pptr->mpt, page_address, pptr);
417 mutex_exit(&mpt->m_mutex);
423 mptsas_destroy_phy_stats(mptsas_t *mpt)
428 ASSERT(mpt != NULL);
430 for (i = 0; i < mpt->m_num_phys; i++) {
431 phyp = &mpt->m_phy_info[i].smhba_info;
446 mptsas_smhba_phy_init(mptsas_t *mpt)
452 ASSERT(mutex_owned(&mpt->m_mutex));
454 for (i = 0; i < mpt->m_num_phys; i++) {
458 rval = mptsas_get_sas_phy_page0(mpt,
459 page_address, &mpt->m_phy_info[i].smhba_info);
461 mptsas_log(mpt, CE_WARN,
466 mpt->m_phy_info[i].smhba_info.phy_id = (uint8_t)i;
467 mpt->m_phy_info[i].smhba_info.sas_addr =
468 mpt->un.m_base_wwid + i;
469 mpt->m_phy_info[i].smhba_info.mpt = mpt;
475 mptsas_smhba_setup(mptsas_t *mpt)
482 mutex_enter(&mpt->m_mutex);
483 if (mptsas_smhba_phy_init(mpt)) {
484 mutex_exit(&mpt->m_mutex);
487 mutex_exit(&mpt->m_mutex);
490 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_INT32, MPTSAS_SMHBA_SUPPORTED,
494 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_STRING, MPTSAS_DRV_VERSION,
498 chiprev = 'A' + mpt->m_revid;
500 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_STRING, MPTSAS_HWARE_VERSION,
504 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_INT32, MPTSAS_NUM_PHYS_HBA,
505 &(mpt->m_num_phys));
509 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_INT32,
512 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_STRING, MPTSAS_MANUFACTURER,
513 mpt->m_MANU_page0.ChipName);
515 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_STRING, MPTSAS_MODEL_NAME,
516 mpt->m_MANU_page0.BoardName);
523 mpt->m_MANU_page0.ChipName,
524 mpt->m_MANU_page0.ChipRevision,
525 mpt->m_MANU_page0.BoardName,
526 mpt->m_MANU_page0.BoardAssembly,
527 mpt->m_MANU_page0.BoardTracerNumber);
529 mptsas_smhba_add_hba_prop(mpt, DATA_TYPE_STRING, MPTSAS_SERIAL_NUMBER,