tag | line | file | source code |
sh | 308 | drivers/scsi/eata.c | static struct Scsi_Host * sh[MAX_BOARDS + 1]; |
sh | 312 | drivers/scsi/eata.c | #define HD(board) ((struct hostdata *) &sh[board]->hostdata) |
sh | 469 | drivers/scsi/eata.c | sh[j] = scsi_register(tpnt, sizeof(struct hostdata)); |
sh | 471 | drivers/scsi/eata.c | if (sh[j] == NULL) { |
sh | 481 | drivers/scsi/eata.c | sh[j]->io_port = *port_base; |
sh | 482 | drivers/scsi/eata.c | sh[j]->n_io_port = REGION_SIZE; |
sh | 483 | drivers/scsi/eata.c | sh[j]->dma_channel = dma_channel; |
sh | 484 | drivers/scsi/eata.c | sh[j]->irq = irq; |
sh | 485 | drivers/scsi/eata.c | sh[j]->sg_tablesize = (ushort) ntohs(info.scatt_size); |
sh | 486 | drivers/scsi/eata.c | sh[j]->this_id = (ushort) info.host_addr[3]; |
sh | 487 | drivers/scsi/eata.c | sh[j]->can_queue = (ushort) ntohs(info.queue_size); |
sh | 488 | drivers/scsi/eata.c | sh[j]->cmd_per_lun = MAX_CMD_PER_LUN; |
sh | 491 | drivers/scsi/eata.c | request_region(sh[j]->io_port, REGION_SIZE, driver_name); |
sh | 500 | drivers/scsi/eata.c | sh[j]->unchecked_isa_dma = FALSE; |
sh | 502 | drivers/scsi/eata.c | sh[j]->wish_block = TRUE; |
sh | 503 | drivers/scsi/eata.c | sh[j]->unchecked_isa_dma = TRUE; |
sh | 514 | drivers/scsi/eata.c | sh[j]->this_id, sh[j]->io_port, sh[j]->irq, sh[j]->dma_channel, |
sh | 515 | drivers/scsi/eata.c | sh[j]->sg_tablesize, sh[j]->can_queue, sh[j]->cmd_per_lun); |
sh | 518 | drivers/scsi/eata.c | if (sh[j]->sg_tablesize > MAX_SGLIST || sh[j]->sg_tablesize < 2) { |
sh | 520 | drivers/scsi/eata.c | sh[j]->sg_tablesize = MAX_SGLIST; |
sh | 524 | drivers/scsi/eata.c | if (sh[j]->can_queue > MAX_MAILBOXES || sh[j]->can_queue < 2) { |
sh | 526 | drivers/scsi/eata.c | sh[j]->can_queue = MAX_MAILBOXES; |
sh | 562 | drivers/scsi/eata.c | for (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL; |
sh | 615 | drivers/scsi/eata.c | for (k = 0; k < sh[j]->can_queue; k++, i++) { |
sh | 617 | drivers/scsi/eata.c | if (i >= sh[j]->can_queue) i = 0; |
sh | 625 | drivers/scsi/eata.c | if (k == sh[j]->can_queue) { |
sh | 689 | drivers/scsi/eata.c | if (do_dma(sh[j]->io_port, (unsigned int) cpp, SEND_CP_DMA)) { |
sh | 721 | drivers/scsi/eata.c | if (i >= sh[j]->can_queue) |
sh | 724 | drivers/scsi/eata.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 782 | drivers/scsi/eata.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 792 | drivers/scsi/eata.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 822 | drivers/scsi/eata.c | if (do_dma(sh[j]->io_port, 0, RESET_PIO)) { |
sh | 841 | drivers/scsi/eata.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 893 | drivers/scsi/eata.c | for (j = 0; sh[j] != NULL; j++) { |
sh | 895 | drivers/scsi/eata.c | if (sh[j]->irq != irq) continue; |
sh | 900 | drivers/scsi/eata.c | while (inb(sh[j]->io_port + REG_AUX_STATUS) & IRQ_ASSERTED) { |
sh | 908 | drivers/scsi/eata.c | inb(sh[j]->io_port + REG_STATUS); |
sh | 911 | drivers/scsi/eata.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 1073 | drivers/scsi/eata.c | for (j = 0; sh[j] != NULL; j++) |
sh | 1075 | drivers/scsi/eata.c | calls[(sh[j]->irq)], HD(j)->iocount, HD(j)->multicount); |
sh | 121 | drivers/scsi/eata_dma.c | int eata_release(struct Scsi_Host *sh) |
sh | 123 | drivers/scsi/eata_dma.c | if (sh->irq && reg_IRQ[sh->irq] == 1) free_irq(sh->irq); |
sh | 124 | drivers/scsi/eata_dma.c | else reg_IRQ[sh->irq]--; |
sh | 128 | drivers/scsi/eata_dma.c | if (SD(sh)->channel == 0) { |
sh | 129 | drivers/scsi/eata_dma.c | if (sh->dma_channel != 0xff) free_dma(sh->dma_channel); |
sh | 130 | drivers/scsi/eata_dma.c | if (sh->io_port && sh->n_io_port) |
sh | 131 | drivers/scsi/eata_dma.c | release_region(sh->io_port, sh->n_io_port); |
sh | 152 | drivers/scsi/eata_dma.c | struct Scsi_Host *sh; |
sh | 157 | drivers/scsi/eata_dma.c | for (x = 1, sh = first_HBA; x <= registered_HBAs; x++, sh = SD(sh)->prev) { |
sh | 158 | drivers/scsi/eata_dma.c | if (sh->irq != irq) |
sh | 160 | drivers/scsi/eata_dma.c | if (!(inb((uint)sh->base + HA_RAUXSTAT) & HA_AIRQ)) |
sh | 165 | drivers/scsi/eata_dma.c | sp=&SD(sh)->sp; |
sh | 298 | drivers/scsi/eata_dma.c | struct Scsi_Host *sh; |
sh | 315 | drivers/scsi/eata_dma.c | sh = cmd->host; |
sh | 318 | drivers/scsi/eata_dma.c | for (y = hd->last_ccb + 1, x = 0; x < sh->can_queue; x++, y++) { |
sh | 319 | drivers/scsi/eata_dma.c | if (y >= sh->can_queue) |
sh | 327 | drivers/scsi/eata_dma.c | if (x == sh->can_queue) { |
sh | 329 | drivers/scsi/eata_dma.c | DBG(DBG_QUEUE, printk("can_queue %d, x %d, y %d\n",sh->can_queue,x,y)); |
sh | 404 | drivers/scsi/eata_dma.c | if(eata_send_command((ulong) cp, (uint) sh->base, EATA_CMD_DMA_SEND_CP) == FALSE) { |
sh | 413 | drivers/scsi/eata_dma.c | (long)sh->base, cmd->pid, cmd->target, cmd->lun, y, sh->irq)); |
sh | 747 | drivers/scsi/eata_dma.c | struct Scsi_Host *sh; |
sh | 831 | drivers/scsi/eata_dma.c | sh = scsi_register(tpnt, size); |
sh | 833 | drivers/scsi/eata_dma.c | if(sh == NULL) { |
sh | 844 | drivers/scsi/eata_dma.c | hd = SD(sh); |
sh | 850 | drivers/scsi/eata_dma.c | strncpy(SD(sh)->vendor, &buff[8], 8); |
sh | 851 | drivers/scsi/eata_dma.c | SD(sh)->vendor[8] = 0; |
sh | 852 | drivers/scsi/eata_dma.c | strncpy(SD(sh)->name, &buff[16], 17); |
sh | 853 | drivers/scsi/eata_dma.c | SD(sh)->name[17] = 0; |
sh | 854 | drivers/scsi/eata_dma.c | SD(sh)->revision[0] = buff[32]; |
sh | 855 | drivers/scsi/eata_dma.c | SD(sh)->revision[1] = buff[33]; |
sh | 856 | drivers/scsi/eata_dma.c | SD(sh)->revision[2] = buff[34]; |
sh | 857 | drivers/scsi/eata_dma.c | SD(sh)->revision[3] = '.'; |
sh | 858 | drivers/scsi/eata_dma.c | SD(sh)->revision[4] = buff[35]; |
sh | 859 | drivers/scsi/eata_dma.c | SD(sh)->revision[5] = 0; |
sh | 862 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = 'a'; |
sh | 865 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = 'b'; |
sh | 868 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = 'c'; |
sh | 871 | drivers/scsi/eata_dma.c | SD(sh)->EATA_revision = '?'; |
sh | 873 | drivers/scsi/eata_dma.c | sh->base = (char *) base; |
sh | 874 | drivers/scsi/eata_dma.c | sh->io_port = (ushort) base; |
sh | 875 | drivers/scsi/eata_dma.c | sh->n_io_port = 9; |
sh | 876 | drivers/scsi/eata_dma.c | sh->irq = gc->IRQ; |
sh | 877 | drivers/scsi/eata_dma.c | sh->dma_channel = dma_channel; |
sh | 878 | drivers/scsi/eata_dma.c | sh->this_id = gc->scsi_id[3 - i]; |
sh | 879 | drivers/scsi/eata_dma.c | sh->can_queue = ntohs(gc->queuesiz) / (gc->MAX_CHAN + 1); |
sh | 882 | drivers/scsi/eata_dma.c | sh->cmd_per_lun = sh->can_queue/C_P_L_DIV; |
sh | 884 | drivers/scsi/eata_dma.c | if (sh->cmd_per_lun > C_P_L_CURRENT_MAX) |
sh | 885 | drivers/scsi/eata_dma.c | sh->cmd_per_lun = C_P_L_CURRENT_MAX; |
sh | 888 | drivers/scsi/eata_dma.c | sh->cmd_per_lun = 1; |
sh | 890 | drivers/scsi/eata_dma.c | sh->sg_tablesize = ntohs(gc->SGsiz); |
sh | 891 | drivers/scsi/eata_dma.c | if (sh->sg_tablesize > SG_SIZE || sh->sg_tablesize == 0) { |
sh | 892 | drivers/scsi/eata_dma.c | sh->sg_tablesize = SG_SIZE; |
sh | 913 | drivers/scsi/eata_dma.c | sh->unchecked_isa_dma = FALSE; |
sh | 914 | drivers/scsi/eata_dma.c | sh->wish_block = FALSE; |
sh | 917 | drivers/scsi/eata_dma.c | sh->unchecked_isa_dma = TRUE; /* We're doing ISA DMA */ |
sh | 918 | drivers/scsi/eata_dma.c | sh->wish_block = TRUE; /* This will reduce performance */ |
sh | 939 | drivers/scsi/eata_dma.c | SD(hd->prev)->next = sh; |
sh | 940 | drivers/scsi/eata_dma.c | last_HBA = sh; |
sh | 942 | 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 | 268 | drivers/scsi/u14-34f.c | static struct Scsi_Host * sh[MAX_BOARDS + 1]; |
sh | 272 | drivers/scsi/u14-34f.c | #define HD(board) ((struct hostdata *) &sh[board]->hostdata) |
sh | 300 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 308 | drivers/scsi/u14-34f.c | outb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR); |
sh | 311 | drivers/scsi/u14-34f.c | outl((unsigned int)cpp, sh[j]->io_port + REG_OGM); |
sh | 314 | drivers/scsi/u14-34f.c | outb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR); |
sh | 407 | drivers/scsi/u14-34f.c | sh[j] = scsi_register(tpnt, sizeof(struct hostdata)); |
sh | 409 | drivers/scsi/u14-34f.c | if (sh[j] == NULL) { |
sh | 419 | drivers/scsi/u14-34f.c | sh[j]->io_port = *port_base; |
sh | 420 | drivers/scsi/u14-34f.c | sh[j]->n_io_port = REGION_SIZE; |
sh | 421 | drivers/scsi/u14-34f.c | sh[j]->base = bios_segment_table[config_1.bios_segment]; |
sh | 422 | drivers/scsi/u14-34f.c | sh[j]->irq = irq; |
sh | 423 | drivers/scsi/u14-34f.c | sh[j]->sg_tablesize = MAX_SGLIST; |
sh | 424 | drivers/scsi/u14-34f.c | sh[j]->this_id = config_2.ha_scsi_id; |
sh | 425 | drivers/scsi/u14-34f.c | sh[j]->can_queue = MAX_MAILBOXES; |
sh | 426 | drivers/scsi/u14-34f.c | sh[j]->cmd_per_lun = MAX_CMD_PER_LUN; |
sh | 432 | drivers/scsi/u14-34f.c | sys_mask = inb(sh[j]->io_port + REG_SYS_MASK); |
sh | 433 | drivers/scsi/u14-34f.c | lcl_mask = inb(sh[j]->io_port + REG_LCL_MASK); |
sh | 439 | drivers/scsi/u14-34f.c | if (sh[j]->base == 0) outb(CMD_ENA_INTR, sh[j]->io_port + REG_SYS_MASK); |
sh | 442 | drivers/scsi/u14-34f.c | request_region(sh[j]->io_port, REGION_SIZE, driver_name); |
sh | 452 | drivers/scsi/u14-34f.c | sh[j]->dma_channel = NO_DMA; |
sh | 453 | drivers/scsi/u14-34f.c | sh[j]->unchecked_isa_dma = FALSE; |
sh | 457 | drivers/scsi/u14-34f.c | sh[j]->wish_block = TRUE; |
sh | 460 | drivers/scsi/u14-34f.c | sh[j]->hostt->use_clustering = DISABLE_CLUSTERING; |
sh | 461 | drivers/scsi/u14-34f.c | sh[j]->sg_tablesize = MAX_SAFE_SGLIST; |
sh | 464 | drivers/scsi/u14-34f.c | sh[j]->dma_channel = dma_channel; |
sh | 465 | drivers/scsi/u14-34f.c | sh[j]->unchecked_isa_dma = TRUE; |
sh | 480 | drivers/scsi/u14-34f.c | sh[j]->hostt->use_clustering = DISABLE_CLUSTERING; |
sh | 481 | drivers/scsi/u14-34f.c | sh[j]->sg_tablesize = MAX_SAFE_SGLIST; |
sh | 486 | drivers/scsi/u14-34f.c | "Mbox %d, CmdLun %d, C%d.\n", BN(j), sh[j]->io_port, |
sh | 487 | drivers/scsi/u14-34f.c | (int)sh[j]->base, sh[j]->irq, |
sh | 488 | drivers/scsi/u14-34f.c | sh[j]->dma_channel, sh[j]->sg_tablesize, |
sh | 489 | drivers/scsi/u14-34f.c | sh[j]->can_queue, sh[j]->cmd_per_lun, |
sh | 490 | drivers/scsi/u14-34f.c | sh[j]->hostt->use_clustering); |
sh | 511 | drivers/scsi/u14-34f.c | for (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL; |
sh | 559 | drivers/scsi/u14-34f.c | for (k = 0; k < sh[j]->can_queue; k++, i++) { |
sh | 561 | drivers/scsi/u14-34f.c | if (i >= sh[j]->can_queue) i = 0; |
sh | 569 | drivers/scsi/u14-34f.c | if (k == sh[j]->can_queue) { |
sh | 616 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 627 | drivers/scsi/u14-34f.c | outl((unsigned int)cpp, sh[j]->io_port + REG_OGM); |
sh | 630 | drivers/scsi/u14-34f.c | outb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR); |
sh | 654 | drivers/scsi/u14-34f.c | if (i >= sh[j]->can_queue) |
sh | 657 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 715 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 725 | drivers/scsi/u14-34f.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 755 | drivers/scsi/u14-34f.c | if (wait_on_busy(sh[j]->io_port)) { |
sh | 761 | drivers/scsi/u14-34f.c | outb(CMD_RESET, sh[j]->io_port + REG_LCL_INTR); |
sh | 775 | drivers/scsi/u14-34f.c | for (i = 0; i < sh[j]->can_queue; i++) { |
sh | 836 | drivers/scsi/u14-34f.c | for (j = 0; sh[j] != NULL; j++) { |
sh | 838 | drivers/scsi/u14-34f.c | if (sh[j]->irq != irq) continue; |
sh | 843 | drivers/scsi/u14-34f.c | while (inb(sh[j]->io_port + REG_SYS_INTR) & IRQ_ASSERTED) { |
sh | 850 | drivers/scsi/u14-34f.c | spp = (struct mscp *)inl(sh[j]->io_port + REG_ICM); |
sh | 853 | drivers/scsi/u14-34f.c | outb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR); |
sh | 857 | drivers/scsi/u14-34f.c | if (i >= sh[j]->can_queue) |
sh | 1008 | drivers/scsi/u14-34f.c | for (j = 0; sh[j] != NULL; j++) |
sh | 1010 | 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; |