Lines Matching refs:ssp

247 	struct bscbus_state	*ssp;  member
391 if (csp->ssp->debug & (1 << (code-'@'))) { in bscbus_trace()
402 (void) strlog(csp->ssp->majornum, csp->ssp->instance, in bscbus_trace()
413 struct bscbus_state *ssp = NULL; in bscbus_getstate() local
436 ssp = ddi_get_soft_state(bscbus_statep, instance); in bscbus_getstate()
437 if (ssp != NULL) { in bscbus_getstate()
438 sdip = ssp->dip; in bscbus_getstate()
440 ssp = NULL; in bscbus_getstate()
446 ssp = NULL; in bscbus_getstate()
450 return (ssp); in bscbus_getstate()
1657 bscbus_offline(struct bscbus_state *ssp) in bscbus_offline() argument
1659 if (ssp->h8_handle != NULL) in bscbus_offline()
1660 ddi_regs_map_free(&ssp->h8_handle); in bscbus_offline()
1661 ssp->h8_handle = NULL; in bscbus_offline()
1662 ssp->h8_regs = NULL; in bscbus_offline()
1666 bscbus_online(struct bscbus_state *ssp) in bscbus_online() argument
1673 ssp->h8_handle = NULL; in bscbus_online()
1674 ssp->h8_regs = (void *)NULL; in bscbus_online()
1675 ssp->per_channel_regs = B_FALSE; in bscbus_online()
1677 if (ddi_dev_nregs(ssp->dip, &nregs) != DDI_SUCCESS) in bscbus_online()
1685 err = ddi_regs_map_setup(ssp->dip, 0, &p, 0, 0, in bscbus_online()
1690 ssp->h8_handle = h; in bscbus_online()
1691 ssp->h8_regs = (void *)p; in bscbus_online()
1710 ssp->per_channel_regs = B_TRUE; in bscbus_online()
1721 mutex_enter(csp->ssp->ch_mutex); 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()
1764 csp->ch_handle = csp->ssp->h8_handle; in bscbus_claim_channel()
1766 csp->ssp->h8_regs + in bscbus_claim_channel()
1792 err = ddi_dev_nintrs(csp->ssp->dip, &ninterrupts); 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()
1823 err = ddi_add_intr(csp->ssp->dip, csp->chno, 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()
1855 mutex_exit(csp->ssp->ch_mutex); in bscbus_claim_channel()
1862 mutex_enter(csp->ssp->ch_mutex); 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()
1879 if (csp->ssp->per_channel_regs == B_TRUE) { in bscbus_release_channel()
1889 mutex_exit(csp->ssp->ch_mutex); in bscbus_release_channel()
2139 struct bscbus_state *ssp; in bscbus_map() local
2142 if ((ssp = bscbus_getstate(dip, -1, "bscbus_map")) == NULL) in bscbus_map()
2172 &ssp->channel[LOMBUS_SPACE_TO_CHANNEL(rsp->lombus_space)], in bscbus_map()
2336 bscbus_unattach(struct bscbus_state *ssp, int instance) in bscbus_unattach() argument
2340 if (ssp != NULL) { in bscbus_unattach()
2342 ASSERT(ssp->channel[chno].map_count == 0); in bscbus_unattach()
2344 bscbus_offline(ssp); in bscbus_unattach()
2345 ddi_set_driver_private(ssp->dip, NULL); in bscbus_unattach()
2346 mutex_destroy(ssp->ch_mutex); in bscbus_unattach()
2349 if (ssp->cmd_log_size != 0) { in bscbus_unattach()
2350 kmem_free(ssp->cmd_log, in bscbus_unattach()
2351 ssp->cmd_log_size * sizeof (bsc_cmd_log_t)); in bscbus_unattach()
2367 struct bscbus_state *ssp = NULL; in bscbus_attach() local
2386 if ((ssp = bscbus_getstate(dip, instance, "bscbus_attach")) == NULL) in bscbus_attach()
2387 return (bscbus_unattach(ssp, instance)); in bscbus_attach()
2388 ddi_set_driver_private(dip, ssp); in bscbus_attach()
2393 ssp->dip = dip; in bscbus_attach()
2394 ssp->majornum = ddi_driver_major(dip); in bscbus_attach()
2395 ssp->instance = instance; in bscbus_attach()
2400 ssp->debug = ddi_prop_get_int(DDI_DEV_T_ANY, dip, in bscbus_attach()
2403 mutex_init(ssp->ch_mutex, NULL, MUTEX_DRIVER, NULL); in bscbus_attach()
2406 ssp->cmd_log_size = bscbus_cmd_log_size; in bscbus_attach()
2407 if (ssp->cmd_log_size != 0) { in bscbus_attach()
2408 ssp->cmd_log_idx = 0; in bscbus_attach()
2409 ssp->cmd_log = kmem_zalloc(ssp->cmd_log_size * in bscbus_attach()
2417 err = bscbus_online(ssp); in bscbus_attach()
2419 return (bscbus_unattach(ssp, instance)); in bscbus_attach()
2422 struct bscbus_channel_state *csp = &ssp->channel[chno]; in bscbus_attach()
2429 csp->ssp = ssp; in bscbus_attach()
2445 struct bscbus_state *ssp; in bscbus_detach() local
2457 if ((ssp = bscbus_getstate(dip, instance, "bscbus_detach")) == NULL) in bscbus_detach()
2460 (void) bscbus_unattach(ssp, instance); in bscbus_detach()
2467 struct bscbus_state *ssp; in bscbus_reset() local
2472 if ((ssp = bscbus_getstate(dip, -1, "bscbus_reset")) == NULL) in bscbus_reset()
2476 bscbus_hw_reset(&ssp->channel[chno]); in bscbus_reset()
2615 struct bscbus_state *ssp; in bscbus_cmd_log() local
2619 if ((ssp = (csp)->ssp) == NULL) in bscbus_cmd_log()
2621 if (ssp->cmd_log_size == 0) in bscbus_cmd_log()
2625 idx = atomic_inc_32_nv(&ssp->cmd_log_idx); in bscbus_cmd_log()
2626 logp = &ssp->cmd_log[idx % ssp->cmd_log_size]; in bscbus_cmd_log()