Lines Matching refs:serial
211 struct ata_serialize *serial; in ata_serialize() local
216 serial = kmalloc(sizeof(struct ata_serialize), in ata_serialize()
218 lockinit(&serial->locked_mtx, "ataserialize", 0, 0); in ata_serialize()
219 serial->locked_ch = -1; in ata_serialize()
220 serial->restart_ch = -1; in ata_serialize()
221 device_set_ivars(ctlr->dev, serial); in ata_serialize()
225 serial = device_get_ivars(ctlr->dev); in ata_serialize()
227 lockmgr(&serial->locked_mtx, LK_EXCLUSIVE); in ata_serialize()
230 if (serial->locked_ch == -1) in ata_serialize()
231 serial->locked_ch = ch->unit; in ata_serialize()
232 if (serial->locked_ch != ch->unit) in ata_serialize()
233 serial->restart_ch = ch->unit; in ata_serialize()
237 if (serial->locked_ch == ch->unit) { in ata_serialize()
238 serial->locked_ch = -1; in ata_serialize()
239 if (serial->restart_ch != -1) { in ata_serialize()
240 if ((ch = ctlr->interrupt[serial->restart_ch].argument)) { in ata_serialize()
241 serial->restart_ch = -1; in ata_serialize()
242 lockmgr(&serial->locked_mtx, LK_RELEASE); in ata_serialize()
253 res = serial->locked_ch; in ata_serialize()
254 lockmgr(&serial->locked_mtx, LK_RELEASE); in ata_serialize()