Lines Matching refs:pcieb
258 static void pcieb_id_props(pcieb_devstate_t *pcieb);
331 static int pcieb_intr_attach(pcieb_devstate_t *pcieb);
369 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, instance); in pcieb_info() local
377 if (pcieb == NULL) { in pcieb_info()
382 *result = (void *)pcieb->pcieb_dip; in pcieb_info()
484 pcieb_devstate_t *pcieb; in pcieb_attach() local
520 pcieb = ddi_get_soft_state(pcieb_state, instance); in pcieb_attach()
521 pcieb->pcieb_dip = devi; in pcieb_attach()
523 if ((pcieb_fm_init(pcieb)) != DDI_SUCCESS) { in pcieb_attach()
527 pcieb->pcieb_init_flags |= PCIEB_INIT_FM; in pcieb_attach()
529 mutex_init(&pcieb->pcieb_mutex, NULL, MUTEX_DRIVER, NULL); in pcieb_attach()
530 mutex_init(&pcieb->pcieb_err_mutex, NULL, MUTEX_DRIVER, in pcieb_attach()
531 (void *)pcieb->pcieb_fm_ibc); in pcieb_attach()
532 mutex_init(&pcieb->pcieb_peek_poke_mutex, NULL, MUTEX_DRIVER, in pcieb_attach()
533 (void *)pcieb->pcieb_fm_ibc); in pcieb_attach()
536 pcieb_id_props(pcieb); in pcieb_attach()
577 pcieb_attach_plx_workarounds(pcieb); in pcieb_attach()
591 (void) pcieb_intr_attach(pcieb); in pcieb_attach()
623 pcieb_devstate_t *pcieb; in pcieb_detach() local
638 pcieb = ddi_get_soft_state(pcieb_state, ddi_get_instance(devi)); in pcieb_detach()
644 pcieb_intr_fini(pcieb); in pcieb_detach()
651 (void) ndi_prop_remove(DDI_DEV_T_NONE, pcieb->pcieb_dip, in pcieb_detach()
654 if (pcieb->pcieb_init_flags & PCIEB_INIT_FM) in pcieb_detach()
655 pcieb_fm_fini(pcieb); in pcieb_detach()
660 mutex_destroy(&pcieb->pcieb_peek_poke_mutex); in pcieb_detach()
661 mutex_destroy(&pcieb->pcieb_err_mutex); in pcieb_detach()
662 mutex_destroy(&pcieb->pcieb_mutex); in pcieb_detach()
697 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, in pcieb_ctlops() local
769 pf_init(rdip, (void *)pcieb->pcieb_fm_ibc, in pcieb_ctlops()
917 pcieb_devstate_t *pcieb = in pcieb_initchild() local
974 if (pcie_pm_hold(pcieb->pcieb_dip) != DDI_SUCCESS) { in pcieb_initchild()
975 PCIEB_DEBUG(DBG_PWR, pcieb->pcieb_dip, in pcieb_initchild()
1012 if (pcieb_init_plx_workarounds(pcieb, child) == DDI_FAILURE) { in pcieb_initchild()
1021 pcie_pm_release(pcieb->pcieb_dip); in pcieb_initchild()
1056 pcieb_intr_attach(pcieb_devstate_t *pcieb) in pcieb_intr_attach() argument
1059 dev_info_t *dip = pcieb->pcieb_dip; in pcieb_intr_attach()
1062 pcieb_plat_intr_attach(pcieb); in pcieb_intr_attach()
1078 if (pcieb_intr_init(pcieb, DDI_INTR_TYPE_MSI) == DDI_SUCCESS) in pcieb_intr_attach()
1093 pcieb->pcieb_no_aer_msi = B_TRUE; in pcieb_intr_attach()
1097 if (pcieb_intr_init(pcieb, DDI_INTR_TYPE_FIXED) != in pcieb_intr_attach()
1121 pcieb_intr_init(pcieb_devstate_t *pcieb, int intr_type) in pcieb_intr_init() argument
1123 dev_info_t *dip = pcieb->pcieb_dip; in pcieb_intr_init()
1194 pcieb->pcieb_htable_size = sizeof (ddi_intr_handle_t) * request; in pcieb_intr_init()
1195 pcieb->pcieb_htable = kmem_zalloc(pcieb->pcieb_htable_size, in pcieb_intr_init()
1197 pcieb->pcieb_init_flags |= PCIEB_INIT_HTABLE; in pcieb_intr_init()
1199 ret = ddi_intr_alloc(dip, pcieb->pcieb_htable, intr_type, inum, in pcieb_intr_init()
1206 pcieb->pcieb_init_flags |= PCIEB_INIT_ALLOC; in pcieb_intr_init()
1209 pcieb->pcieb_intr_count = count; in pcieb_intr_init()
1227 ret = ddi_intr_get_pri(pcieb->pcieb_htable[0], in pcieb_intr_init()
1228 &pcieb->pcieb_intr_priority); in pcieb_intr_init()
1235 if (pcieb->pcieb_intr_priority >= LOCK_LEVEL) { in pcieb_intr_init()
1236 pcieb->pcieb_intr_priority = LOCK_LEVEL - 1; in pcieb_intr_init()
1237 ret = ddi_intr_set_pri(pcieb->pcieb_htable[0], in pcieb_intr_init()
1238 pcieb->pcieb_intr_priority); in pcieb_intr_init()
1247 mutex_init(&pcieb->pcieb_intr_mutex, NULL, MUTEX_DRIVER, NULL); in pcieb_intr_init()
1249 pcieb->pcieb_init_flags |= PCIEB_INIT_MUTEX; in pcieb_intr_init()
1251 for (count = 0; count < pcieb->pcieb_intr_count; count++) { in pcieb_intr_init()
1252 ret = ddi_intr_add_handler(pcieb->pcieb_htable[count], in pcieb_intr_init()
1253 pcieb_intr_handler, (caddr_t)pcieb, in pcieb_intr_init()
1266 (void) ddi_intr_remove_handler(pcieb->pcieb_htable[x]); in pcieb_intr_init()
1271 pcieb->pcieb_init_flags |= PCIEB_INIT_HANDLER; in pcieb_intr_init()
1273 (void) ddi_intr_get_cap(pcieb->pcieb_htable[0], &intr_cap); in pcieb_intr_init()
1281 mutex_enter(&pcieb->pcieb_intr_mutex); in pcieb_intr_init()
1284 (void) ddi_intr_block_enable(pcieb->pcieb_htable, in pcieb_intr_init()
1285 pcieb->pcieb_intr_count); in pcieb_intr_init()
1286 pcieb->pcieb_init_flags |= PCIEB_INIT_BLOCK; in pcieb_intr_init()
1288 for (count = 0; count < pcieb->pcieb_intr_count; count++) { in pcieb_intr_init()
1289 (void) ddi_intr_enable(pcieb->pcieb_htable[count]); in pcieb_intr_init()
1292 pcieb->pcieb_init_flags |= PCIEB_INIT_ENABLE; in pcieb_intr_init()
1295 pcieb->pcieb_intr_type = intr_type; in pcieb_intr_init()
1307 mutex_exit(&pcieb->pcieb_intr_mutex); in pcieb_intr_init()
1312 pcieb->pcieb_isr_tab[pcie_msi_off] |= PCIEB_INTR_SRC_HP; in pcieb_intr_init()
1316 pcieb->pcieb_isr_tab[pcie_msi_off] |= in pcieb_intr_init()
1321 pcieb->pcieb_isr_tab[pcie_msi_off] |= in pcieb_intr_init()
1327 pcieb->pcieb_isr_tab[0] |= PCIEB_INTR_SRC_HP; in pcieb_intr_init()
1347 mutex_exit(&pcieb->pcieb_intr_mutex); in pcieb_intr_init()
1350 pcieb->pcieb_isr_tab[aer_msi_off] |= PCIEB_INTR_SRC_AER; in pcieb_intr_init()
1356 pcieb->pcieb_no_aer_msi = B_TRUE; in pcieb_intr_init()
1360 mutex_exit(&pcieb->pcieb_intr_mutex); in pcieb_intr_init()
1364 pcieb_intr_fini(pcieb); in pcieb_intr_init()
1369 pcieb_intr_fini(pcieb_devstate_t *pcieb) in pcieb_intr_fini() argument
1372 int count = pcieb->pcieb_intr_count; in pcieb_intr_fini()
1373 int flags = pcieb->pcieb_init_flags; in pcieb_intr_fini()
1377 (void) ddi_intr_block_disable(pcieb->pcieb_htable, count); in pcieb_intr_fini()
1383 mutex_destroy(&pcieb->pcieb_intr_mutex); in pcieb_intr_fini()
1387 (void) ddi_intr_disable(pcieb->pcieb_htable[x]); in pcieb_intr_fini()
1390 (void) ddi_intr_remove_handler(pcieb->pcieb_htable[x]); in pcieb_intr_fini()
1393 (void) ddi_intr_free(pcieb->pcieb_htable[x]); in pcieb_intr_fini()
1400 kmem_free(pcieb->pcieb_htable, pcieb->pcieb_htable_size); in pcieb_intr_fini()
1404 pcieb->pcieb_init_flags &= flags; in pcieb_intr_fini()
1423 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, in pcieb_fm_init_child() local
1427 *ibc = pcieb->pcieb_fm_ibc; in pcieb_fm_init_child()
1464 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, inst); in pcieb_open() local
1467 if (pcieb == NULL) in pcieb_open()
1470 mutex_enter(&pcieb->pcieb_mutex); in pcieb_open()
1471 rv = pcie_open(pcieb->pcieb_dip, devp, flags, otyp, credp); in pcieb_open()
1472 mutex_exit(&pcieb->pcieb_mutex); in pcieb_open()
1481 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, inst); in pcieb_close() local
1484 if (pcieb == NULL) in pcieb_close()
1487 mutex_enter(&pcieb->pcieb_mutex); in pcieb_close()
1488 rv = pcie_close(pcieb->pcieb_dip, dev, flags, otyp, credp); in pcieb_close()
1489 mutex_exit(&pcieb->pcieb_mutex); in pcieb_close()
1495 pcieb_ioctl_retrain(pcieb_devstate_t *pcieb, cred_t *credp) in pcieb_ioctl_retrain() argument
1497 pcie_bus_t *bus_p = PCIE_DIP2BUS(pcieb->pcieb_dip); in pcieb_ioctl_retrain()
1511 return (pcie_link_retrain(pcieb->pcieb_dip)); in pcieb_ioctl_retrain()
1515 pcieb_ioctl_get_speed(pcieb_devstate_t *pcieb, intptr_t arg, int mode, in pcieb_ioctl_get_speed() argument
1518 pcie_bus_t *bus_p = PCIE_DIP2BUS(pcieb->pcieb_dip); in pcieb_ioctl_get_speed()
1574 pcieb_ioctl_set_speed(pcieb_devstate_t *pcieb, intptr_t arg, int mode, in pcieb_ioctl_set_speed() argument
1577 pcie_bus_t *bus_p = PCIE_DIP2BUS(pcieb->pcieb_dip); in pcieb_ioctl_set_speed()
1625 return (pcie_link_set_target(pcieb->pcieb_dip, speed)); in pcieb_ioctl_set_speed()
1633 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, inst); in pcieb_ioctl() local
1636 if (pcieb == NULL) in pcieb_ioctl()
1647 rv = pcieb_ioctl_retrain(pcieb, credp); in pcieb_ioctl()
1650 rv = pcieb_ioctl_get_speed(pcieb, arg, mode, credp); in pcieb_ioctl()
1653 rv = pcieb_ioctl_set_speed(pcieb, arg, mode, credp); in pcieb_ioctl()
1657 rv = pcie_ioctl(pcieb->pcieb_dip, dev, cmd, arg, mode, credp, in pcieb_ioctl()
2035 pcieb_id_props(pcieb_devstate_t *pcieb) in pcieb_id_props() argument
2040 pcie_bus_t *bus_p = PCIE_DIP2BUS(pcieb->pcieb_dip); in pcieb_id_props()
2077 (void) ndi_prop_create_boolean(DDI_DEV_T_NONE, pcieb->pcieb_dip, in pcieb_id_props()
2080 (void) ddi_prop_update_int64(DDI_DEV_T_NONE, pcieb->pcieb_dip, in pcieb_id_props()