• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/

Lines Matching defs:config

119  * Fix abort and reset to work properly (config.aborted wasn't cleared
216 /* Used to store configuration info read from config i/o registers. Most of
259 } config = {0};
332 static void log_ultrastor_abort(struct ultrastor_config *config,
341 if (! (config->mscp_free & (1 << i)))
342 fmt[21 + i*2] = '0' + config->mscp[i].target_id;
348 printk(fmt, command, &config->mscp[command], config->mscp_free);
375 if (config.bios_segment)
383 config.port_address = PORT_OVERRIDE;
387 config.port_address = ultrastor_ports_14f[i];
391 printk("US14F: detect: testing port address %03X\n", config.port_address);
394 in_byte = inb(U14F_PRODUCT_ID(config.port_address));
400 printk("US14F: detect: no adapter at port %03X\n", config.port_address);
406 release_region(config.port_address, 0x0c);
410 in_byte = inb(U14F_PRODUCT_ID(config.port_address) + 1);
417 printk("US14F: detect: no adapter at port %03X\n", config.port_address);
423 release_region(config.port_address, 0x0c);
442 config.port_address);
447 outb(ultrastor_bus_reset ? 0xc2 : 0x82, LCL_DOORBELL_MASK(config.port_address));
454 *(char *)&config_1 = inb(CONFIG(config.port_address + 0));
455 *(char *)&config_2 = inb(CONFIG(config.port_address + 1));
456 config.bios_segment = bios_segment_table[config_1.bios_segment];
457 config.doorbell_address = config.port_address;
458 config.ogm_address = config.port_address + 0x8;
459 config.icm_address = config.port_address + 0xC;
460 config.interrupt = interrupt_table_14f[config_1.interrupt];
461 config.ha_scsi_id = config_2.ha_scsi_id;
462 config.heads = mapping_table[config_2.mapping_mode].heads;
463 config.sectors = mapping_table[config_2.mapping_mode].sectors;
464 config.bios_drive_number = config_2.bios_drive_number;
465 config.subversion = (version_byte & 0x0F);
466 if (config.subversion == U34F)
467 config.dma_channel = 0;
469 config.dma_channel = dma_channel_table_14f[config_1.dma_channel];
471 if (!config.bios_segment) {
479 if (config.subversion != U34F)
480 if (!config.dma_channel || !(config_2.tfr_port & 0x2)) {
500 config.port_address, config.bios_segment, config.interrupt,
501 config.dma_channel, config.ha_scsi_id, config.subversion);
503 tpnt->this_id = config.ha_scsi_id;
504 tpnt->unchecked_isa_dma = (config.subversion != U34F);
507 config.mscp_free = ~0;
510 if (request_irq(config.interrupt, do_ultrastor_interrupt, 0, "Ultrastor", &config.mscp[0].SCint->device->host)) {
512 config.interrupt);
515 if (config.dma_channel && request_dma(config.dma_channel,"Ultrastor")) {
517 config.dma_channel);
518 free_irq(config.interrupt, NULL);
527 release_region(config.port_address, 0x0c);
551 config.revision = inb(addr+3);
552 config.slot = i;
564 config.bios_segment = bios_segment_table[config_1 & 7];
568 config.interrupt = 15;
571 config.interrupt = 14;
574 config.interrupt = 11;
577 config.interrupt = 10;
586 config.port_address = addr;
587 config.doorbell_address = addr + 12;
588 config.ogm_address = addr + 0x17;
589 config.icm_address = addr + 0x1C;
591 config.ha_scsi_id = config_2 & 7;
592 config.heads = mapping_table[(config_2 >> 3) & 3].heads;
593 config.sectors = mapping_table[(config_2 >> 3) & 3].sectors;
600 config.port_address, config.bios_segment,
601 config.interrupt, config.ha_scsi_id);
603 tpnt->this_id = config.ha_scsi_id;
610 free_irq(config.interrupt, do_ultrastor_interrupt);
614 if (request_irq(config.interrupt, do_ultrastor_interrupt, 0, "Ultrastor", shpnt))
617 config.interrupt);
621 shpnt->irq = config.interrupt;
622 shpnt->dma_channel = config.dma_channel;
623 shpnt->io_port = config.port_address;
626 config.mscp_free = ~0;
665 if (config.slot)
667 config.slot, config.interrupt);
668 else if (config.subversion)
670 config.port_address, (int)config.bios_segment,
671 config.interrupt);
674 config.port_address, (int)config.bios_segment,
675 config.interrupt, config.dma_channel);
709 if ((config.mscp_free & ((1U << ULTRASTOR_MAX_CMDS) - 1)) == 0)
711 mscp_index = find_and_clear_bit_16(&config.mscp_free);
714 if (xchgb(0xff, &config.aborted[mscp_index]) != 0)
720 my_mscp = &config.mscp[mscp_index];
759 if (config.slot)
760 while (inb(config.ogm_address - 1) != 0 && config.aborted[mscp_index] == 0xff)
765 while ((inb(LCL_DOORBELL_INTR(config.doorbell_address)) & (config.slot ? 2 : 1)) && config.aborted[mscp_index] == 0xff)
773 if (inb(LCL_DOORBELL_INTR(config.doorbell_address)) & (config.slot ? 2 : 1))
776 status = xchgb(0, &config.aborted[mscp_index]);
782 log_ultrastor_abort(&config, mscp_index);
788 set_bit(mscp_index, &config.mscp_free);
801 outl(isa_virt_to_bus(my_mscp), config.ogm_address);
804 if (config.slot) {
806 outb(1, config.ogm_address - 1);
807 outb(0x2, LCL_DOORBELL_INTR(config.doorbell_address));
809 outb(0x1, LCL_DOORBELL_INTR(config.doorbell_address));
847 if(config.slot)
854 mscp_index = ((struct mscp *)SCpnt->host_scribble) - config.mscp;
859 if (config.slot)
861 int port0 = (config.slot << 12) | 0xc80;
886 if (config.slot ? inb(config.icm_address - 1) == 2 :
887 (inb(SYS_DOORBELL_INTR(config.doorbell_address)) & 1))
898 old_aborted = xchgb(DID_ABORT, &config.aborted[mscp_index]);
907 if (config.slot && inb(config.ogm_address - 1) == 0)
912 outl(isa_virt_to_bus(&config.mscp[mscp_index]), config.ogm_address);
914 outb(0x80, config.ogm_address - 1);
915 outb(0x2, LCL_DOORBELL_INTR(config.doorbell_address));
917 log_ultrastor_abort(&config, mscp_index);
925 log_ultrastor_abort(&config, mscp_index);
935 if (config.mscp[mscp_index].SCint != SCpnt)
937 config.mscp[mscp_index].SCint, SCpnt);
939 if (config.mscp[mscp_index].SCint == NULL)
942 if (config.mscp[mscp_index].SCint != SCpnt) panic("Bad abort");
943 config.mscp[mscp_index].SCint = NULL;
944 done = config.mscp[mscp_index].done;
945 config.mscp[mscp_index].done = NULL;
965 if(config.slot)
971 outb(0xc0, LCL_DOORBELL_INTR(config.doorbell_address));
972 if (config.slot)
974 outb(0, config.ogm_address - 1);
975 outb(0, config.icm_address - 1);
979 if (config.mscp_busy && config.mscp->done && config.mscp->SCint)
981 config.mscp->SCint->result = DID_RESET << 16;
982 config.mscp->done(config.mscp->SCint);
984 config.mscp->SCint = 0;
988 if (! (config.mscp_free & (1 << i)) &&
989 config.mscp[i].done && config.mscp[i].SCint)
991 config.mscp[i].SCint->result = DID_RESET << 16;
992 config.mscp[i].done(config.mscp[i].SCint);
993 config.mscp[i].done = NULL;
995 config.mscp[i].SCint = NULL;
1000 memset((unsigned char *)config.aborted, 0, sizeof config.aborted);
1002 config.mscp_busy = 0;
1004 config.mscp_free = ~0;
1016 unsigned int s = config.heads * config.sectors;
1018 dkinfo[0] = config.heads;
1019 dkinfo[1] = config.sectors;
1035 mscp = &config.mscp[0];
1037 mscp = (struct mscp *)isa_bus_to_virt(inl(config.icm_address));
1038 mscp_index = mscp - config.mscp;
1049 if (config.slot) {
1050 unsigned char icm_status = inb(config.icm_address - 1);
1058 outb(2, SYS_DOORBELL_INTR(config.doorbell_address));
1059 outb(0, config.icm_address - 1);
1074 outb(1, SYS_DOORBELL_INTR(config.doorbell_address));
1086 config.mscp_busy = FALSE;
1088 set_bit(mscp_index, &config.mscp_free);
1090 config.aborted[mscp_index] = 0;
1126 config.mscp_busy = FALSE;
1128 set_bit(mscp_index, &config.mscp_free);
1132 if (config.aborted[mscp_index])
1134 mscp_index, (unsigned int) mscp, config.aborted[mscp_index]);
1136 config.aborted[mscp_index] = 0;
1143 if (config.slot ? inb(config.icm_address - 1) :
1144 (inb(SYS_DOORBELL_INTR(config.doorbell_address)) & 1))