tag | line | file | source code |
gc | 725 | drivers/scsi/eata_dma.c | void print_config(struct get_conf *gc) |
gc | 729 | drivers/scsi/eata_dma.c | (uint) ntohl(gc->len), gc->version, |
gc | 730 | drivers/scsi/eata_dma.c | gc->OCS_enabled, gc->TAR_support, gc->TRNXFR, gc->MORE_support, |
gc | 731 | drivers/scsi/eata_dma.c | gc->DMA_support); |
gc | 733 | drivers/scsi/eata_dma.c | gc->DMA_valid, gc->HAA_valid, gc->scsi_id[3], gc->scsi_id[2], |
gc | 734 | drivers/scsi/eata_dma.c | gc->scsi_id[1], ntohs(gc->queuesiz), ntohs(gc->SGsiz), gc->SECOND); |
gc | 736 | drivers/scsi/eata_dma.c | gc->IRQ, gc->IRQ_TR, (8 - gc->DMA_channel) & 7, gc->FORCADR, |
gc | 737 | drivers/scsi/eata_dma.c | gc->MAX_CHAN, gc->ID_qest, gc->is_PCI, gc->is_EISA); |
gc | 741 | drivers/scsi/eata_dma.c | int register_HBA(long base, struct get_conf *gc, Scsi_Host_Template * tpnt) |
gc | 750 | drivers/scsi/eata_dma.c | DBG(DBG_REGISTER, print_config(gc)); |
gc | 752 | drivers/scsi/eata_dma.c | if(gc->HAA_valid == FALSE || ntohl(gc->len) < 0x22) |
gc | 753 | drivers/scsi/eata_dma.c | gc->MAX_CHAN = 0; |
gc | 755 | drivers/scsi/eata_dma.c | if (!reg_IRQ[gc->IRQ]) { /* Interrupt already registered ? */ |
gc | 756 | drivers/scsi/eata_dma.c | if (!request_irq(gc->IRQ, (void *) eata_fake_int_handler, SA_INTERRUPT, "eata_dma")){ |
gc | 757 | drivers/scsi/eata_dma.c | reg_IRQ[gc->IRQ] += (gc->MAX_CHAN+1); |
gc | 758 | drivers/scsi/eata_dma.c | if (!gc->IRQ_TR) |
gc | 759 | drivers/scsi/eata_dma.c | reg_IRQL[gc->IRQ] = TRUE; /* IRQ is edge triggered */ |
gc | 761 | drivers/scsi/eata_dma.c | printk("Couldn't allocate IRQ %d, Sorry.", gc->IRQ); |
gc | 765 | drivers/scsi/eata_dma.c | if (reg_IRQL[gc->IRQ] == TRUE) { |
gc | 770 | drivers/scsi/eata_dma.c | reg_IRQ[gc->IRQ] += (gc->MAX_CHAN+1); |
gc | 775 | drivers/scsi/eata_dma.c | if (gc->DMA_valid) { |
gc | 776 | drivers/scsi/eata_dma.c | if (request_dma(dma_channel = (8 - gc->DMA_channel) & 7, "eata_dma")) { |
gc | 779 | drivers/scsi/eata_dma.c | reg_IRQ[gc->IRQ] -= (gc->MAX_CHAN+1); |
gc | 780 | drivers/scsi/eata_dma.c | if (reg_IRQ[gc->IRQ] == 0) |
gc | 781 | drivers/scsi/eata_dma.c | free_irq(gc->IRQ); |
gc | 782 | drivers/scsi/eata_dma.c | if (!gc->IRQ_TR) |
gc | 783 | drivers/scsi/eata_dma.c | reg_IRQL[gc->IRQ] = FALSE; |
gc | 788 | drivers/scsi/eata_dma.c | buff = get_board_data(base, gc->IRQ, gc->scsi_id[3]); |
gc | 791 | drivers/scsi/eata_dma.c | if (gc->DMA_support == FALSE) |
gc | 795 | drivers/scsi/eata_dma.c | if (gc->DMA_valid) |
gc | 797 | drivers/scsi/eata_dma.c | reg_IRQ[gc->IRQ] -= (gc->MAX_CHAN+1); |
gc | 798 | drivers/scsi/eata_dma.c | if (reg_IRQ[gc->IRQ] == 0) |
gc | 799 | drivers/scsi/eata_dma.c | free_irq(gc->IRQ); |
gc | 800 | drivers/scsi/eata_dma.c | if (!gc->IRQ_TR) |
gc | 801 | drivers/scsi/eata_dma.c | reg_IRQL[gc->IRQ] = FALSE; |
gc | 805 | drivers/scsi/eata_dma.c | if (gc->DMA_support == FALSE && buff != NULL) |
gc | 815 | drivers/scsi/eata_dma.c | if(ntohs(gc->queuesiz) == 0) { |
gc | 816 | drivers/scsi/eata_dma.c | gc->queuesiz = ntohs(64); |
gc | 821 | drivers/scsi/eata_dma.c | size = sizeof(hostdata) + ((sizeof(struct eata_ccb) * ntohs(gc->queuesiz))/ |
gc | 822 | drivers/scsi/eata_dma.c | (gc->MAX_CHAN + 1)); |
gc | 824 | drivers/scsi/eata_dma.c | if (gc->MAX_CHAN) { |
gc | 829 | drivers/scsi/eata_dma.c | for (i = 0; i <= gc->MAX_CHAN; i++) { |
gc | 834 | drivers/scsi/eata_dma.c | if (gc->DMA_valid) |
gc | 836 | drivers/scsi/eata_dma.c | reg_IRQ[gc->IRQ] -= 1; |
gc | 837 | drivers/scsi/eata_dma.c | if (reg_IRQ[gc->IRQ] == 0) |
gc | 838 | drivers/scsi/eata_dma.c | free_irq(gc->IRQ); |
gc | 839 | drivers/scsi/eata_dma.c | if (!gc->IRQ_TR) |
gc | 840 | drivers/scsi/eata_dma.c | reg_IRQL[gc->IRQ] = FALSE; |
gc | 846 | drivers/scsi/eata_dma.c | memset(hd->ccb, 0, (sizeof(struct eata_ccb) * ntohs(gc->queuesiz)) / |
gc | 847 | drivers/scsi/eata_dma.c | (gc->MAX_CHAN + 1)); |
gc | 860 | drivers/scsi/eata_dma.c | switch (ntohl(gc->len)) { |
gc | 876 | drivers/scsi/eata_dma.c | sh->irq = gc->IRQ; |
gc | 878 | drivers/scsi/eata_dma.c | sh->this_id = gc->scsi_id[3 - i]; |
gc | 879 | drivers/scsi/eata_dma.c | sh->can_queue = ntohs(gc->queuesiz) / (gc->MAX_CHAN + 1); |
gc | 881 | drivers/scsi/eata_dma.c | if (gc->OCS_enabled == TRUE) { |
gc | 890 | drivers/scsi/eata_dma.c | sh->sg_tablesize = ntohs(gc->SGsiz); |
gc | 893 | drivers/scsi/eata_dma.c | if (ntohs(gc->SGsiz) == 0) |
gc | 907 | drivers/scsi/eata_dma.c | if (gc->SECOND) |
gc | 1112 | drivers/scsi/eata_dma.c | struct get_conf gc; |
gc | 1124 | drivers/scsi/eata_dma.c | find_PCI(&gc, tpnt); |
gc | 1127 | drivers/scsi/eata_dma.c | base = find_EISA(&gc); |
gc | 1129 | drivers/scsi/eata_dma.c | register_HBA(base, &gc, tpnt); |
gc | 1133 | drivers/scsi/eata_dma.c | base = find_ISA(&gc); |
gc | 1135 | drivers/scsi/eata_dma.c | register_HBA(base, &gc, tpnt); |