taglinefilesource code
sh767drivers/scsi/atari_scsi.cint atari_scsi_release (struct Scsi_Host *sh)
sh321drivers/scsi/eata.cstatic struct Scsi_Host * sh[MAX_BOARDS + 1];
sh325drivers/scsi/eata.c#define HD(board) ((struct hostdata *) &sh[board]->hostdata)
sh482drivers/scsi/eata.csh[j] = scsi_register(tpnt, sizeof(struct hostdata));
sh484drivers/scsi/eata.cif (sh[j] == NULL) {
sh494drivers/scsi/eata.csh[j]->io_port = *port_base;
sh495drivers/scsi/eata.csh[j]->n_io_port = REGION_SIZE;
sh496drivers/scsi/eata.csh[j]->dma_channel = dma_channel;
sh497drivers/scsi/eata.csh[j]->irq = irq;
sh498drivers/scsi/eata.csh[j]->sg_tablesize = (ushort) ntohs(info.scatt_size);
sh499drivers/scsi/eata.csh[j]->this_id = (ushort) info.host_addr[3];
sh500drivers/scsi/eata.csh[j]->can_queue = (ushort) ntohs(info.queue_size);
sh501drivers/scsi/eata.csh[j]->cmd_per_lun = MAX_CMD_PER_LUN;
sh504drivers/scsi/eata.crequest_region(sh[j]->io_port, REGION_SIZE, driver_name);
sh513drivers/scsi/eata.csh[j]->unchecked_isa_dma = FALSE;
sh515drivers/scsi/eata.csh[j]->wish_block = TRUE;
sh516drivers/scsi/eata.csh[j]->unchecked_isa_dma = TRUE;
sh527drivers/scsi/eata.csh[j]->this_id, sh[j]->io_port, sh[j]->irq, sh[j]->dma_channel,
sh528drivers/scsi/eata.csh[j]->sg_tablesize, sh[j]->can_queue, sh[j]->cmd_per_lun);
sh531drivers/scsi/eata.cif (sh[j]->sg_tablesize > MAX_SGLIST || sh[j]->sg_tablesize < 2) {
sh533drivers/scsi/eata.csh[j]->sg_tablesize = MAX_SGLIST;
sh537drivers/scsi/eata.cif (sh[j]->can_queue > MAX_MAILBOXES || sh[j]->can_queue  < 2) {
sh539drivers/scsi/eata.csh[j]->can_queue = MAX_MAILBOXES;
sh577drivers/scsi/eata.cfor (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL;
sh630drivers/scsi/eata.cfor (k = 0; k < sh[j]->can_queue; k++, i++) {
sh632drivers/scsi/eata.cif (i >= sh[j]->can_queue) i = 0;
sh640drivers/scsi/eata.cif (k == sh[j]->can_queue) {
sh705drivers/scsi/eata.cif (do_dma(sh[j]->io_port, (unsigned int) cpp, SEND_CP_DMA)) {
sh738drivers/scsi/eata.cif (i >= sh[j]->can_queue)
sh741drivers/scsi/eata.cif (wait_on_busy(sh[j]->io_port)) {
sh799drivers/scsi/eata.cif (wait_on_busy(sh[j]->io_port)) {
sh809drivers/scsi/eata.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh839drivers/scsi/eata.cif (do_dma(sh[j]->io_port, 0, RESET_PIO)) {
sh858drivers/scsi/eata.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh910drivers/scsi/eata.cfor (j = 0; sh[j] != NULL; j++) {
sh912drivers/scsi/eata.cif (sh[j]->irq != irq) continue;
sh917drivers/scsi/eata.cwhile (inb(sh[j]->io_port + REG_AUX_STATUS) & IRQ_ASSERTED) {
sh925drivers/scsi/eata.cinb(sh[j]->io_port + REG_STATUS);
sh928drivers/scsi/eata.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh1090drivers/scsi/eata.cfor (j = 0; sh[j] != NULL; j++)
sh1092drivers/scsi/eata.ccalls[(sh[j]->irq)], HD(j)->iocount, HD(j)->multicount);
sh129drivers/scsi/eata_dma.cint eata_release(struct Scsi_Host *sh)
sh132drivers/scsi/eata_dma.cif (sh->irq && reg_IRQ[sh->irq] == 1) free_irq(sh->irq, NULL);
sh133drivers/scsi/eata_dma.celse reg_IRQ[sh->irq]--;
sh137drivers/scsi/eata_dma.cfor (i = 0; i < sh->can_queue; i++){ /* Free all SG arrays */
sh138drivers/scsi/eata_dma.cif(SD(sh)->ccb[i].sg_list != NULL)
sh139drivers/scsi/eata_dma.cscsi_init_free((void *) SD(sh)->ccb[i].sg_list, 
sh140drivers/scsi/eata_dma.csh->sg_tablesize * sizeof(struct eata_sg_list));
sh143drivers/scsi/eata_dma.cif (SD(sh)->channel == 0) {
sh144drivers/scsi/eata_dma.cif (sh->dma_channel != BUSMASTER) free_dma(sh->dma_channel);
sh145drivers/scsi/eata_dma.cif (sh->io_port && sh->n_io_port)
sh146drivers/scsi/eata_dma.crelease_region(sh->io_port, sh->n_io_port);
sh163drivers/scsi/eata_dma.cstruct Scsi_Host *sh;
sh168drivers/scsi/eata_dma.cfor (x = 1, sh = first_HBA; x <= registered_HBAs; x++, sh = SD(sh)->next) {
sh169drivers/scsi/eata_dma.cif (sh->irq != irq)
sh172drivers/scsi/eata_dma.cwhile(inb((uint)sh->base + HA_RAUXSTAT) & HA_AIRQ) {
sh176drivers/scsi/eata_dma.csp = &SD(sh)->sp;
sh180drivers/scsi/eata_dma.ceata_stat = inb((uint)sh->base + HA_RSTATUS);
sh351drivers/scsi/eata_dma.cstruct Scsi_Host *sh;
sh361drivers/scsi/eata_dma.csh = cmd->host;
sh364drivers/scsi/eata_dma.cfor (y = hd->last_ccb + 1, x = 0; x < sh->can_queue; x++, y++) { 
sh365drivers/scsi/eata_dma.cif (y >= sh->can_queue)
sh373drivers/scsi/eata_dma.cif (x >= sh->can_queue) { 
sh378drivers/scsi/eata_dma.cqueue_counter, int_counter, sh->can_queue, x, y);
sh380drivers/scsi/eata_dma.cfor(z = 0; z < sh->can_queue; z +=2) {
sh467drivers/scsi/eata_dma.cif (cmd->target == sh->this_id) 
sh473drivers/scsi/eata_dma.ccp->sg_list = kmalloc(sh->sg_tablesize * sizeof(struct eata_sg_list),
sh510drivers/scsi/eata_dma.cif(eata_send_command((u32) cp, (u32) sh->base, EATA_CMD_DMA_SEND_CP) == FALSE) {
sh521drivers/scsi/eata_dma.c"slot %d irq %d\n", (s32)sh->base, cmd->pid, 
sh522drivers/scsi/eata_dma.ccmd->target, cmd->lun, y, sh->irq));
sh853drivers/scsi/eata_dma.cstruct Scsi_Host *sh;
sh951drivers/scsi/eata_dma.csh = scsi_register(tpnt, size);
sh953drivers/scsi/eata_dma.cif(sh == NULL) {
sh965drivers/scsi/eata_dma.chd = SD(sh);       
sh973drivers/scsi/eata_dma.cstrcpy(SD(sh)->vendor, "DPT");
sh974drivers/scsi/eata_dma.cstrcpy(SD(sh)->name, "??????????");
sh975drivers/scsi/eata_dma.cstrcpy(SD(sh)->revision, "???.?");
sh977drivers/scsi/eata_dma.cstrncpy(SD(sh)->vendor, &buff[8], 8);
sh978drivers/scsi/eata_dma.cSD(sh)->vendor[8] = 0;
sh979drivers/scsi/eata_dma.cstrncpy(SD(sh)->name, &buff[16], 17);
sh980drivers/scsi/eata_dma.cSD(sh)->name[17] = 0;
sh981drivers/scsi/eata_dma.cSD(sh)->revision[0] = buff[32];
sh982drivers/scsi/eata_dma.cSD(sh)->revision[1] = buff[33];
sh983drivers/scsi/eata_dma.cSD(sh)->revision[2] = buff[34];
sh984drivers/scsi/eata_dma.cSD(sh)->revision[3] = '.';
sh985drivers/scsi/eata_dma.cSD(sh)->revision[4] = buff[35];
sh986drivers/scsi/eata_dma.cSD(sh)->revision[5] = 0;
sh991drivers/scsi/eata_dma.cSD(sh)->EATA_revision = 'a';
sh994drivers/scsi/eata_dma.cSD(sh)->EATA_revision = 'b';
sh997drivers/scsi/eata_dma.cSD(sh)->EATA_revision = 'c';
sh1000drivers/scsi/eata_dma.cSD(sh)->EATA_revision = 'z';    
sh1002drivers/scsi/eata_dma.cSD(sh)->EATA_revision = '?';
sh1023drivers/scsi/eata_dma.csh->max_id = gc->MAX_ID + 1;
sh1024drivers/scsi/eata_dma.csh->max_lun = gc->MAX_LUN + 1;
sh1026drivers/scsi/eata_dma.csh->max_id = 8;
sh1027drivers/scsi/eata_dma.csh->max_lun = 8;
sh1031drivers/scsi/eata_dma.csh->max_channel = gc->MAX_CHAN; 
sh1032drivers/scsi/eata_dma.csh->unique_id = base;
sh1033drivers/scsi/eata_dma.csh->base = (char *) base;
sh1034drivers/scsi/eata_dma.csh->io_port = base;
sh1035drivers/scsi/eata_dma.csh->n_io_port = 9;
sh1036drivers/scsi/eata_dma.csh->irq = gc->IRQ;
sh1037drivers/scsi/eata_dma.csh->dma_channel = dma_channel;
sh1042drivers/scsi/eata_dma.csh->this_id = gc->scsi_id[3];
sh1043drivers/scsi/eata_dma.csh->can_queue = ntohs(gc->queuesiz);
sh1047drivers/scsi/eata_dma.csh->cmd_per_lun = sh->can_queue/C_P_L_DIV; 
sh1049drivers/scsi/eata_dma.csh->cmd_per_lun = 8; /* We artificially limit this to conserve 
sh1053drivers/scsi/eata_dma.csh->cmd_per_lun = 1;
sh1064drivers/scsi/eata_dma.csh->sg_tablesize = SG_SIZE_BIG;
sh1065drivers/scsi/eata_dma.csh->use_clustering = FALSE;
sh1067drivers/scsi/eata_dma.csh->sg_tablesize = ntohs(gc->SGsiz);
sh1068drivers/scsi/eata_dma.csh->use_clustering = TRUE;
sh1069drivers/scsi/eata_dma.cif (sh->sg_tablesize > SG_SIZE || sh->sg_tablesize == 0) {
sh1070drivers/scsi/eata_dma.csh->sg_tablesize = SG_SIZE;
sh1082drivers/scsi/eata_dma.csh->wish_block = FALSE;     
sh1085drivers/scsi/eata_dma.csh->unchecked_isa_dma = FALSE;
sh1087drivers/scsi/eata_dma.csh->unchecked_isa_dma = TRUE;  /* We're doing ISA DMA */
sh1098drivers/scsi/eata_dma.cSD(hd->prev)->next = sh;
sh1099drivers/scsi/eata_dma.clast_HBA = sh;
sh1101drivers/scsi/eata_dma.cfirst_HBA = sh;
sh100drivers/scsi/eata_pio.cint eata_pio_release(struct Scsi_Host *sh)
sh102drivers/scsi/eata_pio.cif (sh->irq && reg_IRQ[sh->irq] == 1) free_irq(sh->irq, NULL);
sh103drivers/scsi/eata_pio.celse reg_IRQ[sh->irq]--;
sh104drivers/scsi/eata_pio.cif (SD(sh)->channel == 0) {
sh105drivers/scsi/eata_pio.cif (sh->io_port && sh->n_io_port)
sh106drivers/scsi/eata_pio.crelease_region(sh->io_port, sh->n_io_port);
sh136drivers/scsi/eata_pio.cstruct Scsi_Host *sh;
sh143drivers/scsi/eata_pio.cfor (x = 1, sh = first_HBA; x <= registered_HBAs; x++, sh = SD(sh)->prev) {
sh144drivers/scsi/eata_pio.cif (sh->irq != irq)
sh146drivers/scsi/eata_pio.cif (inb((uint)sh->base + HA_RSTATUS) & HA_SBUSY)
sh151drivers/scsi/eata_pio.chd=SD(sh);
sh286drivers/scsi/eata_pio.cstruct Scsi_Host *sh;
sh295drivers/scsi/eata_pio.csh = cmd->host;
sh296drivers/scsi/eata_pio.cbase = (uint) sh->base;
sh304drivers/scsi/eata_pio.cDBG(DBG_QUEUE, printk("can_queue %d, x %d, y %d\n",sh->can_queue,x,y));
sh394drivers/scsi/eata_pio.c"slot %d irq %d\n", (long)sh->base, cmd->pid, 
sh395drivers/scsi/eata_pio.ccmd->target, cmd->lun, y, sh->irq));
sh682drivers/scsi/eata_pio.cstruct Scsi_Host *sh;
sh731drivers/scsi/eata_pio.csh = scsi_register(tpnt, size);
sh732drivers/scsi/eata_pio.chd = SD(sh);                   
sh737drivers/scsi/eata_pio.cstrncpy(SD(sh)->vendor, &buff[8], 8);
sh738drivers/scsi/eata_pio.cSD(sh)->vendor[8] = 0;
sh739drivers/scsi/eata_pio.cstrncpy(SD(sh)->name, &buff[16], 17);
sh740drivers/scsi/eata_pio.cSD(sh)->name[17] = 0;
sh741drivers/scsi/eata_pio.cSD(sh)->revision[0] = buff[32];
sh742drivers/scsi/eata_pio.cSD(sh)->revision[1] = buff[33];
sh743drivers/scsi/eata_pio.cSD(sh)->revision[2] = buff[34];
sh744drivers/scsi/eata_pio.cSD(sh)->revision[3] = '.';
sh745drivers/scsi/eata_pio.cSD(sh)->revision[4] = buff[35];
sh746drivers/scsi/eata_pio.cSD(sh)->revision[5] = 0;
sh750drivers/scsi/eata_pio.cSD(sh)->EATA_revision = 'a';
sh753drivers/scsi/eata_pio.cSD(sh)->EATA_revision = 'b';
sh756drivers/scsi/eata_pio.cSD(sh)->EATA_revision = 'c';
sh759drivers/scsi/eata_pio.cSD(sh)->EATA_revision = 'z';    
sh761drivers/scsi/eata_pio.cSD(sh)->EATA_revision = '?';
sh780drivers/scsi/eata_pio.cSD(sh)->cplen=cplen;
sh781drivers/scsi/eata_pio.cSD(sh)->cppadlen=cppadlen;
sh782drivers/scsi/eata_pio.cSD(sh)->hostid=gc->scsi_id[3];
sh783drivers/scsi/eata_pio.cSD(sh)->devflags=1<<gc->scsi_id[3];
sh784drivers/scsi/eata_pio.cSD(sh)->moresupport=gc->MORE_support;
sh785drivers/scsi/eata_pio.csh->unique_id = base;
sh786drivers/scsi/eata_pio.csh->base = (char *) base;
sh787drivers/scsi/eata_pio.csh->io_port = base;
sh788drivers/scsi/eata_pio.csh->n_io_port = 8;
sh789drivers/scsi/eata_pio.csh->irq = gc->IRQ;
sh790drivers/scsi/eata_pio.csh->dma_channel = PIO;
sh791drivers/scsi/eata_pio.csh->this_id = gc->scsi_id[3];
sh792drivers/scsi/eata_pio.csh->can_queue = 1;
sh793drivers/scsi/eata_pio.csh->cmd_per_lun = 1;
sh794drivers/scsi/eata_pio.csh->sg_tablesize = SG_ALL;
sh798drivers/scsi/eata_pio.csh->max_id = 8;
sh799drivers/scsi/eata_pio.csh->max_lun = 8;
sh806drivers/scsi/eata_pio.csh->unchecked_isa_dma = FALSE; /* We can only do PIO */
sh811drivers/scsi/eata_pio.cSD(hd->prev)->next = sh;
sh812drivers/scsi/eata_pio.clast_HBA = sh;
sh814drivers/scsi/eata_pio.cfirst_HBA = sh;
sh312drivers/scsi/hosts.cscsi_unregister(struct Scsi_Host * sh){
sh315drivers/scsi/hosts.cif(scsi_hostlist == sh)
sh316drivers/scsi/hosts.cscsi_hostlist = sh->next;
sh319drivers/scsi/hosts.cwhile(shpnt->next != sh) shpnt = shpnt->next;
sh330drivers/scsi/hosts.cscsi_init_free((char *) sh, sizeof(struct Scsi_Host) + sh->extra_bytes);
sh319drivers/scsi/scsi.cstruct Scsi_Host * sh[128], * shpnt;
sh354drivers/scsi/scsi.cif (shpnt->wish_block) sh[block_count++] = shpnt;
sh357drivers/scsi/scsi.cif (block_count == 1) sh[0]->block = NULL;
sh362drivers/scsi/scsi.csh[index]->block = sh[index + 1];
sh364drivers/scsi/scsi.csh[index]->host_no);
sh367drivers/scsi/scsi.csh[block_count - 1]->block = sh[0];
sh369drivers/scsi/scsi.csh[index]->host_no);
sh291drivers/scsi/u14-34f.cstatic struct Scsi_Host * sh[MAX_BOARDS + 1];
sh295drivers/scsi/u14-34f.c#define HD(board) ((struct hostdata *) &sh[board]->hostdata)
sh323drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh331drivers/scsi/u14-34f.coutb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR);
sh334drivers/scsi/u14-34f.coutl((unsigned int)cpp, sh[j]->io_port + REG_OGM);
sh337drivers/scsi/u14-34f.coutb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR);
sh430drivers/scsi/u14-34f.csh[j] = scsi_register(tpnt, sizeof(struct hostdata));
sh432drivers/scsi/u14-34f.cif (sh[j] == NULL) {
sh442drivers/scsi/u14-34f.csh[j]->io_port = *port_base;
sh443drivers/scsi/u14-34f.csh[j]->n_io_port = REGION_SIZE;
sh444drivers/scsi/u14-34f.csh[j]->base = bios_segment_table[config_1.bios_segment];
sh445drivers/scsi/u14-34f.csh[j]->irq = irq;
sh446drivers/scsi/u14-34f.csh[j]->sg_tablesize = MAX_SGLIST;
sh447drivers/scsi/u14-34f.csh[j]->this_id = config_2.ha_scsi_id;
sh448drivers/scsi/u14-34f.csh[j]->can_queue = MAX_MAILBOXES;
sh449drivers/scsi/u14-34f.csh[j]->cmd_per_lun = MAX_CMD_PER_LUN;
sh455drivers/scsi/u14-34f.csys_mask = inb(sh[j]->io_port + REG_SYS_MASK);
sh456drivers/scsi/u14-34f.clcl_mask = inb(sh[j]->io_port + REG_LCL_MASK);
sh462drivers/scsi/u14-34f.cif (sh[j]->base == 0) outb(CMD_ENA_INTR, sh[j]->io_port + REG_SYS_MASK);
sh465drivers/scsi/u14-34f.crequest_region(sh[j]->io_port, REGION_SIZE, driver_name);
sh477drivers/scsi/u14-34f.csh[j]->sg_tablesize = MAX_SAFE_SGLIST;
sh480drivers/scsi/u14-34f.csh[j]->dma_channel = NO_DMA;
sh481drivers/scsi/u14-34f.csh[j]->unchecked_isa_dma = FALSE;
sh485drivers/scsi/u14-34f.csh[j]->wish_block = TRUE;
sh488drivers/scsi/u14-34f.csh[j]->hostt->use_clustering = DISABLE_CLUSTERING;
sh489drivers/scsi/u14-34f.csh[j]->sg_tablesize = MAX_SAFE_SGLIST;
sh492drivers/scsi/u14-34f.csh[j]->dma_channel = dma_channel;
sh493drivers/scsi/u14-34f.csh[j]->unchecked_isa_dma = TRUE;
sh508drivers/scsi/u14-34f.csh[j]->hostt->use_clustering = DISABLE_CLUSTERING;
sh509drivers/scsi/u14-34f.csh[j]->sg_tablesize = MAX_SAFE_SGLIST;
sh514drivers/scsi/u14-34f.c"Mbox %d, CmdLun %d, C%d.\n", BN(j), sh[j]->io_port, 
sh515drivers/scsi/u14-34f.c(int)sh[j]->base, sh[j]->irq, 
sh516drivers/scsi/u14-34f.csh[j]->dma_channel, sh[j]->sg_tablesize, 
sh517drivers/scsi/u14-34f.csh[j]->can_queue, sh[j]->cmd_per_lun,
sh518drivers/scsi/u14-34f.csh[j]->hostt->use_clustering);
sh541drivers/scsi/u14-34f.cfor (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL;
sh595drivers/scsi/u14-34f.cfor (k = 0; k < sh[j]->can_queue; k++, i++) {
sh597drivers/scsi/u14-34f.cif (i >= sh[j]->can_queue) i = 0;
sh605drivers/scsi/u14-34f.cif (k == sh[j]->can_queue) {
sh660drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh671drivers/scsi/u14-34f.coutl((unsigned int)cpp, sh[j]->io_port + REG_OGM);
sh674drivers/scsi/u14-34f.coutb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR);
sh699drivers/scsi/u14-34f.cif (i >= sh[j]->can_queue)
sh702drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh760drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh770drivers/scsi/u14-34f.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh800drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh806drivers/scsi/u14-34f.coutb(CMD_RESET, sh[j]->io_port + REG_LCL_INTR);
sh820drivers/scsi/u14-34f.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh881drivers/scsi/u14-34f.cfor (j = 0; sh[j] != NULL; j++) {
sh883drivers/scsi/u14-34f.cif (sh[j]->irq != irq) continue;
sh888drivers/scsi/u14-34f.cwhile (inb(sh[j]->io_port + REG_SYS_INTR) & IRQ_ASSERTED) {
sh895drivers/scsi/u14-34f.cspp = (struct mscp *)inl(sh[j]->io_port + REG_ICM);
sh898drivers/scsi/u14-34f.coutb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR);
sh902drivers/scsi/u14-34f.cif (i >= sh[j]->can_queue)
sh1053drivers/scsi/u14-34f.cfor (j = 0; sh[j] != NULL; j++)
sh1055drivers/scsi/u14-34f.ccalls[(sh[j]->irq)], HD(j)->iocount, HD(j)->multicount);
sh170drivers/scsi/wd7000.cstruct Scsi_Host *sh;             /* Pointer to Scsi_Host structure */
sh1112drivers/scsi/wd7000.cstruct Scsi_Host *sh;
sh1145drivers/scsi/wd7000.csh = scsi_register(tpnt, sizeof(Adapter) );
sh1146drivers/scsi/wd7000.chost = (Adapter *) sh->hostdata;
sh1152drivers/scsi/wd7000.chost->sh = sh;
sh1159drivers/scsi/wd7000.cscsi_unregister (sh);
sh1177drivers/scsi/wd7000.cif (host->rev1 < 6)  sh->sg_tablesize = SG_NONE;