Home | History | Annotate | Download | only in pci

Lines Matching defs:icp

65  * from both ICP-Vortex and �ko.neT.  I want to thank them for their support.
214 * ICP-Vortex only make RAID controllers, so we employ a heuristic
240 struct icp_softc *icp;
258 icp = device_private(self);
259 icp->icp_dv = self;
260 icp->icp_class = icp_pci_find_class(pa);
267 icp->icp_class |= ICP_FC;
270 ICP_CLASS(icp) == ICP_PCINEW ? ICP_PCINEW_DPMEM : ICP_PCI_DPMEM,
274 ICP_CLASS(icp) == ICP_PCINEW ? ICP_PCINEW_DPMEM :
283 icp->icp_dpmemt = dpmemt;
284 icp->icp_dpmemh = dpmemh;
285 icp->icp_dpmembase = dpmembase;
286 icp->icp_dmat = pa->pa_dmat;
291 if (ICP_CLASS(icp) == ICP_PCINEW) {
305 icp->icp_iot = iot;
306 icp->icp_ioh = ioh;
307 icp->icp_iobase = iobase;
310 switch (ICP_CLASS(icp)) {
372 icp->icp_ic_all_size = ICP_DPRAM_SZ;
374 icp->icp_copy_cmd = icp_pci_copy_cmd;
375 icp->icp_get_status = icp_pci_get_status;
376 icp->icp_intr = icp_pci_intr;
377 icp->icp_release_event = icp_pci_release_event;
378 icp->icp_set_sema0 = icp_pci_set_sema0;
379 icp->icp_test_busy = icp_pci_test_busy;
447 icp->icp_ic_all_size = ICP_PCINEW_SZ;
449 icp->icp_copy_cmd = icp_pcinew_copy_cmd;
450 icp->icp_get_status = icp_pcinew_get_status;
451 icp->icp_intr = icp_pcinew_intr;
452 icp->icp_release_event = icp_pcinew_release_event;
453 icp->icp_set_sema0 = icp_pcinew_set_sema0;
454 icp->icp_test_busy = icp_pcinew_test_busy;
539 icp->icp_copy_cmd = icp_mpr_copy_cmd;
540 icp->icp_get_status = icp_mpr_get_status;
541 icp->icp_intr = icp_mpr_intr;
542 icp->icp_release_event = icp_mpr_release_event;
543 icp->icp_set_sema0 = icp_mpr_set_sema0;
544 icp->icp_test_busy = icp_mpr_test_busy;
553 icp->icp_ih = pci_intr_establish_xname(pa->pa_pc, ih, IPL_BIO, icp_intr,
554 icp, device_xname(self));
555 if (icp->icp_ih == NULL) {
567 aprint_normal("ICP-Vortex RAID controller\n");
569 icp->icp_pci_bus = pa->pa_bus;
570 icp->icp_pci_device = pa->pa_device;
571 icp->icp_pci_device_id = PCI_PRODUCT(pa->pa_id);
572 icp->icp_pci_subdevice_id = pci_conf_read(pa->pa_pc, pa->pa_tag,
575 if (icp_init(icp, intrstr))
578 icp_pci_enable_intr(icp);
589 pci_intr_disestablish(pa->pa_pc, icp->icp_ih);
604 icp_pci_enable_intr(struct icp_softc *icp)
607 switch (ICP_CLASS(icp)) {
609 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_IRQDEL,
611 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh,
613 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_IRQEN,
618 bus_space_write_1(icp->icp_iot, icp->icp_ioh, ICP_EDOOR_REG,
620 bus_space_write_1(icp->icp_iot, icp->icp_ioh, ICP_CONTROL1, 3);
624 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh,
626 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_EDOOR_EN,
627 bus_space_read_1(icp->icp_dpmemt, icp->icp_dpmemh,
638 icp_pci_copy_cmd(struct icp_softc *icp, struct icp_ccb *ccb)
645 icp_pci_get_status(struct icp_softc *icp)
653 icp_pci_intr(struct icp_softc *icp, struct icp_intr_ctx *ctx)
660 icp_pci_release_event(struct icp_softc *icp,
668 icp_pci_set_sema0(struct icp_softc *icp)
671 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_SEMA0, 1);
675 icp_pci_test_busy(struct icp_softc *icp)
687 icp_pcinew_copy_cmd(struct icp_softc *icp,
695 icp_pcinew_get_status(struct icp_softc *icp)
703 icp_pcinew_intr(struct icp_softc *icp,
711 icp_pcinew_release_event(struct icp_softc *icp,
719 icp_pcinew_set_sema0(struct icp_softc *icp)
722 bus_space_write_1(icp->icp_iot, icp->icp_ioh, ICP_SEMA0_REG, 1);
726 icp_pcinew_test_busy(struct icp_softc *icp)
738 icp_mpr_copy_cmd(struct icp_softc *icp, struct icp_ccb *ic)
741 bus_space_write_2(icp->icp_dpmemt, icp->icp_dpmemh,
744 bus_space_write_2(icp->icp_dpmemt, icp->icp_dpmemh,
747 bus_space_write_region_4(icp->icp_dpmemt, icp->icp_dpmemh,
753 icp_mpr_get_status(struct icp_softc *icp)
756 return (bus_space_read_1(icp->icp_dpmemt, icp->icp_dpmemh,
761 icp_mpr_intr(struct icp_softc *icp, struct icp_intr_ctx *ctx)
766 ctx->cmd_status = bus_space_read_2(icp->icp_dpmemt,
767 icp->icp_dpmemh, ICP_MPR_STATUS);
771 ctx->service = bus_space_read_2(icp->icp_dpmemt, icp->icp_dpmemh,
773 ctx->info = bus_space_read_4(icp->icp_dpmemt, icp->icp_dpmemh,
775 ctx->info2 = bus_space_read_4(icp->icp_dpmemt, icp->icp_dpmemh,
780 (icp->icp_fw_vers & 0xff) >= 0x1a) {
783 icp->icp_evt.severity =
784 bus_space_read_1(icp->icp_dpmemt,
785 icp->icp_dpmemh, ICP_SEVERITY);
787 i < sizeof(icp->icp_evt.event_string); i++) {
788 icp->icp_evt.event_string[i] =
789 bus_space_read_1(icp->icp_dpmemt,
790 icp->icp_dpmemh, ICP_EVT_BUF + i);
791 if (icp->icp_evt.event_string[i] == '\0')
797 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_MPR_EDOOR,
799 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_MPR_SEMA1, 0);
803 icp_mpr_release_event(struct icp_softc *icp, struct icp_ccb *ic)
806 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_MPR_LDOOR, 1);
810 icp_mpr_set_sema0(struct icp_softc *icp)
813 bus_space_write_1(icp->icp_dpmemt, icp->icp_dpmemh, ICP_MPR_SEMA0, 1);
817 icp_mpr_test_busy(struct icp_softc *icp)
820 return (bus_space_read_1(icp->icp_dpmemt, icp->icp_dpmemh,