Lines Matching defs:ssp

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