Lines Matching defs:pcieb

54 #include "pcieb.h"
141 static void pcieb_id_props(pcieb_devstate_t *pcieb);
214 static int pcieb_intr_attach(pcieb_devstate_t *pcieb);
252 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, instance);
260 if (pcieb == NULL) {
265 *result = (void *)pcieb->pcieb_dip;
367 pcieb_devstate_t *pcieb;
403 pcieb = ddi_get_soft_state(pcieb_state, instance);
404 pcieb->pcieb_dip = devi;
406 if ((pcieb_fm_init(pcieb)) != DDI_SUCCESS) {
410 pcieb->pcieb_init_flags |= PCIEB_INIT_FM;
412 mutex_init(&pcieb->pcieb_mutex, NULL, MUTEX_DRIVER, NULL);
413 mutex_init(&pcieb->pcieb_err_mutex, NULL, MUTEX_DRIVER,
414 (void *)pcieb->pcieb_fm_ibc);
415 mutex_init(&pcieb->pcieb_peek_poke_mutex, NULL, MUTEX_DRIVER,
416 (void *)pcieb->pcieb_fm_ibc);
419 pcieb_id_props(pcieb);
460 pcieb_attach_plx_workarounds(pcieb);
474 (void) pcieb_intr_attach(pcieb);
500 pcieb_devstate_t *pcieb;
515 pcieb = ddi_get_soft_state(pcieb_state, ddi_get_instance(devi));
521 pcieb_intr_fini(pcieb);
528 (void) ndi_prop_remove(DDI_DEV_T_NONE, pcieb->pcieb_dip,
531 if (pcieb->pcieb_init_flags & PCIEB_INIT_FM)
532 pcieb_fm_fini(pcieb);
537 mutex_destroy(&pcieb->pcieb_peek_poke_mutex);
538 mutex_destroy(&pcieb->pcieb_err_mutex);
539 mutex_destroy(&pcieb->pcieb_mutex);
574 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state,
646 pf_init(rdip, (void *)pcieb->pcieb_fm_ibc,
794 pcieb_devstate_t *pcieb =
851 if (pcie_pm_hold(pcieb->pcieb_dip) != DDI_SUCCESS) {
852 PCIEB_DEBUG(DBG_PWR, pcieb->pcieb_dip,
889 if (pcieb_init_plx_workarounds(pcieb, child) == DDI_FAILURE) {
898 pcie_pm_release(pcieb->pcieb_dip);
933 pcieb_intr_attach(pcieb_devstate_t *pcieb)
936 dev_info_t *dip = pcieb->pcieb_dip;
939 pcieb_plat_intr_attach(pcieb);
955 if (pcieb_intr_init(pcieb, DDI_INTR_TYPE_MSI) == DDI_SUCCESS)
970 pcieb->pcieb_no_aer_msi = B_TRUE;
974 if (pcieb_intr_init(pcieb, DDI_INTR_TYPE_FIXED) !=
999 pcieb_intr_init(pcieb_devstate_t *pcieb, int intr_type)
1001 dev_info_t *dip = pcieb->pcieb_dip;
1064 pcieb->pcieb_htable_size = sizeof (ddi_intr_handle_t) * request;
1065 pcieb->pcieb_htable = kmem_zalloc(pcieb->pcieb_htable_size,
1067 pcieb->pcieb_init_flags |= PCIEB_INIT_HTABLE;
1069 ret = ddi_intr_alloc(dip, pcieb->pcieb_htable, intr_type, inum,
1076 pcieb->pcieb_init_flags |= PCIEB_INIT_ALLOC;
1079 pcieb->pcieb_intr_count = count;
1097 ret = ddi_intr_get_pri(pcieb->pcieb_htable[0],
1098 &pcieb->pcieb_intr_priority);
1105 if (pcieb->pcieb_intr_priority >= LOCK_LEVEL) {
1106 pcieb->pcieb_intr_priority = LOCK_LEVEL - 1;
1107 ret = ddi_intr_set_pri(pcieb->pcieb_htable[0],
1108 pcieb->pcieb_intr_priority);
1117 mutex_init(&pcieb->pcieb_intr_mutex, NULL, MUTEX_DRIVER, NULL);
1119 pcieb->pcieb_init_flags |= PCIEB_INIT_MUTEX;
1121 for (count = 0; count < pcieb->pcieb_intr_count; count++) {
1122 ret = ddi_intr_add_handler(pcieb->pcieb_htable[count],
1123 pcieb_intr_handler, (caddr_t)pcieb,
1136 (void) ddi_intr_remove_handler(pcieb->pcieb_htable[x]);
1141 pcieb->pcieb_init_flags |= PCIEB_INIT_HANDLER;
1143 (void) ddi_intr_get_cap(pcieb->pcieb_htable[0], &intr_cap);
1151 mutex_enter(&pcieb->pcieb_intr_mutex);
1154 (void) ddi_intr_block_enable(pcieb->pcieb_htable,
1155 pcieb->pcieb_intr_count);
1156 pcieb->pcieb_init_flags |= PCIEB_INIT_BLOCK;
1158 for (count = 0; count < pcieb->pcieb_intr_count; count++) {
1159 (void) ddi_intr_enable(pcieb->pcieb_htable[count]);
1162 pcieb->pcieb_init_flags |= PCIEB_INIT_ENABLE;
1165 pcieb->pcieb_intr_type = intr_type;
1176 mutex_exit(&pcieb->pcieb_intr_mutex);
1181 pcieb->pcieb_isr_tab[hp_msi_off] |= PCIEB_INTR_SRC_HP;
1184 pcieb->pcieb_isr_tab[hp_msi_off] |= PCIEB_INTR_SRC_PME;
1188 pcieb->pcieb_isr_tab[0] |= PCIEB_INTR_SRC_HP;
1208 mutex_exit(&pcieb->pcieb_intr_mutex);
1211 pcieb->pcieb_isr_tab[aer_msi_off] |= PCIEB_INTR_SRC_AER;
1217 pcieb->pcieb_no_aer_msi = B_TRUE;
1221 mutex_exit(&pcieb->pcieb_intr_mutex);
1225 pcieb_intr_fini(pcieb);
1230 pcieb_intr_fini(pcieb_devstate_t *pcieb)
1233 int count = pcieb->pcieb_intr_count;
1234 int flags = pcieb->pcieb_init_flags;
1238 (void) ddi_intr_block_disable(pcieb->pcieb_htable, count);
1244 mutex_destroy(&pcieb->pcieb_intr_mutex);
1248 (void) ddi_intr_disable(pcieb->pcieb_htable[x]);
1251 (void) ddi_intr_remove_handler(pcieb->pcieb_htable[x]);
1254 (void) ddi_intr_free(pcieb->pcieb_htable[x]);
1261 kmem_free(pcieb->pcieb_htable, pcieb->pcieb_htable_size);
1265 pcieb->pcieb_init_flags &= flags;
1284 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state,
1288 *ibc = pcieb->pcieb_fm_ibc;
1325 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, inst);
1328 if (pcieb == NULL)
1331 mutex_enter(&pcieb->pcieb_mutex);
1332 rv = pcie_open(pcieb->pcieb_dip, devp, flags, otyp, credp);
1333 mutex_exit(&pcieb->pcieb_mutex);
1342 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, inst);
1345 if (pcieb == NULL)
1348 mutex_enter(&pcieb->pcieb_mutex);
1349 rv = pcie_close(pcieb->pcieb_dip, dev, flags, otyp, credp);
1350 mutex_exit(&pcieb->pcieb_mutex);
1360 pcieb_devstate_t *pcieb = ddi_get_soft_state(pcieb_state, inst);
1363 if (pcieb == NULL)
1367 rv = pcie_ioctl(pcieb->pcieb_dip, dev, cmd, arg, mode, credp, rvalp);
1481 * of pcieb's immediate child or secondary bus-id of the
1514 * of pcieb's immediate child or secondary bus-id of the
1532 * Power management related initialization specific to pcieb.
1730 pcieb_id_props(pcieb_devstate_t *pcieb)
1735 pcie_bus_t *bus_p = PCIE_DIP2BUS(pcieb->pcieb_dip);
1772 (void) ndi_prop_create_boolean(DDI_DEV_T_NONE, pcieb->pcieb_dip,
1775 (void) ddi_prop_update_int64(DDI_DEV_T_NONE, pcieb->pcieb_dip,