tag | line | file | source code |
host | 777 | drivers/scsi/NCR5380.c | cmd->host->hostdata; |
host | 2290 | drivers/scsi/NCR5380.c | struct Scsi_Host *instance = cmd->host; |
host | 2438 | drivers/scsi/NCR5380.c | NCR5380_setup(cmd->host); |
host | 69 | drivers/scsi/aha1542.c | #define HOSTDATA(host) ((struct aha1542_hostdata *) &host->hostdata) |
host | 452 | drivers/scsi/aha1542.c | mb = HOSTDATA(SCpnt->host)->mb; |
host | 453 | drivers/scsi/aha1542.c | ccb = HOSTDATA(SCpnt->host)->ccb; |
host | 492 | drivers/scsi/aha1542.c | mbo = HOSTDATA(SCpnt->host)->aha1542_last_mbo_used + 1; |
host | 496 | drivers/scsi/aha1542.c | if(mb[mbo].status == 0 && HOSTDATA(SCpnt->host)->SCint[mbo] == NULL) |
host | 500 | drivers/scsi/aha1542.c | } while (mbo != HOSTDATA(SCpnt->host)->aha1542_last_mbo_used); |
host | 502 | drivers/scsi/aha1542.c | if(mb[mbo].status || HOSTDATA(SCpnt->host)->SCint[mbo]) |
host | 505 | drivers/scsi/aha1542.c | HOSTDATA(SCpnt->host)->SCint[mbo] = SCpnt; /* This will effectively prevent someone else from |
host | 508 | drivers/scsi/aha1542.c | HOSTDATA(SCpnt->host)->aha1542_last_mbo_used = mbo; |
host | 590 | drivers/scsi/aha1542.c | aha1542_out(SCpnt->host->io_port, &ahacmd, 1); /* start scsi command */ |
host | 950 | drivers/scsi/aha1542.c | inb(STATUS(SCpnt->host->io_port)), |
host | 951 | drivers/scsi/aha1542.c | inb(INTRFLAGS(SCpnt->host->io_port))); |
host | 954 | drivers/scsi/aha1542.c | mb = HOSTDATA(SCpnt->host)->mb; |
host | 955 | drivers/scsi/aha1542.c | mbi = HOSTDATA(SCpnt->host)->aha1542_last_mbi_used + 1; |
host | 962 | drivers/scsi/aha1542.c | } while (mbi != HOSTDATA(SCpnt->host)->aha1542_last_mbi_used); |
host | 967 | drivers/scsi/aha1542.c | SCpnt->host->irq); |
host | 968 | drivers/scsi/aha1542.c | intval[0] = SCpnt->host->irq; |
host | 977 | drivers/scsi/aha1542.c | if(HOSTDATA(SCpnt->host)->SCint[i]) |
host | 979 | drivers/scsi/aha1542.c | if(HOSTDATA(SCpnt->host)->SCint[i] == SCpnt) { |
host | 981 | drivers/scsi/aha1542.c | if (HOSTDATA(SCpnt->host)->mb[i].status) { |
host | 983 | drivers/scsi/aha1542.c | aha1542_out(SCpnt->host->io_port, &ahacmd, 1); |
host | 995 | drivers/scsi/aha1542.c | if (SCpnt == HOSTDATA(SCpnt->host)->SCint[mbo]){ |
host | 997 | drivers/scsi/aha1542.c | aha1542_out(SCpnt->host->io_port, &ahacmd, 1); /* start scsi command */ |
host | 1019 | drivers/scsi/aha1542.c | outb(SCRST, CONTROL(SCpnt->host->io_port)); |
host | 1024 | drivers/scsi/aha1542.c | if(HOSTDATA(SCpnt->host)->SCint[i] == SCpnt) |
host | 1026 | drivers/scsi/aha1542.c | HOSTDATA(SCpnt->host)->ccb[i].op = 0x81; /* BUS DEVICE RESET */ |
host | 1028 | drivers/scsi/aha1542.c | aha1542_out(SCpnt->host->io_port, &ahacmd, 1); |
host | 1041 | drivers/scsi/aha1542.c | if(HOSTDATA(SCpnt->host)->SCint[i] && |
host | 1042 | drivers/scsi/aha1542.c | HOSTDATA(SCpnt->host)->SCint[i]->target == SCpnt->target) |
host | 1045 | drivers/scsi/aha1542.c | SCtmp = HOSTDATA(SCpnt->host)->SCint[i]; |
host | 1051 | drivers/scsi/aha1542.c | HOSTDATA(SCpnt->host)->SCint[i] = NULL; |
host | 1077 | drivers/scsi/aha1542.c | translation_algorithm = HOSTDATA(disk->host)->bios_translation; |
host | 150 | drivers/scsi/buslogic.c | #define HOSTDATA(host) ((struct hostdata *)&(host)->hostdata) |
host | 153 | drivers/scsi/buslogic.c | static struct Scsi_Host *host[7] = { NULL, }; |
host | 411 | drivers/scsi/buslogic.c | SHpnt = host[irqno - 9]; |
host | 584 | drivers/scsi/buslogic.c | buslogic_stat(SCpnt->host->io_port); |
host | 594 | drivers/scsi/buslogic.c | mb = HOSTDATA(SCpnt->host)->mb; |
host | 595 | drivers/scsi/buslogic.c | ccb = HOSTDATA(SCpnt->host)->ccbs; |
host | 602 | drivers/scsi/buslogic.c | mbo = HOSTDATA(SCpnt->host)->last_mbo_used + 1; |
host | 608 | drivers/scsi/buslogic.c | && HOSTDATA(SCpnt->host)->SCint[mbo] == NULL) |
host | 613 | drivers/scsi/buslogic.c | } while (mbo != HOSTDATA(SCpnt->host)->last_mbo_used); |
host | 615 | drivers/scsi/buslogic.c | if (mb[mbo].status != MBX_NOT_IN_USE || HOSTDATA(SCpnt->host)->SCint[mbo]) { |
host | 621 | drivers/scsi/buslogic.c | HOSTDATA(SCpnt->host)->SCint[mbo] = SCpnt; /* This will effectively |
host | 625 | drivers/scsi/buslogic.c | HOSTDATA(SCpnt->host)->last_mbo_used = mbo; |
host | 660 | drivers/scsi/buslogic.c | if (SCpnt->use_sg > SCpnt->host->sg_tablesize) { |
host | 662 | drivers/scsi/buslogic.c | SCpnt->use_sg, SCpnt->host->sg_tablesize); |
host | 710 | drivers/scsi/buslogic.c | buslogic_stat(SCpnt->host->io_port); |
host | 715 | drivers/scsi/buslogic.c | buslogic_out(SCpnt->host->io_port, buscmd, sizeof buscmd); |
host | 718 | drivers/scsi/buslogic.c | buslogic_stat(SCpnt->host->io_port); |
host | 1022 | drivers/scsi/buslogic.c | host[irq - 9] = SHpnt; |
host | 1107 | drivers/scsi/buslogic.c | inb(STATUS(SCpnt->host->io_port)), |
host | 1108 | drivers/scsi/buslogic.c | inb(INTERRUPT(SCpnt->host->io_port))); |
host | 1111 | drivers/scsi/buslogic.c | mb = HOSTDATA(SCpnt->host)->mb; |
host | 1112 | drivers/scsi/buslogic.c | mbi = HOSTDATA(SCpnt->host)->last_mbi_used + 1; |
host | 1122 | drivers/scsi/buslogic.c | } while (mbi != HOSTDATA(SCpnt->host)->last_mbi_used); |
host | 1127 | drivers/scsi/buslogic.c | SCpnt->host->irq); |
host | 1131 | drivers/scsi/buslogic.c | intval[0] = SCpnt->host->irq; |
host | 1140 | drivers/scsi/buslogic.c | if (HOSTDATA(SCpnt->host)->SCint[i]) { |
host | 1141 | drivers/scsi/buslogic.c | if (HOSTDATA(SCpnt->host)->SCint[i] == SCpnt) { |
host | 1144 | drivers/scsi/buslogic.c | if (HOSTDATA(SCpnt->host)->mb[i].status != MBX_NOT_IN_USE) { |
host | 1146 | drivers/scsi/buslogic.c | buslogic_out(SCpnt->host->io_port, buscmd, sizeof buscmd); |
host | 1162 | drivers/scsi/buslogic.c | if (SCpnt == HOSTDATA(SCpnt->host)->SCint[mbo]) { |
host | 1163 | drivers/scsi/buslogic.c | HOSTDATA(SCpnt->host)->mb[mbo].status = MBX_ACTION_ABORT; |
host | 1164 | drivers/scsi/buslogic.c | buslogic_out(SCpnt->host->io_port, buscmd, sizeof buscmd); |
host | 1194 | drivers/scsi/buslogic.c | translation_algorithm = HOSTDATA(disk->host)->bios_translation; |
host | 191 | drivers/scsi/scsi.c | printk ("scan_scsis_done(%d, %06x)\n", SCpnt->host, SCpnt->result); |
host | 242 | drivers/scsi/scsi.c | scsi_devices[NR_SCSI_DEVICES].host = shpnt; |
host | 258 | drivers/scsi/scsi.c | SCmd.host = shpnt; |
host | 528 | drivers/scsi/scsi.c | SCpnt->host->host_no); |
host | 538 | drivers/scsi/scsi.c | SCpnt->host->host_no); |
host | 546 | drivers/scsi/scsi.c | printk("Unable to reset scsi host %d - ",SCpnt->host->host_no); |
host | 575 | drivers/scsi/scsi.c | SCpnt = scsi_devices[index].host->host_queue; |
host | 585 | drivers/scsi/scsi.c | if (scsi_devices[index].host->hostt->can_queue |
host | 586 | drivers/scsi/scsi.c | && scsi_devices[index].host->host_busy >= scsi_devices[index].host->hostt->can_queue) return NULL; |
host | 590 | drivers/scsi/scsi.c | tablesize = scsi_devices[index].host->sg_tablesize; |
host | 645 | drivers/scsi/scsi.c | struct Scsi_Host * host; |
host | 657 | drivers/scsi/scsi.c | host = scsi_devices[index].host; |
host | 660 | drivers/scsi/scsi.c | SCpnt = host->host_queue; |
host | 689 | drivers/scsi/scsi.c | tablesize = scsi_devices[index].host->sg_tablesize; |
host | 742 | drivers/scsi/scsi.c | struct Scsi_Host * host; |
host | 750 | drivers/scsi/scsi.c | host = SCpnt->host; |
host | 756 | drivers/scsi/scsi.c | temp = host->last_reset; |
host | 767 | drivers/scsi/scsi.c | "bufflen = %d, done = %08x)\n", SCpnt->host->host_no, SCpnt->target, SCpnt->cmnd, SCpnt->buffer, SCpnt->bufflen, SCpnt->done); |
host | 770 | drivers/scsi/scsi.c | if (host->hostt->can_queue) |
host | 775 | drivers/scsi/scsi.c | host->hostt->queuecommand); |
host | 785 | drivers/scsi/scsi.c | if(!intr_count && SCpnt->host->irq) |
host | 786 | drivers/scsi/scsi.c | disable_irq(SCpnt->host->irq); |
host | 788 | drivers/scsi/scsi.c | host->hostt->queuecommand (SCpnt, scsi_done); |
host | 790 | drivers/scsi/scsi.c | if(!intr_count && SCpnt->host->irq) |
host | 791 | drivers/scsi/scsi.c | enable_irq(SCpnt->host->irq); |
host | 797 | drivers/scsi/scsi.c | printk("command() : routine at %08x\n", host->hostt->command); |
host | 799 | drivers/scsi/scsi.c | temp=host->hostt->command (SCpnt); |
host | 804 | drivers/scsi/scsi.c | printk("done(host = %d, result = %04x) : routine at %08x\n", host->host_no, temp, done); |
host | 848 | drivers/scsi/scsi.c | struct Scsi_Host * host = SCpnt->host; |
host | 856 | drivers/scsi/scsi.c | "command : " , host->host_no, target, buffer, bufflen, done, timeout, retries); |
host | 863 | drivers/scsi/scsi.c | if (!host) |
host | 865 | drivers/scsi/scsi.c | panic ("Invalid or not present host. %d\n", host->host_no); |
host | 879 | drivers/scsi/scsi.c | if (host->hostt->can_queue |
host | 880 | drivers/scsi/scsi.c | && host->host_busy >= host->hostt->can_queue) |
host | 883 | drivers/scsi/scsi.c | SCSI_SLEEP(&host->host_wait, |
host | 884 | drivers/scsi/scsi.c | (host->host_busy >= host->hostt->can_queue)); |
host | 886 | drivers/scsi/scsi.c | host->host_busy++; |
host | 901 | drivers/scsi/scsi.c | SCpnt->host = host; |
host | 943 | drivers/scsi/scsi.c | printk("scsi: reset(%d)\n", SCpnt->host->host_no); |
host | 978 | drivers/scsi/scsi.c | printk("scsi%d : ", SCpnt->host->host_no); |
host | 1044 | drivers/scsi/scsi.c | struct Scsi_Host * host = SCpnt->host; |
host | 1066 | drivers/scsi/scsi.c | printk("In scsi_done(host = %d, result = %06x)\n", host->host_no, result); |
host | 1080 | drivers/scsi/scsi.c | SCpnt->host->host_no, SCpnt->target, SCpnt->lun); |
host | 1186 | drivers/scsi/scsi.c | SCpnt->host->host_no); |
host | 1301 | drivers/scsi/scsi.c | SCpnt->host->host_no); |
host | 1337 | drivers/scsi/scsi.c | host->host_busy--; /* Indicate that we are free */ |
host | 1338 | drivers/scsi/scsi.c | wake_up(&host->host_wait); |
host | 1370 | drivers/scsi/scsi.c | struct Scsi_Host * host = SCpnt->host; |
host | 1394 | drivers/scsi/scsi.c | if (!host->host_busy) { |
host | 1400 | drivers/scsi/scsi.c | switch(host->hostt->abort(SCpnt)) { |
host | 1450 | drivers/scsi/scsi.c | struct Scsi_Host * host = SCpnt->host; |
host | 1453 | drivers/scsi/scsi.c | printk("Danger Will Robinson! - SCSI bus for host %d is being reset.\n",host->host_no); |
host | 1467 | drivers/scsi/scsi.c | if (host->host_busy) |
host | 1470 | drivers/scsi/scsi.c | SCpnt1 = host->host_queue; |
host | 1483 | drivers/scsi/scsi.c | temp = host->hostt->reset(SCpnt); |
host | 1487 | drivers/scsi/scsi.c | host->host_busy++; |
host | 1490 | drivers/scsi/scsi.c | temp = host->hostt->reset(SCpnt); |
host | 1491 | drivers/scsi/scsi.c | host->last_reset = jiffies; |
host | 1492 | drivers/scsi/scsi.c | host->host_busy--; |
host | 1537 | drivers/scsi/scsi.c | struct Scsi_Host * host; |
host | 1550 | drivers/scsi/scsi.c | for(host = scsi_hostlist; host; host = host->next) { |
host | 1551 | drivers/scsi/scsi.c | for(SCpnt = host->host_queue; SCpnt; SCpnt = SCpnt->next) |
host | 1577 | drivers/scsi/scsi.c | struct Scsi_Host * host; |
host | 1603 | drivers/scsi/scsi.c | for(host = scsi_hostlist; host; host = host->next) |
host | 1604 | drivers/scsi/scsi.c | for(SCpnt = host->host_queue; SCpnt; SCpnt = SCpnt->next) |
host | 1707 | drivers/scsi/scsi.c | struct Scsi_Host * host; |
host | 1750 | drivers/scsi/scsi.c | for(j=0;j<scsi_devices[i].host->hostt->cmd_per_lun;j++){ |
host | 1751 | drivers/scsi/scsi.c | SCpnt->host = scsi_devices[i].host; |
host | 1762 | drivers/scsi/scsi.c | host = scsi_devices[i].host; |
host | 1763 | drivers/scsi/scsi.c | if(host->host_queue) |
host | 1764 | drivers/scsi/scsi.c | host->host_queue->prev = SCpnt; |
host | 1765 | drivers/scsi/scsi.c | SCpnt->next = host->host_queue; |
host | 1767 | drivers/scsi/scsi.c | host->host_queue = SCpnt; |
host | 1779 | drivers/scsi/scsi.c | struct Scsi_Host * host; |
host | 1780 | drivers/scsi/scsi.c | host = scsi_devices[i].host; |
host | 1783 | drivers/scsi/scsi.c | dma_sectors += ((host->sg_tablesize * |
host | 1785 | drivers/scsi/scsi.c | host->hostt->cmd_per_lun; |
host | 1787 | drivers/scsi/scsi.c | if(host->unchecked_isa_dma && |
host | 1790 | drivers/scsi/scsi.c | dma_sectors += (PAGE_SIZE >> 9) * host->sg_tablesize * |
host | 1791 | drivers/scsi/scsi.c | host->hostt->cmd_per_lun; |
host | 1870 | drivers/scsi/scsi.c | for(i1=0; i1<scsi_devices[i].host->hostt->cmd_per_lun;i1++) |
host | 1874 | drivers/scsi/scsi.c | i, SCpnt->host->host_no, |
host | 264 | drivers/scsi/scsi.h | struct Scsi_Host * host; |
host | 407 | drivers/scsi/scsi.h | struct Scsi_Host * host; |
host | 28 | drivers/scsi/scsi_ioctl.c | static int ioctl_probe(struct Scsi_Host * host, void *buffer) |
host | 34 | drivers/scsi/scsi_ioctl.c | if ((temp = host->hostt->present) && buffer) { |
host | 36 | drivers/scsi/scsi_ioctl.c | string = host->hostt->info(); |
host | 125 | drivers/scsi/scsi_ioctl.c | dev->host->host_no, |
host | 246 | drivers/scsi/scsi_ioctl.c | (dev->host->host_no << 16), (unsigned long *) arg); |
host | 261 | drivers/scsi/scsi_ioctl.c | return ioctl_probe(dev->host, arg); |
host | 44 | drivers/scsi/sd.c | #define CLUSTERABLE_DEVICE(SC) (SC->host->hostt->use_clustering && \ |
host | 149 | drivers/scsi/sd.c | printk("sd%d : rw_intr(%d, %d)\n", MINOR(SCpnt->request.dev), SCpnt->host->host_no, result); |
host | 298 | drivers/scsi/sd.c | rscsi_disks[DEVICE_NR(SCpnt->request.dev)].device->host->host_no, |
host | 462 | drivers/scsi/sd.c | ISA_DMA_THRESHOLD && SCpnt->host->unchecked_isa_dma) { |
host | 484 | drivers/scsi/sd.c | } else if (SCpnt->host->sg_tablesize == 0 || |
host | 495 | drivers/scsi/sd.c | if (SCpnt->host->sg_tablesize != 0 && |
host | 520 | drivers/scsi/sd.c | (SCpnt->host->unchecked_isa_dma && |
host | 522 | drivers/scsi/sd.c | if (count < SCpnt->host->sg_tablesize) count++; |
host | 530 | drivers/scsi/sd.c | if(SCpnt->host->unchecked_isa_dma && |
host | 539 | drivers/scsi/sd.c | if(SCpnt->host->sg_tablesize < max_sg) max_sg = SCpnt->host->sg_tablesize; |
host | 561 | drivers/scsi/sd.c | ISA_DMA_THRESHOLD && (SCpnt->host->unchecked_isa_dma) && |
host | 605 | drivers/scsi/sd.c | (SCpnt->host->unchecked_isa_dma) && |
host | 631 | drivers/scsi/sd.c | if(count < SCpnt->use_sg || SCpnt->use_sg > SCpnt->host->sg_tablesize){ |
host | 660 | drivers/scsi/sd.c | (SCpnt->host->unchecked_isa_dma)) { |
host | 1016 | drivers/scsi/sd.c | if(rscsi_disks[0].device->host->sg_tablesize) |
host | 21 | drivers/scsi/sd_ioctl.c | struct Scsi_Host * host; |
host | 31 | drivers/scsi/sd_ioctl.c | host = rscsi_disks[MINOR(dev) >> 4].device->host; |
host | 35 | drivers/scsi/sd_ioctl.c | if(host->hostt->bios_param != NULL) |
host | 36 | drivers/scsi/sd_ioctl.c | host->hostt->bios_param(rscsi_disks[MINOR(dev) >> 4].capacity, |
host | 248 | drivers/scsi/sr.c | scsi_CDs[DEVICE_NR(SCpnt->request.dev)].device->host->host_no, |
host | 426 | drivers/scsi/sr.c | if (SCpnt->host->sg_tablesize > 0 && |
host | 440 | drivers/scsi/sr.c | while(bh && count < SCpnt->host->sg_tablesize) { |
host | 449 | drivers/scsi/sr.c | if (count < SCpnt->host->sg_tablesize) { |
host | 494 | drivers/scsi/sr.c | ISA_DMA_THRESHOLD & (SCpnt->host->unchecked_isa_dma)) { |
host | 558 | drivers/scsi/sr.c | (SCpnt->host->unchecked_isa_dma)) |
host | 747 | drivers/scsi/sr.c | if(scsi_CDs[0].device->host->sg_tablesize) |
host | 75 | drivers/scsi/sr_ioctl.c | scsi_CDs[target].device->host->host_no, |
host | 343 | drivers/scsi/wd7000.c | Adapter *host; /* host adapter */ |
host | 530 | drivers/scsi/wd7000.c | static inline void wd7000_enable_intr(Adapter *host) |
host | 532 | drivers/scsi/wd7000.c | host->control |= INT_EN; |
host | 533 | drivers/scsi/wd7000.c | outb(host->control, host->iobase+ASC_CONTROL); |
host | 537 | drivers/scsi/wd7000.c | static inline void wd7000_enable_dma(Adapter *host) |
host | 539 | drivers/scsi/wd7000.c | host->control |= DMA_EN; |
host | 540 | drivers/scsi/wd7000.c | outb(host->control,host->iobase+ASC_CONTROL); |
host | 541 | drivers/scsi/wd7000.c | set_dma_mode(host->dma, DMA_MODE_CASCADE); |
host | 542 | drivers/scsi/wd7000.c | enable_dma(host->dma); |
host | 568 | drivers/scsi/wd7000.c | static inline int command_out(Adapter *host, unchar *cmd, int len) |
host | 570 | drivers/scsi/wd7000.c | WAIT(host->iobase+ASC_STAT,ASC_STATMASK,CMD_RDY,0); |
host | 573 | drivers/scsi/wd7000.c | outb(*cmd, host->iobase+ASC_COMMAND); |
host | 574 | drivers/scsi/wd7000.c | WAIT(host->iobase+ASC_STAT, ASC_STATMASK, CMD_RDY, 0); |
host | 575 | drivers/scsi/wd7000.c | } while (inb(host->iobase+ASC_STAT) & CMD_REJ); |
host | 681 | drivers/scsi/wd7000.c | static int mail_out( Adapter *host, Scb *scbptr ) |
host | 689 | drivers/scsi/wd7000.c | Mailbox *ogmbs = host->mb.ogmb; |
host | 690 | drivers/scsi/wd7000.c | int *next_ogmb = &(host->next_ogmb); |
host | 730 | drivers/scsi/wd7000.c | wd7000_enable_intr(host); |
host | 733 | drivers/scsi/wd7000.c | command_out( host, &start_ogmb, 1 ); |
host | 799 | drivers/scsi/wd7000.c | #define wd7000_intr_ack(host) outb(0,host->iobase+ASC_INTR_ACK) |
host | 815 | drivers/scsi/wd7000.c | Adapter *host = irq2host[irq]; /* This MUST be set!!! */ |
host | 816 | drivers/scsi/wd7000.c | Mailbox *icmbs = host->mb.icmb; |
host | 819 | drivers/scsi/wd7000.c | printk("wd7000_intr_handle: irq = %d, host = %06x\n", irq, host); |
host | 822 | drivers/scsi/wd7000.c | flag = inb(host->iobase+ASC_INTR_STAT); |
host | 827 | drivers/scsi/wd7000.c | if (!(inb(host->iobase+ASC_STAT) & INT_IM)) { |
host | 839 | drivers/scsi/wd7000.c | wd7000_intr_ack(host); |
host | 854 | drivers/scsi/wd7000.c | wd7000_intr_ack(host); |
host | 865 | drivers/scsi/wd7000.c | wd7000_intr_ack(host); |
host | 890 | drivers/scsi/wd7000.c | wd7000_intr_ack(host); |
host | 902 | drivers/scsi/wd7000.c | Adapter *host = (Adapter *) SCpnt->host->hostdata; |
host | 915 | drivers/scsi/wd7000.c | scb->host = host; |
host | 921 | drivers/scsi/wd7000.c | if (SCpnt->host->sg_tablesize == SG_NONE) { |
host | 942 | drivers/scsi/wd7000.c | while (!mail_out(host, scb)) /* keep trying */; |
host | 958 | drivers/scsi/wd7000.c | int wd7000_diagnostics( Adapter *host, int code ) |
host | 973 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |
host | 991 | drivers/scsi/wd7000.c | int wd7000_init( Adapter *host ) |
host | 1003 | drivers/scsi/wd7000.c | outb(ASC_RES, host->iobase+ASC_CONTROL); |
host | 1005 | drivers/scsi/wd7000.c | outb(0,host->iobase+ASC_CONTROL); |
host | 1006 | drivers/scsi/wd7000.c | host->control = 0; /* this must always shadow ASC_CONTROL */ |
host | 1007 | drivers/scsi/wd7000.c | WAIT(host->iobase+ASC_STAT, ASC_STATMASK, CMD_RDY, 0); |
host | 1009 | drivers/scsi/wd7000.c | if ((diag = inb(host->iobase+ASC_INTR_STAT)) != 1) { |
host | 1038 | drivers/scsi/wd7000.c | memset(&(host->mb), 0, sizeof(host->mb)); |
host | 1041 | drivers/scsi/wd7000.c | any2scsi((unchar *) &(init_cmd.mailboxes), (int) &(host->mb)); |
host | 1042 | drivers/scsi/wd7000.c | if (!command_out(host, (unchar *) &init_cmd, sizeof(init_cmd))) { |
host | 1046 | drivers/scsi/wd7000.c | WAIT(host->iobase+ASC_STAT, ASC_STATMASK, ASC_INIT, 0); |
host | 1048 | drivers/scsi/wd7000.c | if (irqaction(host->irq, &sa)) { |
host | 1049 | drivers/scsi/wd7000.c | printk("wd7000_init: can't get IRQ %d.\n", host->irq); |
host | 1052 | drivers/scsi/wd7000.c | if (request_dma(host->dma)) { |
host | 1053 | drivers/scsi/wd7000.c | printk("wd7000_init: can't get DMA channel %d.\n", host->dma); |
host | 1054 | drivers/scsi/wd7000.c | free_irq(host->irq); |
host | 1057 | drivers/scsi/wd7000.c | wd7000_enable_dma(host); |
host | 1058 | drivers/scsi/wd7000.c | wd7000_enable_intr(host); |
host | 1060 | drivers/scsi/wd7000.c | if (!wd7000_diagnostics(host,ICB_DIAG_FULL)) { |
host | 1061 | drivers/scsi/wd7000.c | free_dma(host->dma); |
host | 1062 | drivers/scsi/wd7000.c | free_irq(host->irq); |
host | 1074 | drivers/scsi/wd7000.c | void wd7000_revision(Adapter *host) |
host | 1085 | drivers/scsi/wd7000.c | mail_out(host, (struct scb *) &icb); |
host | 1087 | drivers/scsi/wd7000.c | host->rev1 = icb.primary; |
host | 1088 | drivers/scsi/wd7000.c | host->rev2 = icb.secondary; |
host | 1107 | drivers/scsi/wd7000.c | Adapter *host = NULL; |
host | 1129 | drivers/scsi/wd7000.c | printk("IO %xh already in use.\n", host->iobase); |
host | 1140 | drivers/scsi/wd7000.c | host = (Adapter *) sh->hostdata; |
host | 1143 | drivers/scsi/wd7000.c | (int)host); |
host | 1145 | drivers/scsi/wd7000.c | memset( host, 0, sizeof(Adapter) ); |
host | 1146 | drivers/scsi/wd7000.c | host->num = hostnum; host->sh = sh; |
host | 1147 | drivers/scsi/wd7000.c | host->irq = cfg->irq; |
host | 1148 | drivers/scsi/wd7000.c | host->iobase = cfg->iobase; |
host | 1149 | drivers/scsi/wd7000.c | host->dma = cfg->dma; |
host | 1150 | drivers/scsi/wd7000.c | irq2host[host->irq] = host; |
host | 1152 | drivers/scsi/wd7000.c | if (!wd7000_init(host)) { /* Initialization failed */ |
host | 1160 | drivers/scsi/wd7000.c | wd7000_revision(host); /* important for scatter/gather */ |
host | 1163 | drivers/scsi/wd7000.c | host->rev1, host->rev2); |
host | 1165 | drivers/scsi/wd7000.c | host->iobase, host->irq, host->dma); |
host | 1167 | drivers/scsi/wd7000.c | snarf_region(host->iobase, 4); /* Register our ports */ |
host | 1171 | drivers/scsi/wd7000.c | if (host->rev1 < 6) sh->sg_tablesize = SG_NONE; |
host | 1190 | drivers/scsi/wd7000.c | Adapter *host = (Adapter *) SCpnt->host->hostdata; |
host | 1192 | drivers/scsi/wd7000.c | if (inb(host->iobase+ASC_STAT) & INT_IM) { |
host | 1194 | drivers/scsi/wd7000.c | wd7000_intr_handle(host->irq); |