Lines Matching refs:SCpnt

560 static int aha1542_queuecommand_lck(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
564 unchar *cmd = (unchar *) SCpnt->cmnd;
565 unchar target = SCpnt->device->id;
566 unchar lun = SCpnt->device->lun;
568 int bufflen = scsi_bufflen(SCpnt);
575 mb = HOSTDATA(SCpnt->device->host)->mb;
576 ccb = HOSTDATA(SCpnt->device->host)->ccb;
579 SCpnt->result = DID_TIME_OUT << 16;
580 done(SCpnt); return 0;
593 SCpnt->result = 0;
594 done(SCpnt);
610 for (i = 0; i < SCpnt->cmd_len; i++)
620 mbo = HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used + 1;
625 if (mb[mbo].status == 0 && HOSTDATA(SCpnt->device->host)->SCint[mbo] == NULL)
630 } while (mbo != HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used);
632 if (mb[mbo].status || HOSTDATA(SCpnt->device->host)->SCint[mbo])
635 HOSTDATA(SCpnt->device->host)->SCint[mbo] = SCpnt; /* This will effectively prevent someone else from
638 HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used = mbo;
649 ccb[mbo].cdblen = SCpnt->cmd_len;
665 int i, sg_count = scsi_sg_count(SCpnt);
667 SCpnt->host_scribble = kmalloc(sizeof(*cptr)*sg_count,
669 cptr = (struct chain *) SCpnt->host_scribble;
672 HOSTDATA(SCpnt->device->host)->SCint[mbo] = NULL;
675 scsi_for_each_sg(SCpnt, sg, sg_count, i) {
689 SCpnt->host_scribble = NULL;
710 SCpnt->scsi_done = done;
712 aha1542_out(SCpnt->device->host->io_port, &ahacmd, 1); /* start scsi command */
1288 static int aha1542_dev_reset(Scsi_Cmnd * SCpnt)
1292 unchar target = SCpnt->device->id;
1293 unchar lun = SCpnt->device->lun;
1298 ccb = HOSTDATA(SCpnt->device->host)->ccb;
1299 mb = HOSTDATA(SCpnt->device->host)->mb;
1302 mbo = HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used + 1;
1307 if (mb[mbo].status == 0 && HOSTDATA(SCpnt->device->host)->SCint[mbo] == NULL)
1312 } while (mbo != HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used);
1314 if (mb[mbo].status || HOSTDATA(SCpnt->device->host)->SCint[mbo])
1317 HOSTDATA(SCpnt->device->host)->SCint[mbo] = SCpnt; /* This will effectively
1321 HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used = mbo;
1339 aha1542_out(SCpnt->device->host->io_port, &ahacmd, 1);
1341 scmd_printk(KERN_WARNING, SCpnt,
1357 printk(KERN_WARNING "Sent BUS DEVICE RESET to target %d\n", SCpnt->target);
1364 if (HOSTDATA(SCpnt->host)->SCint[i] &&
1365 HOSTDATA(SCpnt->host)->SCint[i]->target == SCpnt->target) {
1367 SCtmp = HOSTDATA(SCpnt->host)->SCint[i];
1370 HOSTDATA(SCpnt->host)->SCint[i] = NULL;
1371 HOSTDATA(SCpnt->host)->mb[i].status = 0;
1380 static int aha1542_bus_reset(Scsi_Cmnd * SCpnt)
1390 outb(SCRST, CONTROL(SCpnt->device->host->io_port));
1401 spin_lock_irq(SCpnt->device->host->host_lock);
1403 WAIT(STATUS(SCpnt->device->host->io_port),
1412 printk(KERN_WARNING "Sent BUS RESET to scsi host %d\n", SCpnt->device->host->host_no);
1415 if (HOSTDATA(SCpnt->device->host)->SCint[i] != NULL) {
1417 SCtmp = HOSTDATA(SCpnt->device->host)->SCint[i];
1431 HOSTDATA(SCpnt->device->host)->SCint[i] = NULL;
1432 HOSTDATA(SCpnt->device->host)->mb[i].status = 0;
1436 spin_unlock_irq(SCpnt->device->host->host_lock);
1440 spin_unlock_irq(SCpnt->device->host->host_lock);
1444 static int aha1542_host_reset(Scsi_Cmnd * SCpnt)
1454 outb(HRST | SCRST, CONTROL(SCpnt->device->host->io_port));
1464 spin_lock_irq(SCpnt->device->host->host_lock);
1466 WAIT(STATUS(SCpnt->device->host->io_port),
1473 setup_mailboxes(SCpnt->device->host->io_port, SCpnt->device->host);
1481 printk(KERN_WARNING "Sent BUS RESET to scsi host %d\n", SCpnt->device->host->host_no);
1484 if (HOSTDATA(SCpnt->device->host)->SCint[i] != NULL) {
1486 SCtmp = HOSTDATA(SCpnt->device->host)->SCint[i];
1499 HOSTDATA(SCpnt->device->host)->SCint[i] = NULL;
1500 HOSTDATA(SCpnt->device->host)->mb[i].status = 0;
1504 spin_unlock_irq(SCpnt->device->host->host_lock);
1508 spin_unlock_irq(SCpnt->device->host->host_lock);
1517 static int aha1542_old_abort(Scsi_Cmnd * SCpnt)
1526 inb(STATUS(SCpnt->host->io_port)),
1527 inb(INTRFLAGS(SCpnt->host->io_port)));
1530 mb = HOSTDATA(SCpnt->host)->mb;
1531 mbi = HOSTDATA(SCpnt->host)->aha1542_last_mbi_used + 1;
1541 } while (mbi != HOSTDATA(SCpnt->host)->aha1542_last_mbi_used);
1546 SCpnt->host->irq);
1547 aha1542_intr_handle(SCpnt->host, NULL);
1554 if (HOSTDATA(SCpnt->host)->SCint[i]) {
1555 if (HOSTDATA(SCpnt->host)->SCint[i] == SCpnt) {
1557 SCpnt->request->rq_disk ?
1558 SCpnt->request->rq_disk->disk_name : "?"
1560 if (HOSTDATA(SCpnt->host)->mb[i].status) {
1562 aha1542_out(SCpnt->host->io_port, &ahacmd, 1);
1566 SCpnt->request->rq_disk ?
1567 SCpnt->request->rq_disk->disk_name : "?"
1576 if (SCpnt == HOSTDATA(SCpnt->host)->SCint[mbo]) {
1578 aha1542_out(SCpnt->host->io_port, &ahacmd, 1); /* start scsi command */
1591 SCpnt. We must oblige, or the command will hang the scsi system.
1595 static int aha1542_old_reset(Scsi_Cmnd * SCpnt, unsigned int reset_flags)
1610 outb(HRST | SCRST, CONTROL(SCpnt->host->io_port));
1619 WAIT(STATUS(SCpnt->host->io_port),
1626 setup_mailboxes(SCpnt->host->io_port, SCpnt->host);
1634 printk(KERN_WARNING "Sent BUS RESET to scsi host %d\n", SCpnt->host->host_no);
1637 if (HOSTDATA(SCpnt->host)->SCint[i] != NULL) {
1639 SCtmp = HOSTDATA(SCpnt->host)->SCint[i];
1643 printk(KERN_WARNING "Sending DID_RESET for target %d\n", SCpnt->target);
1644 SCtmp->scsi_done(SCpnt);
1646 HOSTDATA(SCpnt->host)->SCint[i] = NULL;
1647 HOSTDATA(SCpnt->host)->mb[i].status = 0;
1665 if (HOSTDATA(SCpnt->host)->SCint[i] == SCpnt) {
1666 HOSTDATA(SCpnt->host)->ccb[i].op = 0x81; /* BUS DEVICE RESET */
1668 aha1542_out(SCpnt->host->io_port, &ahacmd, 1);
1674 printk(KERN_WARNING "Sent BUS DEVICE RESET to target %d\n", SCpnt->target);
1680 if (HOSTDATA(SCpnt->host)->SCint[i] &&
1681 HOSTDATA(SCpnt->host)->SCint[i]->target == SCpnt->target) {
1683 SCtmp = HOSTDATA(SCpnt->host)->SCint[i];
1687 printk(KERN_WARNING "Sending DID_RESET for target %d\n", SCpnt->target);
1688 SCtmp->scsi_done(SCpnt);
1690 HOSTDATA(SCpnt->host)->SCint[i] = NULL;
1691 HOSTDATA(SCpnt->host)->mb[i].status = 0;