tag | line | file | source code |
scpnt | 597 | drivers/scsi/buslogic.c | int buslogic_queuecommand(Scsi_Cmnd *scpnt, void (*done)(Scsi_Cmnd *)) |
scpnt | 601 | drivers/scsi/buslogic.c | unsigned char *cmd = (unsigned char *)scpnt->cmnd; |
scpnt | 602 | drivers/scsi/buslogic.c | unsigned char target = scpnt->target; |
scpnt | 603 | drivers/scsi/buslogic.c | unsigned char lun = scpnt->lun; |
scpnt | 604 | drivers/scsi/buslogic.c | void *buff = scpnt->request_buffer; |
scpnt | 605 | drivers/scsi/buslogic.c | int bufflen = scpnt->request_bufflen; |
scpnt | 612 | drivers/scsi/buslogic.c | scpnt->result = DID_TIME_OUT << 16; |
scpnt | 613 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 620 | drivers/scsi/buslogic.c | if (bufflen != sizeof scpnt->sense_buffer) { |
scpnt | 626 | drivers/scsi/buslogic.c | scpnt->result = 0; |
scpnt | 627 | drivers/scsi/buslogic.c | done(scpnt); |
scpnt | 643 | drivers/scsi/buslogic.c | buslogic_stat(scpnt->host->io_port); |
scpnt | 653 | drivers/scsi/buslogic.c | mb = HOSTDATA(scpnt->host)->mb; |
scpnt | 654 | drivers/scsi/buslogic.c | ccb = HOSTDATA(scpnt->host)->ccbs; |
scpnt | 661 | drivers/scsi/buslogic.c | mbo = HOSTDATA(scpnt->host)->last_mbo_used + 1; |
scpnt | 667 | drivers/scsi/buslogic.c | && HOSTDATA(scpnt->host)->sc[mbo] == NULL) |
scpnt | 672 | drivers/scsi/buslogic.c | } while (mbo != HOSTDATA(scpnt->host)->last_mbo_used); |
scpnt | 675 | drivers/scsi/buslogic.c | || HOSTDATA(scpnt->host)->sc[mbo]) { |
scpnt | 681 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->sc[mbo] = scpnt; /* This will effectively |
scpnt | 685 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->last_mbo_used = mbo; |
scpnt | 709 | drivers/scsi/buslogic.c | if (scpnt->use_sg) { |
scpnt | 716 | drivers/scsi/buslogic.c | scpnt->host_scribble |
scpnt | 718 | drivers/scsi/buslogic.c | if (scpnt->host_scribble == NULL) |
scpnt | 720 | drivers/scsi/buslogic.c | sgpnt = (struct scatterlist *)scpnt->request_buffer; |
scpnt | 721 | drivers/scsi/buslogic.c | cptr = (struct chain *)scpnt->host_scribble; |
scpnt | 722 | drivers/scsi/buslogic.c | if (scpnt->use_sg > scpnt->host->sg_tablesize) { |
scpnt | 725 | drivers/scsi/buslogic.c | scpnt->use_sg, scpnt->host->sg_tablesize); |
scpnt | 728 | drivers/scsi/buslogic.c | for (i = 0; i < scpnt->use_sg; i++) { |
scpnt | 732 | drivers/scsi/buslogic.c | ccb[mbo].datalen = scpnt->use_sg * sizeof (struct chain); |
scpnt | 747 | drivers/scsi/buslogic.c | scpnt->host_scribble = NULL; |
scpnt | 754 | drivers/scsi/buslogic.c | ccb[mbo].rsalen = sizeof scpnt->sense_buffer; |
scpnt | 755 | drivers/scsi/buslogic.c | ccb[mbo].senseptr = scpnt->sense_buffer; |
scpnt | 773 | drivers/scsi/buslogic.c | buslogic_stat(scpnt->host->io_port); |
scpnt | 775 | drivers/scsi/buslogic.c | scpnt->scsi_done = done; |
scpnt | 778 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 780 | drivers/scsi/buslogic.c | buslogic_stat(scpnt->host->io_port); |
scpnt | 789 | drivers/scsi/buslogic.c | static void internal_done(Scsi_Cmnd *scpnt) |
scpnt | 791 | drivers/scsi/buslogic.c | scpnt->SCp.Status++; |
scpnt | 794 | drivers/scsi/buslogic.c | int buslogic_command(Scsi_Cmnd *scpnt) |
scpnt | 800 | drivers/scsi/buslogic.c | buslogic_queuecommand(scpnt, internal_done); |
scpnt | 802 | drivers/scsi/buslogic.c | scpnt->SCp.Status = 0; |
scpnt | 803 | drivers/scsi/buslogic.c | while (!scpnt->SCp.Status) |
scpnt | 805 | drivers/scsi/buslogic.c | return scpnt->result; |
scpnt | 1207 | drivers/scsi/buslogic.c | int buslogic_abort(Scsi_Cmnd *scpnt) |
scpnt | 1216 | drivers/scsi/buslogic.c | inb(STATUS(scpnt->host->io_port)), |
scpnt | 1217 | drivers/scsi/buslogic.c | inb(INTERRUPT(scpnt->host->io_port))); |
scpnt | 1220 | drivers/scsi/buslogic.c | mb = HOSTDATA(scpnt->host)->mb; |
scpnt | 1221 | drivers/scsi/buslogic.c | mbi = HOSTDATA(scpnt->host)->last_mbi_used + 1; |
scpnt | 1231 | drivers/scsi/buslogic.c | } while (mbi != HOSTDATA(scpnt->host)->last_mbi_used); |
scpnt | 1237 | drivers/scsi/buslogic.c | scpnt->host->irq); |
scpnt | 1241 | drivers/scsi/buslogic.c | intval[0] = scpnt->host->irq; |
scpnt | 1250 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i]) { |
scpnt | 1251 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1253 | drivers/scsi/buslogic.c | scpnt->request.dev); |
scpnt | 1254 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->mb[i].status != MBX_NOT_IN_USE) { |
scpnt | 1256 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1260 | drivers/scsi/buslogic.c | scpnt->request.dev); |
scpnt | 1273 | drivers/scsi/buslogic.c | if (scpnt == HOSTDATA(scpnt->host)->sc[mbo]) { |
scpnt | 1275 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1289 | drivers/scsi/buslogic.c | int buslogic_reset(Scsi_Cmnd *scpnt) |
scpnt | 1299 | drivers/scsi/buslogic.c | outb(RSBUS, CONTROL(scpnt->host->io_port)); |
scpnt | 1304 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] == scpnt) { |
scpnt | 1305 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->ccbs[i].op = 0x81; /* ??? BUS DEVICE |
scpnt | 1310 | drivers/scsi/buslogic.c | buslogic_out(scpnt->host->io_port, buscmd, sizeof buscmd); |
scpnt | 1317 | drivers/scsi/buslogic.c | scpnt->target); |
scpnt | 1324 | drivers/scsi/buslogic.c | if (HOSTDATA(scpnt->host)->sc[i] |
scpnt | 1325 | drivers/scsi/buslogic.c | && HOSTDATA(scpnt->host)->sc[i]->target == scpnt->target) { |
scpnt | 1326 | drivers/scsi/buslogic.c | Scsi_Cmnd *sctmp = HOSTDATA(scpnt->host)->sc[i]; |
scpnt | 1331 | drivers/scsi/buslogic.c | printk("Sending DID_RESET for target %d\n", scpnt->target); |
scpnt | 1332 | drivers/scsi/buslogic.c | sctmp->scsi_done(scpnt); |
scpnt | 1334 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->sc[i] = NULL; |
scpnt | 1335 | drivers/scsi/buslogic.c | HOSTDATA(scpnt->host)->mb[i].status = MBX_NOT_IN_USE; |