tag | line | file | source code |
sh | 301 | drivers/scsi/eata.c | static struct Scsi_Host * sh[MAX_BOARDS + 1]; |
sh | 305 | drivers/scsi/eata.c | #define HD(board) ((struct hostdata *) &sh[board]->hostdata) |
sh | 462 | drivers/scsi/eata.c | sh[j] = scsi_register(tpnt, sizeof(struct hostdata)); |
sh | 463 | drivers/scsi/eata.c | sh[j]->io_port = *port_base; |
sh | 464 | drivers/scsi/eata.c | sh[j]->n_io_port = REGION_SIZE; |
sh | 465 | drivers/scsi/eata.c | sh[j]->dma_channel = dma_channel; |
sh | 466 | drivers/scsi/eata.c | sh[j]->irq = irq; |
sh | 467 | drivers/scsi/eata.c | sh[j]->sg_tablesize = (ushort) ntohs(info.scatt_size); |
sh | 468 | drivers/scsi/eata.c | sh[j]->this_id = (ushort) info.host_addr[3]; |
sh | 469 | drivers/scsi/eata.c | sh[j]->can_queue = (ushort) ntohs(info.queue_size); |
sh | 470 | drivers/scsi/eata.c | sh[j]->cmd_per_lun = MAX_CMD_PER_LUN; |
sh | 473 | drivers/scsi/eata.c | request_region(sh[j]->io_port, REGION_SIZE, driver_name); |
sh | 482 | drivers/scsi/eata.c | sh[j]->unchecked_isa_dma = FALSE; |
sh | 484 | drivers/scsi/eata.c | sh[j]->wish_block = TRUE; |
sh | 485 | drivers/scsi/eata.c | sh[j]->unchecked_isa_dma = TRUE; |
sh | 496 | drivers/scsi/eata.c | sh[j]->this_id, sh[j]->io_port, sh[j]->irq, sh[j]->dma_channel, |
sh | 497 | drivers/scsi/eata.c | sh[j]->sg_tablesize, sh[j]->can_queue, sh[j]->cmd_per_lun); |
sh | 500 | drivers/scsi/eata.c | if (sh[j]->sg_tablesize > MAX_SGLIST || sh[j]->sg_tablesize < 2) { |
sh | 502 | drivers/scsi/eata.c | sh[j]->sg_tablesize = MAX_SGLIST; |
sh | 506 | drivers/scsi/eata.c | if (sh[j]->can_queue > MAX_MAILBOXES || sh[j]->can_queue < 2) { |
sh | 508 | drivers/scsi/eata.c | sh[j]->can_queue = MAX_MAILBOXES; |
sh | 544 | drivers/scsi/eata.c | for (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL; |
sh | 597 | drivers/scsi/eata.c | for (k = 0; k < sh[j]->can_queue; k++, i++) { |
sh | 599 | drivers/scsi/eata.c | if (i >= sh[j]->can_queue) i = 0; |
sh | 607 | drivers/scsi/eata.c | if (k == sh[j]->can_queue) { |
sh | 671 | drivers/scsi/eata.c | if (do_dma(sh[j]->io_port, (unsigned int) cpp, SEND_CP_DMA)) { |
sh | 703 | drivers/scsi/eata.c | if (i >= sh[j]->can_queue) |
sh | 706 | drivers/scsi/eata.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 764 | drivers/scsi/eata.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 774 | drivers/scsi/eata.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 804 | drivers/scsi/eata.c | if (do_dma(sh[j]->io_port, 0, RESET_PIO)) { |
sh | 823 | drivers/scsi/eata.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 875 | drivers/scsi/eata.c | for (j = 0; sh[j] != NULL; j++) { |
sh | 877 | drivers/scsi/eata.c | if (sh[j]->irq != irq) continue; |
sh | 882 | drivers/scsi/eata.c | while (inb(sh[j]->io_port + REG_AUX_STATUS) & IRQ_ASSERTED) { |
sh | 890 | drivers/scsi/eata.c | inb(sh[j]->io_port + REG_STATUS); |
sh | 893 | drivers/scsi/eata.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 1060 | drivers/scsi/eata.c | for (j = 0; sh[j] != NULL; j++) |
sh | 1062 | drivers/scsi/eata.c | calls[(sh[j]->irq)], HD(j)->iocount, HD(j)->multicount); |
sh | 108 | drivers/scsi/eata_dma.c | int eata_release(struct Scsi_Host *sh) |
sh | 110 | drivers/scsi/eata_dma.c | if (sh->irq && reg_IRQ[sh->irq] == 1) free_irq(sh->irq); |
sh | 111 | drivers/scsi/eata_dma.c | else reg_IRQ[sh->irq]--; |
sh | 112 | drivers/scsi/eata_dma.c | if (SD(sh)->channel == 0) { |
sh | 113 | drivers/scsi/eata_dma.c | if (sh->dma_channel != 0xff) free_dma(sh->dma_channel); |
sh | 114 | drivers/scsi/eata_dma.c | if (sh->io_port && sh->n_io_port) |
sh | 115 | drivers/scsi/eata_dma.c | release_region(sh->io_port, sh->n_io_port); |
sh | 136 | drivers/scsi/eata_dma.c | struct Scsi_Host *sh; |
sh | 141 | drivers/scsi/eata_dma.c | for (x = 1, sh = first_HBA; x <= registered_HBAs; x++, sh = SD(sh)->prev) { |
sh | 142 | drivers/scsi/eata_dma.c | if (sh->irq != irq) |
sh | 144 | drivers/scsi/eata_dma.c | if (!(inb((uint)sh->base + HA_RAUXSTAT) & HA_AIRQ)) |
sh | 149 | drivers/scsi/eata_dma.c | sp=&SD(sh)->sp; |
sh | 281 | drivers/scsi/eata_dma.c | struct Scsi_Host *sh; |
sh | 298 | drivers/scsi/eata_dma.c | sh = cmd->host; |
sh | 301 | drivers/scsi/eata_dma.c | for (y = hd->last_ccb + 1, x = 0; x < sh->can_queue; x++, y++) { |
sh | 302 | drivers/scsi/eata_dma.c | if (y >= sh->can_queue) |
sh | 310 | drivers/scsi/eata_dma.c | if (x == sh->can_queue) { |
sh | 312 | drivers/scsi/eata_dma.c | DBG(DBG_QUEUE, printk("can_queue %d, x %d, y %d\n",sh->can_queue,x,y)); |
sh | 387 | drivers/scsi/eata_dma.c | if(eata_send_command((ulong) cp, (uint) sh->base, EATA_CMD_DMA_SEND_CP)) { |
sh | 396 | drivers/scsi/eata_dma.c | (long)sh->base, cmd->pid, cmd->target, cmd->lun, y, sh->irq)); |
sh | 699 | drivers/scsi/eata_dma.c | struct Scsi_Host *sh; |
sh | 771 | drivers/scsi/eata_dma.c | sh = scsi_register(tpnt, size); |
sh | 772 | drivers/scsi/eata_dma.c | hd = SD(sh); |
sh | 778 | drivers/scsi/eata_dma.c | strncpy(SD(sh)->vendor, &buff[8], 8); |
sh | 779 | drivers/scsi/eata_dma.c | SD(sh)->vendor[8] = 0; |
sh | 780 | drivers/scsi/eata_dma.c | strncpy(SD(sh)->name, &buff[16], 17); |
sh | 781 | drivers/scsi/eata_dma.c | SD(sh)->name[17] = 0; |
sh | 782 | drivers/scsi/eata_dma.c | SD(sh)->revision[0] = buff[32]; |
sh | 783 | drivers/scsi/eata_dma.c | SD(sh)->revision[1] = buff[33]; |
sh | 784 | drivers/scsi/eata_dma.c | SD(sh)->revision[2] = buff[34]; |
sh | 785 | drivers/scsi/eata_dma.c | SD(sh)->revision[3] = '.'; |
sh | 786 | drivers/scsi/eata_dma.c | SD(sh)->revision[4] = buff[35]; |
sh | 787 | drivers/scsi/eata_dma.c | SD(sh)->revision[5] = 0; |
sh | 790 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = 'a'; |
sh | 793 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = 'b'; |
sh | 796 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = 'c'; |
sh | 799 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = '?'; |
sh | 801 | drivers/scsi/eata_dma.c | sh->base = (char *) base; |
sh | 802 | drivers/scsi/eata_dma.c | sh->io_port = (ushort) base; |
sh | 803 | drivers/scsi/eata_dma.c | sh->n_io_port = 9; |
sh | 804 | drivers/scsi/eata_dma.c | sh->irq = gc->IRQ; |
sh | 805 | drivers/scsi/eata_dma.c | sh->dma_channel = dma_channel; |
sh | 806 | drivers/scsi/eata_dma.c | sh->this_id = gc->scsi_id[3 - i]; |
sh | 807 | drivers/scsi/eata_dma.c | sh->can_queue = ntohs(gc->queuesiz) / (gc->MAX_CHAN + 1); |
sh | 810 | drivers/scsi/eata_dma.c | sh->cmd_per_lun = sh->can_queue/C_P_L_DIV; |
sh | 811 | drivers/scsi/eata_dma.c | if (sh->cmd_per_lun > C_P_L_CURRENT_MAX) |
sh | 812 | drivers/scsi/eata_dma.c | sh->cmd_per_lun = C_P_L_CURRENT_MAX; |
sh | 814 | drivers/scsi/eata_dma.c | sh->cmd_per_lun = 1; |
sh | 816 | drivers/scsi/eata_dma.c | sh->sg_tablesize = ntohs(gc->SGsiz); |
sh | 817 | drivers/scsi/eata_dma.c | if (sh->sg_tablesize > SG_SIZE || sh->sg_tablesize == 0) { |
sh | 818 | drivers/scsi/eata_dma.c | sh->sg_tablesize = SG_SIZE; |
sh | 839 | drivers/scsi/eata_dma.c | sh->unchecked_isa_dma = FALSE; |
sh | 840 | drivers/scsi/eata_dma.c | sh->wish_block = FALSE; |
sh | 843 | drivers/scsi/eata_dma.c | sh->unchecked_isa_dma = TRUE; /* We're doing ISA DMA */ |
sh | 844 | drivers/scsi/eata_dma.c | sh->wish_block = TRUE; /* This will reduce performance */ |
sh | 865 | drivers/scsi/eata_dma.c | SD(hd->prev)->next = sh; |
sh | 866 | drivers/scsi/eata_dma.c | last_HBA = sh; |
sh | 868 | drivers/scsi/eata_dma.c | first_HBA = sh; |
sh | 217 | drivers/scsi/hosts.c | scsi_unregister(struct Scsi_Host * sh){ |
sh | 220 | drivers/scsi/hosts.c | if(scsi_hostlist == sh) |
sh | 221 | drivers/scsi/hosts.c | scsi_hostlist = sh->next; |
sh | 224 | drivers/scsi/hosts.c | while(shpnt->next != sh) shpnt = shpnt->next; |
sh | 234 | drivers/scsi/hosts.c | scsi_init_free((char *) sh, sizeof(struct Scsi_Host) + sh->extra_bytes); |
sh | 214 | drivers/scsi/scsi.c | struct Scsi_Host * sh[128], * shpnt; |
sh | 249 | drivers/scsi/scsi.c | if (shpnt->wish_block) sh[block_count++] = shpnt; |
sh | 252 | drivers/scsi/scsi.c | if (block_count == 1) sh[0]->block = NULL; |
sh | 257 | drivers/scsi/scsi.c | sh[index]->block = sh[index + 1]; |
sh | 259 | drivers/scsi/scsi.c | sh[index]->host_no); |
sh | 262 | drivers/scsi/scsi.c | sh[block_count - 1]->block = sh[0]; |
sh | 264 | drivers/scsi/scsi.c | sh[index]->host_no); |
sh | 261 | drivers/scsi/u14-34f.c | static struct Scsi_Host * sh[MAX_BOARDS + 1]; |
sh | 265 | drivers/scsi/u14-34f.c | #define HD(board) ((struct hostdata *) &sh[board]->hostdata) |
sh | 293 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 301 | drivers/scsi/u14-34f.c | outb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR); |
sh | 304 | drivers/scsi/u14-34f.c | outl((unsigned int)cpp, sh[j]->io_port + REG_OGM); |
sh | 307 | drivers/scsi/u14-34f.c | outb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR); |
sh | 400 | drivers/scsi/u14-34f.c | sh[j] = scsi_register(tpnt, sizeof(struct hostdata)); |
sh | 401 | drivers/scsi/u14-34f.c | sh[j]->io_port = *port_base; |
sh | 402 | drivers/scsi/u14-34f.c | sh[j]->n_io_port = REGION_SIZE; |
sh | 403 | drivers/scsi/u14-34f.c | sh[j]->base = bios_segment_table[config_1.bios_segment]; |
sh | 404 | drivers/scsi/u14-34f.c | sh[j]->irq = irq; |
sh | 405 | drivers/scsi/u14-34f.c | sh[j]->sg_tablesize = MAX_SGLIST; |
sh | 406 | drivers/scsi/u14-34f.c | sh[j]->this_id = config_2.ha_scsi_id; |
sh | 407 | drivers/scsi/u14-34f.c | sh[j]->can_queue = MAX_MAILBOXES; |
sh | 408 | drivers/scsi/u14-34f.c | sh[j]->cmd_per_lun = MAX_CMD_PER_LUN; |
sh | 414 | drivers/scsi/u14-34f.c | sys_mask = inb(sh[j]->io_port + REG_SYS_MASK); |
sh | 415 | drivers/scsi/u14-34f.c | lcl_mask = inb(sh[j]->io_port + REG_LCL_MASK); |
sh | 421 | drivers/scsi/u14-34f.c | if (sh[j]->base == 0) outb(CMD_ENA_INTR, sh[j]->io_port + REG_SYS_MASK); |
sh | 424 | drivers/scsi/u14-34f.c | request_region(sh[j]->io_port, REGION_SIZE, driver_name); |
sh | 434 | drivers/scsi/u14-34f.c | sh[j]->dma_channel = NO_DMA; |
sh | 435 | drivers/scsi/u14-34f.c | sh[j]->unchecked_isa_dma = FALSE; |
sh | 439 | drivers/scsi/u14-34f.c | sh[j]->wish_block = TRUE; |
sh | 442 | drivers/scsi/u14-34f.c | sh[j]->hostt->use_clustering = DISABLE_CLUSTERING; |
sh | 443 | drivers/scsi/u14-34f.c | sh[j]->sg_tablesize = MAX_SAFE_SGLIST; |
sh | 446 | drivers/scsi/u14-34f.c | sh[j]->dma_channel = dma_channel; |
sh | 447 | drivers/scsi/u14-34f.c | sh[j]->unchecked_isa_dma = TRUE; |
sh | 462 | drivers/scsi/u14-34f.c | sh[j]->hostt->use_clustering = DISABLE_CLUSTERING; |
sh | 463 | drivers/scsi/u14-34f.c | sh[j]->sg_tablesize = MAX_SAFE_SGLIST; |
sh | 468 | drivers/scsi/u14-34f.c | "Mbox %d, CmdLun %d, C%d.\n", BN(j), sh[j]->io_port, |
sh | 469 | drivers/scsi/u14-34f.c | (int)sh[j]->base, sh[j]->irq, |
sh | 470 | drivers/scsi/u14-34f.c | sh[j]->dma_channel, sh[j]->sg_tablesize, |
sh | 471 | drivers/scsi/u14-34f.c | sh[j]->can_queue, sh[j]->cmd_per_lun, |
sh | 472 | drivers/scsi/u14-34f.c | sh[j]->hostt->use_clustering); |
sh | 493 | drivers/scsi/u14-34f.c | for (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL; |
sh | 541 | drivers/scsi/u14-34f.c | for (k = 0; k < sh[j]->can_queue; k++, i++) { |
sh | 543 | drivers/scsi/u14-34f.c | if (i >= sh[j]->can_queue) i = 0; |
sh | 551 | drivers/scsi/u14-34f.c | if (k == sh[j]->can_queue) { |
sh | 598 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 609 | drivers/scsi/u14-34f.c | outl((unsigned int)cpp, sh[j]->io_port + REG_OGM); |
sh | 612 | drivers/scsi/u14-34f.c | outb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR); |
sh | 636 | drivers/scsi/u14-34f.c | if (i >= sh[j]->can_queue) |
sh | 639 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 697 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 707 | drivers/scsi/u14-34f.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 737 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 743 | drivers/scsi/u14-34f.c | outb(CMD_RESET, sh[j]->io_port + REG_LCL_INTR); |
sh | 757 | drivers/scsi/u14-34f.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 818 | drivers/scsi/u14-34f.c | for (j = 0; sh[j] != NULL; j++) { |
sh | 820 | drivers/scsi/u14-34f.c | if (sh[j]->irq != irq) continue; |
sh | 825 | drivers/scsi/u14-34f.c | while (inb(sh[j]->io_port + REG_SYS_INTR) & IRQ_ASSERTED) { |
sh | 832 | drivers/scsi/u14-34f.c | spp = (struct mscp *)inl(sh[j]->io_port + REG_ICM); |
sh | 835 | drivers/scsi/u14-34f.c | outb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR); |
sh | 839 | drivers/scsi/u14-34f.c | if (i >= sh[j]->can_queue) |
sh | 995 | drivers/scsi/u14-34f.c | for (j = 0; sh[j] != NULL; j++) |
sh | 997 | drivers/scsi/u14-34f.c | calls[(sh[j]->irq)], HD(j)->iocount, HD(j)->multicount); |
sh | 159 | drivers/scsi/wd7000.c | struct Scsi_Host *sh; /* Pointer to Scsi_Host structure */ |
sh | 1099 | drivers/scsi/wd7000.c | struct Scsi_Host *sh; |
sh | 1130 | drivers/scsi/wd7000.c | sh = scsi_register(tpnt, sizeof(Adapter) ); |
sh | 1131 | drivers/scsi/wd7000.c | host = (Adapter *) sh->hostdata; |
sh | 1137 | drivers/scsi/wd7000.c | host->sh = sh; |
sh | 1144 | drivers/scsi/wd7000.c | scsi_unregister (sh); |
sh | 1162 | drivers/scsi/wd7000.c | if (host->rev1 < 6) sh->sg_tablesize = SG_NONE; |