Home | History | Annotate | Download | only in mscp

Lines Matching defs:mi

104 mscp_getcp(struct mscp_softc *mi, int canwait)
106 #define mri (&mi->mi_cmd)
116 if (mi->mi_credits <= MSCP_MINCREDITS) {
121 mi->mi_wantcredits = 1;
122 (void) tsleep(&mi->mi_wantcredits, PCMD, "mscpwcrd", 0);
131 mi->mi_wantcmd = 1;
132 (void) tsleep(&mi->mi_wantcmd, PCMD, "mscpwcmd", 0);
135 mi->mi_credits--;
166 mscp_dorsp(struct mscp_softc *mi)
169 struct mscp_device *me = mi->mi_me;
170 struct mscp_ctlr *mc = mi->mi_mc;
179 nextrsp = mi->mi_rsp.mri_next;
181 if (mi->mi_rsp.mri_desc[nextrsp] & MSCP_OWN) {
187 mi->mi_rsp.mri_next = nextrsp;
188 if (mi->mi_wantcredits && mi->mi_credits > MSCP_MINCREDITS) {
189 mi->mi_wantcredits = 0;
190 wakeup((void *) &mi->mi_wantcredits);
195 mp = &mi->mi_rsp.mri_ring[nextrsp];
196 mi->mi_credits += MSCP_CREDITS(mp->mscp_msgtc);
203 mi->mi_flags |= MSC_READY;
206 device_xname(mi->mi_dev), mp->mscp_status);
216 if (mp->mscp_unit >= mi->mi_driveno) { /* Must expand drive table */
221 if (mi->mi_driveno) {
222 memcpy(tmp, mi->mi_dp, mi->mi_driveno * sizeof(tmp[0]));
223 free(mi->mi_dp, M_DEVBUF);
225 mi->mi_driveno = tmpno;
226 mi->mi_dp = tmp;
229 drive = mi->mi_dp[mp->mscp_unit];
237 (*me->me_dgram)(drive, mp, mi);
246 device_xname(mi->mi_dev), mp->mscp_unit,
304 mutex_spin_enter(&mi->mi_mtx);
306 mw = SLIST_FIRST(&mi->mi_freelist);
308 aprint_error_dev(mi->mi_dev,
310 mutex_spin_exit(&mi->mi_mtx);
312 SLIST_REMOVE_HEAD(&mi->mi_freelist, mw_list);
313 mutex_spin_exit(&mi->mi_mtx);
315 mw->mw_mi = mi;
318 workqueue_enqueue(mi->mi_wq,
379 mxi = &mi->mi_xi[mp->mscp_cmdref];
421 bus_dmamap_unload(mi->mi_dmat, mxi->mxi_dmam);
423 (*mc->mc_ctlrdone)(device_parent(mi->mi_dev));
427 mi->mi_mxiuse |= (1 << mp->mscp_cmdref);
471 mi->mi_rsp.mri_desc[nextrsp] |= MSCP_OWN;
472 nextrsp = (nextrsp + 1) % mi->mi_rsp.mri_size;
482 mscp_requeue(struct mscp_softc *mi)
498 struct mscp_softc *mi = mw->mw_mi;
503 struct mscp_device *me = mi->mi_me;
512 da.da_typ = mi->mi_type;
514 config_found(mi->mi_dev, (void *)&da, mscp_print, CFARGS_NONE);
516 mutex_spin_enter(&mi->mi_mtx);
518 mutex_spin_exit(&mi->mi_mtx);