Lines Matching refs:csp
293 #define BSCBUS_TX_PENDING(csp) ((csp)->cmdp > (csp)->cmdbuf) argument
384 bscbus_trace(struct bscbus_channel_state *csp, char code, const char *caller, in bscbus_trace() argument
391 if (csp->ssp->debug & (1 << (code-'@'))) { in bscbus_trace()
402 (void) strlog(csp->ssp->majornum, csp->ssp->instance, in bscbus_trace()
458 bscbus_put_reg(struct bscbus_channel_state *csp, uint_t reg, uint8_t val) in bscbus_put_reg() argument
460 if (csp->ch_handle != NULL && !csp->xio_fault) { in bscbus_put_reg()
461 ddi_put8(csp->ch_handle, in bscbus_put_reg()
462 csp->ch_regs + reg, val); in bscbus_put_reg()
467 bscbus_get_reg(struct bscbus_channel_state *csp, uint_t reg) in bscbus_get_reg() argument
471 if (csp->ch_handle != NULL && !csp->xio_fault) in bscbus_get_reg()
472 val = ddi_get8(csp->ch_handle, in bscbus_get_reg()
473 csp->ch_regs + reg); in bscbus_get_reg()
481 bscbus_check_fault_status(struct bscbus_channel_state *csp) in bscbus_check_fault_status() argument
483 csp->xio_fault = in bscbus_check_fault_status()
484 ddi_check_acc_handle(csp->ch_handle) != DDI_SUCCESS; in bscbus_check_fault_status()
488 bscbus_faulty(struct bscbus_channel_state *csp) in bscbus_faulty() argument
490 if (!csp->xio_fault) in bscbus_faulty()
491 bscbus_check_fault_status(csp); in bscbus_faulty()
492 return (csp->xio_fault); in bscbus_faulty()
499 bscbus_pat_dog(struct bscbus_channel_state *csp, uint8_t val) in bscbus_pat_dog() argument
504 bscbus_trace(csp, 'W', "bscbus_pat_dog:", ""); in bscbus_pat_dog()
506 bscbus_cmd_log(csp, BSC_CMD_DOGPAT, 0, val); in bscbus_pat_dog()
507 status = bscbus_get_reg(csp, H8_STR); in bscbus_pat_dog()
509 if (csp->pat_retry_count > BSCBUS_PAT_RETRY_LIMIT) { in bscbus_pat_dog()
517 bscbus_put_reg(csp, H8_IDRC, val); in bscbus_pat_dog()
518 bscbus_trace(csp, 'W', "bscbus_pat_dog:", in bscbus_pat_dog()
524 csp->pat_fail_count++; in bscbus_pat_dog()
525 csp->pat_retry_count++; in bscbus_pat_dog()
527 bscbus_put_reg(csp, H8_IDRC, val); in bscbus_pat_dog()
528 bscbus_trace(csp, 'W', "bscbus_pat_dog:", in bscbus_pat_dog()
533 status = bscbus_get_reg(csp, H8_STR); in bscbus_pat_dog()
535 bscbus_put_reg(csp, H8_IDRC, val); in bscbus_pat_dog()
536 csp->pat_retry_count = 0; in bscbus_pat_dog()
611 bscbus_process_sending(struct bscbus_channel_state *csp, uint8_t status) in bscbus_process_sending() argument
617 ASSERT(BSCBUS_TX_PENDING(csp)); in bscbus_process_sending()
619 bscbus_put_reg(csp, H8_IDRD, *--csp->cmdp); in bscbus_process_sending()
620 bscbus_trace(csp, 'P', "bscbus_process_sending", in bscbus_process_sending()
622 csp->cmdstate, *csp->cmdp); in bscbus_process_sending()
623 if (!BSCBUS_TX_PENDING(csp)) { in bscbus_process_sending()
624 bscbus_cmd_log(csp, BSC_CMD_SENT, in bscbus_process_sending()
625 status, *csp->cmdp); in bscbus_process_sending()
627 bscbus_trace(csp, 'P', "bscbus_process_sending", in bscbus_process_sending()
629 csp->cmdstate = BSCBUS_CMDSTATE_WAITING; in bscbus_process_sending()
631 csp->deadline = ddi_get_lbolt() + in bscbus_process_sending()
635 bscbus_cmd_log(csp, BSC_CMD_SENDING, in bscbus_process_sending()
636 status, *csp->cmdp); in bscbus_process_sending()
637 csp->cmdstate = BSCBUS_CMDSTATE_PENDING; in bscbus_process_sending()
638 bscbus_trace(csp, 'P', "bscbus_process_sending", in bscbus_process_sending()
645 bscbus_process_clearing(struct bscbus_channel_state *csp, in bscbus_process_clearing() argument
655 bscbus_cmd_log(csp, BSC_CMD_CLEARED, status, data); in bscbus_process_clearing()
656 csp->cmdstate = BSCBUS_CMDSTATE_SENDING; in bscbus_process_clearing()
658 bscbus_trace(csp, 'P', "bscbus_process_clearing", in bscbus_process_clearing()
666 bscbus_process_sending(csp, status); in bscbus_process_clearing()
669 bscbus_cmd_log(csp, BSC_CMD_CLEARING, status, data); in bscbus_process_clearing()
675 bscbus_process_pending(struct bscbus_channel_state *csp, uint8_t status) in bscbus_process_pending() argument
679 bscbus_cmd_log(csp, BSC_CMD_PENDING, in bscbus_process_pending()
680 status, *csp->cmdp); in bscbus_process_pending()
681 bscbus_trace(csp, 'P', "bscbus_process_pending", in bscbus_process_pending()
683 csp->cmdstate = BSCBUS_CMDSTATE_SENDING; in bscbus_process_pending()
690 bscbus_process_sending(csp, status); in bscbus_process_pending()
695 bscbus_process_waiting(struct bscbus_channel_state *csp, in bscbus_process_waiting() argument
703 csp->reply[rcvd = csp->index] = data; in bscbus_process_waiting()
705 csp->index = rcvd; in bscbus_process_waiting()
707 bscbus_trace(csp, 'D', "bscbus_process_waiting", in bscbus_process_waiting()
710 csp->reply[0], csp->reply[1], in bscbus_process_waiting()
711 csp->reply[2], csp->reply[3], in bscbus_process_waiting()
712 csp->reply[4], csp->reply[5], in bscbus_process_waiting()
713 csp->reply[6], csp->reply[7]); in bscbus_process_waiting()
729 bscbus_cmd_log(csp, BSC_CMD_ERROR_OFLOW, status, data); in bscbus_process_waiting()
730 csp->index = 0; in bscbus_process_waiting()
731 csp->cmdstate = BSCBUS_CMDSTATE_ERROR; in bscbus_process_waiting()
732 csp->error = LOMBUS_ERR_OFLOW; in bscbus_process_waiting()
739 bscbus_cmd_log(csp, BSC_CMD_REPLY, status, data); in bscbus_process_waiting()
742 bscbus_cmd_log(csp, BSC_CMD_ERROR_STATUS, status, data); in bscbus_process_waiting()
744 csp->cmdstate = BSCBUS_CMDSTATE_ERROR; in bscbus_process_waiting()
745 csp->error = LOMBUS_ERR_BADSTATUS; in bscbus_process_waiting()
747 } else if ((data & BSCBUS_SEQ) != csp->sequence) { in bscbus_process_waiting()
749 bscbus_cmd_log(csp, BSC_CMD_ERROR_SEQ, status, data); in bscbus_process_waiting()
751 csp->cmdstate = BSCBUS_CMDSTATE_ERROR; in bscbus_process_waiting()
752 csp->error = LOMBUS_ERR_SEQUENCE; in bscbus_process_waiting()
765 bscbus_cmd_log(csp, BSC_CMD_COMPLETE, status, data); in bscbus_process_waiting()
766 csp->async = (data & BSCBUS_STATUS_ASYNC) ? 1 : 0; in bscbus_process_waiting()
768 tmp = ((data & BSCBUS_STATUS_MSB) ? 0x80 : 0) | csp->reply[0]; in bscbus_process_waiting()
770 csp->cmdstate = BSCBUS_CMDSTATE_ERROR; in bscbus_process_waiting()
771 csp->error = tmp; in bscbus_process_waiting()
773 csp->cmdstate = BSCBUS_CMDSTATE_READY; in bscbus_process_waiting()
774 csp->result = tmp; in bscbus_process_waiting()
789 bscbus_process(struct bscbus_channel_state *csp, in bscbus_process() argument
794 ASSERT(mutex_owned(csp->lo_mutex)); in bscbus_process()
797 bscbus_trace(csp, 'D', "bscbus_process", in bscbus_process()
799 csp->cmdstate, csp->error); in bscbus_process()
802 switch (csp->cmdstate) { in bscbus_process()
804 bscbus_process_clearing(csp, status, data); in bscbus_process()
807 bscbus_process_sending(csp, status); in bscbus_process()
810 bscbus_process_pending(csp, status); in bscbus_process()
813 ready = bscbus_process_waiting(csp, status, data); in bscbus_process()
828 ((ddi_get_lbolt() - csp->deadline) > 0) && in bscbus_process()
829 csp->cmdstate != BSCBUS_CMDSTATE_READY && in bscbus_process()
830 csp->cmdstate != BSCBUS_CMDSTATE_ERROR) { in bscbus_process()
831 bscbus_trace(csp, 'P', "bscbus_process", in bscbus_process()
833 csp->cmdstate, csp->error); in bscbus_process()
834 bscbus_cmd_log(csp, BSC_CMD_ERROR_TOUT, status, data); in bscbus_process()
835 if (csp->cmdstate == BSCBUS_CMDSTATE_CLEARING) { in bscbus_process()
837 csp->cmdstate = BSCBUS_CMDSTATE_SENDING; in bscbus_process()
839 csp->deadline += drv_usectohz(LOMBUS_CMD_TIMEOUT/1000); in bscbus_process()
840 } else if (csp->cmdstate != BSCBUS_CMDSTATE_IDLE) { in bscbus_process()
841 csp->cmdstate = BSCBUS_CMDSTATE_ERROR; in bscbus_process()
842 csp->error = LOMBUS_ERR_TIMEOUT; in bscbus_process()
848 bscbus_trace(csp, 'D', "bscbus_process", in bscbus_process()
850 data, csp->cmdstate, csp->error, ready); in bscbus_process()
853 cv_broadcast(csp->lo_cv); in bscbus_process()
859 struct bscbus_channel_state *csp = (void *)arg; in bscbus_hwintr() local
864 mutex_enter(csp->lo_mutex); in bscbus_hwintr()
872 status = bscbus_get_reg(csp, H8_STR); in bscbus_hwintr()
873 data = bscbus_get_reg(csp, H8_ODR); in bscbus_hwintr()
875 bscbus_cmd_log(csp, BSC_CMD_V1INTRUNCL, status, data); in bscbus_hwintr()
876 csp->unclaimed_count++; in bscbus_hwintr()
878 bscbus_cmd_log(csp, BSC_CMD_V1INTR, status, data); in bscbus_hwintr()
881 bscbus_process(csp, status, data); in bscbus_hwintr()
882 if (csp->interrupt_failed) { in bscbus_hwintr()
883 bscbus_trace(csp, 'I', "bscbus_hwintr:", in bscbus_hwintr()
884 "interrupt fault cleared channel %d", csp->chno); in bscbus_hwintr()
885 csp->interrupt_failed = B_FALSE; in bscbus_hwintr()
886 csp->poll_hz = drv_usectohz(BSCBUS_CMD_POLL / 1000); in bscbus_hwintr()
890 mutex_exit(csp->lo_mutex); in bscbus_hwintr()
895 bscbus_poll(struct bscbus_channel_state *csp) in bscbus_poll() argument
908 ASSERT(mutex_owned(csp->lo_mutex)); in bscbus_poll()
911 status = bscbus_get_reg(csp, H8_STR); in bscbus_poll()
914 data = bscbus_get_reg(csp, H8_ODR); in bscbus_poll()
915 bscbus_cmd_log(csp, BSC_CMD_PROCESS, status, data); in bscbus_poll()
917 bscbus_process(csp, status, data); in bscbus_poll()
928 struct bscbus_channel_state *csp; in bscbus_cmd() local
938 csp = HANDLE_PRIVATE(hdlp); in bscbus_cmd()
939 mutex_enter(csp->lo_mutex); in bscbus_cmd()
940 while (csp->cmdstate != BSCBUS_CMDSTATE_IDLE && !ddi_in_panic()) in bscbus_cmd()
941 cv_wait(csp->lo_cv, csp->lo_mutex); in bscbus_cmd()
943 csp->cmdstate = BSCBUS_CMDSTATE_BUSY; in bscbus_cmd()
944 csp->sequence = (csp->sequence + BSCBUS_SEQ_LSB) & BSCBUS_SEQ; in bscbus_cmd()
954 csp->cmdp = &csp->cmdbuf[0]; in bscbus_cmd()
955 *csp->cmdp++ = BSCBUS_CMD | csp->sequence | cmd; in bscbus_cmd()
958 *csp->cmdp++ = val & 0x7f; in bscbus_cmd()
960 csp->cmdbuf[0] |= BSCBUS_CMD_WMSB; in bscbus_cmd()
964 *csp->cmdp++ = BSCBUS_VREG_HI(vreg); in bscbus_cmd()
965 csp->cmdbuf[0] |= BSCBUS_CMD_XADDR; in bscbus_cmd()
967 *csp->cmdp++ = BSCBUS_VREG_LO(vreg); in bscbus_cmd()
981 bscbus_check_fault_status(csp); in bscbus_cmd()
989 csp->deadline = start + drv_usectohz(LOMBUS_CMD_TIMEOUT/1000); in bscbus_cmd()
990 csp->error = 0; in bscbus_cmd()
991 csp->index = 0; in bscbus_cmd()
992 csp->result = DUMMY_VALUE; in bscbus_cmd()
994 status = bscbus_get_reg(csp, H8_STR); in bscbus_cmd()
996 bscbus_cmd_log(csp, BSC_CMD_BUSY, status, 0xfd); in bscbus_cmd()
1001 csp->cmdstate = BSCBUS_CMDSTATE_CLEARING; in bscbus_cmd()
1002 bscbus_trace(csp, 'P', "bscbus_cmd", in bscbus_cmd()
1006 csp->cmdstate = BSCBUS_CMDSTATE_SENDING; in bscbus_cmd()
1007 bscbus_trace(csp, 'P', "bscbus_cmd", in bscbus_cmd()
1009 bscbus_poll(csp); in bscbus_cmd()
1012 csp->poll_hz = drv_usectohz( in bscbus_cmd()
1013 (csp->interrupt_failed ? in bscbus_cmd()
1016 while ((csp->cmdstate != BSCBUS_CMDSTATE_READY) && in bscbus_cmd()
1017 (csp->cmdstate != BSCBUS_CMDSTATE_ERROR)) { in bscbus_cmd()
1018 ASSERT(csp->cmdstate != BSCBUS_CMDSTATE_IDLE); in bscbus_cmd()
1020 if ((cv_reltimedwait(csp->lo_cv, csp->lo_mutex, in bscbus_cmd()
1021 csp->poll_hz, TR_CLOCK_TICK) == -1) && in bscbus_cmd()
1022 csp->cmdstate != BSCBUS_CMDSTATE_READY && in bscbus_cmd()
1023 csp->cmdstate != BSCBUS_CMDSTATE_ERROR) { in bscbus_cmd()
1024 if (!csp->interrupt_failed) { in bscbus_cmd()
1025 bscbus_trace(csp, 'I', "bscbus_cmd:", in bscbus_cmd()
1026 "interrupt_failed channel %d", csp->chno); in bscbus_cmd()
1027 csp->interrupt_failed = B_TRUE; in bscbus_cmd()
1028 csp->poll_hz = drv_usectohz( in bscbus_cmd()
1031 bscbus_poll(csp); in bscbus_cmd()
1038 val = csp->result; in bscbus_cmd()
1039 if (bscbus_faulty(csp)) { in bscbus_cmd()
1042 } else if (csp->cmdstate != BSCBUS_CMDSTATE_READY) { in bscbus_cmd()
1048 if (csp->error != 0) in bscbus_cmd()
1049 HANDLE_FAULT(hdlp) = csp->error; in bscbus_cmd()
1057 csp->index = 0; in bscbus_cmd()
1058 csp->cmdstate = BSCBUS_CMDSTATE_IDLE; in bscbus_cmd()
1059 cv_broadcast(csp->lo_cv); in bscbus_cmd()
1060 mutex_exit(csp->lo_mutex); in bscbus_cmd()
1179 struct bscbus_channel_state *csp; in bscbus_pat_put8() local
1195 csp = HANDLE_PRIVATE(hdlp); in bscbus_pat_put8()
1196 mutex_enter(csp->dog_mutex); in bscbus_pat_put8()
1197 bscbus_pat_dog(csp, val); in bscbus_pat_put8()
1198 mutex_exit(csp->dog_mutex); in bscbus_pat_put8()
1231 struct bscbus_channel_state *csp; in bscbus_event_get16() local
1251 csp = HANDLE_PRIVATE(hdlp); in bscbus_event_get16()
1252 return (csp->async); in bscbus_event_get16()
1311 struct bscbus_channel_state *csp; in bscbus_meta_get32() local
1349 csp = HANDLE_PRIVATE(hdlp); in bscbus_meta_get32()
1350 return (csp->async); in bscbus_meta_get32()
1585 bscbus_hw_reset(struct bscbus_channel_state *csp) in bscbus_hw_reset() argument
1590 if (csp->map_count == 0) { in bscbus_hw_reset()
1595 bscbus_trace(csp, 'R', "bscbus_hw_reset", in bscbus_hw_reset()
1596 "resetting channel %d", csp->chno); in bscbus_hw_reset()
1598 status = bscbus_get_reg(csp, H8_STR); in bscbus_hw_reset()
1606 bscbus_cmd_log(csp, BSC_CMD_BUSY, status, 0); in bscbus_hw_reset()
1607 bscbus_trace(csp, 'R', "bscbus_hw_reset", in bscbus_hw_reset()
1616 status = bscbus_get_reg(csp, H8_STR); in bscbus_hw_reset()
1618 bscbus_trace(csp, 'R', "bscbus_hw_reset", in bscbus_hw_reset()
1619 "clearing busy status for channel %d", csp->chno); in bscbus_hw_reset()
1625 (void) bscbus_get_reg(csp, H8_ODR); in bscbus_hw_reset()
1636 status = bscbus_get_reg(csp, H8_STR); in bscbus_hw_reset()
1649 (void) bscbus_get_reg(csp, H8_ODR); in bscbus_hw_reset()
1717 bscbus_claim_channel(struct bscbus_channel_state *csp, boolean_t map_dog) in bscbus_claim_channel() argument
1721 mutex_enter(csp->ssp->ch_mutex); in bscbus_claim_channel()
1722 csp->map_count++; in bscbus_claim_channel()
1723 bscbus_trace(csp, 'C', "bscbus_claim_channel", in bscbus_claim_channel()
1725 csp->chno, csp->map_count); in bscbus_claim_channel()
1727 if (csp->map_count == 1) { in bscbus_claim_channel()
1729 bscbus_trace(csp, 'C', "bscbus_claim_channel", in bscbus_claim_channel()
1731 csp->chno, csp->map_count); in bscbus_claim_channel()
1733 mutex_init(csp->dog_mutex, NULL, MUTEX_DRIVER, in bscbus_claim_channel()
1735 csp->map_dog = map_dog; in bscbus_claim_channel()
1736 csp->interrupt_failed = B_FALSE; in bscbus_claim_channel()
1737 csp->cmdstate = BSCBUS_CMDSTATE_IDLE; in bscbus_claim_channel()
1738 csp->pat_retry_count = 0; in bscbus_claim_channel()
1739 csp->pat_fail_count = 0; in bscbus_claim_channel()
1742 if (csp->ssp->per_channel_regs == B_TRUE) { in bscbus_claim_channel()
1746 err = ddi_regs_map_setup(csp->ssp->dip, csp->chno, in bscbus_claim_channel()
1753 csp->ch_handle = h; in bscbus_claim_channel()
1754 csp->ch_regs = (void *)p; in bscbus_claim_channel()
1756 bscbus_trace(csp, 'C', "bscbus_claim_channel", in bscbus_claim_channel()
1758 csp->chno, h, p); in bscbus_claim_channel()
1764 csp->ch_handle = csp->ssp->h8_handle; in bscbus_claim_channel()
1765 csp->ch_regs = in bscbus_claim_channel()
1766 csp->ssp->h8_regs + in bscbus_claim_channel()
1767 BSCBUS_CHANNEL_TO_OFFSET(csp->chno); in bscbus_claim_channel()
1771 bscbus_hw_reset(csp); in bscbus_claim_channel()
1773 if (csp->map_dog == 1) { in bscbus_claim_channel()
1779 mutex_init(csp->lo_mutex, NULL, in bscbus_claim_channel()
1781 cv_init(csp->lo_cv, NULL, in bscbus_claim_channel()
1783 csp->unclaimed_count = 0; in bscbus_claim_channel()
1792 err = ddi_dev_nintrs(csp->ssp->dip, &ninterrupts); in bscbus_claim_channel()
1798 if (ninterrupts <= csp->chno) { in bscbus_claim_channel()
1801 "bscbus channel %d", csp->chno); in bscbus_claim_channel()
1805 if (ddi_intr_hilevel(csp->ssp->dip, csp->chno) != 0) { in bscbus_claim_channel()
1811 err = ddi_get_iblock_cookie(csp->ssp->dip, in bscbus_claim_channel()
1812 csp->chno, &csp->lo_iblk); in bscbus_claim_channel()
1817 mutex_init(csp->lo_mutex, NULL, in bscbus_claim_channel()
1818 MUTEX_DRIVER, csp->lo_iblk); in bscbus_claim_channel()
1819 cv_init(csp->lo_cv, NULL, in bscbus_claim_channel()
1821 csp->unclaimed_count = 0; in bscbus_claim_channel()
1823 err = ddi_add_intr(csp->ssp->dip, csp->chno, in bscbus_claim_channel()
1824 &csp->lo_iblk, NULL, in bscbus_claim_channel()
1825 bscbus_hwintr, (caddr_t)csp); in bscbus_claim_channel()
1827 cv_destroy(csp->lo_cv); in bscbus_claim_channel()
1828 mutex_destroy(csp->lo_mutex); in bscbus_claim_channel()
1837 } else if (csp->map_dog != map_dog) { in bscbus_claim_channel()
1838 bscbus_trace(csp, 'C', "bscbus_claim_channel", in bscbus_claim_channel()
1840 csp->map_dog, map_dog); in bscbus_claim_channel()
1843 mutex_exit(csp->ssp->ch_mutex); in bscbus_claim_channel()
1848 if (csp->ssp->per_channel_regs == B_TRUE) { in bscbus_claim_channel()
1849 ddi_regs_map_free(&csp->ch_handle); in bscbus_claim_channel()
1851 csp->ch_handle = NULL; in bscbus_claim_channel()
1852 csp->ch_regs = (void *)NULL; in bscbus_claim_channel()
1854 csp->map_count--; in bscbus_claim_channel()
1855 mutex_exit(csp->ssp->ch_mutex); in bscbus_claim_channel()
1860 bscbus_release_channel(struct bscbus_channel_state *csp) in bscbus_release_channel() argument
1862 mutex_enter(csp->ssp->ch_mutex); in bscbus_release_channel()
1863 if (csp->map_count == 1) { in bscbus_release_channel()
1865 bscbus_trace(csp, 'C', "bscbus_release_channel", in bscbus_release_channel()
1867 csp->chno, csp->map_count); in bscbus_release_channel()
1869 if (csp->map_dog == 0) { in bscbus_release_channel()
1870 ASSERT(!ddi_intr_hilevel(csp->ssp->dip, csp->chno)); in bscbus_release_channel()
1871 ddi_remove_intr(csp->ssp->dip, csp->chno, csp->lo_iblk); in bscbus_release_channel()
1873 cv_destroy(csp->lo_cv); in bscbus_release_channel()
1874 mutex_destroy(csp->lo_mutex); in bscbus_release_channel()
1875 mutex_destroy(csp->dog_mutex); in bscbus_release_channel()
1876 bscbus_hw_reset(csp); in bscbus_release_channel()
1879 if (csp->ssp->per_channel_regs == B_TRUE) { in bscbus_release_channel()
1880 ddi_regs_map_free(&csp->ch_handle); in bscbus_release_channel()
1882 csp->ch_handle = NULL; in bscbus_release_channel()
1883 csp->ch_regs = (void *)NULL; in bscbus_release_channel()
1885 csp->map_count--; in bscbus_release_channel()
1886 bscbus_trace(csp, 'C', "bscbus_release_channel", in bscbus_release_channel()
1888 csp->chno, csp->map_count); in bscbus_release_channel()
1889 mutex_exit(csp->ssp->ch_mutex); in bscbus_release_channel()
1981 bscbus_map_handle(struct bscbus_channel_state *csp, ddi_map_op_t op, in bscbus_map_handle() argument
1990 if (bscbus_claim_channel(csp, in bscbus_map_handle()
2013 hdlp->ah_bus_private = csp; in bscbus_map_handle()
2019 bscbus_release_channel(csp); in bscbus_map_handle()
2027 bscbus_map_handle(struct bscbus_channel_state *csp, ddi_map_op_t op, in bscbus_map_handle() argument
2038 if (bscbus_claim_channel(csp, in bscbus_map_handle()
2121 hdlp->ah_bus_private = csp; in bscbus_map_handle()
2127 bscbus_release_channel(csp); in bscbus_map_handle()
2422 struct bscbus_channel_state *csp = &ssp->channel[chno]; in bscbus_attach() local
2429 csp->ssp = ssp; in bscbus_attach()
2430 csp->chno = chno; in bscbus_attach()
2431 csp->map_count = 0; in bscbus_attach()
2432 csp->map_dog = B_FALSE; in bscbus_attach()
2610 void bscbus_cmd_log(struct bscbus_channel_state *csp, bsc_cmd_stamp_t cat, in bscbus_cmd_log() argument
2617 if ((csp) == NULL) in bscbus_cmd_log()
2619 if ((ssp = (csp)->ssp) == NULL) in bscbus_cmd_log()
2630 logp->bcl_chno = csp->chno; in bscbus_cmd_log()
2631 logp->bcl_cmdstate = csp->cmdstate; in bscbus_cmd_log()