Lines Matching refs:isp_osinfo
93 device_t self = isp->isp_osinfo.dev;
98 isp->isp_osinfo.adapter.adapt_dev = self;
99 isp->isp_osinfo.adapter.adapt_openings = isp->isp_maxcmds;
100 isp->isp_osinfo.loop_down_limit = 300;
106 isp->isp_osinfo.adapter.adapt_max_periph = uimin(isp->isp_maxcmds, 255);
107 isp->isp_osinfo.adapter.adapt_ioctl = ispioctl;
108 isp->isp_osinfo.adapter.adapt_request = isprequest;
110 isp->isp_osinfo.adapter.adapt_minphys = ispminphys_1020;
112 isp->isp_osinfo.adapter.adapt_minphys = ispminphys;
115 callout_init(&isp->isp_osinfo.gdt, 0);
116 callout_setfunc(&isp->isp_osinfo.gdt, isp_gdt, isp);
117 callout_init(&isp->isp_osinfo.ldt, 0);
118 callout_setfunc(&isp->isp_osinfo.ldt, isp_ldt, isp);
121 &isp->isp_osinfo.thread, "%s:fc_thrd",
129 for (i = 0; i != isp->isp_osinfo.adapter.adapt_nchannels; i++) {
130 isp->isp_osinfo.chan[i].chan_adapter =
131 &isp->isp_osinfo.adapter;
132 isp->isp_osinfo.chan[i].chan_bustype = &scsi_bustype;
133 isp->isp_osinfo.chan[i].chan_channel = i;
138 isp->isp_osinfo.chan[i].chan_nluns = uimin(isp->isp_maxluns, 8);
140 isp->isp_osinfo.chan[i].chan_ntargets = MAX_FC_TARG;
142 isp->isp_osinfo.chan[i].chan_ntargets = 256;
144 isp->isp_osinfo.chan[i].chan_id = MAX_FC_TARG;
146 isp->isp_osinfo.chan[i].chan_ntargets = MAX_TARGETS;
147 isp->isp_osinfo.chan[i].chan_id =
167 isp->isp_osinfo.mbox_sleep_ok = 1;
173 callout_schedule(&isp->isp_osinfo.ldt, isp_quickboot_time * hz);
179 for (i = 0; i < isp->isp_osinfo.adapter.adapt_nchannels; i++) {
180 config_found(self, &isp->isp_osinfo.chan[i], scsiprint,
558 isp->isp_osinfo.thread == NULL) {
559 ombi = isp->isp_osinfo.mbox_sleep_ok != 0;
563 isp->isp_osinfo.mbox_sleep_ok = 0;
566 if (isp->isp_osinfo.loop_checked == 0) {
568 isp->isp_osinfo.loop_checked = 1;
575 isp->isp_osinfo.mbox_sleep_ok = ombi;
588 (isp->isp_osinfo.blocked || isp->isp_osinfo.paused);
589 isp->isp_osinfo.blocked = isp->isp_osinfo.paused = 0;
593 scsipi_channel_thaw(&isp->isp_osinfo.chan[chan],
598 isp->isp_osinfo.mbox_sleep_ok = ombi;
602 if (isp->isp_osinfo.paused) {
609 if (isp->isp_osinfo.blocked) {
624 ombi = isp->isp_osinfo.mbox_sleep_ok;
625 isp->isp_osinfo.mbox_sleep_ok = 0;
630 if (IS_FC(isp) && isp->isp_osinfo.wwns[XS_TGT(xs)] == 0) {
638 isp->isp_osinfo.wwns[XS_TGT(xs)] =
644 isp->isp_osinfo.mbox_sleep_ok = ombi;
650 isp->isp_osinfo.paused = 1;
655 scsipi_channel_freeze(&isp->isp_osinfo.chan[chan], 1);
670 lim = isp->isp_osinfo.loop_down_limit;
672 if (isp->isp_osinfo.loop_down_time >= lim) {
675 isp->isp_osinfo.loop_down_time, lim);
680 if (isp->isp_osinfo.blocked == 0) {
681 isp->isp_osinfo.blocked = 1;
682 scsipi_channel_freeze(&isp->isp_osinfo.chan[chan], 1);
800 if (isp->isp_osinfo.paused) {
802 isp->isp_osinfo.paused = 0;
806 scsipi_channel_timed_thaw(&isp->isp_osinfo.chan[i]);
829 sok = isp->isp_osinfo.mbox_sleep_ok;
830 isp->isp_osinfo.mbox_sleep_ok = 0;
906 isp->isp_osinfo.mbox_sleep_ok = sok;
955 callout_schedule(&isp->isp_osinfo.gdt, hz);
957 isp->isp_osinfo.gdt_running = 0;
1024 isp->isp_osinfo.loop_down_time = isp->isp_osinfo.loop_down_limit+1;
1025 wakeup(&isp->isp_osinfo.thread);
1053 while (isp->isp_osinfo.thread != NULL) {
1057 sok = isp->isp_osinfo.mbox_sleep_ok;
1058 isp->isp_osinfo.mbox_sleep_ok = 1;
1060 isp->isp_osinfo.mbox_sleep_ok = sok;
1065 isp->isp_osinfo.loop_down_time += slp;
1070 isp->isp_osinfo.loop_down_time);
1074 lb, isp->isp_osinfo.loop_down_time);
1087 lim = isp->isp_osinfo.loop_down_limit;
1089 if (isp->isp_osinfo.loop_down_time >= lim) {
1096 isp->isp_osinfo.blocked = 1;
1098 } else if (isp->isp_osinfo.loop_down_time < 10) {
1100 } else if (isp->isp_osinfo.loop_down_time < 30) {
1102 } else if (isp->isp_osinfo.loop_down_time < 60) {
1104 } else if (isp->isp_osinfo.loop_down_time < 120) {
1113 isp->isp_osinfo.loop_down_time = 0;
1117 scsipi_channel_thaw(&isp->isp_osinfo.chan[chan], 1);
1126 if (isp->isp_osinfo.blocked) {
1127 isp->isp_osinfo.blocked = 0;
1130 scsipi_channel_thaw(&isp->isp_osinfo.chan[chan], 1);
1133 tsleep(&isp->isp_osinfo.thread, PRIBIO, "ispf", slp * hz);
1153 wakeup(&isp->isp_osinfo.thread);
1214 scsipi_async_event(&isp->isp_osinfo.chan[bus],
1224 scsipi_async_event(&isp->isp_osinfo.chan[bus],
1249 if (isp->isp_osinfo.mbox_sleep_ok &&
1250 isp->isp_osinfo.blocked == 0 &&
1251 isp->isp_osinfo.thread) {
1252 isp->isp_osinfo.blocked = 1;
1255 scsipi_channel_freeze(&isp->isp_osinfo.chan[bus], 1);
1256 if (callout_pending(&isp->isp_osinfo.ldt) == 0) {
1257 callout_schedule(&isp->isp_osinfo.ldt,
1258 isp->isp_osinfo.loop_down_limit * hz);
1409 lp->new_reserved = isp->isp_osinfo.gone_device_time;
1411 if (isp->isp_osinfo.gdt_running == 0) {
1412 isp->isp_osinfo.gdt_running = 1;
1415 callout_schedule(&isp->isp_osinfo.gdt, hz);
1454 if (callout_pending(&isp->isp_osinfo.ldt)) {
1455 callout_stop(&isp->isp_osinfo.ldt);
1467 if (isp->isp_osinfo.blocked == 0) {
1468 isp->isp_osinfo.blocked = 1;
1469 if (isp->isp_osinfo.thread) {
1472 scsipi_channel_freeze(&isp->isp_osinfo.chan[bus], 1);
1479 if (isp->isp_osinfo.thread) {
1480 wakeup(&isp->isp_osinfo.thread);
1499 if (isp->isp_osinfo.blocked == 0) {
1500 isp->isp_osinfo.blocked = 1;
1503 scsipi_channel_freeze(&isp->isp_osinfo.chan[bus], 1);
1506 mbox1 = isp->isp_osinfo.mbox_sleep_ok;
1507 isp->isp_osinfo.mbox_sleep_ok = 0;
1509 isp->isp_osinfo.mbox_sleep_ok = mbox1;
1525 printf("%s: ", device_xname(isp->isp_osinfo.dev));
1550 if (isp->isp_osinfo.islocked++ == 0) {
1551 isp->isp_osinfo.splsaved = s;
1560 if (isp->isp_osinfo.islocked-- <= 1) {
1561 isp->isp_osinfo.islocked = 0;
1562 splx(isp->isp_osinfo.splsaved);
1581 if (isp->isp_osinfo.mboxbsy) {
1584 isp->isp_osinfo.mboxcmd_done = 0;
1585 isp->isp_osinfo.mboxbsy = 1;
1603 if (isp->isp_osinfo.mbox_sleep_ok) {
1619 isp->isp_osinfo.mbox_sleep_ok = 0;
1620 isp->isp_osinfo.mbox_sleeping = 1;
1622 isp->isp_osinfo.mbox_sleeping = 0;
1623 isp->isp_osinfo.mbox_sleep_ok = 1;
1629 if (isp->isp_osinfo.mboxcmd_done) {
1634 if (isp->isp_osinfo.mboxcmd_done) {
1640 if (isp->isp_osinfo.mboxcmd_done) {
1645 if (isp->isp_osinfo.mboxcmd_done == 0) {
1652 isp->isp_osinfo.mbox_sleep_ok? "Interrupting" : "Polled",
1656 isp->isp_osinfo.mboxcmd_done = 1;
1663 if (isp->isp_osinfo.mbox_sleeping) {
1666 isp->isp_osinfo.mboxcmd_done = 1;
1672 isp->isp_osinfo.mboxbsy = 0;