Lines Matching refs:SCpnt

558 static int aha1542_queuecommand_lck(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
562 unchar *cmd = (unchar *) SCpnt->cmnd;
563 unchar target = SCpnt->device->id;
564 unchar lun = SCpnt->device->lun;
566 int bufflen = scsi_bufflen(SCpnt);
573 mb = HOSTDATA(SCpnt->device->host)->mb;
574 ccb = HOSTDATA(SCpnt->device->host)->ccb;
577 SCpnt->result = DID_TIME_OUT << 16;
578 done(SCpnt); return 0;
591 SCpnt->result = 0;
592 done(SCpnt);
608 for (i = 0; i < SCpnt->cmd_len; i++)
618 mbo = HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used + 1;
623 if (mb[mbo].status == 0 && HOSTDATA(SCpnt->device->host)->SCint[mbo] == NULL)
628 } while (mbo != HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used);
630 if (mb[mbo].status || HOSTDATA(SCpnt->device->host)->SCint[mbo])
633 HOSTDATA(SCpnt->device->host)->SCint[mbo] = SCpnt; /* This will effectively prevent someone else from
636 HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used = mbo;
647 ccb[mbo].cdblen = SCpnt->cmd_len;
663 int i, sg_count = scsi_sg_count(SCpnt);
665 SCpnt->host_scribble = kmalloc(sizeof(*cptr)*sg_count,
667 cptr = (struct chain *) SCpnt->host_scribble;
670 HOSTDATA(SCpnt->device->host)->SCint[mbo] = NULL;
673 scsi_for_each_sg(SCpnt, sg, sg_count, i) {
687 SCpnt->host_scribble = NULL;
708 SCpnt->scsi_done = done;
710 aha1542_out(SCpnt->device->host->io_port, &ahacmd, 1); /* start scsi command */
1226 static int aha1542_dev_reset(Scsi_Cmnd * SCpnt)
1230 unchar target = SCpnt->device->id;
1231 unchar lun = SCpnt->device->lun;
1236 ccb = HOSTDATA(SCpnt->device->host)->ccb;
1237 mb = HOSTDATA(SCpnt->device->host)->mb;
1240 mbo = HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used + 1;
1245 if (mb[mbo].status == 0 && HOSTDATA(SCpnt->device->host)->SCint[mbo] == NULL)
1250 } while (mbo != HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used);
1252 if (mb[mbo].status || HOSTDATA(SCpnt->device->host)->SCint[mbo])
1255 HOSTDATA(SCpnt->device->host)->SCint[mbo] = SCpnt; /* This will effectively
1259 HOSTDATA(SCpnt->device->host)->aha1542_last_mbo_used = mbo;
1277 aha1542_out(SCpnt->device->host->io_port, &ahacmd, 1);
1279 scmd_printk(KERN_WARNING, SCpnt,
1295 printk(KERN_WARNING "Sent BUS DEVICE RESET to target %d\n", SCpnt->target);
1302 if (HOSTDATA(SCpnt->host)->SCint[i] &&
1303 HOSTDATA(SCpnt->host)->SCint[i]->target == SCpnt->target) {
1305 SCtmp = HOSTDATA(SCpnt->host)->SCint[i];
1308 HOSTDATA(SCpnt->host)->SCint[i] = NULL;
1309 HOSTDATA(SCpnt->host)->mb[i].status = 0;
1318 static int aha1542_bus_reset(Scsi_Cmnd * SCpnt)
1328 outb(SCRST, CONTROL(SCpnt->device->host->io_port));
1339 spin_lock_irq(SCpnt->device->host->host_lock);
1341 WAIT(STATUS(SCpnt->device->host->io_port),
1350 printk(KERN_WARNING "Sent BUS RESET to scsi host %d\n", SCpnt->device->host->host_no);
1353 if (HOSTDATA(SCpnt->device->host)->SCint[i] != NULL) {
1355 SCtmp = HOSTDATA(SCpnt->device->host)->SCint[i];
1369 HOSTDATA(SCpnt->device->host)->SCint[i] = NULL;
1370 HOSTDATA(SCpnt->device->host)->mb[i].status = 0;
1374 spin_unlock_irq(SCpnt->device->host->host_lock);
1378 spin_unlock_irq(SCpnt->device->host->host_lock);
1382 static int aha1542_host_reset(Scsi_Cmnd * SCpnt)
1392 outb(HRST | SCRST, CONTROL(SCpnt->device->host->io_port));
1402 spin_lock_irq(SCpnt->device->host->host_lock);
1404 WAIT(STATUS(SCpnt->device->host->io_port),
1411 setup_mailboxes(SCpnt->device->host->io_port, SCpnt->device->host);
1419 printk(KERN_WARNING "Sent BUS RESET to scsi host %d\n", SCpnt->device->host->host_no);
1422 if (HOSTDATA(SCpnt->device->host)->SCint[i] != NULL) {
1424 SCtmp = HOSTDATA(SCpnt->device->host)->SCint[i];
1437 HOSTDATA(SCpnt->device->host)->SCint[i] = NULL;
1438 HOSTDATA(SCpnt->device->host)->mb[i].status = 0;
1442 spin_unlock_irq(SCpnt->device->host->host_lock);
1446 spin_unlock_irq(SCpnt->device->host->host_lock);
1455 static int aha1542_old_abort(Scsi_Cmnd * SCpnt)
1464 inb(STATUS(SCpnt->host->io_port)),
1465 inb(INTRFLAGS(SCpnt->host->io_port)));
1468 mb = HOSTDATA(SCpnt->host)->mb;
1469 mbi = HOSTDATA(SCpnt->host)->aha1542_last_mbi_used + 1;
1479 } while (mbi != HOSTDATA(SCpnt->host)->aha1542_last_mbi_used);
1484 SCpnt->host->irq);
1485 aha1542_intr_handle(SCpnt->host, NULL);
1492 if (HOSTDATA(SCpnt->host)->SCint[i]) {
1493 if (HOSTDATA(SCpnt->host)->SCint[i] == SCpnt) {
1495 SCpnt->request->rq_disk ?
1496 SCpnt->request->rq_disk->disk_name : "?"
1498 if (HOSTDATA(SCpnt->host)->mb[i].status) {
1500 aha1542_out(SCpnt->host->io_port, &ahacmd, 1);
1504 SCpnt->request->rq_disk ?
1505 SCpnt->request->rq_disk->disk_name : "?"
1514 if (SCpnt == HOSTDATA(SCpnt->host)->SCint[mbo]) {
1516 aha1542_out(SCpnt->host->io_port, &ahacmd, 1); /* start scsi command */
1529 SCpnt. We must oblige, or the command will hang the scsi system.
1533 static int aha1542_old_reset(Scsi_Cmnd * SCpnt, unsigned int reset_flags)
1548 outb(HRST | SCRST, CONTROL(SCpnt->host->io_port));
1557 WAIT(STATUS(SCpnt->host->io_port),
1564 setup_mailboxes(SCpnt->host->io_port, SCpnt->host);
1572 printk(KERN_WARNING "Sent BUS RESET to scsi host %d\n", SCpnt->host->host_no);
1575 if (HOSTDATA(SCpnt->host)->SCint[i] != NULL) {
1577 SCtmp = HOSTDATA(SCpnt->host)->SCint[i];
1581 printk(KERN_WARNING "Sending DID_RESET for target %d\n", SCpnt->target);
1582 SCtmp->scsi_done(SCpnt);
1584 HOSTDATA(SCpnt->host)->SCint[i] = NULL;
1585 HOSTDATA(SCpnt->host)->mb[i].status = 0;
1603 if (HOSTDATA(SCpnt->host)->SCint[i] == SCpnt) {
1604 HOSTDATA(SCpnt->host)->ccb[i].op = 0x81; /* BUS DEVICE RESET */
1606 aha1542_out(SCpnt->host->io_port, &ahacmd, 1);
1612 printk(KERN_WARNING "Sent BUS DEVICE RESET to target %d\n", SCpnt->target);
1618 if (HOSTDATA(SCpnt->host)->SCint[i] &&
1619 HOSTDATA(SCpnt->host)->SCint[i]->target == SCpnt->target) {
1621 SCtmp = HOSTDATA(SCpnt->host)->SCint[i];
1625 printk(KERN_WARNING "Sending DID_RESET for target %d\n", SCpnt->target);
1626 SCtmp->scsi_done(SCpnt);
1628 HOSTDATA(SCpnt->host)->SCint[i] = NULL;
1629 HOSTDATA(SCpnt->host)->mb[i].status = 0;