Lines Matching refs:pcic

343 static boolean_t pcic_load_cardbus(pcicdev_t *pcic, const pcic_socket_t *sockp);
344 static void pcic_unload_cardbus(pcicdev_t *pcic, const pcic_socket_t *sockp);
345 static uint32_t pcic_getcb(pcicdev_t *pcic, int reg);
346 static void pcic_putcb(pcicdev_t *pcic, int reg, uint32_t value);
349 static void pcic_enable_io_intr(pcicdev_t *pcic, int socket, int irq);
350 static void pcic_disable_io_intr(pcicdev_t *pcic, int socket);
357 static int pcic_exca_powerctl(pcicdev_t *pcic, int socket, int powerlevel);
358 static int pcic_cbus_powerctl(pcicdev_t *pcic, int socket);
628 pcicdev_t *pcic = anp->an_private; in pcic_quiesce() local
631 for (i = 0; i < pcic->pc_numsockets; i++) { in pcic_quiesce()
632 pcic_putb(pcic, i, PCIC_MANAGEMENT_INT, 0); in pcic_quiesce()
633 pcic_putb(pcic, i, PCIC_CARD_DETECT, 0); in pcic_quiesce()
634 pcic_putb(pcic, i, PCIC_MAPPING_ENABLE, 0); in pcic_quiesce()
636 pcic_putb(pcic, i, PCIC_INTERRUPT, 0); in pcic_quiesce()
638 pcic_putb(pcic, i, PCIC_POWER_CONTROL, 0); in pcic_quiesce()
639 pcic_putcb(pcic, CB_CONTROL, 0); in pcic_quiesce()
658 pcicdev_t *pcic; in pcic_attach() local
678 pcic = anp->an_private; in pcic_attach()
683 if (pcic != NULL && pcic->pc_flags & PCF_SUSPENDED) { in pcic_attach()
684 mutex_enter(&pcic->pc_lock); in pcic_attach()
686 pcic_setup_adapter(pcic); in pcic_attach()
687 pcic->pc_flags &= ~PCF_SUSPENDED; in pcic_attach()
688 mutex_exit(&pcic->pc_lock); in pcic_attach()
691 pcic_do_resume(pcic); in pcic_attach()
720 pcic = kmem_zalloc(sizeof (pcicdev_t), KM_SLEEP); in pcic_attach()
722 pcic->dip = dip; in pcic_attach()
725 pcic_nexus->an_private = pcic; in pcic_attach()
726 pcic->pc_numpower = sizeof (pcic_power)/sizeof (pcic_power[0]); in pcic_attach()
727 pcic->pc_power = pcic_power; in pcic_attach()
740 pcic->pc_irq = ddi_getprop(DDI_DEV_T_ANY, dip, DDI_PROP_CANSLEEP, in pcic_attach()
743 if (pcic->pc_irq == -1) { in pcic_attach()
752 pcic->pc_irq = pri; in pcic_attach()
754 pcic->pc_irq = LOCK_LEVEL + 1; in pcic_attach()
758 pcic_nexus->an_ipl = pcic->pc_irq; in pcic_attach()
777 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
786 pcic->pc_flags = PCF_PCIBUS; in pcic_attach()
791 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
797 if ((pcic->bus_speed = ddi_getprop(DDI_DEV_T_ANY, ddi_get_parent(dip), in pcic_attach()
800 if (pcic->pc_flags & PCF_PCIBUS) in pcic_attach()
801 pcic->bus_speed = PCIC_PCI_DEF_SYSCLK; in pcic_attach()
803 pcic->bus_speed = PCIC_ISA_DEF_SYSCLK; in pcic_attach()
808 if (pcic->bus_speed > 1000000) in pcic_attach()
809 pcic->bus_speed /= 1000000; in pcic_attach()
812 pcic->pc_io_type = PCIC_IO_TYPE_82365SL; /* default mode */ in pcic_attach()
819 bus_type, pcic->bus_speed); in pcic_attach()
829 if (pcic->pc_flags & PCF_PCIBUS) { in pcic_attach()
832 pcic->pc_base = 0x1000000; in pcic_attach()
833 pcic->pc_bound = (uint32_t)~0; in pcic_attach()
834 pcic->pc_iobase = 0x1000; in pcic_attach()
835 pcic->pc_iobound = 0xefff; in pcic_attach()
837 pcic->pc_base = 0x0; in pcic_attach()
838 pcic->pc_bound = (uint32_t)~0; in pcic_attach()
839 pcic->pc_iobase = 0x00000; in pcic_attach()
840 pcic->pc_iobound = 0xffff; in pcic_attach()
849 (caddr_t *)&pcic->cfgaddr, in pcic_attach()
853 &pcic->cfg_handle) != in pcic_attach()
860 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
876 pcic->pc_flags |= PCF_CARDBUS; in pcic_attach()
877 pcic->pc_io_type = PCIC_IO_TYPE_YENTA; in pcic_attach()
890 (void *)pcic->cfgaddr, in pcic_attach()
891 (void *)pcic->cfg_handle, nr); in pcic_attach()
905 (caddr_t *)&pcic->ioaddr, in pcic_attach()
908 &attr, &pcic->handle) != in pcic_attach()
913 ddi_regs_map_free(&pcic->cfg_handle); in pcic_attach()
914 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
927 if (pcic_find_pci_type(pcic) != DDI_SUCCESS) { in pcic_attach()
928 ddi_regs_map_free(&pcic->handle); in pcic_attach()
929 ddi_regs_map_free(&pcic->cfg_handle); in pcic_attach()
930 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
956 (caddr_t *)&pcic->ioaddr, in pcic_attach()
960 &pcic->handle) != DDI_SUCCESS) { in pcic_attach()
964 ddi_regs_map_free(&pcic->cfg_handle); in pcic_attach()
965 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
978 if (pcic_find_pci_type(pcic) != DDI_SUCCESS) { in pcic_attach()
979 ddi_regs_map_free(&pcic->handle); in pcic_attach()
980 ddi_regs_map_free(&pcic->cfg_handle); in pcic_attach()
981 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
995 switch (pcic->pc_type) { in pcic_attach()
997 ddi_regs_map_free(&pcic->handle); in pcic_attach()
1001 (caddr_t *)&pcic->ioaddr, in pcic_attach()
1005 &pcic->handle) != DDI_SUCCESS) { in pcic_attach()
1010 ddi_regs_map_free(&pcic->cfg_handle); in pcic_attach()
1011 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
1029 pcic->mem_reg_num = PCIC_ISA_MEM_REG_NUM; in pcic_attach()
1030 pcic->io_reg_num = PCIC_ISA_IO_REG_NUM; in pcic_attach()
1033 (caddr_t *)&pcic->ioaddr, in pcic_attach()
1037 &pcic->handle) != DDI_SUCCESS) { in pcic_attach()
1042 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
1047 pcic->pc_base = 0xd0000; in pcic_attach()
1048 pcic->pc_bound = (uint32_t)~0; in pcic_attach()
1049 pcic->pc_iobase = 0x1000; in pcic_attach()
1050 pcic->pc_iobound = 0xefff; in pcic_attach()
1056 pcic->pc_flags, pcic->pc_type); in pcic_attach()
1064 if (pcic->pc_flags & PCF_PCIBUS) { in pcic_attach()
1069 iline = cardbus_validate_iline(dip, pcic->cfg_handle); in pcic_attach()
1073 switch (pcic->pc_type) { in pcic_attach()
1076 cfg = ddi_get8(pcic->cfg_handle, in pcic_attach()
1077 pcic->cfgaddr + PCIC_82092_PCICON); in pcic_attach()
1080 pcic->pc_numsockets = 4; in pcic_attach()
1081 pcic->pc_type = PCIC_INTEL_i82092; in pcic_attach()
1083 pcic->pc_intr_mode = in pcic_attach()
1086 pcic->pc_intr_mode = PCIC_INTR_MODE_ISA; in pcic_attach()
1091 ddi_get_instance(pcic->dip), cfg); in pcic_attach()
1092 pcic->pc_numsockets = 0; in pcic_attach()
1097 pcic->pc_intr_mode = PCIC_INTR_MODE_PCI_1; in pcic_attach()
1103 pcic->pc_intr_mode = PCIC_INTR_MODE_ISA; in pcic_attach()
1111 pcic->pc_intr_mode = PCIC_INTR_MODE_PCI_1; in pcic_attach()
1113 pcic->pc_numsockets = 2; in pcic_attach()
1114 pcic->pc_flags |= PCF_IO_REMAP; in pcic_attach()
1118 pcic->pc_flags &= ~PCF_CARDBUS; in pcic_attach()
1121 pcic->pc_flags |= PCF_IO_REMAP; in pcic_attach()
1124 pcic->pc_flags |= PCF_DMA | PCF_ZV; in pcic_attach()
1126 pcic->pc_flags |= (PCF_VPPX|PCF_33VCAP); in pcic_attach()
1127 pcic->pc_flags |= pcic_use_cbpwrctl; in pcic_attach()
1129 pcic->pc_numsockets = 1; /* one per function */ in pcic_attach()
1132 pcic->pc_intr_mode = PCIC_INTR_MODE_PCI_1; in pcic_attach()
1134 cfg = ddi_get8(pcic->cfg_handle, in pcic_attach()
1135 (pcic->cfgaddr + PCIC_BRIDGE_CTL_REG)); in pcic_attach()
1137 ddi_put8(pcic->cfg_handle, (pcic->cfgaddr + in pcic_attach()
1141 pcic->pc_intr_mode = PCIC_INTR_MODE_ISA; in pcic_attach()
1142 pcic->pc_io_type = PCIC_IOTYPE_YENTA; in pcic_attach()
1158 pcic_putb(pcic, 0, PCIC_CHIP_INFO, 0); in pcic_attach()
1159 value = pcic_getb(pcic, 0, PCIC_CHIP_INFO); in pcic_attach()
1162 pcic->pc_type = PCIC_I82365SL; in pcic_attach()
1163 pcic->pc_chipname = PCIC_TYPE_I82365SL; in pcic_attach()
1166 if (pcic_ci_funcs[value](pcic)) in pcic_attach()
1171 switch (pcic->pc_type) { in pcic_attach()
1173 pcic->pc_flags |= PCF_DMA; in pcic_attach()
1184 pcic_putb(pcic, i, PCIC_MAPPING_ENABLE, 0); in pcic_attach()
1185 value = pcic_getb(pcic, i, PCIC_MAPPING_ENABLE); in pcic_attach()
1200 value = pcic_getb(pcic, i, PCIC_CHIP_REVISION) & in pcic_attach()
1206 pcic_putb(pcic, i, PCIC_SYSMEM_0_STARTLOW, 0xaa); in pcic_attach()
1207 pcic_putb(pcic, i, PCIC_SYSMEM_1_STARTLOW, 0x55); in pcic_attach()
1208 value = pcic_getb(pcic, i, PCIC_SYSMEM_0_STARTLOW); in pcic_attach()
1210 j = pcic_getb(pcic, i, PCIC_SYSMEM_1_STARTLOW); in pcic_attach()
1222 j = pcic->pc_numsockets++; in pcic_attach()
1223 pcic->pc_sockets[j].pcs_flags = 0; in pcic_attach()
1224 pcic->pc_sockets[j].pcs_io = pcic->ioaddr; in pcic_attach()
1225 pcic->pc_sockets[j].pcs_socket = i; in pcic_attach()
1228 value = pcic_getb(pcic, i, PCIC_INTERRUPT); in pcic_attach()
1229 pcic_putb(pcic, i, PCIC_INTERRUPT, in pcic_attach()
1236 pcic->pc_numsockets); in pcic_attach()
1238 if (pcic->pc_numsockets == 0) { in pcic_attach()
1239 ddi_regs_map_free(&pcic->handle); in pcic_attach()
1240 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
1252 if (pcic->pc_numsockets > 2) { in pcic_attach()
1253 int count = pcic->pc_numsockets / 4; in pcic_attach()
1256 pcic_putb(pcic, i, in pcic_attach()
1260 pcic_putb(pcic, i + 2, in pcic_attach()
1264 value = pcic_getb(pcic, i, in pcic_attach()
1268 j = pcic_getb(pcic, i + 2, in pcic_attach()
1271 pcic->pc_numsockets -= 2; in pcic_attach()
1281 pcic->pc_flags |= PCF_MULT_IRQ; in pcic_attach()
1293 typename = pcic->pc_chipname; in pcic_attach()
1320 (pcic->pc_io_type == PCIC_IO_TYPE_82365SL ? in pcic_attach()
1325 (void *)pcic->ioaddr); in pcic_attach()
1339 cv_init(&pcic->pm_cv, NULL, CV_DRIVER, NULL); in pcic_attach()
1343 pcic->pc_flags |= PCF_AUDIO; in pcic_attach()
1347 pcic->pc_flags &= ~PCF_CARDBUS; in pcic_attach()
1356 pcic->pc_sockets[i].pcs_smi = 0; in pcic_attach()
1357 pcic->pc_sockets[i].pcs_debounce_id = 0; in pcic_attach()
1358 pcic->pc_sockets[i].pcs_pcic = pcic; in pcic_attach()
1360 pcic->pc_lastreg = -1; /* just to make sure we are in sync */ in pcic_attach()
1365 switch (pcic->pc_intr_mode) { in pcic_attach()
1386 for (i = 0; i < pcic->pc_numsockets; i++) in pcic_attach()
1387 pcic->pc_sockets[i].pcs_smi = smi; in pcic_attach()
1389 if (pcic->pc_flags & PCF_MULT_IRQ) { in pcic_attach()
1390 for (i = 2; i < pcic->pc_numsockets; i++) { in pcic_attach()
1405 pcic->pc_sockets[i].pcs_smi = smi; in pcic_attach()
1408 pcic->pc_intr_htblp = kmem_alloc(pcic->pc_numsockets * in pcic_attach()
1410 for (i = 0, irqlevel = -1; i < pcic->pc_numsockets; i++) { in pcic_attach()
1414 if (irqlevel == pcic->pc_sockets[i].pcs_smi) in pcic_attach()
1417 irqlevel = pcic->pc_sockets[i].pcs_smi; in pcic_attach()
1430 if (ddi_intr_alloc(dip, &pcic->pc_intr_htblp[i], in pcic_attach()
1455 ispecp->intrspec_pri = pcic->pc_irq; in pcic_attach()
1458 pcic->pc_pri = (ddi_iblock_cookie_t) in pcic_attach()
1459 (uintptr_t)pcic->pc_irq; in pcic_attach()
1460 pcic->pc_dcookie.idev_priority = in pcic_attach()
1461 (uintptr_t)pcic->pc_pri; in pcic_attach()
1462 pcic->pc_dcookie.idev_vector = (ushort_t)irqlevel; in pcic_attach()
1464 (void) ddi_intr_set_pri(pcic->pc_intr_htblp[i], in pcic_attach()
1465 pcic->pc_irq); in pcic_attach()
1468 mutex_init(&pcic->intr_lock, NULL, MUTEX_DRIVER, in pcic_attach()
1469 DDI_INTR_PRI(pcic->pc_irq)); in pcic_attach()
1470 mutex_init(&pcic->pc_lock, NULL, MUTEX_DRIVER, in pcic_attach()
1474 if (ddi_intr_add_handler(pcic->pc_intr_htblp[i], in pcic_attach()
1475 pcic_intr, (caddr_t)pcic, NULL)) { in pcic_attach()
1482 if (ddi_intr_enable(pcic->pc_intr_htblp[i])) { in pcic_attach()
1487 pcic->pc_intr_htblp[j]); in pcic_attach()
1499 pcic->pc_pci_intr_hdlp = kmem_alloc(sizeof (ddi_intr_handle_t), in pcic_attach()
1501 if (ddi_intr_alloc(dip, pcic->pc_pci_intr_hdlp, in pcic_attach()
1506 if (ddi_intr_get_pri(pcic->pc_pci_intr_hdlp[0], in pcic_attach()
1508 (void) ddi_intr_free(pcic->pc_pci_intr_hdlp[0]); in pcic_attach()
1512 pcic->pc_pri = (void *)(uintptr_t)pri; in pcic_attach()
1513 mutex_init(&pcic->intr_lock, NULL, MUTEX_DRIVER, pcic->pc_pri); in pcic_attach()
1514 mutex_init(&pcic->pc_lock, NULL, MUTEX_DRIVER, NULL); in pcic_attach()
1516 if (ddi_intr_add_handler(pcic->pc_pci_intr_hdlp[0], in pcic_attach()
1517 pcic_intr, (caddr_t)pcic, NULL)) in pcic_attach()
1520 if (ddi_intr_enable(pcic->pc_pci_intr_hdlp[0])) { in pcic_attach()
1522 pcic->pc_pci_intr_hdlp[0]); in pcic_attach()
1527 pcic->pc_dcookie.idev_priority = (ushort_t)pri; in pcic_attach()
1530 for (i = 0; i < pcic->pc_numsockets; i++) in pcic_attach()
1531 pcic->pc_sockets[i].pcs_smi = 0xF; /* any valid */ in pcic_attach()
1538 mutex_enter(&pcic->pc_lock); in pcic_attach()
1540 pcic->pc_flags |= PCF_ATTACHED; in pcic_attach()
1541 pcic_setup_adapter(pcic); in pcic_attach()
1543 for (j = 0; j < pcic->pc_numsockets; j++) in pcic_attach()
1545 &pcic->pc_sockets[j].pcs_cd_softint_hdl, in pcic_attach()
1547 (caddr_t)&pcic->pc_sockets[j]) != DDI_SUCCESS) in pcic_attach()
1553 pcic->pc_numsockets); in pcic_attach()
1556 pcic_nexus->an_iblock = &pcic->pc_pri; in pcic_attach()
1557 pcic_nexus->an_idev = &pcic->pc_dcookie; in pcic_attach()
1559 mutex_exit(&pcic->pc_lock); in pcic_attach()
1574 if (pcic->pc_flags & PCF_CARDBUS) in pcic_attach()
1602 for (j = 0; j < pcic->pc_numsockets; j++) { in pcic_attach()
1603 pcic->pc_sockets[j].pcs_debounce_id = in pcic_attach()
1604 pcic_add_debqueue(&pcic->pc_sockets[j], in pcic_attach()
1611 mutex_destroy(&pcic->intr_lock); in pcic_attach()
1612 mutex_destroy(&pcic->pc_lock); in pcic_attach()
1614 (void) ddi_intr_free(pcic->pc_intr_htblp[j]); in pcic_attach()
1616 (void) pcmcia_return_intr(dip, pcic->pc_sockets[i].pcs_smi); in pcic_attach()
1617 ddi_regs_map_free(&pcic->handle); in pcic_attach()
1618 if (pcic->pc_flags & PCF_PCIBUS) in pcic_attach()
1619 ddi_regs_map_free(&pcic->cfg_handle); in pcic_attach()
1620 kmem_free(pcic->pc_intr_htblp, pcic->pc_numsockets * in pcic_attach()
1622 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
1626 mutex_destroy(&pcic->intr_lock); in pcic_attach()
1627 mutex_destroy(&pcic->pc_lock); in pcic_attach()
1628 (void) ddi_intr_free(pcic->pc_pci_intr_hdlp[0]); in pcic_attach()
1630 ddi_regs_map_free(&pcic->handle); in pcic_attach()
1631 if (pcic->pc_flags & PCF_PCIBUS) in pcic_attach()
1632 ddi_regs_map_free(&pcic->cfg_handle); in pcic_attach()
1633 kmem_free(pcic->pc_pci_intr_hdlp, sizeof (ddi_intr_handle_t)); in pcic_attach()
1634 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_attach()
1646 pcicdev_t *pcic = anp->an_private; in pcic_detach() local
1652 if (pcic->pc_callback != NULL) in pcic_detach()
1656 if (pcic->pc_pmtimer) in pcic_detach()
1657 (void) untimeout(pcic->pc_pmtimer); in pcic_detach()
1660 for (i = 0; i < pcic->pc_numsockets; i++) { in pcic_detach()
1661 if (pcic->pc_sockets[i].pcs_debounce_id) in pcic_detach()
1663 pcic->pc_sockets[i].pcs_debounce_id); in pcic_detach()
1664 pcic->pc_sockets[i].pcs_debounce_id = 0; in pcic_detach()
1666 pcic_putb(pcic, i, PCIC_MANAGEMENT_INT, 0); in pcic_detach()
1667 pcic_putb(pcic, i, PCIC_CARD_DETECT, 0); in pcic_detach()
1668 pcic_putb(pcic, i, PCIC_MAPPING_ENABLE, 0); in pcic_detach()
1670 pcic_putb(pcic, i, PCIC_INTERRUPT, 0); in pcic_detach()
1672 (void) ddi_intr_disable(pcic->pc_pci_intr_hdlp[0]); in pcic_detach()
1673 (void) ddi_intr_remove_handler(pcic->pc_pci_intr_hdlp[0]); in pcic_detach()
1674 (void) ddi_intr_free(pcic->pc_pci_intr_hdlp[0]); in pcic_detach()
1675 kmem_free(pcic->pc_pci_intr_hdlp, sizeof (ddi_intr_handle_t)); in pcic_detach()
1676 pcic->pc_flags = 0; in pcic_detach()
1677 mutex_destroy(&pcic->pc_lock); in pcic_detach()
1678 mutex_destroy(&pcic->intr_lock); in pcic_detach()
1679 cv_destroy(&pcic->pm_cv); in pcic_detach()
1680 if (pcic->pc_flags & PCF_PCIBUS) in pcic_detach()
1681 ddi_regs_map_free(&pcic->cfg_handle); in pcic_detach()
1682 if (pcic->handle) in pcic_detach()
1683 ddi_regs_map_free(&pcic->handle); in pcic_detach()
1684 kmem_free(pcic, sizeof (pcicdev_t)); in pcic_detach()
1695 mutex_enter(&pcic->pc_lock); in pcic_detach()
1697 if (pcic->pc_flags & PCF_CARDBUS) { in pcic_detach()
1698 for (i = 0; i < pcic->pc_numsockets; i++) { in pcic_detach()
1699 if ((pcic->pc_sockets[i].pcs_flags & in pcic_detach()
1704 pcic->pc_sockets[i].pcs_socket); in pcic_detach()
1712 for (i = 0; i < pcic->pc_numsockets; i++) { in pcic_detach()
1713 if (pcic->pc_sockets[i].pcs_debounce_id) in pcic_detach()
1715 pcic->pc_sockets[i].pcs_debounce_id); in pcic_detach()
1716 pcic->pc_sockets[i].pcs_debounce_id = 0; in pcic_detach()
1718 pcic_putb(pcic, i, PCIC_MANAGEMENT_INT, 0); in pcic_detach()
1719 pcic_putb(pcic, i, PCIC_CARD_DETECT, 0); in pcic_detach()
1720 pcic_putb(pcic, i, PCIC_MAPPING_ENABLE, 0); in pcic_detach()
1722 pcic_putb(pcic, i, PCIC_INTERRUPT, 0); in pcic_detach()
1723 pcic_putb(pcic, i, PCIC_POWER_CONTROL, 0); in pcic_detach()
1724 if (pcic->pc_flags & PCF_CBPWRCTL) in pcic_detach()
1725 pcic_putcb(pcic, CB_CONTROL, 0); in pcic_detach()
1727 if (pcic->pc_sockets[i].pcs_flags & PCS_CARD_PRESENT) { in pcic_detach()
1728 pcic->pc_sockets[i].pcs_flags = PCS_STARTING; in pcic_detach()
1736 pcic->pc_callback) { in pcic_detach()
1737 PC_CALLBACK(pcic->dip, pcic->pc_cb_arg, in pcic_detach()
1739 pcic->pc_sockets[i].pcs_socket); in pcic_detach()
1744 pcic->pc_flags |= PCF_SUSPENDED; in pcic_detach()
1745 mutex_exit(&pcic->pc_lock); in pcic_detach()
1764 pcic_setup_adapter(pcicdev_t *pcic) in pcic_setup_adapter() argument
1776 if (pcic->pc_flags & PCF_PCIBUS) { in pcic_setup_adapter()
1781 pcic_iomem_pci_ctl(pcic->cfg_handle, pcic->cfgaddr, flags); in pcic_setup_adapter()
1784 for (i = 0; i < pcic->pc_numsockets; i++) { in pcic_setup_adapter()
1785 pcic->pc_sockets[i].pcs_flags = 0; in pcic_setup_adapter()
1787 value = pcic_getb(pcic, i, in pcic_setup_adapter()
1790 pcic->pc_sockets[i].pcs_flags |= PCS_SOCKET_IO; in pcic_setup_adapter()
1793 pcic_putb(pcic, i, PCIC_MAPPING_ENABLE, 0); in pcic_setup_adapter()
1795 switch (pcic->pc_type) { in pcic_setup_adapter()
1811 pcic_putb(pcic, 0, PCIC_MISC_CTL_2, PCIC_LED_ENABLE); in pcic_setup_adapter()
1820 switch (pcic->pc_intr_mode) { in pcic_setup_adapter()
1822 clext_reg_write(pcic, i, PCIC_CLEXT_MISC_CTL_3, in pcic_setup_adapter()
1823 ((clext_reg_read(pcic, i, in pcic_setup_adapter()
1827 clext_reg_write(pcic, i, PCIC_CLEXT_EXT_CTL_1, in pcic_setup_adapter()
1831 pcic_putb(pcic, i, PCIC_MISC_CTL_2, cfg); in pcic_setup_adapter()
1843 switch (pcic->pc_intr_mode) { in pcic_setup_adapter()
1845 clext_reg_write(pcic, i, PCIC_CLEXT_EXT_CTL_1, in pcic_setup_adapter()
1853 if (pcic->bus_speed > PCIC_PCI_25MHZ && i == 0) { in pcic_setup_adapter()
1856 pcic_putb(pcic, i, PCIC_MISC_CTL_2, cfg); in pcic_setup_adapter()
1861 if (pcic->bus_speed < PCIC_SYSCLK_33MHZ) in pcic_setup_adapter()
1863 ddi_put8(pcic->cfg_handle, pcic->cfgaddr + in pcic_setup_adapter()
1870 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
1871 pcic->cfgaddr + PCIC_DEVCTL_REG); in pcic_setup_adapter()
1873 switch (pcic->pc_intr_mode) { in pcic_setup_adapter()
1885 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
1886 pcic->cfgaddr + PCIC_DEVCTL_REG, in pcic_setup_adapter()
1889 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
1890 pcic->cfgaddr + PCIC_CRDCTL_REG); in pcic_setup_adapter()
1893 switch (pcic->pc_intr_mode) { in pcic_setup_adapter()
1898 pcic->pc_flags |= PCF_USE_SMI; in pcic_setup_adapter()
1908 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
1909 pcic->cfgaddr + PCIC_CRDCTL_REG, in pcic_setup_adapter()
1914 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
1915 pcic->cfgaddr + PCIC_DEVCTL_REG); in pcic_setup_adapter()
1924 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
1925 pcic->cfgaddr + PCIC_DEVCTL_REG, cfg); in pcic_setup_adapter()
1927 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
1928 pcic->cfgaddr + PCIC_DIAG_REG); in pcic_setup_adapter()
1929 if (pcic->pc_type == PCIC_TI_PCI1225) { in pcic_setup_adapter()
1934 pcic->pc_flags |= PCF_USE_SMI; in pcic_setup_adapter()
1942 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
1943 pcic->cfgaddr + PCIC_DIAG_REG, cfg); in pcic_setup_adapter()
1948 if (pcic->pc_intr_mode == PCIC_INTR_MODE_ISA) { in pcic_setup_adapter()
1950 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
1951 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG); in pcic_setup_adapter()
1953 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
1954 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG, in pcic_setup_adapter()
1958 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
1959 pcic->cfgaddr + PCIC_DEVCTL_REG); in pcic_setup_adapter()
1962 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
1963 pcic->cfgaddr + PCIC_DEVCTL_REG, in pcic_setup_adapter()
1969 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
1970 pcic->cfgaddr + PCIC_DIAG_REG); in pcic_setup_adapter()
1972 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
1973 pcic->cfgaddr + PCIC_DIAG_REG, cfg); in pcic_setup_adapter()
1985 if (ddi_getlongprop(DDI_DEV_T_ANY, pcic->dip, in pcic_setup_adapter()
2012 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
2013 pcic->cfgaddr + PCIC_DEVCTL_REG); in pcic_setup_adapter()
2015 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
2016 pcic->cfgaddr + PCIC_DEVCTL_REG, in pcic_setup_adapter()
2020 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
2021 (pcic->cfgaddr + PCIC_SYSCTL_REG + 3)); in pcic_setup_adapter()
2023 ddi_put8(pcic->cfg_handle, (pcic->cfgaddr + in pcic_setup_adapter()
2029 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
2030 pcic->cfgaddr + PCIC_DIAG_REG); in pcic_setup_adapter()
2032 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
2033 pcic->cfgaddr + PCIC_DIAG_REG, cfg); in pcic_setup_adapter()
2038 cfg = ddi_get8(pcic->cfg_handle, pcic->cfgaddr + in pcic_setup_adapter()
2044 ddi_put8(pcic->cfg_handle, pcic->cfgaddr + in pcic_setup_adapter()
2046 cfg = ddi_get8(pcic->cfg_handle, pcic->cfgaddr + in pcic_setup_adapter()
2048 switch (pcic->pc_intr_mode) { in pcic_setup_adapter()
2051 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
2052 pcic->cfgaddr + in pcic_setup_adapter()
2055 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
2056 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG); in pcic_setup_adapter()
2058 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
2059 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG, in pcic_setup_adapter()
2066 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
2067 pcic->cfgaddr + in pcic_setup_adapter()
2073 cfg32 = ddi_get32(pcic->cfg_handle, in pcic_setup_adapter()
2074 (uint32_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2076 switch (pcic->pc_intr_mode) { in pcic_setup_adapter()
2080 ddi_put32(pcic->cfg_handle, in pcic_setup_adapter()
2081 (uint32_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2084 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
2085 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG); in pcic_setup_adapter()
2087 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
2088 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG, in pcic_setup_adapter()
2094 ddi_put32(pcic->cfg_handle, in pcic_setup_adapter()
2095 (uint32_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2102 if (pcic->pc_intr_mode == PCIC_INTR_MODE_ISA) { in pcic_setup_adapter()
2103 cfg16 = ddi_get16(pcic->cfg_handle, in pcic_setup_adapter()
2104 (uint16_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2108 ddi_put16(pcic->cfg_handle, in pcic_setup_adapter()
2109 (uint16_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2113 cfg16 = ddi_get16(pcic->cfg_handle, in pcic_setup_adapter()
2114 (uint16_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2117 ddi_put16(pcic->cfg_handle, in pcic_setup_adapter()
2118 (uint16_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2122 cfg = ddi_get8(pcic->cfg_handle, in pcic_setup_adapter()
2123 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG); in pcic_setup_adapter()
2125 ddi_put8(pcic->cfg_handle, in pcic_setup_adapter()
2126 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG, in pcic_setup_adapter()
2140 if ((pcic->pc_type >> 16) == PCIC_TI_VENDORID && in pcic_setup_adapter()
2141 pcic->pc_intr_mode == PCIC_INTR_MODE_PCI_1) { in pcic_setup_adapter()
2142 value = ddi_get32(pcic->cfg_handle, in pcic_setup_adapter()
2143 (uint32_t *)(pcic->cfgaddr + PCIC_MFROUTE_REG)); in pcic_setup_adapter()
2145 ddi_put32(pcic->cfg_handle, (uint32_t *)(pcic->cfgaddr + in pcic_setup_adapter()
2150 switch (pcic->pc_type) { in pcic_setup_adapter()
2156 pcic_putb(pcic, i, PCIC_MANAGEMENT_INT, in pcic_setup_adapter()
2160 if (pcic->pc_intr_mode == in pcic_setup_adapter()
2162 pcic_putb(pcic, i, PCIC_MANAGEMENT_INT, in pcic_setup_adapter()
2166 pcic_putb(pcic, i, PCIC_MANAGEMENT_INT, in pcic_setup_adapter()
2168 (pcic->pc_sockets[i].pcs_smi << 4)); in pcic_setup_adapter()
2173 pcic->pc_flags |= PCF_INTRENAB; in pcic_setup_adapter()
2176 pcic_putb(pcic, i, PCIC_INTERRUPT, PCIC_RESET); in pcic_setup_adapter()
2178 pcic_putb(pcic, i, PCIC_POWER_CONTROL, 0); in pcic_setup_adapter()
2181 switch (pcic->pc_type) { in pcic_setup_adapter()
2183 pcic_putb(pcic, i, PCIC_VG_CONTROL, in pcic_setup_adapter()
2185 pcic->pc_flags |= PCF_DEBOUNCE; in pcic_setup_adapter()
2188 pcic_putb(pcic, i, PCIC_GLOBAL_CONTROL, in pcic_setup_adapter()
2191 value = pcic_getb(pcic, i, PCIC_CARD_STATUS_CHANGE); in pcic_setup_adapter()
2192 pcic_putb(pcic, i, PCIC_CARD_STATUS_CHANGE, value); in pcic_setup_adapter()
2196 pcic_82092_smiirq_ctl(pcic, i, PCIC_82092_CTL_SMI, in pcic_setup_adapter()
2200 if (pcic->bus_speed >= PCIC_PCI_DEF_SYSCLK && i == 0) { in pcic_setup_adapter()
2201 value = pcic_getb(pcic, i, PCIC_MISC_CTL_2); in pcic_setup_adapter()
2202 pcic_putb(pcic, i, PCIC_MISC_CTL_2, in pcic_setup_adapter()
2212 i, value, pcic->pc_sockets[i].pcs_flags, in pcic_setup_adapter()
2213 (pcic->pc_sockets[i].pcs_flags & in pcic_setup_adapter()
2234 pcicdev_t *pcic = (pcicdev_t *)arg1; in pcic_intr() local
2240 pcic_err(pcic->dip, 0xf, in pcic_intr()
2243 pcic->pc_flags, PCF_ATTACHED, pcic->pc_numsockets); in pcic_intr()
2246 if (!(pcic->pc_flags & PCF_ATTACHED)) in pcic_intr()
2249 mutex_enter(&pcic->intr_lock); in pcic_intr()
2251 if (pcic->pc_flags & PCF_SUSPENDED) { in pcic_intr()
2252 mutex_exit(&pcic->intr_lock); in pcic_intr()
2269 io_ints = (1 << pcic->pc_numsockets) - 1; in pcic_intr()
2271 for (i = 0; i < pcic->pc_numsockets; i++) { in pcic_intr()
2276 sockp = &pcic->pc_sockets[i]; in pcic_intr()
2289 if (pcic->pc_io_type == PCIC_IO_TYPE_YENTA) in pcic_intr()
2290 value_cb = pcic_getcb(pcic, CB_STATUS_EVENT); in pcic_intr()
2292 value = pcic_change(pcic, i); in pcic_intr()
2295 int x = pcic->pc_cb_arg; in pcic_intr()
2300 pcic_err(pcic->dip, 0x9, in pcic_intr()
2304 pcic_getcb(pcic, CB_STATUS_EVENT)); in pcic_intr()
2311 status = pcic_getb(pcic, i, PCIC_INTERFACE_STATUS); in pcic_intr()
2315 pcic_putcb(pcic, CB_STATUS_EVENT, value_cb); in pcic_intr()
2318 pcic_putb(pcic, i, PCIC_CARD_STATUS_CHANGE, in pcic_intr()
2321 if (pcic->pc_callback == NULL) { in pcic_intr()
2345 irq = pcic_getb(pcic, sockp->pcs_socket, in pcic_intr()
2348 pcic_putb(pcic, sockp->pcs_socket, in pcic_intr()
2351 pcic_putcb(pcic, CB_STATUS_MASK, 0x0); in pcic_intr()
2373 PC_CALLBACK(pcic->dip, x, PCE_CARD_READY, i); in pcic_intr()
2381 PC_CALLBACK(pcic->dip, x, in pcic_intr()
2394 PC_CALLBACK(pcic->dip, x, in pcic_intr()
2402 PC_CALLBACK(pcic->dip, x, in pcic_intr()
2423 pcic_err(pcic->dip, 0xf, in pcic_intr()
2425 pcic->pc_intr_mode, pcic->pc_type, io_ints); in pcic_intr()
2429 if (pcic_do_io_intr(pcic, io_ints) == DDI_INTR_CLAIMED) in pcic_intr()
2433 mutex_exit(&pcic->intr_lock); in pcic_intr()
2436 pcic_err(pcic->dip, 0xf, in pcic_intr()
2450 pcic_change(pcicdev_t *pcic, int socket) in pcic_change() argument
2452 return (pcic_getb(pcic, socket, PCIC_CARD_STATUS_CHANGE)); in pcic_change()
2459 pcic_do_io_intr(pcicdev_t *pcic, uint32_t sockets) in pcic_do_io_intr() argument
2465 pcic_err(pcic->dip, 0xf, in pcic_do_io_intr()
2467 (void *)pcic, (int)sockets, (void *)pcic->irq_top); in pcic_do_io_intr()
2470 if (pcic->irq_top != NULL) { in pcic_do_io_intr()
2471 tmp = pcic->irq_current; in pcic_do_io_intr()
2474 int cur = pcic->irq_current->socket; in pcic_do_io_intr()
2476 &pcic->pc_sockets[cur]; in pcic_do_io_intr()
2479 pcic_err(pcic->dip, 0xf, in pcic_do_io_intr()
2482 pcic_err(pcic->dip, 0xf, in pcic_do_io_intr()
2485 sockets, cur, (void *)pcic->irq_current->intr, in pcic_do_io_intr()
2486 pcic->irq_current->arg1, in pcic_do_io_intr()
2487 pcic->irq_current->arg2); in pcic_do_io_intr()
2493 if ((*pcic->irq_current->intr)(pcic->irq_current->arg1, in pcic_do_io_intr()
2494 pcic->irq_current->arg2) == DDI_INTR_CLAIMED) in pcic_do_io_intr()
2498 pcic_err(pcic->dip, 0xf, in pcic_do_io_intr()
2505 if ((pcic->irq_current = pcic->irq_current->next) == NULL) in pcic_do_io_intr()
2506 pcic->irq_current = pcic->irq_top; in pcic_do_io_intr()
2508 } while (pcic->irq_current != tmp); in pcic_do_io_intr()
2510 if ((pcic->irq_current = pcic->irq_current->next) == NULL) in pcic_do_io_intr()
2511 pcic->irq_current = pcic->irq_top; in pcic_do_io_intr()
2518 pcic_err(pcic->dip, 0xf, in pcic_do_io_intr()
2537 pcicdev_t *pcic = anp->an_private; in pcic_inquire_adapter() local
2539 config->NumSockets = pcic->pc_numsockets; in pcic_inquire_adapter()
2540 config->NumWindows = pcic->pc_numsockets * PCIC_NUMWINSOCK; in pcic_inquire_adapter()
2545 config->NumPower = pcic->pc_numpower; in pcic_inquire_adapter()
2546 config->power_entry = pcic->pc_power; /* until we resolve this */ in pcic_inquire_adapter()
2555 switch (pcic->pc_intr_mode) { in pcic_inquire_adapter()
2575 pcicdev_t *pcic = anp->an_private; in pcic_callback() local
2578 pcic->pc_callback = handler; in pcic_callback()
2579 pcic->pc_cb_arg = arg; in pcic_callback()
2580 pcic->pc_flags |= PCF_CALLBACK; in pcic_callback()
2582 pcic->pc_callback = NULL; in pcic_callback()
2583 pcic->pc_cb_arg = 0; in pcic_callback()
2584 pcic->pc_flags &= ~PCF_CALLBACK; in pcic_callback()
2601 pcic_calc_speed(pcicdev_t *pcic, uint32_t speed) in pcic_calc_speed() argument
2606 switch (pcic->pc_type) { in pcic_calc_speed()
2680 pcic_set_cdtimers(pcicdev_t *pcic, int socket, uint32_t speed, int tset) in pcic_set_cdtimers() argument
2690 clk_pulse = mhztons(pcic->bus_speed); in pcic_set_cdtimers()
2710 pcic_err(pcic->dip, 8, "pcic_set_cdtimers(%d, Timer Set %d)\n" in pcic_set_cdtimers()
2716 pcic_putb(pcic, socket, PCIC_TIME_COMMAND_0 + offset, cmd); in pcic_set_cdtimers()
2717 pcic_putb(pcic, socket, PCIC_TIME_SETUP_0 + offset, set); in pcic_set_cdtimers()
2718 pcic_putb(pcic, socket, PCIC_TIME_RECOVER_0 + offset, rec); in pcic_set_cdtimers()
2734 pcicdev_t *pcic = anp->an_private; in pcic_set_window() local
2737 pcic_socket_t *sockp = &pcic->pc_sockets[window->socket]; in pcic_set_window()
2797 mutex_enter(&pcic->pc_lock); /* protect the registers */ in pcic_set_window()
2842 req.ra_boundbase = pcic->pc_base; in pcic_set_window()
2843 req.ra_boundlen = pcic->pc_bound; in pcic_set_window()
2864 mutex_exit(&pcic->pc_lock); in pcic_set_window()
2880 which = pcmcia_map_reg(pcic->dip, in pcic_set_window()
2900 mutex_exit(&pcic->pc_lock); in pcic_set_window()
2954 pcic_putb(pcic, socket, in pcic_set_window()
2957 pcic_putb(pcic, socket, in pcic_set_window()
2965 switch (pcic->pc_type) { in pcic_set_window()
2967 pcic_putb(pcic, socket, in pcic_set_window()
2973 clext_reg_write(pcic, socket, in pcic_set_window()
2988 if (pcic->pc_bound == 0xffffffff) { in pcic_set_window()
2989 pcic_putb(pcic, socket, in pcic_set_window()
2992 pcic->pc_base = SYSMEM_EXT(base) << 24; in pcic_set_window()
2993 pcic->pc_bound = 0x1000000; in pcic_set_window()
3017 pcic_putb(pcic, socket, in pcic_set_window()
3024 pcic->pc_type); in pcic_set_window()
3025 pcic_putb(pcic, socket, in pcic_set_window()
3042 switch (pcic->pc_type) { in pcic_set_window()
3048 pcic_set_cdtimers(pcic, socket, in pcic_set_window()
3055 wspeed = pcic_calc_speed(pcic, window->speed); in pcic_set_window()
3067 pcic_putb(pcic, socket, PCIC_SYSMEM_0_STOPLOW + select, in pcic_set_window()
3072 pcic_putb(pcic, socket, PCIC_SYSMEM_0_STOPHI + select, in pcic_set_window()
3081 pcic_putb(pcic, socket, in pcic_set_window()
3085 pcic_putb(pcic, socket, in pcic_set_window()
3094 select = pcic_getb(pcic, socket, in pcic_set_window()
3097 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, select); in pcic_set_window()
3115 select = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE); in pcic_set_window()
3117 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, select); in pcic_set_window()
3124 xxdmp_all_regs(pcic, window->socket, -1); in pcic_set_window()
3149 mutex_enter(&pcic->pc_lock); /* protect the registers */ in pcic_set_window()
3202 ((pcic->pc_flags & PCF_IO_REMAP) ? 0 : base); in pcic_set_window()
3208 req.ra_boundbase = pcic->pc_iobase; in pcic_set_window()
3209 req.ra_boundlen = pcic->pc_iobound; in pcic_set_window()
3233 mutex_exit(&pcic->pc_lock); in pcic_set_window()
3260 if ((which = pcmcia_map_reg(pcic->dip, in pcic_set_window()
3279 mutex_exit(&pcic->pc_lock); in pcic_set_window()
3310 pcic_putb(pcic, socket, in pcic_set_window()
3313 pcic_putb(pcic, socket, in pcic_set_window()
3317 pcic_putb(pcic, socket, in pcic_set_window()
3321 pcic_putb(pcic, socket, in pcic_set_window()
3334 if (pcic->pc_flags & PCF_IO_REMAP) { in pcic_set_window()
3345 pcic_putb(pcic, socket, in pcic_set_window()
3349 pcic_putb(pcic, socket, in pcic_set_window()
3371 switch (pcic->pc_type) { in pcic_set_window()
3385 pcic_set_cdtimers(pcic, socket, in pcic_set_window()
3406 mhztons(pcic->bus_speed) * 3) in pcic_set_window()
3410 mhztons(pcic->bus_speed) * 6) in pcic_set_window()
3419 select = pcic_getb(pcic, socket, PCIC_IO_CONTROL); in pcic_set_window()
3422 pcic_putb(pcic, socket, PCIC_IO_CONTROL, select); in pcic_set_window()
3427 select = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE); in pcic_set_window()
3428 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, in pcic_set_window()
3439 xxdmp_all_regs(pcic, window->socket * 0x40, 24); in pcic_set_window()
3456 select = pcic_getb(pcic, socket, in pcic_set_window()
3458 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, in pcic_set_window()
3469 pcic_putb(pcic, socket, in pcic_set_window()
3471 pcic_putb(pcic, socket, in pcic_set_window()
3473 pcic_putb(pcic, socket, in pcic_set_window()
3475 pcic_putb(pcic, socket, in pcic_set_window()
3479 mutex_exit(&pcic->pc_lock); in pcic_set_window()
3489 pcic_card_state(pcicdev_t *pcic, pcic_socket_t *sockp) in pcic_card_state() argument
3496 mutex_enter(&pcic->pc_lock); /* protect the registers */ in pcic_card_state()
3498 value = pcic_getb(pcic, sockp->pcs_socket, PCIC_INTERFACE_STATUS); in pcic_card_state()
3533 mutex_exit(&pcic->pc_lock); in pcic_card_state()
3536 pcic_err(pcic->dip, 8, in pcic_card_state()
3557 pcicdev_t *pcic = anp->an_private; in pcic_set_page() local
3582 mutex_enter(&pcic->pc_lock); /* protect the registers */ in pcic_set_page()
3584 memp = &pcic->pc_sockets[socket].pcs_windows[window].mem; in pcic_set_page()
3640 pcic_putb(pcic, socket, PCIC_CARDMEM_0_LOW + select, in pcic_set_page()
3642 (void) pcic_getb(pcic, socket, PCIC_CARDMEM_0_LOW + select); in pcic_set_page()
3643 pcic_putb(pcic, socket, PCIC_CARDMEM_0_HI + select, in pcic_set_page()
3645 (void) pcic_getb(pcic, socket, PCIC_CARDMEM_0_HI + select); in pcic_set_page()
3651 which = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE); in pcic_set_page()
3653 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, which); in pcic_set_page()
3654 (void) pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE); in pcic_set_page()
3664 xxdmp_all_regs(pcic, socket, -1); in pcic_set_page()
3673 pcic_mswait(pcic, socket, 2); in pcic_set_page()
3675 mutex_exit(&pcic->pc_lock); in pcic_set_page()
3691 pcic_set_vcc_level(pcicdev_t *pcic, set_socket_t *socket) in pcic_set_vcc_level() argument
3699 (void *)pcic, socket->VccLevel); in pcic_set_vcc_level()
3715 if (socket->VccLevel >= pcic->pc_numpower) { in pcic_set_vcc_level()
3719 switch (pcic->pc_io_type) { in pcic_set_vcc_level()
3732 ddi_get32(pcic->handle, (uint32_t *)(pcic->ioaddr + in pcic_set_vcc_level()
3759 return ((unsigned)ddi_get8(pcic->handle, in pcic_set_vcc_level()
3760 pcic->ioaddr + CB_R2_OFFSET + in pcic_set_vcc_level()
3788 pcicdev_t *pcic = anp->an_private; in pcic_set_socket() local
3789 pcic_socket_t *sockp = &pcic->pc_sockets[socket->socket]; in pcic_set_socket()
3826 if (socket->VccLevel >= pcic->pc_numpower) in pcic_set_socket()
3832 if (!(pcic->pc_flags & PCF_33VCAP)) { in pcic_set_socket()
3836 ddi_get_name(pcic->dip), in pcic_set_socket()
3837 ddi_get_instance(pcic->dip)); in pcic_set_socket()
3842 if ((pcic->pc_io_type == PCIC_IO_TYPE_YENTA) && in pcic_set_socket()
3843 pcic_getcb(pcic, CB_PRESENT_STATE) & in pcic_set_socket()
3873 socket->Vpp1Level < pcic->pc_numpower) { in pcic_set_socket()
3883 socket->Vpp2Level < pcic->pc_numpower) { in pcic_set_socket()
3893 if (pcic->pc_flags & PCF_VPPX) { in pcic_set_socket()
3906 ddi_get_name(pcic->dip), in pcic_set_socket()
3907 ddi_get_instance(pcic->dip)); in pcic_set_socket()
3921 mutex_enter(&pcic->pc_lock); /* protect the registers */ in pcic_set_socket()
3924 interrupt = pcic_getb(pcic, socket->socket, PCIC_INTERRUPT); in pcic_set_socket()
3926 if (pcic->pc_flags & PCF_USE_SMI) in pcic_set_socket()
3928 pcic_putb(pcic, socket->socket, PCIC_INTERRUPT, interrupt); in pcic_set_socket()
3930 switch (pcic->pc_type) { in pcic_set_socket()
3932 pcic_82092_smiirq_ctl(pcic, socket->socket, PCIC_82092_CTL_IRQ, in pcic_set_socket()
3940 mirq = pcic_getb(pcic, socket->socket, PCIC_MANAGEMENT_INT); in pcic_set_socket()
3949 pcic_putb(pcic, socket->socket, PCIC_MANAGEMENT_INT, in pcic_set_socket()
3984 pcic_mswait(pcic, socket->socket, 10); in pcic_set_socket()
3993 switch (pcic->pc_type) { in pcic_set_socket()
4002 irq = pcic_getb(pcic, socket->socket, PCIC_CARD_DETECT); in pcic_set_socket()
4004 pcic->pc_flags & PCF_GPI_EJECT) { in pcic_set_socket()
4009 pcic_putb(pcic, socket->socket, PCIC_CARD_DETECT, irq); in pcic_set_socket()
4014 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_2, 0x0); in pcic_set_socket()
4015 value = pcic_getb(pcic, socket->socket, in pcic_set_socket()
4017 if (pcic->pc_flags & PCF_AUDIO) in pcic_set_socket()
4019 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_1, in pcic_set_socket()
4022 value = pcic_getb(pcic, socket->socket, in pcic_set_socket()
4025 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_1, in pcic_set_socket()
4032 value = pcic_getb(pcic, socket->socket, PCIC_MISC_CTL_1); in pcic_set_socket()
4033 if ((socket->IFType == IF_IO) && (pcic->pc_flags & PCF_AUDIO)) { in pcic_set_socket()
4044 pcic_putb(pcic, socket->socket, PCIC_MISC_CTL_1, value); in pcic_set_socket()
4048 value = pcic_getcb(pcic, CB_MISCCTRL); in pcic_set_socket()
4049 if ((socket->IFType == IF_IO) && (pcic->pc_flags & PCF_AUDIO)) in pcic_set_socket()
4053 pcic_putcb(pcic, CB_MISCCTRL, value); in pcic_set_socket()
4067 value = ddi_get8(pcic->cfg_handle, in pcic_set_socket()
4068 pcic->cfgaddr + PCIC_CRDCTL_REG); in pcic_set_socket()
4069 if ((socket->IFType == IF_IO) && (pcic->pc_flags & PCF_AUDIO)) { in pcic_set_socket()
4074 ddi_put8(pcic->cfg_handle, in pcic_set_socket()
4075 pcic->cfgaddr + PCIC_CRDCTL_REG, value); in pcic_set_socket()
4093 orig_pwrctl = pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL); in pcic_set_socket()
4096 pcic_putb(pcic, socket->socket, in pcic_set_socket()
4098 (void) pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL); in pcic_set_socket()
4101 if (pcic->pc_flags & PCF_CBPWRCTL) { in pcic_set_socket()
4102 value = pcic_cbus_powerctl(pcic, socket->socket); in pcic_set_socket()
4105 value = pcic_exca_powerctl(pcic, socket->socket, powerlevel); in pcic_set_socket()
4108 mutex_exit(&pcic->pc_lock); in pcic_set_socket()
4117 orig_pwrctl = pcic_getb(pcic, socket->socket, in pcic_set_socket()
4120 pcic_putb(pcic, socket->socket, in pcic_set_socket()
4122 (void) pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL); in pcic_set_socket()
4129 pcic_putb(pcic, socket->socket, PCIC_MANAGEMENT_INT, mirq); in pcic_set_socket()
4134 mirq, pcic_getb(pcic, socket->socket, PCIC_POWER_CONTROL), in pcic_set_socket()
4135 pcic_getcb(pcic, CB_CONTROL)); in pcic_set_socket()
4142 value = pcic_getb(pcic, socket->socket, PCIC_INTERRUPT); in pcic_set_socket()
4158 pcic_putb(pcic, socket->socket, PCIC_INTERRUPT, value); in pcic_set_socket()
4160 pcic_enable_io_intr(pcic, socket->socket, irq); in pcic_set_socket()
4163 pcic_disable_io_intr(pcic, socket->socket); in pcic_set_socket()
4172 xxdmp_all_regs(pcic, socket->socket, 20); in pcic_set_socket()
4180 value = pcic_getb(pcic, socket->socket, PCIC_INTERRUPT); in pcic_set_socket()
4182 pcic_putb(pcic, socket->socket, PCIC_INTERRUPT, value); in pcic_set_socket()
4183 pcic_disable_io_intr(pcic, socket->socket); in pcic_set_socket()
4189 mutex_exit(&pcic->pc_lock); in pcic_set_socket()
4203 pcicdev_t *pcic = anp->an_private; in pcic_inquire_socket() local
4209 value = pcic->pc_sockets[socket->socket].pcs_flags; in pcic_inquire_socket()
4292 pcicdev_t *pcic = anp->an_private; in pcic_get_adapter() local
4294 if (pcic->pc_flags & PCF_INTRENAB) in pcic_get_adapter()
4310 pcicdev_t *pcic = anp->an_private; in pcic_get_page() local
4318 if (window < PCIC_IOWINDOWS || socket >= pcic->pc_numsockets) { in pcic_get_page()
4322 winp = &pcic->pc_sockets[socket].pcs_windows[window].mem; in pcic_get_page()
4350 pcicdev_t *pcic = anp->an_private; in pcic_get_socket() local
4355 sockp = &pcic->pc_sockets[socknum]; in pcic_get_socket()
4358 sockp->pcs_state = pcic_card_state(pcic, sockp); in pcic_get_socket()
4393 pcicdev_t *pcic = anp->an_private; in pcic_get_status() local
4398 sockp = &pcic->pc_sockets[socknum]; in pcic_get_status()
4400 status->CardState = pcic_card_state(pcic, sockp); in pcic_get_status()
4423 switch (pcic->pc_type) { in pcic_get_status()
4435 present_state = pcic_getcb(pcic, CB_PRESENT_STATE); in pcic_get_status()
4462 pcicdev_t *pcic = anp->an_private; in pcic_get_window() local
4476 if (socket > pcic->pc_numsockets) in pcic_get_window()
4479 sockp = &pcic->pc_sockets[socket]; in pcic_get_window()
4524 pcic_ll_reset(pcicdev_t *pcic, int socket) in pcic_ll_reset() argument
4530 windowbits = pcic_getb(pcic, socket, PCIC_MAPPING_ENABLE); in pcic_ll_reset()
4534 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, 0); in pcic_ll_reset()
4537 pcic_err(pcic->dip, 6, in pcic_ll_reset()
4539 socket, pcic_getb(pcic, socket, PCIC_POWER_CONTROL), in pcic_ll_reset()
4540 pcic_getcb(pcic, CB_CONTROL), in pcic_ll_reset()
4541 pcic_getcb(pcic, CB_PRESENT_STATE)); in pcic_ll_reset()
4550 if (pcic->pc_flags & PCF_CBPWRCTL) { in pcic_ll_reset()
4551 pwr = pcic_getcb(pcic, CB_CONTROL); in pcic_ll_reset()
4552 pcic_putcb(pcic, CB_CONTROL, (pwr&~CB_C_VPPMASK)|CB_C_VPPVCC); in pcic_ll_reset()
4553 (void) pcic_getcb(pcic, CB_CONTROL); in pcic_ll_reset()
4555 pwr = pcic_getb(pcic, socket, PCIC_POWER_CONTROL); in pcic_ll_reset()
4556 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, in pcic_ll_reset()
4558 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL); in pcic_ll_reset()
4563 pcic_err(pcic->dip, 8, "pcic_ll_reset pre_wait %d mS\n", in pcic_ll_reset()
4565 pcic_mswait(pcic, socket, pcic_prereset_time); in pcic_ll_reset()
4569 pcic_err(pcic->dip, 8, in pcic_ll_reset()
4571 iobits = pcic_getb(pcic, socket, PCIC_INTERRUPT); in pcic_ll_reset()
4573 pcic_putb(pcic, socket, PCIC_INTERRUPT, iobits); in pcic_ll_reset()
4574 (void) pcic_getb(pcic, socket, PCIC_INTERRUPT); in pcic_ll_reset()
4576 switch (pcic->pc_type) { in pcic_ll_reset()
4578 pcic_82092_smiirq_ctl(pcic, socket, PCIC_82092_CTL_IRQ, in pcic_ll_reset()
4585 pcic->pc_sockets[socket].pcs_state = 0; in pcic_ll_reset()
4588 pcic_err(pcic->dip, 8, "pcic_ll_reset reset_wait %d mS\n", in pcic_ll_reset()
4590 pcic_mswait(pcic, socket, pcic_reset_time); in pcic_ll_reset()
4593 pcic_err(pcic->dip, 8, "pcic_ll_reset take it out of reset now\n"); in pcic_ll_reset()
4596 pcic_putb(pcic, socket, PCIC_INTERRUPT, PCIC_RESET | iobits); in pcic_ll_reset()
4597 (void) pcic_getb(pcic, socket, PCIC_INTERRUPT); in pcic_ll_reset()
4605 pcic_err(pcic->dip, 8, "pcic_ll_reset post_wait %d mS\n", in pcic_ll_reset()
4607 pcic_mswait(pcic, socket, pcic_postreset_time); in pcic_ll_reset()
4615 if (pcic->pc_flags & PCF_CBPWRCTL) { in pcic_ll_reset()
4616 pcic_putcb(pcic, CB_CONTROL, pwr); in pcic_ll_reset()
4617 (void) pcic_getcb(pcic, CB_CONTROL); in pcic_ll_reset()
4619 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, pwr); in pcic_ll_reset()
4620 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL); in pcic_ll_reset()
4624 pcic_err(pcic->dip, 7, "pcic_ll_reset returning 0x%x\n", windowbits); in pcic_ll_reset()
4640 pcicdev_t *pcic = anp->an_private; in pcic_reset_socket() local
4652 mutex_enter(&pcic->pc_lock); /* protect the registers */ in pcic_reset_socket()
4655 mint = pcic_getb(pcic, socket, PCIC_MANAGEMENT_INT); in pcic_reset_socket()
4656 pcic_putb(pcic, socket, PCIC_MANAGEMENT_INT, mint & ~PCIC_CHANGE_MASK); in pcic_reset_socket()
4658 sockp = &pcic->pc_sockets[socket]; in pcic_reset_socket()
4660 value = pcic_ll_reset(pcic, socket); in pcic_reset_socket()
4682 pcic_putb(pcic, socket, PCIC_MAPPING_ENABLE, value); in pcic_reset_socket()
4684 pcic_mswait(pcic, socket, 10); in pcic_reset_socket()
4686 pcic_putb(pcic, socket, PCIC_MANAGEMENT_INT, mint); in pcic_reset_socket()
4687 mutex_exit(&pcic->pc_lock); in pcic_reset_socket()
4699 pcicdev_t *pcic = anp->an_private; in pcic_set_interrupt() local
4707 pcic->pc_intr_mode); in pcic_set_interrupt()
4710 (void *)pcic->irq_top, (void *)handler->handler, in pcic_set_interrupt()
4726 switch (pcic->pc_intr_mode) { in pcic_set_interrupt()
4733 mutex_enter(&pcic->intr_lock); in pcic_set_interrupt()
4735 if (pcic->irq_top == NULL) { in pcic_set_interrupt()
4736 pcic->irq_top = intr; in pcic_set_interrupt()
4737 pcic->irq_current = pcic->irq_top; in pcic_set_interrupt()
4739 while (pcic->irq_current->next != NULL) in pcic_set_interrupt()
4740 pcic->irq_current = pcic->irq_current->next; in pcic_set_interrupt()
4741 pcic->irq_current->next = intr; in pcic_set_interrupt()
4742 pcic->irq_current = pcic->irq_current->next; in pcic_set_interrupt()
4745 pcic->irq_current->intr = in pcic_set_interrupt()
4747 pcic->irq_current->handler_id = handler->handler_id; in pcic_set_interrupt()
4748 pcic->irq_current->arg1 = handler->arg1; in pcic_set_interrupt()
4749 pcic->irq_current->arg2 = handler->arg2; in pcic_set_interrupt()
4750 pcic->irq_current->socket = handler->socket; in pcic_set_interrupt()
4752 mutex_exit(&pcic->intr_lock); in pcic_set_interrupt()
4754 handler->iblk_cookie = &pcic->pc_pri; in pcic_set_interrupt()
4755 handler->idev_cookie = &pcic->pc_dcookie; in pcic_set_interrupt()
4771 mutex_enter(&pcic->pc_lock); in pcic_set_interrupt()
4772 if (pcic->pc_handlers == NULL) { in pcic_set_interrupt()
4773 pcic->pc_handlers = intr; in pcic_set_interrupt()
4776 insque(intr, pcic->pc_handlers); in pcic_set_interrupt()
4778 mutex_exit(&pcic->pc_lock); in pcic_set_interrupt()
4792 (void *)pcic->irq_top, value); in pcic_set_interrupt()
4824 pcicdev_t *pcic = anp->an_private; in pcic_clear_interrupt() local
4839 pcic->pc_intr_mode); in pcic_clear_interrupt()
4842 (void *)pcic->irq_top, (void *)handler->handler, in pcic_clear_interrupt()
4847 switch (pcic->pc_intr_mode) { in pcic_clear_interrupt()
4850 mutex_enter(&pcic->intr_lock); in pcic_clear_interrupt()
4851 if (pcic->irq_top == NULL) { in pcic_clear_interrupt()
4852 mutex_exit(&pcic->intr_lock); in pcic_clear_interrupt()
4857 pcic->irq_current = pcic->irq_top; in pcic_clear_interrupt()
4859 while ((pcic->irq_current != NULL) && in pcic_clear_interrupt()
4860 (pcic->irq_current->handler_id != in pcic_clear_interrupt()
4862 intr = pcic->irq_current; in pcic_clear_interrupt()
4863 pcic->irq_current = pcic->irq_current->next; in pcic_clear_interrupt()
4866 if (pcic->irq_current == NULL) { in pcic_clear_interrupt()
4867 mutex_exit(&pcic->intr_lock); in pcic_clear_interrupt()
4872 intr->next = pcic->irq_current->next; in pcic_clear_interrupt()
4874 pcic->irq_top = pcic->irq_current->next; in pcic_clear_interrupt()
4877 current = pcic->irq_current; in pcic_clear_interrupt()
4878 pcic->irq_current = pcic->irq_top; in pcic_clear_interrupt()
4879 mutex_exit(&pcic->intr_lock); in pcic_clear_interrupt()
4886 mutex_enter(&pcic->pc_lock); in pcic_clear_interrupt()
4895 (void) ddi_intr_disable(pcic->pc_intr_htblp[i]); in pcic_clear_interrupt()
4897 pcic->pc_intr_htblp[i]); in pcic_clear_interrupt()
4898 (void) ddi_intr_free(pcic->pc_intr_htblp[i]); in pcic_clear_interrupt()
4899 (void) pcmcia_return_intr(pcic->dip, i); in pcic_clear_interrupt()
4922 mutex_exit(&pcic->pc_lock); in pcic_clear_interrupt()
4929 (void *)pcic->irq_top); in pcic_clear_interrupt()
5028 xxdmp_cl_regs(pcicdev_t *pcic, int socket, uint32_t len) in xxdmp_cl_regs() argument
5041 value = pcic_getb(pcic, sval, cregs[i].off); in xxdmp_cl_regs()
5064 i = pcic_getb(pcic, socket, PCIC_TIME_SETUP_0); in xxdmp_cl_regs()
5065 j = pcic_getb(pcic, socket, PCIC_TIME_SETUP_1); in xxdmp_cl_regs()
5068 i = pcic_getb(pcic, socket, PCIC_TIME_COMMAND_0); in xxdmp_cl_regs()
5069 j = pcic_getb(pcic, socket, PCIC_TIME_COMMAND_1); in xxdmp_cl_regs()
5072 i = pcic_getb(pcic, socket, PCIC_TIME_RECOVER_0); in xxdmp_cl_regs()
5073 j = pcic_getb(pcic, socket, PCIC_TIME_RECOVER_1); in xxdmp_cl_regs()
5079 value = clext_reg_read(pcic, socket, cxregs[i].off); in xxdmp_cl_regs()
5104 xxdmp_all_regs(pcicdev_t *pcic, int socket, uint32_t len) in xxdmp_all_regs() argument
5121 value = pcic_getb(pcic, socket, iregs[i].off); in xxdmp_all_regs()
5142 switch (pcic->pc_type) { in xxdmp_all_regs()
5147 (void) xxdmp_cl_regs(pcic, socket, 0xFFFF); in xxdmp_all_regs()
5160 pcic_mswait(pcicdev_t *pcic, int socket, int ms) in pcic_mswait() argument
5163 pcic->pc_sockets[socket].pcs_flags |= PCS_WAITING; in pcic_mswait()
5164 pcic_mutex_exit(&pcic->pc_lock); in pcic_mswait()
5166 pcic_mutex_enter(&pcic->pc_lock); in pcic_mswait()
5167 pcic->pc_sockets[socket].pcs_flags &= ~PCS_WAITING; in pcic_mswait()
5178 pcic_check_ready(pcicdev_t *pcic, int socket) in pcic_check_ready() argument
5182 intstate = pcic_getb(pcic, socket, PCIC_INTERRUPT); in pcic_check_ready()
5183 ifstate = pcic_getb(pcic, socket, PCIC_INTERFACE_STATUS); in pcic_check_ready()
5195 xxdmp_all_regs(pcic, socket, -1); in pcic_check_ready()
5206 clext_reg_read(pcicdev_t *pcic, int sn, uchar_t ext_reg) in clext_reg_read() argument
5210 switch (pcic->pc_io_type) { in clext_reg_read()
5212 val = ddi_get8(pcic->handle, in clext_reg_read()
5213 pcic->ioaddr + CB_CLEXT_OFFSET + ext_reg); in clext_reg_read()
5216 pcic_putb(pcic, sn, PCIC_CL_EXINDEX, ext_reg); in clext_reg_read()
5217 val = pcic_getb(pcic, sn, PCIC_CL_EXINDEX + 1); in clext_reg_read()
5225 clext_reg_write(pcicdev_t *pcic, int sn, uchar_t ext_reg, uchar_t value) in clext_reg_write() argument
5227 switch (pcic->pc_io_type) { in clext_reg_write()
5229 ddi_put8(pcic->handle, in clext_reg_write()
5230 pcic->ioaddr + CB_CLEXT_OFFSET + ext_reg, value); in clext_reg_write()
5233 pcic_putb(pcic, sn, PCIC_CL_EXINDEX, ext_reg); in clext_reg_write()
5234 pcic_putb(pcic, sn, PCIC_CL_EXINDEX + 1, value); in clext_reg_write()
5267 pcic_find_pci_type(pcicdev_t *pcic) in pcic_find_pci_type() argument
5271 vend = ddi_getprop(DDI_DEV_T_ANY, pcic->dip, in pcic_find_pci_type()
5274 device = ddi_getprop(DDI_DEV_T_ANY, pcic->dip, in pcic_find_pci_type()
5279 pcic->pc_type = device; in pcic_find_pci_type()
5280 pcic->pc_chipname = "PCI:unknown"; in pcic_find_pci_type()
5284 pcic->pc_chipname = PCIC_TYPE_i82092; in pcic_find_pci_type()
5287 pcic->pc_chipname = PCIC_TYPE_PD6729; in pcic_find_pci_type()
5294 if ((clext_reg_read(pcic, 0, PCIC_CLEXT_MISC_CTL_3) & in pcic_find_pci_type()
5297 pcic->pc_chipname = PCIC_TYPE_PD6730; in pcic_find_pci_type()
5298 pcic->pc_type = PCIC_CL_PD6730; in pcic_find_pci_type()
5302 pcic->pc_chipname = PCIC_TYPE_PD6730; in pcic_find_pci_type()
5305 pcic->pc_chipname = PCIC_TYPE_PD6832; in pcic_find_pci_type()
5308 pcic->pc_chipname = PCIC_TYPE_34C90; in pcic_find_pci_type()
5311 pcic->pc_chipname = PCIC_TYPE_TOPIC95; in pcic_find_pci_type()
5314 pcic->pc_chipname = PCIC_TYPE_TOPIC100; in pcic_find_pci_type()
5317 pcic->pc_chipname = PCIC_TYPE_PCI1031; in pcic_find_pci_type()
5320 pcic->pc_chipname = PCIC_TYPE_PCI1130; in pcic_find_pci_type()
5323 pcic->pc_chipname = PCIC_TYPE_PCI1131; in pcic_find_pci_type()
5326 pcic->pc_chipname = PCIC_TYPE_PCI1250; in pcic_find_pci_type()
5329 pcic->pc_chipname = PCIC_TYPE_PCI1225; in pcic_find_pci_type()
5332 pcic->pc_chipname = PCIC_TYPE_PCI1410; in pcic_find_pci_type()
5335 pcic->pc_chipname = PCIC_TYPE_PCI1510; in pcic_find_pci_type()
5338 pcic->pc_chipname = PCIC_TYPE_PCI1520; in pcic_find_pci_type()
5341 pcic->pc_chipname = PCIC_TYPE_PCI1221; in pcic_find_pci_type()
5344 pcic->pc_chipname = PCIC_TYPE_PCI1050; in pcic_find_pci_type()
5347 pcic->pc_chipname = PCIC_TYPE_1410; in pcic_find_pci_type()
5350 pcic->pc_chipname = PCIC_TYPE_OZ6912; in pcic_find_pci_type()
5353 pcic->pc_chipname = PCIC_TYPE_RL5C466; in pcic_find_pci_type()
5356 pcic->pc_chipname = PCIC_TYPE_PCI1420; in pcic_find_pci_type()
5359 pcic->pc_chipname = PCIC_TYPE_1420; in pcic_find_pci_type()
5364 pcic->pc_chipname = PCIC_TYPE_TOSHIBA; in pcic_find_pci_type()
5365 pcic->pc_type = PCIC_TOSHIBA_VENDOR; in pcic_find_pci_type()
5368 pcic->pc_chipname = PCIC_TYPE_TI; in pcic_find_pci_type()
5369 pcic->pc_type = PCIC_TI_VENDOR; in pcic_find_pci_type()
5372 pcic->pc_chipname = PCIC_TYPE_O2MICRO; in pcic_find_pci_type()
5373 pcic->pc_type = PCIC_O2MICRO_VENDOR; in pcic_find_pci_type()
5376 pcic->pc_chipname = PCIC_TYPE_RICOH; in pcic_find_pci_type()
5377 pcic->pc_type = PCIC_RICOH_VENDOR; in pcic_find_pci_type()
5380 if (!(pcic->pc_flags & PCF_CARDBUS)) in pcic_find_pci_type()
5382 pcic->pc_chipname = PCIC_TYPE_YENTA; in pcic_find_pci_type()
5390 pcic_82092_smiirq_ctl(pcicdev_t *pcic, int socket, int intr, int state) in pcic_82092_smiirq_ctl() argument
5392 uchar_t ppirr = ddi_get8(pcic->cfg_handle, in pcic_82092_smiirq_ctl()
5393 pcic->cfgaddr + PCIC_82092_PPIRR); in pcic_82092_smiirq_ctl()
5409 ddi_put8(pcic->cfg_handle, pcic->cfgaddr + PCIC_82092_PPIRR, in pcic_82092_smiirq_ctl()
5449 pcic_handle_cd_change(pcicdev_t *pcic, pcic_socket_t *sockp, uint8_t status) in pcic_handle_cd_change() argument
5475 pcic_err(pcic->dip, 6, in pcic_handle_cd_change()
5477 " deb 0x%p\n", ddi_get_instance(pcic->dip), in pcic_handle_cd_change()
5486 pcic_err(pcic->dip, 8, "New card (0x%x)\n", sockp->pcs_flags); in pcic_handle_cd_change()
5488 cbps = pcic_getcb(pcic, CB_PRESENT_STATE); in pcic_handle_cd_change()
5490 pcic_err(pcic->dip, 8, "CBus PS (0x%x)\n", cbps); in pcic_handle_cd_change()
5499 ddi_get_name(pcic->dip), in pcic_handle_cd_change()
5500 ddi_get_instance(pcic->dip), in pcic_handle_cd_change()
5502 pcic_putcb(pcic, CB_EVENT_FORCE, CB_EF_CVTEST); in pcic_handle_cd_change()
5510 cbps = pcic_getcb(pcic, CB_PRESENT_STATE); in pcic_handle_cd_change()
5513 pcic_err(pcic->dip, in pcic_handle_cd_change()
5517 if (pcic->pc_callback) { in pcic_handle_cd_change()
5521 pcic->dip, PCM_DEVICETYPE, in pcic_handle_cd_change()
5523 PC_CALLBACK(pcic->dip, in pcic_handle_cd_change()
5524 pcic->pc_cb_arg, in pcic_handle_cd_change()
5529 pcic_err(pcic->dip, in pcic_handle_cd_change()
5532 if (pcic->pc_flags & PCF_CARDBUS) { in pcic_handle_cd_change()
5536 if (!pcic_load_cardbus(pcic, in pcic_handle_cd_change()
5539 pcic, sockp); in pcic_handle_cd_change()
5573 pcic_err(pcic->dip, 5, in pcic_handle_cd_change()
5575 ddi_get_instance(pcic->dip), in pcic_handle_cd_change()
5597 if (pcic->pc_flags & PCF_CBPWRCTL) { in pcic_handle_cd_change()
5598 pcic_putcb(pcic, CB_CONTROL, 0); in pcic_handle_cd_change()
5600 pcic_putb(pcic, sockp->pcs_socket, in pcic_handle_cd_change()
5602 (void) pcic_getb(pcic, sockp->pcs_socket, in pcic_handle_cd_change()
5606 pcic_err(pcic->dip, 8, "Card removed\n"); in pcic_handle_cd_change()
5612 if (pcic_do_removal && pcic->pc_callback) { in pcic_handle_cd_change()
5613 PC_CALLBACK(pcic->dip, pcic->pc_cb_arg, in pcic_handle_cd_change()
5638 pcic_unload_cardbus(pcic, sockp); in pcic_handle_cd_change()
5657 pcic_err(pcic->dip, 8, "Queueing up debounce timeout for " in pcic_handle_cd_change()
5659 ddi_get_instance(pcic->dip), in pcic_handle_cd_change()
5680 irq = pcic_getb(pcic, sockp->pcs_socket, PCIC_MANAGEMENT_INT); in pcic_handle_cd_change()
5682 pcic_putb(pcic, sockp->pcs_socket, PCIC_MANAGEMENT_INT, irq); in pcic_handle_cd_change()
5683 pcic_putcb(pcic, CB_STATUS_MASK, CB_SE_CCDMASK); in pcic_handle_cd_change()
5688 pcic_err(pcic->dip, 7, "Leaving pcic_handle_cd_change\n"); in pcic_handle_cd_change()
5696 pcic_getb(pcicdev_t *pcic, int socket, int reg) in pcic_getb() argument
5703 (void *)pcic, socket, reg); in pcic_getb()
5705 pcic->pc_io_type, (void *)pcic->handle, in pcic_getb()
5706 (void *)pcic->ioaddr); in pcic_getb()
5710 switch (pcic->pc_io_type) { in pcic_getb()
5712 return (ddi_get8(pcic->handle, in pcic_getb()
5713 pcic->ioaddr + CB_R2_OFFSET + reg)); in pcic_getb()
5716 ddi_put8(pcic->handle, pcic->ioaddr, work); in pcic_getb()
5717 return (ddi_get8(pcic->handle, pcic->ioaddr + 1)); in pcic_getb()
5722 pcic_putb(pcicdev_t *pcic, int socket, int reg, int8_t value) in pcic_putb() argument
5730 (void *)pcic, socket, reg, value); in pcic_putb()
5733 pcic->pc_io_type, (void *)pcic->handle, in pcic_putb()
5734 (void *)pcic->ioaddr); in pcic_putb()
5739 switch (pcic->pc_io_type) { in pcic_putb()
5741 ddi_put8(pcic->handle, pcic->ioaddr + CB_R2_OFFSET + reg, in pcic_putb()
5746 ddi_put8(pcic->handle, pcic->ioaddr, work); in pcic_putb()
5747 ddi_put8(pcic->handle, pcic->ioaddr + 1, value); in pcic_putb()
5760 pcic_ci_cirrus(pcicdev_t *pcic) in pcic_ci_cirrus() argument
5765 value1 = pcic_getb(pcic, 0, PCIC_CHIP_INFO); in pcic_ci_cirrus()
5766 pcic_putb(pcic, 0, PCIC_CHIP_INFO, 0); in pcic_ci_cirrus()
5767 value1 = pcic_getb(pcic, 0, PCIC_CHIP_INFO); in pcic_ci_cirrus()
5768 value2 = pcic_getb(pcic, 0, PCIC_CHIP_INFO); in pcic_ci_cirrus()
5773 pcic->pc_type = PCIC_CL_PD6710; in pcic_ci_cirrus()
5775 pcic->pc_chipname = PCIC_TYPE_PD6720; in pcic_ci_cirrus()
5777 pcic->pc_chipname = PCIC_TYPE_PD6710; in pcic_ci_cirrus()
5779 value1 = clext_reg_read(pcic, 0, PCIC_CLEXT_DMASK_0); in pcic_ci_cirrus()
5781 clext_reg_write(pcic, 0, PCIC_CLEXT_SCRATCH, 0x55); in pcic_ci_cirrus()
5782 value1 = clext_reg_read(pcic, 0, PCIC_CLEXT_SCRATCH); in pcic_ci_cirrus()
5784 pcic->pc_chipname = PCIC_TYPE_PD6722; in pcic_ci_cirrus()
5785 pcic->pc_type = PCIC_CL_PD6722; in pcic_ci_cirrus()
5786 clext_reg_write(pcic, 0, PCIC_CLEXT_SCRATCH, 0); in pcic_ci_cirrus()
5799 pcic_vadem_enable(pcicdev_t *pcic) in pcic_vadem_enable() argument
5801 ddi_put8(pcic->handle, pcic->ioaddr, PCIC_VADEM_P1); in pcic_vadem_enable()
5802 ddi_put8(pcic->handle, pcic->ioaddr, PCIC_VADEM_P2); in pcic_vadem_enable()
5803 ddi_put8(pcic->handle, pcic->ioaddr, pcic->pc_lastreg); in pcic_vadem_enable()
5807 pcic_ci_vadem(pcicdev_t *pcic) in pcic_ci_vadem() argument
5811 pcic_vadem_enable(pcic); in pcic_ci_vadem()
5812 value = pcic_getb(pcic, 0, PCIC_CHIP_REVISION); in pcic_ci_vadem()
5813 pcic_putb(pcic, 0, PCIC_CHIP_REVISION, 0xFF); in pcic_ci_vadem()
5814 if (pcic_getb(pcic, 0, PCIC_CHIP_REVISION) == in pcic_ci_vadem()
5816 (pcic_getb(pcic, 0, PCIC_CHIP_REVISION) & PCIC_REV_MASK) == in pcic_ci_vadem()
5819 pcic_vadem_enable(pcic); in pcic_ci_vadem()
5820 vadem = pcic_getb(pcic, 0, PCIC_VG_DMA) & in pcic_ci_vadem()
5823 pcic_putb(pcic, 0, PCIC_VG_DMA, new); in pcic_ci_vadem()
5824 value = pcic_getb(pcic, 0, PCIC_CHIP_REVISION); in pcic_ci_vadem()
5827 pcic_putb(pcic, 0, PCIC_VG_DMA, vadem); in pcic_ci_vadem()
5830 pcic->pc_chipname = PCIC_VG_365; in pcic_ci_vadem()
5831 pcic->pc_type = PCIC_VADEM; in pcic_ci_vadem()
5834 pcic->pc_chipname = PCIC_VG_465; in pcic_ci_vadem()
5835 pcic->pc_type = PCIC_VADEM; in pcic_ci_vadem()
5836 pcic->pc_flags |= PCF_1SOCKET; in pcic_ci_vadem()
5839 pcic->pc_chipname = PCIC_VG_468; in pcic_ci_vadem()
5840 pcic->pc_type = PCIC_VADEM; in pcic_ci_vadem()
5843 pcic->pc_chipname = PCIC_VG_469; in pcic_ci_vadem()
5844 pcic->pc_type = PCIC_VADEM_VG469; in pcic_ci_vadem()
5856 pcic_ci_ricoh(pcicdev_t *pcic) in pcic_ci_ricoh() argument
5860 value = pcic_getb(pcic, 0, PCIC_RF_CHIP_IDENT); in pcic_ci_ricoh()
5863 pcic->pc_type = PCIC_RICOH; in pcic_ci_ricoh()
5864 pcic->pc_chipname = PCIC_TYPE_RF5C296; in pcic_ci_ricoh()
5867 pcic->pc_type = PCIC_RICOH; in pcic_ci_ricoh()
5868 pcic->pc_chipname = PCIC_TYPE_RF5C396; in pcic_ci_ricoh()
6095 pcic_load_cardbus(pcicdev_t *pcic, const pcic_socket_t *sockp) in pcic_load_cardbus() argument
6098 dev_info_t *dip = pcic->dip; in pcic_load_cardbus()
6106 pcic_mutex_exit(&pcic->pc_lock); in pcic_load_cardbus()
6114 present_state = pcic_getcb(pcic, CB_PRESENT_STATE); in pcic_load_cardbus()
6154 retval = cardbus_load_cardbus(dip, sockp->pcs_socket, pcic->pc_base); in pcic_load_cardbus()
6161 pcic_mutex_enter(&pcic->pc_lock); in pcic_load_cardbus()
6168 pcic_unload_cardbus(pcicdev_t *pcic, const pcic_socket_t *sockp) in pcic_unload_cardbus() argument
6170 dev_info_t *dip = pcic->dip; in pcic_unload_cardbus()
6173 pcic_mutex_exit(&pcic->pc_lock); in pcic_unload_cardbus()
6188 pcic_mutex_enter(&pcic->pc_lock); in pcic_unload_cardbus()
6192 pcic_getcb(pcicdev_t *pcic, int reg) in pcic_getcb() argument
6194 ASSERT(pcic->pc_io_type == PCIC_IO_TYPE_YENTA); in pcic_getcb()
6196 return (ddi_get32(pcic->handle, in pcic_getcb()
6197 (uint32_t *)(pcic->ioaddr + CB_CB_OFFSET + reg))); in pcic_getcb()
6201 pcic_putcb(pcicdev_t *pcic, int reg, uint32_t value) in pcic_putcb() argument
6203 ASSERT(pcic->pc_io_type == PCIC_IO_TYPE_YENTA); in pcic_putcb()
6205 ddi_put32(pcic->handle, in pcic_putcb()
6206 (uint32_t *)(pcic->ioaddr + CB_CB_OFFSET + reg), value); in pcic_putcb()
6210 pcic_enable_io_intr(pcicdev_t *pcic, int socket, int irq) in pcic_enable_io_intr() argument
6215 value = pcic_getb(pcic, socket, PCIC_INTERRUPT) & ~PCIC_INTR_MASK; in pcic_enable_io_intr()
6216 pcic_putb(pcic, socket, PCIC_INTERRUPT, value | irq); in pcic_enable_io_intr()
6218 switch (pcic->pc_type) { in pcic_enable_io_intr()
6220 pcic_82092_smiirq_ctl(pcic, socket, PCIC_82092_CTL_IRQ, in pcic_enable_io_intr()
6224 value = pcic_getb(pcic, 0, PCIC_CENTDMA); in pcic_enable_io_intr()
6226 pcic_putb(pcic, 0, PCIC_CENTDMA, value); in pcic_enable_io_intr()
6239 brdgctl = ddi_get16(pcic->cfg_handle, in pcic_enable_io_intr()
6240 (uint16_t *)(pcic->cfgaddr + PCI_CBUS_BRIDGE_CTRL)); in pcic_enable_io_intr()
6245 ddi_put16(pcic->cfg_handle, in pcic_enable_io_intr()
6246 (uint16_t *)(pcic->cfgaddr + PCI_CBUS_BRIDGE_CTRL), in pcic_enable_io_intr()
6249 (void) ddi_get16(pcic->cfg_handle, in pcic_enable_io_intr()
6250 (uint16_t *)(pcic->cfgaddr + PCI_CBUS_BRIDGE_CTRL)); in pcic_enable_io_intr()
6258 pcic_disable_io_intr(pcicdev_t *pcic, int socket) in pcic_disable_io_intr() argument
6263 value = pcic_getb(pcic, socket, PCIC_INTERRUPT) & ~PCIC_INTR_MASK; in pcic_disable_io_intr()
6264 pcic_putb(pcic, socket, PCIC_INTERRUPT, value); in pcic_disable_io_intr()
6266 switch (pcic->pc_type) { in pcic_disable_io_intr()
6268 pcic_82092_smiirq_ctl(pcic, socket, PCIC_82092_CTL_IRQ, in pcic_disable_io_intr()
6272 value = pcic_getb(pcic, 0, PCIC_CENTDMA); in pcic_disable_io_intr()
6274 pcic_putb(pcic, 0, PCIC_CENTDMA, value); in pcic_disable_io_intr()
6276 (void) pcic_getb(pcic, 0, PCIC_CENTDMA); in pcic_disable_io_intr()
6295 brdgctl = ddi_get16(pcic->cfg_handle, in pcic_disable_io_intr()
6296 (uint16_t *)(pcic->cfgaddr + PCI_CBUS_BRIDGE_CTRL)); in pcic_disable_io_intr()
6301 ddi_put16(pcic->cfg_handle, in pcic_disable_io_intr()
6302 (uint16_t *)(pcic->cfgaddr + PCI_CBUS_BRIDGE_CTRL), in pcic_disable_io_intr()
6305 (void) ddi_get16(pcic->cfg_handle, in pcic_disable_io_intr()
6306 (uint16_t *)(pcic->cfgaddr + PCI_CBUS_BRIDGE_CTRL)); in pcic_disable_io_intr()
6317 pcicdev_t *pcic = anp->an_private; in pcic_cb_enable_intr() local
6319 mutex_enter(&pcic->pc_lock); in pcic_cb_enable_intr()
6320 pcic_enable_io_intr(pcic, 0, pcic->pc_sockets[0].pcs_irq); in pcic_cb_enable_intr()
6321 mutex_exit(&pcic->pc_lock); in pcic_cb_enable_intr()
6328 pcicdev_t *pcic = anp->an_private; in pcic_cb_disable_intr() local
6330 mutex_enter(&pcic->pc_lock); in pcic_cb_disable_intr()
6331 pcic_disable_io_intr(pcic, 0); in pcic_cb_disable_intr()
6332 mutex_exit(&pcic->pc_lock); in pcic_cb_disable_intr()
6369 pcicdev_t *pcic = (pcicdev_t *)arg; in pcic_fault() local
6371 pci_config_get16(pcic->cfg_handle, PCI_CONF_STAT); in pcic_fault()
6373 pci_config_get16(pcic->cfg_handle, 0x16); in pcic_fault()
6377 cardbus_dump_pci_config(pcic->dip); in pcic_fault()
6381 (void) sprintf(nm, "%s-%d", ddi_driver_name(pcic->dip), in pcic_fault()
6382 ddi_get_instance(pcic->dip)); in pcic_fault()
6393 pci_config_put16(pcic->cfg_handle, in pcic_fault()
6395 pci_config_put16(pcic->cfg_handle, 0x16, pci_cfg_sec_stat); in pcic_fault()
6411 pcic_do_resume(pcicdev_t *pcic) in pcic_do_resume() argument
6421 pcic_mutex_enter(&pcic->pc_lock); /* protect the registers */ in pcic_do_resume()
6422 for (i = 0; i < pcic->pc_numsockets; i++) { in pcic_do_resume()
6424 interrupt = pcic_getb(pcic, i, PCIC_INTERRUPT); in pcic_do_resume()
6425 if (pcic->pc_flags & PCF_USE_SMI) in pcic_do_resume()
6427 pcic_putb(pcic, i, PCIC_INTERRUPT, in pcic_do_resume()
6429 pcic->pc_sockets[i].pcs_debounce_id = in pcic_do_resume()
6430 pcic_add_debqueue(&pcic->pc_sockets[i], in pcic_do_resume()
6433 pcic_mutex_exit(&pcic->pc_lock); /* protect the registers */ in pcic_do_resume()
6435 (void) pcmcia_wait_insert(pcic->dip); in pcic_do_resume()
6443 cfg = ddi_get8(pcic->cfg_handle, in pcic_do_resume()
6444 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG); in pcic_do_resume()
6447 ddi_put8(pcic->cfg_handle, in pcic_do_resume()
6448 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG, in pcic_do_resume()
6450 cfg = ddi_get8(pcic->cfg_handle, in pcic_do_resume()
6451 pcic->cfgaddr + PCIC_BRIDGE_CTL_REG); in pcic_do_resume()
6453 pcic_err(pcic->dip, 1, in pcic_do_resume()
6579 pcic_exca_powerctl(pcicdev_t *pcic, int socket, int powerlevel) in pcic_exca_powerctl() argument
6584 orig_pwrctl = pcic_getb(pcic, socket, PCIC_POWER_CONTROL); in pcic_exca_powerctl()
6587 pcic_err(pcic->dip, 6, in pcic_exca_powerctl()
6601 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, powerlevel); in pcic_exca_powerctl()
6602 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL); in pcic_exca_powerctl()
6615 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, powerlevel); in pcic_exca_powerctl()
6617 value = pcic_getb(pcic, socket, PCIC_POWER_CONTROL); in pcic_exca_powerctl()
6618 pcic_mswait(pcic, socket, pcic_powerdelay); in pcic_exca_powerctl()
6620 pcic_err(pcic->dip, 8, in pcic_exca_powerctl()
6622 value, pcic_getb(pcic, socket, in pcic_exca_powerctl()
6624 pcic_err(pcic->dip, 8, in pcic_exca_powerctl()
6626 pcic_getcb(pcic, CB_PRESENT_STATE), in pcic_exca_powerctl()
6627 pcic_getcb(pcic, CB_CONTROL)); in pcic_exca_powerctl()
6634 ifs = pcic_getb(pcic, socket, in pcic_exca_powerctl()
6639 pcic_putb(pcic, socket, in pcic_exca_powerctl()
6641 (void) pcic_getb(pcic, socket, in pcic_exca_powerctl()
6643 pcic_mswait(pcic, socket, 40); in pcic_exca_powerctl()
6645 pcic_putcb(pcic, CB_EVENT_FORCE, in pcic_exca_powerctl()
6647 pcic_mswait(pcic, socket, 100); in pcic_exca_powerctl()
6649 pcic_putb(pcic, socket, in pcic_exca_powerctl()
6652 (void) pcic_getb(pcic, socket, in pcic_exca_powerctl()
6654 pcic_mswait(pcic, socket, in pcic_exca_powerctl()
6656 pcic_putb(pcic, socket, in pcic_exca_powerctl()
6658 (void) pcic_getb(pcic, socket, in pcic_exca_powerctl()
6660 pcic_mswait(pcic, socket, in pcic_exca_powerctl()
6671 pcic_getb(pcic, socket, PCIC_POWER_CONTROL), in pcic_exca_powerctl()
6673 pcic_getb(pcic, socket, PCIC_MISC_CTL_1), in pcic_exca_powerctl()
6674 pcic_getb(pcic, socket, PCIC_INTERRUPT), in pcic_exca_powerctl()
6679 pcic_err(pcic->dip, 8, in pcic_exca_powerctl()
6683 pcic_getb(pcic, socket, PCIC_POWER_CONTROL), in pcic_exca_powerctl()
6684 pcic_getb(pcic, socket, PCIC_MISC_CTL_1), in pcic_exca_powerctl()
6685 pcic_getb(pcic, socket, PCIC_INTERRUPT)); in pcic_exca_powerctl()
6689 pcic_putb(pcic, socket, PCIC_POWER_CONTROL, powerlevel); in pcic_exca_powerctl()
6690 (void) pcic_getb(pcic, socket, PCIC_POWER_CONTROL); in pcic_exca_powerctl()
6698 pcic_cbus_powerctl(pcicdev_t *pcic, int socket) in pcic_cbus_powerctl() argument
6702 pcic_socket_t *sockp = &pcic->pc_sockets[socket]; in pcic_cbus_powerctl()
6704 pcic_putcb(pcic, CB_STATUS_EVENT, CB_SE_POWER_CYCLE); in pcic_cbus_powerctl()
6712 orig_cbctl = pcic_getcb(pcic, CB_CONTROL); in pcic_cbus_powerctl()
6715 pcic_err(pcic->dip, 6, in pcic_cbus_powerctl()
6723 iobits = pcic_getb(pcic, socket, PCIC_INTERRUPT); in pcic_cbus_powerctl()
6724 pcic_putb(pcic, socket, PCIC_INTERRUPT, in pcic_cbus_powerctl()
6727 pcic_putcb(pcic, CB_CONTROL, cbctl); in pcic_cbus_powerctl()
6730 pcic_mswait(pcic, socket, pcic_powerdelay); in pcic_cbus_powerctl()
6734 cbstev = pcic_getcb(pcic, CB_STATUS_EVENT); in pcic_cbus_powerctl()
6745 pcic_mswait(pcic, socket, 400); in pcic_cbus_powerctl()
6747 cbps = pcic_getcb(pcic, CB_PRESENT_STATE); in pcic_cbus_powerctl()
6758 pcic_err(pcic->dip, 8, in pcic_cbus_powerctl()
6760 cbstev, pcic_getcb(pcic, CB_PRESENT_STATE), in pcic_cbus_powerctl()
6765 pcic_putb(pcic, socket, PCIC_INTERRUPT, iobits); in pcic_cbus_powerctl()
6769 pcic_mswait(pcic, socket, 40); in pcic_cbus_powerctl()
6773 pcic_putb(pcic, socket, PCIC_INTERRUPT, iobits); in pcic_cbus_powerctl()
6779 pcic_getcb(pcic, CB_PRESENT_STATE), in pcic_cbus_powerctl()