tag | line | file | source code |
hostdata | 550 | drivers/scsi/53c7,8xx.c | issue_to_cmd (struct Scsi_Host *host, struct NCR53c7x0_hostdata *hostdata, |
hostdata | 553 | drivers/scsi/53c7,8xx.c | return (issue[0] != hostdata->NOP_insn) ? |
hostdata | 567 | drivers/scsi/53c7,8xx.c | (hostdata->E_dsa_code_begin - hostdata->E_dsa_code_template) - |
hostdata | 715 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata; |
hostdata | 734 | drivers/scsi/53c7,8xx.c | hostdata = (struct NCR53c7x0_hostdata *)h->hostdata; |
hostdata | 738 | drivers/scsi/53c7,8xx.c | if (hostdata->initiate_sdtr & (1 << target)) { |
hostdata | 743 | drivers/scsi/53c7,8xx.c | hostdata->initiate_sdtr |= (1 << target); |
hostdata | 763 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata; |
hostdata | 766 | drivers/scsi/53c7,8xx.c | hostdata = (struct NCR53c7x0_hostdata *) h->hostdata; |
hostdata | 768 | drivers/scsi/53c7,8xx.c | hostdata->options |= OPTION_DISCONNECT; |
hostdata | 770 | drivers/scsi/53c7,8xx.c | hostdata->options &= ~OPTION_DISCONNECT; |
hostdata | 785 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 786 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 790 | drivers/scsi/53c7,8xx.c | hostdata->request_sense[i] = 0; |
hostdata | 792 | drivers/scsi/53c7,8xx.c | hostdata->busy[i][j] = 0; |
hostdata | 793 | drivers/scsi/53c7,8xx.c | set_synchronous (host, i, /* sxfer */ 0, hostdata->saved_scntl3, 0); |
hostdata | 795 | drivers/scsi/53c7,8xx.c | hostdata->issue_queue = NULL; |
hostdata | 796 | drivers/scsi/53c7,8xx.c | hostdata->running_list = hostdata->finished_queue = |
hostdata | 797 | drivers/scsi/53c7,8xx.c | hostdata->current = NULL; |
hostdata | 798 | drivers/scsi/53c7,8xx.c | for (i = 0, current = (u32 *) hostdata->schedule; |
hostdata | 800 | drivers/scsi/53c7,8xx.c | current[0] = hostdata->NOP_insn; |
hostdata | 804 | drivers/scsi/53c7,8xx.c | current[1] = (u32) virt_to_bus (hostdata->script) + |
hostdata | 805 | drivers/scsi/53c7,8xx.c | hostdata->E_wait_reselect; |
hostdata | 806 | drivers/scsi/53c7,8xx.c | hostdata->reconnect_dsa_head = 0; |
hostdata | 807 | drivers/scsi/53c7,8xx.c | hostdata->addr_reconnect_dsa_head = (u32) |
hostdata | 808 | drivers/scsi/53c7,8xx.c | virt_to_bus((void *) &(hostdata->reconnect_dsa_head)); |
hostdata | 809 | drivers/scsi/53c7,8xx.c | hostdata->expecting_iid = 0; |
hostdata | 810 | drivers/scsi/53c7,8xx.c | hostdata->expecting_sto = 0; |
hostdata | 811 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_ALWAYS_SYNCHRONOUS) |
hostdata | 812 | drivers/scsi/53c7,8xx.c | hostdata->initiate_sdtr = 0xffff; |
hostdata | 814 | drivers/scsi/53c7,8xx.c | hostdata->initiate_sdtr = 0; |
hostdata | 815 | drivers/scsi/53c7,8xx.c | hostdata->talked_to = 0; |
hostdata | 816 | drivers/scsi/53c7,8xx.c | hostdata->idle = 1; |
hostdata | 887 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 888 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 907 | drivers/scsi/53c7,8xx.c | switch (hostdata->chip) { |
hostdata | 916 | drivers/scsi/53c7,8xx.c | hostdata->dstat_sir_intr = NCR53c8x0_dstat_sir_intr; |
hostdata | 917 | drivers/scsi/53c7,8xx.c | hostdata->init_save_regs = NULL; |
hostdata | 918 | drivers/scsi/53c7,8xx.c | hostdata->dsa_fixup = NCR53c8xx_dsa_fixup; |
hostdata | 919 | drivers/scsi/53c7,8xx.c | hostdata->init_fixup = NCR53c8x0_init_fixup; |
hostdata | 920 | drivers/scsi/53c7,8xx.c | hostdata->soft_reset = NCR53c8x0_soft_reset; |
hostdata | 921 | drivers/scsi/53c7,8xx.c | hostdata->run_tests = NCR53c8xx_run_tests; |
hostdata | 923 | drivers/scsi/53c7,8xx.c | expected_clock = hostdata->scsi_clock = 40000000; |
hostdata | 928 | drivers/scsi/53c7,8xx.c | host->host_no, hostdata->chip); |
hostdata | 934 | drivers/scsi/53c7,8xx.c | hostdata->NCR53c7xx_zero = 0; |
hostdata | 935 | drivers/scsi/53c7,8xx.c | hostdata->NCR53c7xx_msg_reject = MESSAGE_REJECT; |
hostdata | 936 | drivers/scsi/53c7,8xx.c | hostdata->NCR53c7xx_msg_abort = ABORT; |
hostdata | 937 | drivers/scsi/53c7,8xx.c | hostdata->NCR53c7xx_msg_nop = NOP; |
hostdata | 938 | drivers/scsi/53c7,8xx.c | hostdata->NOP_insn = (DCMD_TYPE_TCI|DCMD_TCI_OP_JUMP) << 24; |
hostdata | 941 | drivers/scsi/53c7,8xx.c | (hostdata->options & (OPTION_MEMORY_MAPPED)) != |
hostdata | 944 | drivers/scsi/53c7,8xx.c | (hostdata->options & OPTION_MEMORY_MAPPED) ? "memory" : |
hostdata | 947 | drivers/scsi/53c7,8xx.c | hostdata->dmode = (hostdata->chip == 700 || hostdata->chip == 70066) ? |
hostdata | 949 | drivers/scsi/53c7,8xx.c | hostdata->istat = ((hostdata->chip / 100) == 8) ? |
hostdata | 965 | drivers/scsi/53c7,8xx.c | tmp = hostdata->this_id_mask = NCR53c7x0_read8(SCID_REG); |
hostdata | 971 | drivers/scsi/53c7,8xx.c | hostdata->this_id_mask = 1 << host->this_id; |
hostdata | 983 | drivers/scsi/53c7,8xx.c | hostdata->this_id_mask = 1 << 7; |
hostdata | 995 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 999 | drivers/scsi/53c7,8xx.c | hostdata->saved_ctest4 = NCR53c7x0_read8(CTEST4_REG_800) & |
hostdata | 1006 | drivers/scsi/53c7,8xx.c | hostdata->saved_ctest7 = NCR53c7x0_read8(CTEST7_REG) & CTEST7_SAVE; |
hostdata | 1014 | drivers/scsi/53c7,8xx.c | hostdata->saved_dcntl = NCR53c7x0_read8(DCNTL_REG); |
hostdata | 1022 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) |
hostdata | 1023 | drivers/scsi/53c7,8xx.c | hostdata->saved_dcntl &= ~DCNTL_800_IRQM; |
hostdata | 1029 | drivers/scsi/53c7,8xx.c | hostdata->saved_dmode = NCR53c7x0_read8(hostdata->dmode); |
hostdata | 1036 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 1037 | drivers/scsi/53c7,8xx.c | if (hostdata->saved_ctest4 & CTEST4_800_BDIS) { |
hostdata | 1040 | drivers/scsi/53c7,8xx.c | switch (hostdata->saved_dmode & DMODE_BL_MASK) { |
hostdata | 1055 | drivers/scsi/53c7,8xx.c | if (hostdata->chip / 100 == 8) { |
hostdata | 1057 | drivers/scsi/53c7,8xx.c | hostdata->saved_scntl3 = NCR53c7x0_read8(SCNTL3_REG_800); |
hostdata | 1058 | drivers/scsi/53c7,8xx.c | ccf = hostdata->saved_scntl3 & SCNTL3_800_CCF_MASK; |
hostdata | 1060 | drivers/scsi/53c7,8xx.c | hostdata->saved_scntl3 = (hostdata->saved_scntl3 & |
hostdata | 1078 | drivers/scsi/53c7,8xx.c | if ((!hostdata->scsi_clock) && (hostdata->scsi_clock = ccf_to_clock (ccf)) |
hostdata | 1083 | drivers/scsi/53c7,8xx.c | hostdata->options &= ~OPTION_SYNCHRONOUS; |
hostdata | 1084 | drivers/scsi/53c7,8xx.c | hostdata->scsi_clock = 0; |
hostdata | 1087 | drivers/scsi/53c7,8xx.c | if (expected_clock == -1 || hostdata->scsi_clock != expected_clock) |
hostdata | 1089 | drivers/scsi/53c7,8xx.c | hostdata->scsi_clock / 1000000); |
hostdata | 1092 | drivers/scsi/53c7,8xx.c | hostdata->cmd_allocated[i] = 0; |
hostdata | 1094 | drivers/scsi/53c7,8xx.c | if (hostdata->init_save_regs) |
hostdata | 1095 | drivers/scsi/53c7,8xx.c | hostdata->init_save_regs (host); |
hostdata | 1096 | drivers/scsi/53c7,8xx.c | if (hostdata->init_fixup) |
hostdata | 1097 | drivers/scsi/53c7,8xx.c | hostdata->init_fixup (host); |
hostdata | 1114 | drivers/scsi/53c7,8xx.c | hostdata->soft_reset (host); |
hostdata | 1117 | drivers/scsi/53c7,8xx.c | hostdata->debug_count_limit = -1; |
hostdata | 1119 | drivers/scsi/53c7,8xx.c | hostdata->debug_count_limit = 1; |
hostdata | 1121 | drivers/scsi/53c7,8xx.c | hostdata->intrs = -1; |
hostdata | 1122 | drivers/scsi/53c7,8xx.c | hostdata->resets = -1; |
hostdata | 1123 | drivers/scsi/53c7,8xx.c | memcpy ((void *) hostdata->synchronous_want, (void *) sdtr_message, |
hostdata | 1124 | drivers/scsi/53c7,8xx.c | sizeof (hostdata->synchronous_want)); |
hostdata | 1153 | drivers/scsi/53c7,8xx.c | if ((hostdata->run_tests && hostdata->run_tests(host) == -1) || |
hostdata | 1154 | drivers/scsi/53c7,8xx.c | (hostdata->options & OPTION_DEBUG_TESTS_ONLY)) { |
hostdata | 1198 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata; |
hostdata | 1287 | drivers/scsi/53c7,8xx.c | hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 1288 | drivers/scsi/53c7,8xx.c | instance->hostdata; |
hostdata | 1289 | drivers/scsi/53c7,8xx.c | hostdata->size = size; |
hostdata | 1290 | drivers/scsi/53c7,8xx.c | hostdata->script_count = script_len / sizeof(u32); |
hostdata | 1291 | drivers/scsi/53c7,8xx.c | hostdata = (struct NCR53c7x0_hostdata *) instance->hostdata; |
hostdata | 1292 | drivers/scsi/53c7,8xx.c | hostdata->board = board; |
hostdata | 1293 | drivers/scsi/53c7,8xx.c | hostdata->chip = chip; |
hostdata | 1294 | drivers/scsi/53c7,8xx.c | if ((hostdata->pci_valid = pci_valid)) { |
hostdata | 1295 | drivers/scsi/53c7,8xx.c | hostdata->pci_bus = pci_bus; |
hostdata | 1296 | drivers/scsi/53c7,8xx.c | hostdata->pci_device_fn = pci_device_fn; |
hostdata | 1341 | drivers/scsi/53c7,8xx.c | hostdata->options = options; |
hostdata | 1342 | drivers/scsi/53c7,8xx.c | hostdata->dsa_len = dsa_len; |
hostdata | 1343 | drivers/scsi/53c7,8xx.c | hostdata->max_cmd_size = max_cmd_size; |
hostdata | 1344 | drivers/scsi/53c7,8xx.c | hostdata->num_cmds = 1; |
hostdata | 1346 | drivers/scsi/53c7,8xx.c | tmp = (hostdata->script + hostdata->script_count); |
hostdata | 1347 | drivers/scsi/53c7,8xx.c | hostdata->free = ROUNDUP(tmp, void *); |
hostdata | 1348 | drivers/scsi/53c7,8xx.c | hostdata->free->real = tmp; |
hostdata | 1349 | drivers/scsi/53c7,8xx.c | hostdata->free->size = max_cmd_size; |
hostdata | 1350 | drivers/scsi/53c7,8xx.c | hostdata->free->free = NULL; |
hostdata | 1351 | drivers/scsi/53c7,8xx.c | hostdata->free->next = NULL; |
hostdata | 1352 | drivers/scsi/53c7,8xx.c | hostdata->extra_allocate = 0; |
hostdata | 1355 | drivers/scsi/53c7,8xx.c | hostdata->schedule = (chip == 700 || chip == 70066) ? |
hostdata | 1356 | drivers/scsi/53c7,8xx.c | NULL : (u32 *) ((char *)hostdata->free + max_cmd_size); |
hostdata | 1368 | drivers/scsi/53c7,8xx.c | hostdata->events = (struct NCR53c7x0_event *) (track_events ? |
hostdata | 1371 | drivers/scsi/53c7,8xx.c | hostdata->events = NULL; |
hostdata | 1373 | drivers/scsi/53c7,8xx.c | if (hostdata->events) { |
hostdata | 1374 | drivers/scsi/53c7,8xx.c | memset ((void *) hostdata->events, 0, sizeof(struct NCR53c7x0_event) * |
hostdata | 1376 | drivers/scsi/53c7,8xx.c | hostdata->event_size = track_events; |
hostdata | 1377 | drivers/scsi/53c7,8xx.c | hostdata->event_index = 0; |
hostdata | 1379 | drivers/scsi/53c7,8xx.c | hostdata->event_size = 0; |
hostdata | 1614 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 1615 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 1624 | drivers/scsi/53c7,8xx.c | memcpy ((void *) hostdata->script, (void *) SCRIPT, |
hostdata | 1628 | drivers/scsi/53c7,8xx.c | hostdata->script[LABELPATCHES[i]] += |
hostdata | 1629 | drivers/scsi/53c7,8xx.c | virt_to_bus(hostdata->script); |
hostdata | 1632 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, NCR53c7xx_msg_abort, |
hostdata | 1633 | drivers/scsi/53c7,8xx.c | virt_to_bus(&(hostdata->NCR53c7xx_msg_abort))); |
hostdata | 1634 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, NCR53c7xx_msg_reject, |
hostdata | 1635 | drivers/scsi/53c7,8xx.c | virt_to_bus(&(hostdata->NCR53c7xx_msg_reject))); |
hostdata | 1636 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, NCR53c7xx_zero, |
hostdata | 1637 | drivers/scsi/53c7,8xx.c | virt_to_bus(&(hostdata->NCR53c7xx_zero))); |
hostdata | 1638 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, NCR53c7xx_sink, |
hostdata | 1639 | drivers/scsi/53c7,8xx.c | virt_to_bus(&(hostdata->NCR53c7xx_sink))); |
hostdata | 1640 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, NOP_insn, |
hostdata | 1641 | drivers/scsi/53c7,8xx.c | virt_to_bus(&(hostdata->NOP_insn))); |
hostdata | 1642 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, schedule, |
hostdata | 1643 | drivers/scsi/53c7,8xx.c | virt_to_bus((void *) hostdata->schedule)); |
hostdata | 1647 | drivers/scsi/53c7,8xx.c | hostdata->script[EXTERNAL_PATCHES[i].offset] += |
hostdata | 1659 | drivers/scsi/53c7,8xx.c | patch_abs_rwri_data (hostdata->script, 0, dsa_save_data_pointer, |
hostdata | 1661 | drivers/scsi/53c7,8xx.c | patch_abs_rwri_data (hostdata->script, 0, dsa_restore_pointers, |
hostdata | 1663 | drivers/scsi/53c7,8xx.c | patch_abs_rwri_data (hostdata->script, 0, dsa_check_reselect, |
hostdata | 1675 | drivers/scsi/53c7,8xx.c | if (!(hostdata->options & OPTION_MEMORY_MAPPED)) { |
hostdata | 1684 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, addr_scratch, base + SCRATCHA_REG_800); |
hostdata | 1685 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, addr_temp, base + TEMP_REG); |
hostdata | 1696 | drivers/scsi/53c7,8xx.c | patch_abs_rwri_data (hostdata->script, 0, dmode_memory_to_memory, tmp); |
hostdata | 1697 | drivers/scsi/53c7,8xx.c | patch_abs_rwri_data (hostdata->script, 0, dmode_memory_to_ncr, memory_to_ncr); |
hostdata | 1698 | drivers/scsi/53c7,8xx.c | patch_abs_rwri_data (hostdata->script, 0, dmode_ncr_to_memory, ncr_to_memory); |
hostdata | 1700 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, msg_buf, |
hostdata | 1701 | drivers/scsi/53c7,8xx.c | virt_to_bus((void *)&(hostdata->msg_buf))); |
hostdata | 1702 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, reconnect_dsa_head, |
hostdata | 1703 | drivers/scsi/53c7,8xx.c | virt_to_bus((void *)&(hostdata->reconnect_dsa_head))); |
hostdata | 1704 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, addr_reconnect_dsa_head, |
hostdata | 1705 | drivers/scsi/53c7,8xx.c | virt_to_bus((void *)&(hostdata->addr_reconnect_dsa_head))); |
hostdata | 1706 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, reselected_identify, |
hostdata | 1707 | drivers/scsi/53c7,8xx.c | virt_to_bus((void *)&(hostdata->reselected_identify))); |
hostdata | 1710 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, reselected_tag, |
hostdata | 1711 | drivers/scsi/53c7,8xx.c | virt_to_bus((void *)&(hostdata->reselected_tag))); |
hostdata | 1714 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, test_dest, |
hostdata | 1715 | drivers/scsi/53c7,8xx.c | virt_to_bus((void*)&hostdata->test_dest)); |
hostdata | 1716 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, test_src, |
hostdata | 1717 | drivers/scsi/53c7,8xx.c | virt_to_bus(&hostdata->test_source)); |
hostdata | 1719 | drivers/scsi/53c7,8xx.c | patch_abs_rwri_data (hostdata->script, 0, dsa_check_reselect, |
hostdata | 1725 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_SELECT, (u32) EVENT_SELECT); |
hostdata | 1728 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_DISCONNECT, (u32) EVENT_DISCONNECT); |
hostdata | 1731 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_RESELECT, (u32) EVENT_RESELECT); |
hostdata | 1734 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_COMPLETE, (u32) EVENT_COMPLETE); |
hostdata | 1737 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_IDLE, (u32) EVENT_IDLE); |
hostdata | 1740 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_SELECT_FAILED, |
hostdata | 1744 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_BEFORE_SELECT, |
hostdata | 1748 | drivers/scsi/53c7,8xx.c | patch_abs_32 (hostdata->script, 0, int_EVENT_RESELECT_FAILED, |
hostdata | 1757 | drivers/scsi/53c7,8xx.c | hostdata->E_accept_message = Ent_accept_message; |
hostdata | 1758 | drivers/scsi/53c7,8xx.c | hostdata->E_command_complete = Ent_command_complete; |
hostdata | 1759 | drivers/scsi/53c7,8xx.c | hostdata->E_cmdout_cmdout = Ent_cmdout_cmdout; |
hostdata | 1760 | drivers/scsi/53c7,8xx.c | hostdata->E_data_transfer = Ent_data_transfer; |
hostdata | 1761 | drivers/scsi/53c7,8xx.c | hostdata->E_debug_break = Ent_debug_break; |
hostdata | 1762 | drivers/scsi/53c7,8xx.c | hostdata->E_dsa_code_template = Ent_dsa_code_template; |
hostdata | 1763 | drivers/scsi/53c7,8xx.c | hostdata->E_dsa_code_template_end = Ent_dsa_code_template_end; |
hostdata | 1764 | drivers/scsi/53c7,8xx.c | hostdata->E_end_data_transfer = Ent_end_data_transfer; |
hostdata | 1765 | drivers/scsi/53c7,8xx.c | hostdata->E_initiator_abort = Ent_initiator_abort; |
hostdata | 1766 | drivers/scsi/53c7,8xx.c | hostdata->E_msg_in = Ent_msg_in; |
hostdata | 1767 | drivers/scsi/53c7,8xx.c | hostdata->E_other_transfer = Ent_other_transfer; |
hostdata | 1768 | drivers/scsi/53c7,8xx.c | hostdata->E_other_in = Ent_other_in; |
hostdata | 1769 | drivers/scsi/53c7,8xx.c | hostdata->E_other_out = Ent_other_out; |
hostdata | 1770 | drivers/scsi/53c7,8xx.c | hostdata->E_reject_message = Ent_reject_message; |
hostdata | 1771 | drivers/scsi/53c7,8xx.c | hostdata->E_respond_message = Ent_respond_message; |
hostdata | 1772 | drivers/scsi/53c7,8xx.c | hostdata->E_select = Ent_select; |
hostdata | 1773 | drivers/scsi/53c7,8xx.c | hostdata->E_select_msgout = Ent_select_msgout; |
hostdata | 1774 | drivers/scsi/53c7,8xx.c | hostdata->E_target_abort = Ent_target_abort; |
hostdata | 1776 | drivers/scsi/53c7,8xx.c | hostdata->E_test_0 = Ent_test_0; |
hostdata | 1778 | drivers/scsi/53c7,8xx.c | hostdata->E_test_1 = Ent_test_1; |
hostdata | 1779 | drivers/scsi/53c7,8xx.c | hostdata->E_test_2 = Ent_test_2; |
hostdata | 1781 | drivers/scsi/53c7,8xx.c | hostdata->E_test_3 = Ent_test_3; |
hostdata | 1783 | drivers/scsi/53c7,8xx.c | hostdata->E_wait_reselect = Ent_wait_reselect; |
hostdata | 1784 | drivers/scsi/53c7,8xx.c | hostdata->E_dsa_code_begin = Ent_dsa_code_begin; |
hostdata | 1786 | drivers/scsi/53c7,8xx.c | hostdata->dsa_cmdout = A_dsa_cmdout; |
hostdata | 1787 | drivers/scsi/53c7,8xx.c | hostdata->dsa_cmnd = A_dsa_cmnd; |
hostdata | 1788 | drivers/scsi/53c7,8xx.c | hostdata->dsa_datain = A_dsa_datain; |
hostdata | 1789 | drivers/scsi/53c7,8xx.c | hostdata->dsa_dataout = A_dsa_dataout; |
hostdata | 1790 | drivers/scsi/53c7,8xx.c | hostdata->dsa_end = A_dsa_end; |
hostdata | 1791 | drivers/scsi/53c7,8xx.c | hostdata->dsa_msgin = A_dsa_msgin; |
hostdata | 1792 | drivers/scsi/53c7,8xx.c | hostdata->dsa_msgout = A_dsa_msgout; |
hostdata | 1793 | drivers/scsi/53c7,8xx.c | hostdata->dsa_msgout_other = A_dsa_msgout_other; |
hostdata | 1794 | drivers/scsi/53c7,8xx.c | hostdata->dsa_next = A_dsa_next; |
hostdata | 1795 | drivers/scsi/53c7,8xx.c | hostdata->dsa_select = A_dsa_select; |
hostdata | 1796 | drivers/scsi/53c7,8xx.c | hostdata->dsa_start = Ent_dsa_code_template - Ent_dsa_zero; |
hostdata | 1797 | drivers/scsi/53c7,8xx.c | hostdata->dsa_status = A_dsa_status; |
hostdata | 1798 | drivers/scsi/53c7,8xx.c | hostdata->dsa_jump_dest = Ent_dsa_code_fix_jump - Ent_dsa_zero + |
hostdata | 1809 | drivers/scsi/53c7,8xx.c | virt_to_bus(hostdata->script), hostdata->script); |
hostdata | 1830 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 1831 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 1842 | drivers/scsi/53c7,8xx.c | if (!hostdata->idle) { |
hostdata | 1853 | drivers/scsi/53c7,8xx.c | if ((hostdata->options & OPTION_DEBUG_TEST1) && |
hostdata | 1854 | drivers/scsi/53c7,8xx.c | hostdata->state != STATE_DISABLED) { |
hostdata | 1855 | drivers/scsi/53c7,8xx.c | hostdata->idle = 0; |
hostdata | 1856 | drivers/scsi/53c7,8xx.c | hostdata->test_running = 1; |
hostdata | 1857 | drivers/scsi/53c7,8xx.c | hostdata->test_completed = -1; |
hostdata | 1858 | drivers/scsi/53c7,8xx.c | hostdata->test_dest = 0; |
hostdata | 1859 | drivers/scsi/53c7,8xx.c | hostdata->test_source = 0xdeadbeef; |
hostdata | 1860 | drivers/scsi/53c7,8xx.c | start = virt_to_bus (hostdata->script) + hostdata->E_test_1; |
hostdata | 1861 | drivers/scsi/53c7,8xx.c | hostdata->state = STATE_RUNNING; |
hostdata | 1875 | drivers/scsi/53c7,8xx.c | while ((hostdata->test_completed == -1) && jiffies < timeout) |
hostdata | 1879 | drivers/scsi/53c7,8xx.c | if (hostdata->test_completed == -1) |
hostdata | 1881 | drivers/scsi/53c7,8xx.c | (hostdata->test_dest == 0xdeadbeef) ? |
hostdata | 1890 | drivers/scsi/53c7,8xx.c | else if (hostdata->test_completed != 1) |
hostdata | 1892 | drivers/scsi/53c7,8xx.c | host->host_no, hostdata->test_completed); |
hostdata | 1894 | drivers/scsi/53c7,8xx.c | failed = (hostdata->test_dest != 0xdeadbeef); |
hostdata | 1896 | drivers/scsi/53c7,8xx.c | if (hostdata->test_dest != 0xdeadbeef) { |
hostdata | 1900 | drivers/scsi/53c7,8xx.c | host->host_no, hostdata->test_dest); |
hostdata | 1906 | drivers/scsi/53c7,8xx.c | hostdata->script, start); |
hostdata | 1912 | drivers/scsi/53c7,8xx.c | hostdata->test_running = 0; |
hostdata | 1915 | drivers/scsi/53c7,8xx.c | if ((hostdata->options & OPTION_DEBUG_TEST2) && |
hostdata | 1916 | drivers/scsi/53c7,8xx.c | hostdata->state != STATE_DISABLED) { |
hostdata | 1941 | drivers/scsi/53c7,8xx.c | if (!hostdata->idle) { |
hostdata | 1949 | drivers/scsi/53c7,8xx.c | hostdata->idle = 0; |
hostdata | 1950 | drivers/scsi/53c7,8xx.c | hostdata->test_running = 2; |
hostdata | 1951 | drivers/scsi/53c7,8xx.c | hostdata->test_completed = -1; |
hostdata | 1952 | drivers/scsi/53c7,8xx.c | start = virt_to_bus(hostdata->script) + hostdata->E_test_2; |
hostdata | 1953 | drivers/scsi/53c7,8xx.c | hostdata->state = STATE_RUNNING; |
hostdata | 1959 | drivers/scsi/53c7,8xx.c | while ((hostdata->test_completed == -1) && jiffies < timeout) |
hostdata | 1963 | drivers/scsi/53c7,8xx.c | if (hostdata->test_completed == 2) { |
hostdata | 1972 | drivers/scsi/53c7,8xx.c | } else if (hostdata->test_completed == 3) { |
hostdata | 1975 | drivers/scsi/53c7,8xx.c | if (!hostdata->idle) { |
hostdata | 1980 | drivers/scsi/53c7,8xx.c | } else if (hostdata->test_completed == -1) { |
hostdata | 1985 | drivers/scsi/53c7,8xx.c | hostdata->test_running = 0; |
hostdata | 2007 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 2008 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 2011 | drivers/scsi/53c7,8xx.c | memcpy (cmd->dsa, hostdata->script + (hostdata->E_dsa_code_template / 4), |
hostdata | 2012 | drivers/scsi/53c7,8xx.c | hostdata->E_dsa_code_template_end - hostdata->E_dsa_code_template); |
hostdata | 2038 | drivers/scsi/53c7,8xx.c | dsa_temp_sync, virt_to_bus((void *)hostdata->sync[c->target].script)); |
hostdata | 2103 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 2104 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 2125 | drivers/scsi/53c7,8xx.c | for (found = 0, left = host->can_queue, current = hostdata->schedule; |
hostdata | 2128 | drivers/scsi/53c7,8xx.c | if (issue_to_cmd (host, hostdata, (u32 *) current) == cmd) |
hostdata | 2130 | drivers/scsi/53c7,8xx.c | current[0] = hostdata->NOP_insn; |
hostdata | 2146 | drivers/scsi/53c7,8xx.c | ncr_search = hostdata->reconnect_dsa_head, |
hostdata | 2147 | drivers/scsi/53c7,8xx.c | ncr_prev = &hostdata->reconnect_dsa_head; |
hostdata | 2149 | drivers/scsi/53c7,8xx.c | ((char*)bus_to_virt(ncr_search) + hostdata->dsa_start) |
hostdata | 2152 | drivers/scsi/53c7,8xx.c | hostdata->dsa_next), ncr_search = *ncr_prev, --left); |
hostdata | 2163 | drivers/scsi/53c7,8xx.c | ((char *)bus_to_virt(ncr_search) + hostdata->dsa_next); |
hostdata | 2175 | drivers/scsi/53c7,8xx.c | for (left = host->can_queue, linux_search = hostdata->running_list, |
hostdata | 2176 | drivers/scsi/53c7,8xx.c | linux_prev = &hostdata->running_list; |
hostdata | 2186 | drivers/scsi/53c7,8xx.c | --hostdata->busy[c->target][c->lun]; |
hostdata | 2190 | drivers/scsi/53c7,8xx.c | cmd->next = hostdata->free; |
hostdata | 2191 | drivers/scsi/53c7,8xx.c | hostdata->free = cmd; |
hostdata | 2223 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 2224 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 2236 | drivers/scsi/53c7,8xx.c | for (bp = hostdata->breakpoints; bp && bp->address != dsp; |
hostdata | 2248 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8 (hostdata->dmode, |
hostdata | 2249 | drivers/scsi/53c7,8xx.c | NCR53c7x0_read8(hostdata->dmode)|DMODE_MAN); |
hostdata | 2300 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 2301 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 2309 | drivers/scsi/53c7,8xx.c | hostdata->sync[target].sxfer_sanity = sxfer; |
hostdata | 2310 | drivers/scsi/53c7,8xx.c | hostdata->sync[target].scntl3_sanity = scntl3; |
hostdata | 2317 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip != 700) && (hostdata->chip != 70066)) { |
hostdata | 2318 | drivers/scsi/53c7,8xx.c | hostdata->sync[target].select_indirect = (scntl3 << 24) | |
hostdata | 2321 | drivers/scsi/53c7,8xx.c | script = (u32 *) hostdata->sync[target].script; |
hostdata | 2324 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 2339 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_DISCONNECT) { |
hostdata | 2351 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_SYNCHRONOUS) |
hostdata | 2356 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) |
hostdata | 2377 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 2378 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 2380 | drivers/scsi/53c7,8xx.c | set_synchronous (host, target, /* no offset */ 0, hostdata->saved_scntl3, |
hostdata | 2427 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 2428 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 2437 | drivers/scsi/53c7,8xx.c | divisor = (hostdata->scsi_clock * 10) / desire; |
hostdata | 2443 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_SDTR) |
hostdata | 2450 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_SDTR) |
hostdata | 2454 | drivers/scsi/53c7,8xx.c | msg[3] = ((1000000000L / hostdata->scsi_clock) * syncs[i].div / 10 / 4); |
hostdata | 2456 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_SDTR) |
hostdata | 2460 | drivers/scsi/53c7,8xx.c | scntl3 = (hostdata->chip / 100 == 8) ? ((hostdata->saved_scntl3 & |
hostdata | 2463 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_SDTR) |
hostdata | 2490 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 2491 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 2497 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 2503 | drivers/scsi/53c7,8xx.c | switch (hostdata->msg_buf[0]) { |
hostdata | 2509 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_accept_message / |
hostdata | 2511 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2524 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_reject_message / |
hostdata | 2526 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2531 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_reject_message / |
hostdata | 2533 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2539 | drivers/scsi/53c7,8xx.c | print_msg ((unsigned char *) hostdata->msg_buf); |
hostdata | 2560 | drivers/scsi/53c7,8xx.c | print_synchronous (buf, (unsigned char *) hostdata->msg_buf); |
hostdata | 2572 | drivers/scsi/53c7,8xx.c | if (hostdata->msg_buf[4]) |
hostdata | 2574 | drivers/scsi/53c7,8xx.c | hostdata->msg_buf); |
hostdata | 2577 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_accept_message / |
hostdata | 2579 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2582 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_SYNCHRONOUS) { |
hostdata | 2585 | drivers/scsi/53c7,8xx.c | hostdata->msg_buf); |
hostdata | 2587 | drivers/scsi/53c7,8xx.c | hostdata->msg_buf[4] = 0; /* 0 offset = async */ |
hostdata | 2592 | drivers/scsi/53c7,8xx.c | virt_to_bus ((void *)&hostdata->msg_buf)); |
hostdata | 2593 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + |
hostdata | 2594 | drivers/scsi/53c7,8xx.c | hostdata->E_respond_message / sizeof(u32); |
hostdata | 2595 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2602 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_reject_message / |
hostdata | 2604 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2607 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 2613 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_target_abort / |
hostdata | 2615 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2620 | drivers/scsi/53c7,8xx.c | hostdata->reselected_identify & 7); |
hostdata | 2621 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_initiator_abort / |
hostdata | 2623 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2636 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 2678 | drivers/scsi/53c7,8xx.c | virt_to_bus(hostdata->script) + hostdata->E_other_transfer); |
hostdata | 2687 | drivers/scsi/53c7,8xx.c | cmd->data_transfer_start[3] = (u32) virt_to_bus(hostdata->script) + |
hostdata | 2688 | drivers/scsi/53c7,8xx.c | hostdata->E_other_transfer; |
hostdata | 2702 | drivers/scsi/53c7,8xx.c | hostdata->dsp = (u32 *) hostdata->script + hostdata->E_select / |
hostdata | 2704 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2709 | drivers/scsi/53c7,8xx.c | hostdata->dsp = (u32 *) hostdata->schedule; |
hostdata | 2710 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 2716 | drivers/scsi/53c7,8xx.c | hostdata->idle = 1; |
hostdata | 2717 | drivers/scsi/53c7,8xx.c | hostdata->test_completed = (dsps - A_int_test_1) / 0x00010000 + 1; |
hostdata | 2718 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 2720 | drivers/scsi/53c7,8xx.c | hostdata->test_completed); |
hostdata | 2724 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR| |
hostdata | 2739 | drivers/scsi/53c7,8xx.c | print_insn (host, hostdata->script + Ent_reselected_ok / |
hostdata | 2746 | drivers/scsi/53c7,8xx.c | hostdata->sync[c->target].script, "", 1); |
hostdata | 2748 | drivers/scsi/53c7,8xx.c | hostdata->sync[c->target].script + 2, "", 1); |
hostdata | 2755 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR)) { |
hostdata | 2779 | drivers/scsi/53c7,8xx.c | print_insn (host, hostdata->script + Ent_reselected_ok / |
hostdata | 2786 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR)) { |
hostdata | 2808 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR)) { |
hostdata | 2817 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR)) { |
hostdata | 2824 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR)) { |
hostdata | 2831 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR)) { |
hostdata | 2840 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR| |
hostdata | 2844 | drivers/scsi/53c7,8xx.c | (int) hostdata->reselected_identify & 7); |
hostdata | 2851 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR)) { |
hostdata | 2863 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR| |
hostdata | 2875 | drivers/scsi/53c7,8xx.c | hostdata->sync[c->target].script, "", 1); |
hostdata | 2877 | drivers/scsi/53c7,8xx.c | hostdata->sync[c->target].script + 2, "", 1); |
hostdata | 2890 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR| |
hostdata | 2901 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR| |
hostdata | 2923 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR| |
hostdata | 2928 | drivers/scsi/53c7,8xx.c | if (sxfer != hostdata->sync[c->target].sxfer_sanity || |
hostdata | 2929 | drivers/scsi/53c7,8xx.c | scntl3 != hostdata->sync[c->target].scntl3_sanity) { |
hostdata | 2943 | drivers/scsi/53c7,8xx.c | if (hostdata->options & (OPTION_DEBUG_SCRIPT|OPTION_DEBUG_INTR| |
hostdata | 2967 | drivers/scsi/53c7,8xx.c | (DCMD_REG)) == hostdata->script + |
hostdata | 2986 | drivers/scsi/53c7,8xx.c | if (hostdata->events) { |
hostdata | 2988 | drivers/scsi/53c7,8xx.c | ++hostdata->event_index; |
hostdata | 2989 | drivers/scsi/53c7,8xx.c | if (hostdata->event_index >= hostdata->event_size) |
hostdata | 2990 | drivers/scsi/53c7,8xx.c | hostdata->event_index = 0; |
hostdata | 2991 | drivers/scsi/53c7,8xx.c | event = (struct NCR53c7x0_event *) hostdata->events + |
hostdata | 2992 | drivers/scsi/53c7,8xx.c | hostdata->event_index; |
hostdata | 3002 | drivers/scsi/53c7,8xx.c | event->lun = hostdata->reselected_identify & 0xf; |
hostdata | 3082 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 3083 | drivers/scsi/53c7,8xx.c | instance->hostdata; |
hostdata | 3115 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 3116 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 3154 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 3155 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 3163 | drivers/scsi/53c7,8xx.c | if (hostdata->state != STATE_HALTED) { |
hostdata | 3181 | drivers/scsi/53c7,8xx.c | bp->next = hostdata->breakpoints; |
hostdata | 3182 | drivers/scsi/53c7,8xx.c | hostdata->breakpoints = bp->next; |
hostdata | 3183 | drivers/scsi/53c7,8xx.c | memcpy ((void *) bp->address, (void *) hostdata->E_debug_break, 8); |
hostdata | 3216 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostadata *hostdata; |
hostdata | 3225 | drivers/scsi/53c7,8xx.c | hostdata = (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 3275 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 3276 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 3282 | drivers/scsi/53c7,8xx.c | left = (hostdata->debug_buf + hostdata->debug_size - 1) - |
hostdata | 3283 | drivers/scsi/53c7,8xx.c | hostdata->debug_write; |
hostdata | 3285 | drivers/scsi/53c7,8xx.c | memcpy (hostdata->debug_write, buf, copy); |
hostdata | 3288 | drivers/scsi/53c7,8xx.c | hostdata->debug_count += copy; |
hostdata | 3289 | drivers/scsi/53c7,8xx.c | if ((hostdata->debug_write += copy) == |
hostdata | 3290 | drivers/scsi/53c7,8xx.c | (hostdata->debug_buf + hostdata->debug_size)) |
hostdata | 3291 | drivers/scsi/53c7,8xx.c | hosdata->debug_write = hostdata->debug_buf; |
hostdata | 3313 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 3314 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 3330 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(hostdata->dmode, hostdata->saved_dmode & ~DMODE_MAN); |
hostdata | 3346 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(RESPID_REG_800, hostdata->this_id_mask); |
hostdata | 3383 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(SIEN0_REG_800, ((hostdata->options & OPTION_PARITY) ? |
hostdata | 3392 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(DCNTL_REG, hostdata->saved_dcntl); |
hostdata | 3393 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(CTEST4_REG_800, hostdata->saved_ctest4); |
hostdata | 3419 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = |
hostdata | 3420 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 3426 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_ALLOCATION) |
hostdata | 3429 | drivers/scsi/53c7,8xx.c | host->host_no, hostdata->num_cmds, host->can_queue, |
hostdata | 3430 | drivers/scsi/53c7,8xx.c | cmd->target, cmd->lun, (hostdata->cmd_allocated[cmd->target] & |
hostdata | 3439 | drivers/scsi/53c7,8xx.c | if (!(hostdata->cmd_allocated[cmd->target] & (1 << cmd->lun)) && |
hostdata | 3446 | drivers/scsi/53c7,8xx.c | if ((hostdata->extra_allocate + hostdata->num_cmds) < host->can_queue) |
hostdata | 3447 | drivers/scsi/53c7,8xx.c | hostdata->extra_allocate += host->cmd_per_lun; |
hostdata | 3448 | drivers/scsi/53c7,8xx.c | hostdata->cmd_allocated[cmd->target] |= (1 << cmd->lun); |
hostdata | 3451 | drivers/scsi/53c7,8xx.c | for (; hostdata->extra_allocate > 0 ; --hostdata->extra_allocate, |
hostdata | 3452 | drivers/scsi/53c7,8xx.c | ++hostdata->num_cmds) { |
hostdata | 3455 | drivers/scsi/53c7,8xx.c | size = hostdata->max_cmd_size + sizeof (void *); |
hostdata | 3459 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_ALLOCATION) |
hostdata | 3474 | drivers/scsi/53c7,8xx.c | tmp->next = hostdata->free; |
hostdata | 3475 | drivers/scsi/53c7,8xx.c | hostdata->free = tmp; |
hostdata | 3480 | drivers/scsi/53c7,8xx.c | tmp = (struct NCR53c7x0_cmd *) hostdata->free; |
hostdata | 3482 | drivers/scsi/53c7,8xx.c | hostdata->free = tmp->next; |
hostdata | 3509 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 3510 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 3560 | drivers/scsi/53c7,8xx.c | hostdata->options |= OPTION_DEBUG_INTR; |
hostdata | 3618 | drivers/scsi/53c7,8xx.c | tmp->saved_data_pointer = virt_to_bus (hostdata->script) + |
hostdata | 3619 | drivers/scsi/53c7,8xx.c | hostdata->E_data_transfer; |
hostdata | 3628 | drivers/scsi/53c7,8xx.c | tmp->dsa_next_addr = virt_to_bus(tmp->dsa) + hostdata->dsa_next - |
hostdata | 3629 | drivers/scsi/53c7,8xx.c | hostdata->dsa_start; |
hostdata | 3630 | drivers/scsi/53c7,8xx.c | tmp->dsa_addr = virt_to_bus(tmp->dsa) - hostdata->dsa_start; |
hostdata | 3636 | drivers/scsi/53c7,8xx.c | tmp->data_transfer_start = tmp->dsa + (hostdata->dsa_end - |
hostdata | 3637 | drivers/scsi/53c7,8xx.c | hostdata->dsa_start) / sizeof(u32); |
hostdata | 3653 | drivers/scsi/53c7,8xx.c | if (hostdata->dsa_fixup) |
hostdata | 3654 | drivers/scsi/53c7,8xx.c | hostdata->dsa_fixup(tmp); |
hostdata | 3659 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_SYNCHRONOUS) |
hostdata | 3660 | drivers/scsi/53c7,8xx.c | if (hostdata->sync[cmd->target].select_indirect != |
hostdata | 3661 | drivers/scsi/53c7,8xx.c | ((hostdata->sync[cmd->target].scntl3_sanity << 24) | |
hostdata | 3663 | drivers/scsi/53c7,8xx.c | (hostdata->sync[cmd->target].sxfer_sanity << 8))) { |
hostdata | 3665 | drivers/scsi/53c7,8xx.c | host->host_no, hostdata->sync[cmd->target].select_indirect); |
hostdata | 3670 | drivers/scsi/53c7,8xx.c | patch_dsa_32(tmp->dsa, dsa_select, 0, hostdata->sync[cmd->target]. |
hostdata | 3677 | drivers/scsi/53c7,8xx.c | if (hostdata->initiate_wdtr & (1 << cmd->target)) { |
hostdata | 3683 | drivers/scsi/53c7,8xx.c | hostdata->initiate_wdtr &= ~(1 << cmd->target); |
hostdata | 3685 | drivers/scsi/53c7,8xx.c | } else if (hostdata->initiate_sdtr & (1 << cmd->target)) { |
hostdata | 3692 | drivers/scsi/53c7,8xx.c | hostdata->initiate_sdtr &= ~(1 << cmd->target); |
hostdata | 3697 | drivers/scsi/53c7,8xx.c | else if (!(hostdata->talked_to & (1 << cmd->target)) && |
hostdata | 3698 | drivers/scsi/53c7,8xx.c | !(hostdata->options & OPTION_NO_ASYNC)) { |
hostdata | 3707 | drivers/scsi/53c7,8xx.c | hostdata->talked_to |= (1 << cmd->target); |
hostdata | 3708 | drivers/scsi/53c7,8xx.c | tmp->select[0] = (hostdata->options & OPTION_DISCONNECT) ? |
hostdata | 3715 | drivers/scsi/53c7,8xx.c | : virt_to_bus (hostdata->script) + hostdata->E_other_transfer); |
hostdata | 3718 | drivers/scsi/53c7,8xx.c | : virt_to_bus (hostdata->script) + hostdata->E_other_transfer); |
hostdata | 3734 | drivers/scsi/53c7,8xx.c | virt_to_bus(&(hostdata->NCR53c7xx_msg_nop))); |
hostdata | 3788 | drivers/scsi/53c7,8xx.c | cmd_datain[1] = virt_to_bus (hostdata->script) + |
hostdata | 3789 | drivers/scsi/53c7,8xx.c | hostdata->E_other_in; |
hostdata | 3803 | drivers/scsi/53c7,8xx.c | cmd_dataout[1] = virt_to_bus(hostdata->script) + |
hostdata | 3804 | drivers/scsi/53c7,8xx.c | hostdata->E_other_out; |
hostdata | 3825 | drivers/scsi/53c7,8xx.c | cmd_datain[1] = virt_to_bus(hostdata->script) + |
hostdata | 3826 | drivers/scsi/53c7,8xx.c | hostdata->E_other_transfer; |
hostdata | 3842 | drivers/scsi/53c7,8xx.c | cmd_dataout[1] = virt_to_bus(hostdata->script) + |
hostdata | 3843 | drivers/scsi/53c7,8xx.c | hostdata->E_other_transfer; |
hostdata | 3876 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = |
hostdata | 3877 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 3888 | drivers/scsi/53c7,8xx.c | if ((hostdata->options & (OPTION_DEBUG_INIT_ONLY|OPTION_DEBUG_PROBE_ONLY)) |
hostdata | 3889 | drivers/scsi/53c7,8xx.c | || ((hostdata->options & OPTION_DEBUG_TARGET_LIMIT) && |
hostdata | 3890 | drivers/scsi/53c7,8xx.c | !(hostdata->debug_lun_limit[cmd->target] & (1 << cmd->lun))) |
hostdata | 3897 | drivers/scsi/53c7,8xx.c | || hostdata->state == STATE_DISABLED) { |
hostdata | 3901 | drivers/scsi/53c7,8xx.c | } else if ((hostdata->options & OPTION_DEBUG_NCOMMANDS_LIMIT) && |
hostdata | 3902 | drivers/scsi/53c7,8xx.c | (hostdata->debug_count_limit == 0)) { |
hostdata | 3906 | drivers/scsi/53c7,8xx.c | } else if (hostdata->options & OPTION_DEBUG_READ_ONLY) { |
hostdata | 3915 | drivers/scsi/53c7,8xx.c | if ((hostdata->options & OPTION_DEBUG_TARGET_LIMIT) && |
hostdata | 3916 | drivers/scsi/53c7,8xx.c | hostdata->debug_count_limit != -1) |
hostdata | 3917 | drivers/scsi/53c7,8xx.c | --hostdata->debug_count_limit; |
hostdata | 3930 | drivers/scsi/53c7,8xx.c | if (!(hostdata->issue_queue) || (cmd->cmnd[0] == REQUEST_SENSE)) { |
hostdata | 3931 | drivers/scsi/53c7,8xx.c | cmd->SCp.ptr = (unsigned char *) hostdata->issue_queue; |
hostdata | 3932 | drivers/scsi/53c7,8xx.c | hostdata->issue_queue = cmd; |
hostdata | 3934 | drivers/scsi/53c7,8xx.c | for (tmp = (Scsi_Cmnd *) hostdata->issue_queue; tmp->SCp.ptr; |
hostdata | 3963 | drivers/scsi/53c7,8xx.c | to_schedule_list (struct Scsi_Host *host, struct NCR53c7x0_hostdata *hostdata, |
hostdata | 3986 | drivers/scsi/53c7,8xx.c | if (hostdata->state == STATE_DISABLED) { |
hostdata | 3989 | drivers/scsi/53c7,8xx.c | cmd->next = (struct NCR53c7x0_cmd *) hostdata->free; |
hostdata | 3990 | drivers/scsi/53c7,8xx.c | hostdata->free = cmd; |
hostdata | 3996 | drivers/scsi/53c7,8xx.c | for (i = host->can_queue, current = hostdata->schedule; |
hostdata | 3997 | drivers/scsi/53c7,8xx.c | i > 0 && current[0] != hostdata->NOP_insn; |
hostdata | 4001 | drivers/scsi/53c7,8xx.c | ++hostdata->busy[tmp->target][tmp->lun]; |
hostdata | 4002 | drivers/scsi/53c7,8xx.c | cmd->next = hostdata->running_list; |
hostdata | 4003 | drivers/scsi/53c7,8xx.c | hostdata->running_list = cmd; |
hostdata | 4006 | drivers/scsi/53c7,8xx.c | cmd->dsa [(hostdata->dsa_jump_dest - hostdata->dsa_start) / |
hostdata | 4010 | drivers/scsi/53c7,8xx.c | virt_to_bus ((void *) cmd->dsa) + hostdata->E_dsa_code_begin - |
hostdata | 4011 | drivers/scsi/53c7,8xx.c | hostdata->E_dsa_code_template; |
hostdata | 4019 | drivers/scsi/53c7,8xx.c | cmd->next = (struct NCR53c7x0_cmd *) hostdata->free; |
hostdata | 4020 | drivers/scsi/53c7,8xx.c | hostdata->free = cmd; |
hostdata | 4031 | drivers/scsi/53c7,8xx.c | if (hostdata->idle) { |
hostdata | 4032 | drivers/scsi/53c7,8xx.c | hostdata->idle = 0; |
hostdata | 4033 | drivers/scsi/53c7,8xx.c | hostdata->state = STATE_RUNNING; |
hostdata | 4034 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write32 (DSP_REG, virt_to_bus ((void *)hostdata->schedule)); |
hostdata | 4036 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(hostdata->istat, ISTAT_10_SIGP); |
hostdata | 4053 | drivers/scsi/53c7,8xx.c | busyp (struct Scsi_Host *host, struct NCR53c7x0_hostdata *hostdata, |
hostdata | 4058 | drivers/scsi/53c7,8xx.c | return hostdata->busy[cmd->target][cmd->lun]; |
hostdata | 4082 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata; |
hostdata | 4101 | drivers/scsi/53c7,8xx.c | hostdata = (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 4103 | drivers/scsi/53c7,8xx.c | if (hostdata->issue_queue) { |
hostdata | 4104 | drivers/scsi/53c7,8xx.c | if (hostdata->state == STATE_DISABLED) { |
hostdata | 4105 | drivers/scsi/53c7,8xx.c | tmp = (Scsi_Cmnd *) hostdata->issue_queue; |
hostdata | 4106 | drivers/scsi/53c7,8xx.c | hostdata->issue_queue = (Scsi_Cmnd *) tmp->SCp.ptr; |
hostdata | 4110 | drivers/scsi/53c7,8xx.c | hostdata->free; |
hostdata | 4111 | drivers/scsi/53c7,8xx.c | hostdata->free = |
hostdata | 4118 | drivers/scsi/53c7,8xx.c | for (tmp = (Scsi_Cmnd *) hostdata->issue_queue, |
hostdata | 4122 | drivers/scsi/53c7,8xx.c | !busyp (host, hostdata, tmp)) { |
hostdata | 4126 | drivers/scsi/53c7,8xx.c | hostdata->issue_queue = (Scsi_Cmnd *) |
hostdata | 4130 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_QUEUES) |
hostdata | 4135 | drivers/scsi/53c7,8xx.c | to_schedule_list (host, hostdata, |
hostdata | 4172 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = |
hostdata | 4173 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 4183 | drivers/scsi/53c7,8xx.c | is_8xx_chip = ((unsigned) (hostdata->chip - 800)) < 100; |
hostdata | 4193 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 4201 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) { |
hostdata | 4221 | drivers/scsi/53c7,8xx.c | hostdata->idle = 1; |
hostdata | 4222 | drivers/scsi/53c7,8xx.c | hostdata->expecting_sto = 0; |
hostdata | 4224 | drivers/scsi/53c7,8xx.c | if (hostdata->test_running) { |
hostdata | 4225 | drivers/scsi/53c7,8xx.c | hostdata->test_running = 0; |
hostdata | 4226 | drivers/scsi/53c7,8xx.c | hostdata->test_completed = 3; |
hostdata | 4231 | drivers/scsi/53c7,8xx.c | hostdata->intrs = 0; |
hostdata | 4250 | drivers/scsi/53c7,8xx.c | hostdata->dsp = (u32 *) hostdata->schedule; |
hostdata | 4251 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4266 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_initiator_abort / |
hostdata | 4268 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4276 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 4296 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_initiator_abort / |
hostdata | 4298 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4304 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 4320 | drivers/scsi/53c7,8xx.c | if (!hostdata->dstat_valid) { |
hostdata | 4321 | drivers/scsi/53c7,8xx.c | hostdata->dstat = NCR53c7x0_read8(DSTAT_REG); |
hostdata | 4322 | drivers/scsi/53c7,8xx.c | hostdata->dstat_valid = 1; |
hostdata | 4326 | drivers/scsi/53c7,8xx.c | if (!(hostdata->dstat & DSTAT_DFE)) { |
hostdata | 4332 | drivers/scsi/53c7,8xx.c | while (!((hostdata->dstat = NCR53c7x0_read8(DSTAT_REG)) & |
hostdata | 4338 | drivers/scsi/53c7,8xx.c | hostdata->dstat |= DSTAT_DFE; |
hostdata | 4359 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata; /* host->hostdata */ |
hostdata | 4383 | drivers/scsi/53c7,8xx.c | hostdata = (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 4384 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 0; |
hostdata | 4391 | drivers/scsi/53c7,8xx.c | hostdata->dstat_valid = 0; |
hostdata | 4397 | drivers/scsi/53c7,8xx.c | istat = NCR53c7x0_read8(hostdata->istat); |
hostdata | 4407 | drivers/scsi/53c7,8xx.c | is_8xx_chip = ((unsigned) (hostdata->chip - 800)) < 100; |
hostdata | 4408 | drivers/scsi/53c7,8xx.c | if ((hostdata->options & OPTION_INTFLY) && |
hostdata | 4418 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(hostdata->istat, istat|ISTAT_800_INTF); |
hostdata | 4420 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 4435 | drivers/scsi/53c7,8xx.c | &(hostdata->running_list), cmd = |
hostdata | 4436 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_cmd *) hostdata->running_list; cmd ; |
hostdata | 4466 | drivers/scsi/53c7,8xx.c | --hostdata->busy[tmp->target][tmp->lun]; |
hostdata | 4467 | drivers/scsi/53c7,8xx.c | cmd->next = hostdata->free; |
hostdata | 4468 | drivers/scsi/53c7,8xx.c | hostdata->free = cmd; |
hostdata | 4472 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) { |
hostdata | 4479 | drivers/scsi/53c7,8xx.c | hostdata->options &= ~OPTION_DEBUG_INTR; |
hostdata | 4506 | drivers/scsi/53c7,8xx.c | hostdata->state = STATE_HALTED; |
hostdata | 4508 | drivers/scsi/53c7,8xx.c | if (NCR53c7x0_read8 ((hostdata->chip / 100) == 8 ? |
hostdata | 4523 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_700) { |
hostdata | 4524 | drivers/scsi/53c7,8xx.c | cmd = (struct NCR53c7x0_cmd *) hostdata->current; |
hostdata | 4528 | drivers/scsi/53c7,8xx.c | hostdata->running_list; cmd && |
hostdata | 4529 | drivers/scsi/53c7,8xx.c | (dsa + (hostdata->dsa_start / sizeof(u32))) != |
hostdata | 4533 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) { |
hostdata | 4545 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 4551 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 4556 | drivers/scsi/53c7,8xx.c | if (!hostdata->dstat_valid) { |
hostdata | 4557 | drivers/scsi/53c7,8xx.c | hostdata->dstat = NCR53c7x0_read8(DSTAT_REG); |
hostdata | 4558 | drivers/scsi/53c7,8xx.c | hostdata->dstat_valid = 1; |
hostdata | 4562 | drivers/scsi/53c7,8xx.c | if (!(hostdata->dstat & DSTAT_DFE)) { |
hostdata | 4568 | drivers/scsi/53c7,8xx.c | while (!((hostdata->dstat = NCR53c7x0_read8(DSTAT_REG)) & |
hostdata | 4575 | drivers/scsi/53c7,8xx.c | hostdata->dstat |= DSTAT_DFE; |
hostdata | 4582 | drivers/scsi/53c7,8xx.c | if (hostdata->intrs != -1) |
hostdata | 4583 | drivers/scsi/53c7,8xx.c | hostdata->intrs++; |
hostdata | 4585 | drivers/scsi/53c7,8xx.c | if (hostdata->intrs > 40) { |
hostdata | 4591 | drivers/scsi/53c7,8xx.c | if (!hostdata->idle && hostdata->state == STATE_HALTED) { |
hostdata | 4592 | drivers/scsi/53c7,8xx.c | if (!hostdata->dsp_changed) { |
hostdata | 4593 | drivers/scsi/53c7,8xx.c | hostdata->dsp = (u32 *) |
hostdata | 4599 | drivers/scsi/53c7,8xx.c | host->host_no, virt_to_bus(hostdata->dsp), hostdata->dsp); |
hostdata | 4602 | drivers/scsi/53c7,8xx.c | hostdata->state = STATE_RUNNING; |
hostdata | 4603 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write32 (DSP_REG, virt_to_bus(hostdata->dsp)); |
hostdata | 4627 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 4628 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 4666 | drivers/scsi/53c7,8xx.c | script = hostdata->abort_script = kmalloc ( |
hostdata | 4675 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_initiator_abort / |
hostdata | 4678 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4697 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 4698 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 4709 | drivers/scsi/53c7,8xx.c | count += (NCR53c7x0_read8 ((hostdata->chip / 100) == 8 ? |
hostdata | 4712 | drivers/scsi/53c7,8xx.c | if (NCR53c7x0_read8 ((hostdata->chip / 100) == 8 ? |
hostdata | 4717 | drivers/scsi/53c7,8xx.c | sstat = ((hostdata->chip / 100) == 8) ? NCR53c7x0_read8 (SSTAT0_REG) : |
hostdata | 4805 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 4806 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 4867 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_DISCONNECT) |
hostdata | 4881 | drivers/scsi/53c7,8xx.c | cmd->residual[1] = virt_to_bus(hostdata->script) |
hostdata | 4883 | drivers/scsi/53c7,8xx.c | ? hostdata->E_other_in : hostdata->E_other_out); |
hostdata | 4908 | drivers/scsi/53c7,8xx.c | hostdata->dsp = cmd->residual; |
hostdata | 4909 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4915 | drivers/scsi/53c7,8xx.c | } else if (dsp == (hostdata->script + hostdata->E_select_msgout / 4)) { |
hostdata | 4926 | drivers/scsi/53c7,8xx.c | hostdata->dsp = dsp + 2 /* two _words_ */; |
hostdata | 4927 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4934 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_msg_in / |
hostdata | 4936 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4948 | drivers/scsi/53c7,8xx.c | } else if (dsp == hostdata->script + hostdata->E_cmdout_cmdout / sizeof |
hostdata | 4950 | drivers/scsi/53c7,8xx.c | hostdata->dsp = hostdata->script + hostdata->E_data_transfer / |
hostdata | 4952 | drivers/scsi/53c7,8xx.c | hostdata->dsp_changed = 1; |
hostdata | 4956 | drivers/scsi/53c7,8xx.c | } else if (dsp == hostdata->script + hostdata->E_reply_message) { |
hostdata | 4966 | drivers/scsi/53c7,8xx.c | if (!hostdata->dstat_valid) { |
hostdata | 4967 | drivers/scsi/53c7,8xx.c | hostdata->dstat = NCR53c7x0_read8(DSTAT_REG); |
hostdata | 4968 | drivers/scsi/53c7,8xx.c | hostdata->dstat_valid = 1; |
hostdata | 4970 | drivers/scsi/53c7,8xx.c | if (!(hostdata->dstat & DSTAT_DFE)) { |
hostdata | 4976 | drivers/scsi/53c7,8xx.c | while (!((hostdata->dstat = NCR53c7x0_read8(DSTAT_REG)) & |
hostdata | 4982 | drivers/scsi/53c7,8xx.c | hostdata->dstat |= DSTAT_DFE; |
hostdata | 5000 | drivers/scsi/53c7,8xx.c | if (hostdata->dsp_changed) { |
hostdata | 5001 | drivers/scsi/53c7,8xx.c | printk("scsi%d: new dsp 0x%p\n", host->host_no, hostdata->dsp); |
hostdata | 5002 | drivers/scsi/53c7,8xx.c | print_insn (host, hostdata->dsp, "", 1); |
hostdata | 5021 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 5022 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 5056 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 5059 | drivers/scsi/53c7,8xx.c | tmp = pcibios_read_config_word (hostdata->pci_bus, |
hostdata | 5060 | drivers/scsi/53c7,8xx.c | hostdata->pci_device_fn, PCI_STATUS, &pci_status); |
hostdata | 5122 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 5123 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 5133 | drivers/scsi/53c7,8xx.c | if (!hostdata->dstat_valid) { |
hostdata | 5134 | drivers/scsi/53c7,8xx.c | hostdata->dstat = NCR53c7x0_read8(DSTAT_REG); |
hostdata | 5135 | drivers/scsi/53c7,8xx.c | hostdata->dstat_valid = 1; |
hostdata | 5138 | drivers/scsi/53c7,8xx.c | dstat = hostdata->dstat; |
hostdata | 5140 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 5163 | drivers/scsi/53c7,8xx.c | if ((hostdata->options & OPTION_700) && (hostdata->state == |
hostdata | 5181 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_TRACE) { |
hostdata | 5182 | drivers/scsi/53c7,8xx.c | } else if (hostdata->options & OPTION_DEBUG_SINGLE) { |
hostdata | 5223 | drivers/scsi/53c7,8xx.c | if (((dsp >= (hostdata->script + hostdata->E_select / sizeof(u32))) && |
hostdata | 5224 | drivers/scsi/53c7,8xx.c | (dsp <= (hostdata->script + hostdata->E_select_msgout / |
hostdata | 5225 | drivers/scsi/53c7,8xx.c | sizeof(u32) + 8))) || (hostdata->test_running == 2)) { |
hostdata | 5226 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 5229 | drivers/scsi/53c7,8xx.c | if (hostdata->expecting_iid) { |
hostdata | 5230 | drivers/scsi/53c7,8xx.c | hostdata->expecting_iid = 0; |
hostdata | 5231 | drivers/scsi/53c7,8xx.c | hostdata->idle = 1; |
hostdata | 5232 | drivers/scsi/53c7,8xx.c | if (hostdata->test_running == 2) { |
hostdata | 5233 | drivers/scsi/53c7,8xx.c | hostdata->test_running = 0; |
hostdata | 5234 | drivers/scsi/53c7,8xx.c | hostdata->test_completed = 3; |
hostdata | 5238 | drivers/scsi/53c7,8xx.c | hostdata->expecting_sto = 1; |
hostdata | 5257 | drivers/scsi/53c7,8xx.c | if (!(hostdata->options & OPTION_NO_PRINT_RACE)) |
hostdata | 5261 | drivers/scsi/53c7,8xx.c | hostdata->options |= OPTION_NO_PRINT_RACE; |
hostdata | 5290 | drivers/scsi/53c7,8xx.c | if (hostdata->options & OPTION_DEBUG_INTR) |
hostdata | 5292 | drivers/scsi/53c7,8xx.c | switch ((tmp = hostdata->dstat_sir_intr (host, cmd))) { |
hostdata | 5317 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8 && (dstat & DSTAT_800_MDPE)) { |
hostdata | 5442 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = host ? (struct NCR53c7x0_hostdata *) |
hostdata | 5443 | drivers/scsi/53c7,8xx.c | host->hostdata : NULL; |
hostdata | 5456 | drivers/scsi/53c7,8xx.c | } else if (!hostdata) { |
hostdata | 5475 | drivers/scsi/53c7,8xx.c | if (NCR53c7x0_read8(hostdata->istat) & |
hostdata | 5477 | drivers/scsi/53c7,8xx.c | (hostdata->chip / 100 == 8 ? ISTAT_800_INTF : 0))) { |
hostdata | 5504 | drivers/scsi/53c7,8xx.c | for (me = (Scsi_Cmnd *) hostdata->issue_queue, |
hostdata | 5505 | drivers/scsi/53c7,8xx.c | last = (Scsi_Cmnd **) &(hostdata->issue_queue); |
hostdata | 5512 | drivers/scsi/53c7,8xx.c | ((struct NCR53c7x0_cmd *)me->host_scribble)->next = hostdata->free; |
hostdata | 5513 | drivers/scsi/53c7,8xx.c | hostdata->free = (struct NCR53c7x0_cmd *) me->host_scribble; |
hostdata | 5530 | drivers/scsi/53c7,8xx.c | for (curr = (struct NCR53c7x0_cmd *) hostdata->running_list, |
hostdata | 5531 | drivers/scsi/53c7,8xx.c | prev = (struct NCR53c7x0_cmd **) &(hostdata->running_list); |
hostdata | 5539 | drivers/scsi/53c7,8xx.c | curr->next = (struct NCR53c7x0_cmd *) hostdata->free; |
hostdata | 5541 | drivers/scsi/53c7,8xx.c | hostdata->free = curr; |
hostdata | 5562 | drivers/scsi/53c7,8xx.c | curr->next = hostdata->free; |
hostdata | 5563 | drivers/scsi/53c7,8xx.c | hostdata->free = curr; |
hostdata | 5579 | drivers/scsi/53c7,8xx.c | --hostdata->busy[cmd->target][cmd->lun]; |
hostdata | 5625 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = |
hostdata | 5626 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 5650 | drivers/scsi/53c7,8xx.c | c->next = hostdata->free; |
hostdata | 5651 | drivers/scsi/53c7,8xx.c | hostdata->free = c; |
hostdata | 5659 | drivers/scsi/53c7,8xx.c | hostdata->soft_reset (host); |
hostdata | 5660 | drivers/scsi/53c7,8xx.c | if (hostdata->resets == 0) |
hostdata | 5662 | drivers/scsi/53c7,8xx.c | else if (hostdata->resets != -1) |
hostdata | 5663 | drivers/scsi/53c7,8xx.c | --hostdata->resets; |
hostdata | 5694 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = |
hostdata | 5695 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_hostdata *) cmd->host->hostdata; |
hostdata | 5734 | drivers/scsi/53c7,8xx.c | } else if ((insn >= hostdata->script + |
hostdata | 5735 | drivers/scsi/53c7,8xx.c | hostdata->E_data_transfer / sizeof(u32)) && |
hostdata | 5736 | drivers/scsi/53c7,8xx.c | (insn <= hostdata->script + |
hostdata | 5737 | drivers/scsi/53c7,8xx.c | hostdata->E_end_data_transfer / sizeof(u32))) { |
hostdata | 5800 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 5801 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 5806 | drivers/scsi/53c7,8xx.c | if (check_address ((unsigned long) dsa, hostdata->dsa_end - |
hostdata | 5807 | drivers/scsi/53c7,8xx.c | hostdata->dsa_start) == -1) { |
hostdata | 5814 | drivers/scsi/53c7,8xx.c | host->host_no, virt_to_bus (dsa), dsa, hostdata->dsa_msgout, |
hostdata | 5815 | drivers/scsi/53c7,8xx.c | dsa[hostdata->dsa_msgout / sizeof(u32)], |
hostdata | 5816 | drivers/scsi/53c7,8xx.c | dsa[hostdata->dsa_msgout / sizeof(u32) + 1], |
hostdata | 5817 | drivers/scsi/53c7,8xx.c | bus_to_virt (dsa[hostdata->dsa_msgout / sizeof(u32) + 1])); |
hostdata | 5825 | drivers/scsi/53c7,8xx.c | if (dsa[hostdata->dsa_msgout / sizeof(u32)] < |
hostdata | 5826 | drivers/scsi/53c7,8xx.c | sizeof (hostdata->free->select)) |
hostdata | 5827 | drivers/scsi/53c7,8xx.c | for (i = dsa[hostdata->dsa_msgout / sizeof(u32)], |
hostdata | 5828 | drivers/scsi/53c7,8xx.c | ptr = bus_to_virt (dsa[hostdata->dsa_msgout / sizeof(u32) + 1]); |
hostdata | 5839 | drivers/scsi/53c7,8xx.c | hostdata->dsa_select, dsa[hostdata->dsa_select / sizeof(u32)]); |
hostdata | 5840 | drivers/scsi/53c7,8xx.c | cmd = (Scsi_Cmnd *) bus_to_virt(dsa[hostdata->dsa_cmnd / sizeof(u32)]); |
hostdata | 5841 | drivers/scsi/53c7,8xx.c | printk(" + %d : dsa_cmnd = 0x%x ", hostdata->dsa_cmnd, |
hostdata | 5849 | drivers/scsi/53c7,8xx.c | printk(" + %d : dsa_next = 0x%x\n", hostdata->dsa_next, |
hostdata | 5850 | drivers/scsi/53c7,8xx.c | dsa[hostdata->dsa_next / sizeof(u32)]); |
hostdata | 5855 | drivers/scsi/53c7,8xx.c | hostdata->sync[cmd->target].sxfer_sanity, |
hostdata | 5856 | drivers/scsi/53c7,8xx.c | hostdata->sync[cmd->target].scntl3_sanity); |
hostdata | 5857 | drivers/scsi/53c7,8xx.c | for (i = 0; i < (sizeof(hostdata->sync[cmd->target].script) / 4); ++i) |
hostdata | 5858 | drivers/scsi/53c7,8xx.c | printk ("0x%x ", hostdata->sync[cmd->target].script[i]); |
hostdata | 5874 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 5875 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 5884 | drivers/scsi/53c7,8xx.c | for (left = host->can_queue, cmd = (Scsi_Cmnd *) hostdata->issue_queue; |
hostdata | 5919 | drivers/scsi/53c7,8xx.c | for (left = host->can_queue, current = hostdata->schedule; |
hostdata | 5921 | drivers/scsi/53c7,8xx.c | if (current[0] != hostdata->NOP_insn) |
hostdata | 5924 | drivers/scsi/53c7,8xx.c | (hostdata->E_dsa_code_begin - |
hostdata | 5925 | drivers/scsi/53c7,8xx.c | hostdata->E_dsa_code_template)), ""); |
hostdata | 5931 | drivers/scsi/53c7,8xx.c | dsa = bus_to_virt (hostdata->reconnect_dsa_head); |
hostdata | 5943 | drivers/scsi/53c7,8xx.c | next_dsa = bus_to_virt(dsa[hostdata->dsa_next / sizeof(u32)]); |
hostdata | 5957 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = |
hostdata | 5958 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 5983 | drivers/scsi/53c7,8xx.c | (int) NCR53c7x0_read8(hostdata->dmode), |
hostdata | 5989 | drivers/scsi/53c7,8xx.c | sstat2_to_phase(NCR53c7x0_read8 (((hostdata->chip / 100) == 8) ? |
hostdata | 5991 | drivers/scsi/53c7,8xx.c | (NCR53c7x0_read8 ((hostdata->chip / 100) == 8 ? |
hostdata | 6023 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 6024 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 6031 | drivers/scsi/53c7,8xx.c | hostdata->soft_reset(host); |
hostdata | 6047 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 6048 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 6054 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 6061 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 6074 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 6075 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 6081 | drivers/scsi/53c7,8xx.c | if (hostdata->soft_reset) |
hostdata | 6082 | drivers/scsi/53c7,8xx.c | hostdata->soft_reset (host); |
hostdata | 6109 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 6110 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 6115 | drivers/scsi/53c7,8xx.c | for (c = (struct NCR53c7x0_cmd *) hostdata->running_list; c; |
hostdata | 6128 | drivers/scsi/53c7,8xx.c | c->next = hostdata->free; |
hostdata | 6129 | drivers/scsi/53c7,8xx.c | hostdata->free = c; |
hostdata | 6134 | drivers/scsi/53c7,8xx.c | for (i = 0, current = (u32 *) hostdata->schedule; |
hostdata | 6136 | drivers/scsi/53c7,8xx.c | current[0] = hostdata->NOP_insn; |
hostdata | 6139 | drivers/scsi/53c7,8xx.c | hostdata->current = NULL; |
hostdata | 6143 | drivers/scsi/53c7,8xx.c | for (tmp = (Scsi_Cmnd *) hostdata->issue_queue; tmp; tmp = tmp->next) { |
hostdata | 6153 | drivers/scsi/53c7,8xx.c | hostdata->issue_queue = NULL; |
hostdata | 6175 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 6176 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 6181 | drivers/scsi/53c7,8xx.c | if (hostdata->state != STATE_HALTED) |
hostdata | 6185 | drivers/scsi/53c7,8xx.c | hostdata->state = STATE_DISABLED; |
hostdata | 6214 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 6215 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 6228 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(hostdata->istat, ISTAT_ABRT); |
hostdata | 6231 | drivers/scsi/53c7,8xx.c | istat = NCR53c7x0_read8 (hostdata->istat); |
hostdata | 6233 | drivers/scsi/53c7,8xx.c | if ((hostdata->chip / 100) == 8) { |
hostdata | 6244 | drivers/scsi/53c7,8xx.c | NCR53c7x0_write8(hostdata->istat, 0); |
hostdata | 6259 | drivers/scsi/53c7,8xx.c | hostdata->state = STATE_HALTED; |
hostdata | 6298 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) |
hostdata | 6299 | drivers/scsi/53c7,8xx.c | host->hostdata; |
hostdata | 6303 | drivers/scsi/53c7,8xx.c | if (hostdata->events) { |
hostdata | 6304 | drivers/scsi/53c7,8xx.c | if (count > hostdata->event_size) |
hostdata | 6305 | drivers/scsi/53c7,8xx.c | count = hostdata->event_size; |
hostdata | 6306 | drivers/scsi/53c7,8xx.c | for (i = hostdata->event_index; count > 0; |
hostdata | 6307 | drivers/scsi/53c7,8xx.c | i = (i ? i - 1 : hostdata->event_size -1), --count) { |
hostdata | 6317 | drivers/scsi/53c7,8xx.c | event = hostdata->events[i]; |
hostdata | 6319 | drivers/scsi/53c7,8xx.c | memcpy ((void *) &event, (void *) &(hostdata->events[i]), |
hostdata | 6362 | drivers/scsi/53c7,8xx.c | struct NCR53c7x0_hostdata *hostdata = |
hostdata | 6363 | drivers/scsi/53c7,8xx.c | (struct NCR53c7x0_hostdata *) host->hostdata; |
hostdata | 6381 | drivers/scsi/53c7,8xx.c | for (cmd = (struct NCR53c7x0_cmd *) hostdata->free; cmd; cmd = tmp, |
hostdata | 6382 | drivers/scsi/53c7,8xx.c | --hostdata->num_cmds) { |
hostdata | 6392 | drivers/scsi/53c7,8xx.c | if (hostdata->num_cmds) |
hostdata | 6394 | drivers/scsi/53c7,8xx.c | host->host_no, hostdata->num_cmds); |
hostdata | 6395 | drivers/scsi/53c7,8xx.c | if (hostdata->events) |
hostdata | 6396 | drivers/scsi/53c7,8xx.c | vfree ((void *)hostdata->events); |
hostdata | 1505 | drivers/scsi/53c7,8xx.h | host->hostdata)-> options & OPTION_MEMORY_MAPPED |
hostdata | 1542 | drivers/scsi/53c7,8xx.h | if (hostdata->options & OPTION_DEBUG_FIXUP) \ |
hostdata | 1572 | drivers/scsi/53c7,8xx.h | (dsa)[(hostdata->##symbol - hostdata->dsa_start) / sizeof(u32) \ |
hostdata | 1574 | drivers/scsi/53c7,8xx.h | if (hostdata->options & OPTION_DEBUG_DSA) \ |
hostdata | 1576 | drivers/scsi/53c7,8xx.h | #dsa, #symbol, hostdata->##symbol, \ |
hostdata | 249 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 256 | drivers/scsi/AM53C974.c | if (!hostdata->connected) { |
hostdata | 259 | drivers/scsi/AM53C974.c | print_Scsi_Cmnd ((Scsi_Cmnd *)hostdata->connected); } |
hostdata | 260 | drivers/scsi/AM53C974.c | if (!hostdata->sel_cmd) { |
hostdata | 263 | drivers/scsi/AM53C974.c | print_Scsi_Cmnd ((Scsi_Cmnd *)hostdata->sel_cmd); } |
hostdata | 266 | drivers/scsi/AM53C974.c | if (!hostdata->issue_queue) |
hostdata | 270 | drivers/scsi/AM53C974.c | for (ptr = (Scsi_Cmnd *)hostdata->issue_queue; ptr; ptr = (Scsi_Cmnd *)ptr->host_scribble) |
hostdata | 274 | drivers/scsi/AM53C974.c | if (!hostdata->disconnected_queue) |
hostdata | 278 | drivers/scsi/AM53C974.c | for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; ptr = (Scsi_Cmnd *)ptr->host_scribble) |
hostdata | 595 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata; |
hostdata | 603 | drivers/scsi/AM53C974.c | hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 621 | drivers/scsi/AM53C974.c | for (i = 0; i < sizeof(hostdata->msgout); i++) { |
hostdata | 622 | drivers/scsi/AM53C974.c | hostdata->msgout[i] = NOP; |
hostdata | 623 | drivers/scsi/AM53C974.c | hostdata->last_message[i] = NOP; } |
hostdata | 625 | drivers/scsi/AM53C974.c | hostdata->busy[i] = 0; |
hostdata | 626 | drivers/scsi/AM53C974.c | hostdata->sync_per[i] = DEF_STP; |
hostdata | 627 | drivers/scsi/AM53C974.c | hostdata->sync_off[i] = 0; |
hostdata | 628 | drivers/scsi/AM53C974.c | hostdata->sync_neg[i] = 0; |
hostdata | 629 | drivers/scsi/AM53C974.c | hostdata->sync_en[i] = DEFAULT_SYNC_NEGOTIATION_ENABLED; |
hostdata | 630 | drivers/scsi/AM53C974.c | hostdata->max_rate[i] = DEFAULT_RATE; |
hostdata | 631 | drivers/scsi/AM53C974.c | hostdata->max_offset[i] = DEFAULT_SYNC_OFFSET; } |
hostdata | 637 | drivers/scsi/AM53C974.c | hostdata->sync_en[j] = 1; |
hostdata | 638 | drivers/scsi/AM53C974.c | hostdata->max_rate[j] = overrides[i].max_rate; |
hostdata | 639 | drivers/scsi/AM53C974.c | hostdata->max_offset[j] = overrides[i].max_offset; |
hostdata | 643 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; |
hostdata | 644 | drivers/scsi/AM53C974.c | hostdata->connected = NULL; |
hostdata | 645 | drivers/scsi/AM53C974.c | hostdata->issue_queue = NULL; |
hostdata | 646 | drivers/scsi/AM53C974.c | hostdata->disconnected_queue = NULL; |
hostdata | 647 | drivers/scsi/AM53C974.c | hostdata->in_reset = 0; |
hostdata | 648 | drivers/scsi/AM53C974.c | hostdata->aborted = 0; |
hostdata | 649 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; |
hostdata | 650 | drivers/scsi/AM53C974.c | hostdata->disconnecting = 0; |
hostdata | 651 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 815 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 834 | drivers/scsi/AM53C974.c | if (!(hostdata->issue_queue) || (cmd->cmnd[0] == REQUEST_SENSE)) { |
hostdata | 835 | drivers/scsi/AM53C974.c | LIST(cmd, hostdata->issue_queue); |
hostdata | 836 | drivers/scsi/AM53C974.c | cmd->host_scribble = (unsigned char *)hostdata->issue_queue; |
hostdata | 837 | drivers/scsi/AM53C974.c | hostdata->issue_queue = cmd; } |
hostdata | 839 | drivers/scsi/AM53C974.c | for (tmp = (Scsi_Cmnd *)hostdata->issue_queue; tmp->host_scribble; |
hostdata | 868 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata; |
hostdata | 880 | drivers/scsi/AM53C974.c | hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 884 | drivers/scsi/AM53C974.c | if (!hostdata->connected && !hostdata->sel_cmd) { |
hostdata | 887 | drivers/scsi/AM53C974.c | for (tmp = (Scsi_Cmnd *)hostdata->issue_queue, prev = NULL; tmp; |
hostdata | 890 | drivers/scsi/AM53C974.c | if (!(hostdata->busy[tmp->target] & (1 << tmp->lun))) { |
hostdata | 896 | drivers/scsi/AM53C974.c | REMOVE(-1, hostdata->issue_queue, tmp, tmp->host_scribble); |
hostdata | 897 | drivers/scsi/AM53C974.c | hostdata->issue_queue = (Scsi_Cmnd *)tmp->host_scribble; } |
hostdata | 902 | drivers/scsi/AM53C974.c | hostdata->selecting = 1; |
hostdata | 903 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = tmp; |
hostdata | 912 | drivers/scsi/AM53C974.c | (long)hostdata->connected, (long)hostdata->sel_cmd)); |
hostdata | 932 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata; |
hostdata | 943 | drivers/scsi/AM53C974.c | hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 952 | drivers/scsi/AM53C974.c | if (hostdata->connected && (dmastatus & (DMASTATUS_ERROR | DMASTATUS_PWDN | |
hostdata | 962 | drivers/scsi/AM53C974.c | if (hostdata->connected && (dmastatus & DMASTATUS_DONE)) { |
hostdata | 979 | drivers/scsi/AM53C974.c | hostdata->connected->SCp.ptr += hostdata->connected->SCp.this_residual - residual; |
hostdata | 980 | drivers/scsi/AM53C974.c | hostdata->connected->SCp.this_residual = residual; |
hostdata | 985 | drivers/scsi/AM53C974.c | if (hostdata->dma_busy) { |
hostdata | 986 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 1017 | drivers/scsi/AM53C974.c | if (hostdata->connected) hostdata->sync_off[hostdata->connected->target] = 0; /* setup asynchronous transfer */ |
hostdata | 1018 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; } |
hostdata | 1029 | drivers/scsi/AM53C974.c | if (hostdata->in_reset && (instreg & INSTREG_SRST)) { |
hostdata | 1037 | drivers/scsi/AM53C974.c | if (hostdata->connected) { |
hostdata | 1038 | drivers/scsi/AM53C974.c | hostdata->connected->result = DID_RESET << 16; |
hostdata | 1039 | drivers/scsi/AM53C974.c | hostdata->connected->scsi_done((Scsi_Cmnd *)hostdata->connected); |
hostdata | 1040 | drivers/scsi/AM53C974.c | hostdata->connected = NULL; } |
hostdata | 1042 | drivers/scsi/AM53C974.c | if (hostdata->sel_cmd) { |
hostdata | 1043 | drivers/scsi/AM53C974.c | hostdata->sel_cmd->result = DID_RESET << 16; |
hostdata | 1044 | drivers/scsi/AM53C974.c | hostdata->sel_cmd->scsi_done((Scsi_Cmnd *)hostdata->sel_cmd); |
hostdata | 1045 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; } |
hostdata | 1048 | drivers/scsi/AM53C974.c | if (hostdata->in_reset == 1) goto EXIT; |
hostdata | 1081 | drivers/scsi/AM53C974.c | if (hostdata->selecting) { |
hostdata | 1084 | drivers/scsi/AM53C974.c | AM53C974_select(instance, (Scsi_Cmnd *)hostdata->sel_cmd, |
hostdata | 1085 | drivers/scsi/AM53C974.c | (hostdata->sel_cmd->cmnd[0] == REQUEST_SENSE) ? |
hostdata | 1087 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; |
hostdata | 1088 | drivers/scsi/AM53C974.c | AM53C974_set_sync(instance, hostdata->sel_cmd->target); |
hostdata | 1092 | drivers/scsi/AM53C974.c | if (hostdata->sel_cmd != NULL) { |
hostdata | 1098 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 1099 | drivers/scsi/AM53C974.c | LIST(hostdata->sel_cmd, hostdata->issue_queue); |
hostdata | 1100 | drivers/scsi/AM53C974.c | hostdata->sel_cmd->host_scribble = (unsigned char *)hostdata->issue_queue; |
hostdata | 1101 | drivers/scsi/AM53C974.c | hostdata->issue_queue = hostdata->sel_cmd; |
hostdata | 1102 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; |
hostdata | 1103 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; |
hostdata | 1108 | drivers/scsi/AM53C974.c | DEB(printk("successful selection; cmd=0x%02lx\n", (long)hostdata->sel_cmd)); |
hostdata | 1110 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 1111 | drivers/scsi/AM53C974.c | hostdata->disconnecting = 0; |
hostdata | 1112 | drivers/scsi/AM53C974.c | hostdata->connected = hostdata->sel_cmd; |
hostdata | 1113 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; |
hostdata | 1114 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; |
hostdata | 1116 | drivers/scsi/AM53C974.c | if (!hostdata->connected->device->tagged_queue) |
hostdata | 1118 | drivers/scsi/AM53C974.c | hostdata->busy[hostdata->connected->target] |= (1 << hostdata->connected->lun); |
hostdata | 1120 | drivers/scsi/AM53C974.c | if ((hostdata->connected->cmnd[0] == REQUEST_SENSE) && hostdata->connected->use_sg) { |
hostdata | 1123 | drivers/scsi/AM53C974.c | hostdata->connected->use_sg = 0; } |
hostdata | 1124 | drivers/scsi/AM53C974.c | initialize_SCp((Scsi_Cmnd *)hostdata->connected); |
hostdata | 1125 | drivers/scsi/AM53C974.c | hostdata->connected->SCp.phase = PHASE_CMDOUT; |
hostdata | 1139 | drivers/scsi/AM53C974.c | if (hostdata->connected) { |
hostdata | 1168 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1172 | drivers/scsi/AM53C974.c | if (hostdata->sel_cmd != NULL) { |
hostdata | 1174 | drivers/scsi/AM53C974.c | cmd = (Scsi_Cmnd *)hostdata->sel_cmd; |
hostdata | 1179 | drivers/scsi/AM53C974.c | if (!hostdata->connected) { |
hostdata | 1185 | drivers/scsi/AM53C974.c | if (hostdata->disconnecting) { |
hostdata | 1187 | drivers/scsi/AM53C974.c | cmd = (Scsi_Cmnd *)hostdata->connected; |
hostdata | 1194 | drivers/scsi/AM53C974.c | LIST(cmd,hostdata->disconnected_queue); |
hostdata | 1195 | drivers/scsi/AM53C974.c | cmd->host_scribble = (unsigned char *)hostdata->disconnected_queue; |
hostdata | 1196 | drivers/scsi/AM53C974.c | hostdata->disconnected_queue = cmd; |
hostdata | 1199 | drivers/scsi/AM53C974.c | cmd->lun, hostdata->disconnected_queue->SCp.this_residual)); |
hostdata | 1217 | drivers/scsi/AM53C974.c | cmd = (Scsi_Cmnd *)hostdata->connected; |
hostdata | 1230 | drivers/scsi/AM53C974.c | if ((hostdata->last_message[0] == EXTENDED_MESSAGE) && |
hostdata | 1231 | drivers/scsi/AM53C974.c | (hostdata->last_message[2] == EXTENDED_SDTR)) { |
hostdata | 1233 | drivers/scsi/AM53C974.c | hostdata->sync_off[cmd->target] = 0; } |
hostdata | 1234 | drivers/scsi/AM53C974.c | if (hostdata->aborted || hostdata->msgout[0] == ABORT) |
hostdata | 1241 | drivers/scsi/AM53C974.c | hostdata->aborted = 0; |
hostdata | 1242 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = NOP; |
hostdata | 1243 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; |
hostdata | 1244 | drivers/scsi/AM53C974.c | hostdata->connected = NULL; |
hostdata | 1245 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; |
hostdata | 1246 | drivers/scsi/AM53C974.c | hostdata->disconnecting = 0; |
hostdata | 1247 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 1248 | drivers/scsi/AM53C974.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1251 | drivers/scsi/AM53C974.c | (long)hostdata->issue_queue, (long)hostdata->disconnected_queue)); |
hostdata | 1254 | drivers/scsi/AM53C974.c | if (!hostdata->selecting) { |
hostdata | 1260 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = NOP; |
hostdata | 1261 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; |
hostdata | 1262 | drivers/scsi/AM53C974.c | hostdata->connected = NULL; |
hostdata | 1263 | drivers/scsi/AM53C974.c | hostdata->aborted = 0; |
hostdata | 1264 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; |
hostdata | 1265 | drivers/scsi/AM53C974.c | hostdata->disconnecting = 0; |
hostdata | 1266 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 1268 | drivers/scsi/AM53C974.c | (long)hostdata->issue_queue, (long)hostdata->disconnected_queue)); |
hostdata | 1269 | drivers/scsi/AM53C974.c | if (!hostdata->selecting) { |
hostdata | 1293 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1300 | drivers/scsi/AM53C974.c | hostdata->msgout[3] = period / 4; } |
hostdata | 1304 | drivers/scsi/AM53C974.c | hostdata->msgout[3] = period / 4; } |
hostdata | 1306 | drivers/scsi/AM53C974.c | hostdata->msgout[3] = msg[3]; |
hostdata | 1309 | drivers/scsi/AM53C974.c | hostdata->msgout[4] = offset; |
hostdata | 1310 | drivers/scsi/AM53C974.c | hostdata->sync_per[target] = period; |
hostdata | 1311 | drivers/scsi/AM53C974.c | hostdata->sync_off[target] = offset; |
hostdata | 1312 | drivers/scsi/AM53C974.c | for (i = 0; i < 3; i++) hostdata->msgout[i] = msg[i]; |
hostdata | 1313 | drivers/scsi/AM53C974.c | if ((hostdata->msgout[3] != msg[3]) || (msg[4] != offset)) return(1); |
hostdata | 1340 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1343 | drivers/scsi/AM53C974.c | AM53C974_write_8(STPREG, hostdata->sync_per[target]); |
hostdata | 1360 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1363 | drivers/scsi/AM53C974.c | AM53C974_write_8(STPREG, hostdata->sync_per[target]); |
hostdata | 1364 | drivers/scsi/AM53C974.c | AM53C974_write_8(SOFREG, (SOFREG_SO & hostdata->sync_off[target]) | |
hostdata | 1391 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1392 | drivers/scsi/AM53C974.c | Scsi_Cmnd *cmd = (Scsi_Cmnd *)hostdata->connected; |
hostdata | 1400 | drivers/scsi/AM53C974.c | (long)hostdata->connected, (long)hostdata->sel_cmd, cmd->SCp.this_residual, cmd->SCp.buffers_residual)); |
hostdata | 1406 | drivers/scsi/AM53C974.c | (long)hostdata->connected, (long)hostdata->sel_cmd, cmd->SCp.this_residual, cmd->SCp.buffers_residual)); |
hostdata | 1409 | drivers/scsi/AM53C974.c | if (hostdata->aborted) { |
hostdata | 1421 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 1426 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 1; |
hostdata | 1432 | drivers/scsi/AM53C974.c | (long)hostdata->connected, (long)hostdata->sel_cmd)); |
hostdata | 1464 | drivers/scsi/AM53C974.c | AM53C974_read_8(CFIREG) & CFIREG_CF, hostdata->msgout[0])); |
hostdata | 1467 | drivers/scsi/AM53C974.c | for (i = 0; i < sizeof(hostdata->last_message); i++) |
hostdata | 1468 | drivers/scsi/AM53C974.c | hostdata->last_message[i] = hostdata->msgout[i]; |
hostdata | 1469 | drivers/scsi/AM53C974.c | if ((hostdata->msgout[0] == 0) || INSIDE(hostdata->msgout[0], 0x02, 0x1F) || |
hostdata | 1470 | drivers/scsi/AM53C974.c | INSIDE(hostdata->msgout[0], 0x80, 0xFF)) |
hostdata | 1473 | drivers/scsi/AM53C974.c | if (hostdata->msgout[0] == EXTENDED_MESSAGE) { |
hostdata | 1476 | drivers/scsi/AM53C974.c | for (i = 0; i < hostdata->msgout[1] + 2; i++) { |
hostdata | 1477 | drivers/scsi/AM53C974.c | printk("%02x ", hostdata->msgout[i]); |
hostdata | 1481 | drivers/scsi/AM53C974.c | len = hostdata->msgout[1] + 2; } |
hostdata | 1485 | drivers/scsi/AM53C974.c | for (i = 0; i < len; i++) AM53C974_write_8(FFREG, hostdata->msgout[i]); |
hostdata | 1488 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = NOP; |
hostdata | 1555 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1579 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 1583 | drivers/scsi/AM53C974.c | if (hostdata->aborted) { |
hostdata | 1596 | drivers/scsi/AM53C974.c | cmd = hostdata->connected; |
hostdata | 1605 | drivers/scsi/AM53C974.c | hostdata->disconnecting = 1; |
hostdata | 1624 | drivers/scsi/AM53C974.c | if (hostdata->aborted) { |
hostdata | 1642 | drivers/scsi/AM53C974.c | LIST(cmd,hostdata->issue_queue); |
hostdata | 1643 | drivers/scsi/AM53C974.c | cmd->host_scribble = (unsigned char *)hostdata->issue_queue; |
hostdata | 1644 | drivers/scsi/AM53C974.c | hostdata->issue_queue = (Scsi_Cmnd *)cmd; |
hostdata | 1655 | drivers/scsi/AM53C974.c | switch (hostdata->last_message[0]) { |
hostdata | 1657 | drivers/scsi/AM53C974.c | if (hostdata->last_message[2] == EXTENDED_SDTR) { |
hostdata | 1661 | drivers/scsi/AM53C974.c | hostdata->sync_off[cmd->target] = 0; |
hostdata | 1662 | drivers/scsi/AM53C974.c | hostdata->sync_per[cmd->target] = DEF_STP; } |
hostdata | 1668 | drivers/scsi/AM53C974.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 1673 | drivers/scsi/AM53C974.c | if (hostdata->aborted) AM53C974_write_8(CMDREG, CMDREG_SATN); |
hostdata | 1681 | drivers/scsi/AM53C974.c | hostdata->disconnecting = 1; |
hostdata | 1697 | drivers/scsi/AM53C974.c | if (hostdata->aborted) { |
hostdata | 1747 | drivers/scsi/AM53C974.c | if (ret || hostdata->aborted) AM53C974_write_8(CMDREG, CMDREG_SATN); |
hostdata | 1758 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = MESSAGE_REJECT; |
hostdata | 1789 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1813 | drivers/scsi/AM53C974.c | hostdata->last_message[0] = SIMPLE_QUEUE_TAG; |
hostdata | 1829 | drivers/scsi/AM53C974.c | !(hostdata->sync_neg[cmd->target]) && hostdata->sync_en[cmd->target]) { |
hostdata | 1830 | drivers/scsi/AM53C974.c | hostdata->sync_neg[cmd->target] = 1; |
hostdata | 1831 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = EXTENDED_MESSAGE; |
hostdata | 1832 | drivers/scsi/AM53C974.c | hostdata->msgout[1] = 3; |
hostdata | 1833 | drivers/scsi/AM53C974.c | hostdata->msgout[2] = EXTENDED_SDTR; |
hostdata | 1834 | drivers/scsi/AM53C974.c | hostdata->msgout[3] = 250 / (int)hostdata->max_rate[cmd->target]; |
hostdata | 1835 | drivers/scsi/AM53C974.c | hostdata->msgout[4] = hostdata->max_offset[cmd->target]; |
hostdata | 1844 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = NOP; |
hostdata | 1849 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = NOP; |
hostdata | 1872 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 1882 | drivers/scsi/AM53C974.c | if (hostdata->selecting) { |
hostdata | 1887 | drivers/scsi/AM53C974.c | LIST(hostdata->sel_cmd, hostdata->issue_queue); |
hostdata | 1888 | drivers/scsi/AM53C974.c | hostdata->sel_cmd->host_scribble = (unsigned char *)hostdata->issue_queue; |
hostdata | 1889 | drivers/scsi/AM53C974.c | hostdata->issue_queue = hostdata->sel_cmd; |
hostdata | 1890 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; |
hostdata | 1891 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; } |
hostdata | 1896 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 1903 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 1909 | drivers/scsi/AM53C974.c | if (hostdata->aborted) goto EXIT_ABORT; |
hostdata | 1913 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 1920 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 1934 | drivers/scsi/AM53C974.c | for (tmp = (Scsi_Cmnd *)hostdata->disconnected_queue, prev = NULL; |
hostdata | 1946 | drivers/scsi/AM53C974.c | REMOVE(-1, hostdata->disconnected_queue, tmp, tmp->host_scribble); |
hostdata | 1947 | drivers/scsi/AM53C974.c | hostdata->disconnected_queue = (Scsi_Cmnd *)tmp->host_scribble; } |
hostdata | 1949 | drivers/scsi/AM53C974.c | hostdata->connected = tmp; |
hostdata | 1961 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 1978 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 1979 | drivers/scsi/AM53C974.c | hostdata->connected->SCp.phase = PHASE_CMDOUT; |
hostdata | 2029 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 2059 | drivers/scsi/AM53C974.c | hostdata->connected->SCp.ptr += hostdata->connected->SCp.this_residual - ctcreg; |
hostdata | 2060 | drivers/scsi/AM53C974.c | hostdata->connected->SCp.this_residual = ctcreg; |
hostdata | 2100 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 2117 | drivers/scsi/AM53C974.c | if ((hostdata->connected == cmd) || (hostdata->sel_cmd == cmd)) { |
hostdata | 2119 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 2120 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = ABORT; |
hostdata | 2126 | drivers/scsi/AM53C974.c | for (prev = (Scsi_Cmnd **)&(hostdata->issue_queue), |
hostdata | 2127 | drivers/scsi/AM53C974.c | tmp = (Scsi_Cmnd *)hostdata->issue_queue; tmp; |
hostdata | 2155 | drivers/scsi/AM53C974.c | if (hostdata->connected || hostdata->sel_cmd) { |
hostdata | 2164 | drivers/scsi/AM53C974.c | for (tmp = (Scsi_Cmnd *)hostdata->disconnected_queue; tmp; |
hostdata | 2168 | drivers/scsi/AM53C974.c | hostdata->aborted = 1; |
hostdata | 2169 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = ABORT; |
hostdata | 2170 | drivers/scsi/AM53C974.c | hostdata->selecting = 1; |
hostdata | 2171 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = tmp; |
hostdata | 2203 | drivers/scsi/AM53C974.c | struct AM53C974_hostdata *hostdata = (struct AM53C974_hostdata *)instance->hostdata; |
hostdata | 2216 | drivers/scsi/AM53C974.c | hostdata->msgout[0] = NOP; |
hostdata | 2218 | drivers/scsi/AM53C974.c | hostdata->busy[i] = 0; |
hostdata | 2219 | drivers/scsi/AM53C974.c | hostdata->sync_per[i] = DEF_STP; |
hostdata | 2220 | drivers/scsi/AM53C974.c | hostdata->sync_off[i] = 0; |
hostdata | 2221 | drivers/scsi/AM53C974.c | hostdata->sync_neg[i] = 0; } |
hostdata | 2222 | drivers/scsi/AM53C974.c | hostdata->last_message[0] = NOP; |
hostdata | 2223 | drivers/scsi/AM53C974.c | hostdata->sel_cmd = NULL; |
hostdata | 2224 | drivers/scsi/AM53C974.c | hostdata->connected = NULL; |
hostdata | 2225 | drivers/scsi/AM53C974.c | hostdata->issue_queue = NULL; |
hostdata | 2226 | drivers/scsi/AM53C974.c | hostdata->disconnected_queue = NULL; |
hostdata | 2227 | drivers/scsi/AM53C974.c | hostdata->in_reset = 0; |
hostdata | 2228 | drivers/scsi/AM53C974.c | hostdata->aborted = 0; |
hostdata | 2229 | drivers/scsi/AM53C974.c | hostdata->selecting = 0; |
hostdata | 2230 | drivers/scsi/AM53C974.c | hostdata->disconnecting = 0; |
hostdata | 2231 | drivers/scsi/AM53C974.c | hostdata->dma_busy = 0; |
hostdata | 164 | drivers/scsi/BusLogic.c | (BusLogic_HostAdapter_T *) Host->hostdata; |
hostdata | 1828 | drivers/scsi/BusLogic.c | (BusLogic_HostAdapter_T *) Host->hostdata; |
hostdata | 1938 | drivers/scsi/BusLogic.c | HostAdapter = (BusLogic_HostAdapter_T *) Host->hostdata; |
hostdata | 2011 | drivers/scsi/BusLogic.c | (BusLogic_HostAdapter_T *) Host->hostdata; |
hostdata | 2394 | drivers/scsi/BusLogic.c | (BusLogic_HostAdapter_T *) Command->host->hostdata; |
hostdata | 2590 | drivers/scsi/BusLogic.c | (BusLogic_HostAdapter_T *) Command->host->hostdata; |
hostdata | 2958 | drivers/scsi/BusLogic.c | (BusLogic_HostAdapter_T *) Command->host->hostdata; |
hostdata | 3028 | drivers/scsi/BusLogic.c | (BusLogic_HostAdapter_T *) Disk->device->host->hostdata; |
hostdata | 635 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) |
hostdata | 636 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 660 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 661 | drivers/scsi/NCR5380.c | NCR5380_write(OUTPUT_DATA_REG, hostdata->id_mask); |
hostdata | 722 | drivers/scsi/NCR5380.c | if (((struct NCR5380_hostdata *)instance->hostdata)->flags & FLAG_NCR53C400) { |
hostdata | 787 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata; |
hostdata | 795 | drivers/scsi/NCR5380.c | hostdata = (struct NCR5380_hostdata *)instance->hostdata; |
hostdata | 807 | drivers/scsi/NCR5380.c | if (((struct NCR5380_hostdata *)instance->hostdata)->flags & FLAG_NCR53C400) |
hostdata | 839 | drivers/scsi/NCR5380.c | if (!hostdata->connected) |
hostdata | 842 | drivers/scsi/NCR5380.c | pos = lprint_Scsi_Cmnd ((Scsi_Cmnd *) hostdata->connected, |
hostdata | 845 | drivers/scsi/NCR5380.c | for (ptr = (Scsi_Cmnd *) hostdata->issue_queue; ptr; |
hostdata | 850 | drivers/scsi/NCR5380.c | for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; |
hostdata | 907 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) |
hostdata | 908 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 924 | drivers/scsi/NCR5380.c | hostdata->aborted = 0; |
hostdata | 925 | drivers/scsi/NCR5380.c | hostdata->id_mask = 1 << instance->this_id; |
hostdata | 926 | drivers/scsi/NCR5380.c | for (i = hostdata->id_mask; i <= 0x80; i <<= 1) |
hostdata | 927 | drivers/scsi/NCR5380.c | if (i > hostdata->id_mask) |
hostdata | 928 | drivers/scsi/NCR5380.c | hostdata->id_higher_mask |= i; |
hostdata | 930 | drivers/scsi/NCR5380.c | hostdata->busy[i] = 0; |
hostdata | 932 | drivers/scsi/NCR5380.c | hostdata->dmalen = 0; |
hostdata | 934 | drivers/scsi/NCR5380.c | hostdata->targets_present = 0; |
hostdata | 935 | drivers/scsi/NCR5380.c | hostdata->connected = NULL; |
hostdata | 936 | drivers/scsi/NCR5380.c | hostdata->issue_queue = NULL; |
hostdata | 937 | drivers/scsi/NCR5380.c | hostdata->disconnected_queue = NULL; |
hostdata | 940 | drivers/scsi/NCR5380.c | hostdata->time_read[i] = 0; |
hostdata | 941 | drivers/scsi/NCR5380.c | hostdata->time_write[i] = 0; |
hostdata | 942 | drivers/scsi/NCR5380.c | hostdata->bytes_read[i] = 0; |
hostdata | 943 | drivers/scsi/NCR5380.c | hostdata->bytes_write[i] = 0; |
hostdata | 945 | drivers/scsi/NCR5380.c | hostdata->timebase = 0; |
hostdata | 946 | drivers/scsi/NCR5380.c | hostdata->pendingw = 0; |
hostdata | 947 | drivers/scsi/NCR5380.c | hostdata->pendingr = 0; |
hostdata | 952 | drivers/scsi/NCR5380.c | hostdata->flags = FLAG_HAS_LAST_BYTE_SENT | flags; |
hostdata | 954 | drivers/scsi/NCR5380.c | hostdata->flags = FLAG_CHECK_LAST_BYTE_SENT | flags; |
hostdata | 963 | drivers/scsi/NCR5380.c | hostdata->time_expires = 0; |
hostdata | 964 | drivers/scsi/NCR5380.c | hostdata->next_timer = NULL; |
hostdata | 980 | drivers/scsi/NCR5380.c | if (hostdata->flags & FLAG_NCR53C400) { |
hostdata | 1049 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) |
hostdata | 1050 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 1067 | drivers/scsi/NCR5380.c | if (!hostdata->connected && !hostdata->issue_queue && |
hostdata | 1068 | drivers/scsi/NCR5380.c | !hostdata->disconnected_queue) { |
hostdata | 1069 | drivers/scsi/NCR5380.c | hostdata->timebase = jiffies; |
hostdata | 1080 | drivers/scsi/NCR5380.c | hostdata->time_write[cmd->target] -= (jiffies - hostdata->timebase); |
hostdata | 1081 | drivers/scsi/NCR5380.c | hostdata->bytes_write[cmd->target] += cmd->request_bufflen; |
hostdata | 1082 | drivers/scsi/NCR5380.c | hostdata->pendingw++; |
hostdata | 1087 | drivers/scsi/NCR5380.c | hostdata->time_read[cmd->target] -= (jiffies - hostdata->timebase); |
hostdata | 1088 | drivers/scsi/NCR5380.c | hostdata->bytes_read[cmd->target] += cmd->request_bufflen; |
hostdata | 1089 | drivers/scsi/NCR5380.c | hostdata->pendingr++; |
hostdata | 1113 | drivers/scsi/NCR5380.c | if (!(hostdata->issue_queue) || (cmd->cmnd[0] == REQUEST_SENSE)) { |
hostdata | 1114 | drivers/scsi/NCR5380.c | LIST(cmd, hostdata->issue_queue); |
hostdata | 1115 | drivers/scsi/NCR5380.c | cmd->host_scribble = (unsigned char *) hostdata->issue_queue; |
hostdata | 1116 | drivers/scsi/NCR5380.c | hostdata->issue_queue = cmd; |
hostdata | 1118 | drivers/scsi/NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->issue_queue; tmp->host_scribble; |
hostdata | 1148 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata; |
hostdata | 1168 | drivers/scsi/NCR5380.c | hostdata = (struct NCR5380_hostdata *) instance->hostdata; |
hostdata | 1170 | drivers/scsi/NCR5380.c | if (!hostdata->connected) { |
hostdata | 1179 | drivers/scsi/NCR5380.c | for (tmp= (Scsi_Cmnd *) hostdata->issue_queue, prev=NULL; tmp && (tmp != prev); prev=tmp, tmp=(Scsi_Cmnd*)tmp->host_scribble) |
hostdata | 1184 | drivers/scsi/NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->issue_queue, |
hostdata | 1190 | drivers/scsi/NCR5380.c | printk("MAIN tmp=%p target=%d busy=%d lun=%d\n", tmp, tmp->target, hostdata->busy[tmp->target], tmp->lun); |
hostdata | 1193 | drivers/scsi/NCR5380.c | if (!(hostdata->busy[tmp->target] & (1 << tmp->lun))) { |
hostdata | 1198 | drivers/scsi/NCR5380.c | REMOVE(-1,hostdata->issue_queue,tmp,tmp->host_scribble); |
hostdata | 1199 | drivers/scsi/NCR5380.c | hostdata->issue_queue = (Scsi_Cmnd *) tmp->host_scribble; |
hostdata | 1240 | drivers/scsi/NCR5380.c | LIST(tmp, hostdata->issue_queue); |
hostdata | 1242 | drivers/scsi/NCR5380.c | hostdata->issue_queue; |
hostdata | 1243 | drivers/scsi/NCR5380.c | hostdata->issue_queue = tmp; |
hostdata | 1255 | drivers/scsi/NCR5380.c | if (hostdata->connected |
hostdata | 1257 | drivers/scsi/NCR5380.c | && !hostdata->dmalen |
hostdata | 1260 | drivers/scsi/NCR5380.c | && (!hostdata->time_expires || hostdata->time_expires >= jiffies) |
hostdata | 1351 | drivers/scsi/NCR5380.c | if (!hostdata->connected) |
hostdata | 1355 | drivers/scsi/NCR5380.c | transfered = (hostdata->dmalen - NCR5380_dma_residual(instance)); |
hostdata | 1356 | drivers/scsi/NCR5380.c | hostdata->connected->SCp.this_residual -= transferred; |
hostdata | 1357 | drivers/scsi/NCR5380.c | hostdata->connected->SCp.ptr += transferred; |
hostdata | 1358 | drivers/scsi/NCR5380.c | hostdata->dmalen = 0; |
hostdata | 1395 | drivers/scsi/NCR5380.c | static void collect_stats(struct NCR5380_hostdata* hostdata, Scsi_Cmnd* cmd) |
hostdata | 1405 | drivers/scsi/NCR5380.c | hostdata->time_write[cmd->target] += (jiffies - hostdata->timebase); |
hostdata | 1407 | drivers/scsi/NCR5380.c | hostdata->pendingw--; |
hostdata | 1412 | drivers/scsi/NCR5380.c | hostdata->time_read[cmd->target] += (jiffies - hostdata->timebase); |
hostdata | 1414 | drivers/scsi/NCR5380.c | hostdata->pendingr--; |
hostdata | 1454 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata*) |
hostdata | 1455 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 1462 | drivers/scsi/NCR5380.c | hostdata->restart_select = 0; |
hostdata | 1482 | drivers/scsi/NCR5380.c | NCR5380_write(OUTPUT_DATA_REG, hostdata->id_mask); |
hostdata | 1499 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1524 | drivers/scsi/NCR5380.c | (NCR5380_read(CURRENT_SCSI_DATA_REG) & hostdata->id_higher_mask) || |
hostdata | 1565 | drivers/scsi/NCR5380.c | NCR5380_write(OUTPUT_DATA_REG, (hostdata->id_mask | (1 << cmd->target))); |
hostdata | 1638 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1654 | drivers/scsi/NCR5380.c | if (hostdata->targets_present & (1 << cmd->target)) { |
hostdata | 1656 | drivers/scsi/NCR5380.c | if (hostdata->restart_select) |
hostdata | 1661 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1666 | drivers/scsi/NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 1669 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1674 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1678 | drivers/scsi/NCR5380.c | hostdata->targets_present |= (1 << cmd->target); |
hostdata | 1704 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1731 | drivers/scsi/NCR5380.c | hostdata->last_message = SIMPLE_QUEUE_TAG; |
hostdata | 1748 | drivers/scsi/NCR5380.c | hostdata->connected = cmd; |
hostdata | 1752 | drivers/scsi/NCR5380.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 2012 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) |
hostdata | 2013 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 2032 | drivers/scsi/NCR5380.c | hostdata->dma_len = (p & SR_IO) ? |
hostdata | 2054 | drivers/scsi/NCR5380.c | if (hostdata->flags & FLAG_NCR53C400) |
hostdata | 2205 | drivers/scsi/NCR5380.c | if (hostdata->flags & FLAG_NCR53C400) { |
hostdata | 2232 | drivers/scsi/NCR5380.c | if (!(hostdata->flags & FLAG_NCR53C400)) { |
hostdata | 2253 | drivers/scsi/NCR5380.c | if (!(hostdata->flags & FLAG_HAS_LAST_BYTE_SENT)) { |
hostdata | 2278 | drivers/scsi/NCR5380.c | if (hostdata->flags & FLAG_CHECK_LAST_BYTE_SENT) { |
hostdata | 2279 | drivers/scsi/NCR5380.c | hostdata->flags &= ~FLAG_CHECK_LAST_BYTE_SENT; |
hostdata | 2281 | drivers/scsi/NCR5380.c | hostdata->flags |= FLAG_HAS_LAST_BYTE_SENT; |
hostdata | 2307 | drivers/scsi/NCR5380.c | if ((!(p & SR_IO)) && (hostdata->flags & FLAG_NCR53C400)) { |
hostdata | 2354 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) |
hostdata | 2355 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 2364 | drivers/scsi/NCR5380.c | Scsi_Cmnd *cmd = (Scsi_Cmnd *) hostdata->connected; |
hostdata | 2440 | drivers/scsi/NCR5380.c | !(hostdata->flags & FLAG_NO_PSEUDO_DMA) && |
hostdata | 2451 | drivers/scsi/NCR5380.c | !(hostdata->flags & FLAG_NO_PSEUDO_DMA) && |
hostdata | 2534 | drivers/scsi/NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 2537 | drivers/scsi/NCR5380.c | cmd = hostdata->connected; |
hostdata | 2545 | drivers/scsi/NCR5380.c | hostdata->connected = NULL; |
hostdata | 2550 | drivers/scsi/NCR5380.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 2593 | drivers/scsi/NCR5380.c | LIST(cmd,hostdata->issue_queue); |
hostdata | 2595 | drivers/scsi/NCR5380.c | hostdata->issue_queue; |
hostdata | 2596 | drivers/scsi/NCR5380.c | hostdata->issue_queue = (Scsi_Cmnd *) cmd; |
hostdata | 2604 | drivers/scsi/NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 2609 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2616 | drivers/scsi/NCR5380.c | while ((NCR5380_read(STATUS_REG) & SR_BSY) && !hostdata->connected) |
hostdata | 2622 | drivers/scsi/NCR5380.c | switch (hostdata->last_message) { |
hostdata | 2627 | drivers/scsi/NCR5380.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 2637 | drivers/scsi/NCR5380.c | LIST(cmd,hostdata->disconnected_queue); |
hostdata | 2639 | drivers/scsi/NCR5380.c | hostdata->disconnected_queue; |
hostdata | 2640 | drivers/scsi/NCR5380.c | hostdata->connected = NULL; |
hostdata | 2641 | drivers/scsi/NCR5380.c | hostdata->disconnected_queue = cmd; |
hostdata | 2655 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2657 | drivers/scsi/NCR5380.c | while ((NCR5380_read(STATUS_REG) & SR_BSY) && !hostdata->connected) |
hostdata | 2769 | drivers/scsi/NCR5380.c | hostdata->last_message = msgout; |
hostdata | 2772 | drivers/scsi/NCR5380.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 2773 | drivers/scsi/NCR5380.c | hostdata->connected = NULL; |
hostdata | 2776 | drivers/scsi/NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 2779 | drivers/scsi/NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2796 | drivers/scsi/NCR5380.c | hostdata->time_expires = jiffies + USLEEP_SLEEP; |
hostdata | 2799 | drivers/scsi/NCR5380.c | hostdata->time_expires); |
hostdata | 2821 | drivers/scsi/NCR5380.c | if (!disconnect && hostdata->time_expires && jiffies > |
hostdata | 2822 | drivers/scsi/NCR5380.c | hostdata->time_expires) { |
hostdata | 2823 | drivers/scsi/NCR5380.c | hostdata->time_expires = jiffies + USLEEP_SLEEP; |
hostdata | 2826 | drivers/scsi/NCR5380.c | hostdata->time_expires); |
hostdata | 2850 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) |
hostdata | 2851 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 2870 | drivers/scsi/NCR5380.c | hostdata->restart_select = 1; |
hostdata | 2872 | drivers/scsi/NCR5380.c | target_mask = NCR5380_read(CURRENT_SCSI_DATA_REG) & ~(hostdata->id_mask); |
hostdata | 2930 | drivers/scsi/NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->disconnected_queue, prev = NULL; |
hostdata | 2941 | drivers/scsi/NCR5380.c | REMOVE(-1,hostdata->disconnected_queue,tmp,tmp->host_scribble); |
hostdata | 2942 | drivers/scsi/NCR5380.c | hostdata->disconnected_queue = (Scsi_Cmnd *) tmp->host_scribble; |
hostdata | 2967 | drivers/scsi/NCR5380.c | hostdata->connected = tmp; |
hostdata | 2990 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata * |
hostdata | 2991 | drivers/scsi/NCR5380.c | instance->hostdata); |
hostdata | 3015 | drivers/scsi/NCR5380.c | if (!(hostdata->connected->SCp.phase & SR_CD)) { |
hostdata | 3017 | drivers/scsi/NCR5380.c | hostdata->connected->SCp.this_residual -= transferred; |
hostdata | 3018 | drivers/scsi/NCR5380.c | hostdata->connected->SCp.ptr += transferred; |
hostdata | 3046 | drivers/scsi/NCR5380.c | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) |
hostdata | 3047 | drivers/scsi/NCR5380.c | instance->hostdata; |
hostdata | 3076 | drivers/scsi/NCR5380.c | if (hostdata->connected == cmd) { |
hostdata | 3080 | drivers/scsi/NCR5380.c | hostdata->aborted = 1; |
hostdata | 3110 | drivers/scsi/NCR5380.c | for (prev = (Scsi_Cmnd **) &(hostdata->issue_queue), |
hostdata | 3111 | drivers/scsi/NCR5380.c | tmp = (Scsi_Cmnd *) hostdata->issue_queue; |
hostdata | 3143 | drivers/scsi/NCR5380.c | if (hostdata->connected) { |
hostdata | 3176 | drivers/scsi/NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->disconnected_queue; tmp; |
hostdata | 3194 | drivers/scsi/NCR5380.c | for (prev = (Scsi_Cmnd **) &(hostdata->disconnected_queue), |
hostdata | 3195 | drivers/scsi/NCR5380.c | tmp = (Scsi_Cmnd *) hostdata->disconnected_queue; |
hostdata | 27 | drivers/scsi/a2091.c | #define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata)) |
hostdata | 26 | drivers/scsi/a3000.c | #define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata)) |
hostdata | 2151 | drivers/scsi/advansys.c | #define ASC_BOARD(host) ((struct asc_board *) &(host)->hostdata) |
hostdata | 354 | drivers/scsi/aha152x.c | #define HOSTDATA(shpnt) ((struct aha152x_hostdata *) &shpnt->hostdata) |
hostdata | 110 | drivers/scsi/aha1542.c | #define HOSTDATA(host) ((struct aha1542_hostdata *) &host->hostdata) |
hostdata | 1760 | drivers/scsi/aic7xxx.c | p = (struct aic7xxx_host *) aic7xxx_boards[irq]->hostdata; |
hostdata | 1774 | drivers/scsi/aic7xxx.c | p = (struct aic7xxx_host *) p->next->hostdata; |
hostdata | 1792 | drivers/scsi/aic7xxx.c | p = (struct aic7xxx_host *) aic7xxx_boards[irq]->hostdata; |
hostdata | 3504 | drivers/scsi/aic7xxx.c | p = (struct aic7xxx_host *) host->hostdata; |
hostdata | 4251 | drivers/scsi/aic7xxx.c | p = (struct aic7xxx_host *) cmd->host->hostdata; |
hostdata | 4414 | drivers/scsi/aic7xxx.c | p = (struct aic7xxx_host *) cmd->host->hostdata; |
hostdata | 4675 | drivers/scsi/aic7xxx.c | p = (struct aic7xxx_host *) disk->device->host->hostdata; |
hostdata | 98 | drivers/scsi/aic7xxx_proc.c | while ((HBAptr->hostdata != NULL) && |
hostdata | 99 | drivers/scsi/aic7xxx_proc.c | ((HBAptr = ((struct aic7xxx_host *) HBAptr->hostdata)->next) != NULL)) |
hostdata | 128 | drivers/scsi/aic7xxx_proc.c | p = (struct aic7xxx_host *) HBAptr->hostdata; |
hostdata | 301 | drivers/scsi/atari_NCR5380.c | struct NCR5380_hostdata *hostdata = \ |
hostdata | 302 | drivers/scsi/atari_NCR5380.c | (struct NCR5380_hostdata *)(in)->hostdata |
hostdata | 303 | drivers/scsi/atari_NCR5380.c | #define HOSTDATA(in) ((struct NCR5380_hostdata *)(in)->hostdata) |
hostdata | 400 | drivers/scsi/atari_NCR5380.c | if (hostdata->busy[cmd->target] & (1 << cmd->lun)) |
hostdata | 432 | drivers/scsi/atari_NCR5380.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 463 | drivers/scsi/atari_NCR5380.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 834 | drivers/scsi/atari_NCR5380.c | struct NCR5380_hostdata *hostdata; |
hostdata | 843 | drivers/scsi/atari_NCR5380.c | hostdata = (struct NCR5380_hostdata *)instance->hostdata; |
hostdata | 852 | drivers/scsi/atari_NCR5380.c | if (!hostdata->connected) |
hostdata | 855 | drivers/scsi/atari_NCR5380.c | pos = lprint_Scsi_Cmnd ((Scsi_Cmnd *) hostdata->connected, |
hostdata | 858 | drivers/scsi/atari_NCR5380.c | for (ptr = (Scsi_Cmnd *) hostdata->issue_queue; ptr; ptr = NEXT(ptr)) |
hostdata | 862 | drivers/scsi/atari_NCR5380.c | for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; |
hostdata | 923 | drivers/scsi/atari_NCR5380.c | hostdata->aborted = 0; |
hostdata | 924 | drivers/scsi/atari_NCR5380.c | hostdata->id_mask = 1 << instance->this_id; |
hostdata | 925 | drivers/scsi/atari_NCR5380.c | hostdata->id_higher_mask = 0; |
hostdata | 926 | drivers/scsi/atari_NCR5380.c | for (i = hostdata->id_mask; i <= 0x80; i <<= 1) |
hostdata | 927 | drivers/scsi/atari_NCR5380.c | if (i > hostdata->id_mask) |
hostdata | 928 | drivers/scsi/atari_NCR5380.c | hostdata->id_higher_mask |= i; |
hostdata | 930 | drivers/scsi/atari_NCR5380.c | hostdata->busy[i] = 0; |
hostdata | 935 | drivers/scsi/atari_NCR5380.c | hostdata->dma_len = 0; |
hostdata | 937 | drivers/scsi/atari_NCR5380.c | hostdata->targets_present = 0; |
hostdata | 938 | drivers/scsi/atari_NCR5380.c | hostdata->connected = NULL; |
hostdata | 939 | drivers/scsi/atari_NCR5380.c | hostdata->issue_queue = NULL; |
hostdata | 940 | drivers/scsi/atari_NCR5380.c | hostdata->disconnected_queue = NULL; |
hostdata | 941 | drivers/scsi/atari_NCR5380.c | hostdata->flags = FLAG_CHECK_LAST_BYTE_SENT; |
hostdata | 1007 | drivers/scsi/atari_NCR5380.c | if (!hostdata->connected && !hostdata->issue_queue && |
hostdata | 1008 | drivers/scsi/atari_NCR5380.c | !hostdata->disconnected_queue) { |
hostdata | 1009 | drivers/scsi/atari_NCR5380.c | hostdata->timebase = jiffies; |
hostdata | 1020 | drivers/scsi/atari_NCR5380.c | hostdata->time_write[cmd->target] -= (jiffies - hostdata->timebase); |
hostdata | 1021 | drivers/scsi/atari_NCR5380.c | hostdata->bytes_write[cmd->target] += cmd->request_bufflen; |
hostdata | 1022 | drivers/scsi/atari_NCR5380.c | hostdata->pendingw++; |
hostdata | 1027 | drivers/scsi/atari_NCR5380.c | hostdata->time_read[cmd->target] -= (jiffies - hostdata->timebase); |
hostdata | 1028 | drivers/scsi/atari_NCR5380.c | hostdata->bytes_read[cmd->target] += cmd->request_bufflen; |
hostdata | 1029 | drivers/scsi/atari_NCR5380.c | hostdata->pendingr++; |
hostdata | 1071 | drivers/scsi/atari_NCR5380.c | if (!(hostdata->issue_queue) || (cmd->cmnd[0] == REQUEST_SENSE)) { |
hostdata | 1072 | drivers/scsi/atari_NCR5380.c | LIST(cmd, hostdata->issue_queue); |
hostdata | 1073 | drivers/scsi/atari_NCR5380.c | NEXT(cmd) = hostdata->issue_queue; |
hostdata | 1074 | drivers/scsi/atari_NCR5380.c | hostdata->issue_queue = cmd; |
hostdata | 1076 | drivers/scsi/atari_NCR5380.c | for (tmp = (Scsi_Cmnd *)hostdata->issue_queue; |
hostdata | 1112 | drivers/scsi/atari_NCR5380.c | struct NCR5380_hostdata *hostdata = HOSTDATA(instance); |
hostdata | 1135 | drivers/scsi/atari_NCR5380.c | if (!hostdata->connected) { |
hostdata | 1144 | drivers/scsi/atari_NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->issue_queue, prev = NULL; |
hostdata | 1150 | drivers/scsi/atari_NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->issue_queue, |
hostdata | 1156 | drivers/scsi/atari_NCR5380.c | tmp, tmp->target, hostdata->busy[tmp->target], |
hostdata | 1165 | drivers/scsi/atari_NCR5380.c | !(hostdata->busy[tmp->target] & (1 << tmp->lun)) |
hostdata | 1173 | drivers/scsi/atari_NCR5380.c | REMOVE(-1, hostdata->issue_queue, tmp, NEXT(tmp)); |
hostdata | 1174 | drivers/scsi/atari_NCR5380.c | hostdata->issue_queue = NEXT(tmp); |
hostdata | 1211 | drivers/scsi/atari_NCR5380.c | falcon_release_lock_if_possible( hostdata ); |
hostdata | 1215 | drivers/scsi/atari_NCR5380.c | LIST(tmp, hostdata->issue_queue); |
hostdata | 1216 | drivers/scsi/atari_NCR5380.c | NEXT(tmp) = hostdata->issue_queue; |
hostdata | 1217 | drivers/scsi/atari_NCR5380.c | hostdata->issue_queue = tmp; |
hostdata | 1227 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected) |
hostdata | 1234 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected |
hostdata | 1236 | drivers/scsi/atari_NCR5380.c | && !hostdata->dma_len |
hostdata | 1276 | drivers/scsi/atari_NCR5380.c | if (!hostdata->connected) { |
hostdata | 1283 | drivers/scsi/atari_NCR5380.c | p = hostdata->connected->SCp.phase; |
hostdata | 1308 | drivers/scsi/atari_NCR5380.c | transfered = hostdata->dma_len - NCR5380_dma_residual(instance); |
hostdata | 1309 | drivers/scsi/atari_NCR5380.c | hostdata->dma_len = 0; |
hostdata | 1311 | drivers/scsi/atari_NCR5380.c | data = (unsigned char **) &(hostdata->connected->SCp.ptr); |
hostdata | 1312 | drivers/scsi/atari_NCR5380.c | count = &(hostdata->connected->SCp.this_residual); |
hostdata | 1448 | drivers/scsi/atari_NCR5380.c | static void collect_stats(struct NCR5380_hostdata* hostdata, Scsi_Cmnd* cmd) |
hostdata | 1458 | drivers/scsi/atari_NCR5380.c | hostdata->time_write[cmd->target] += (jiffies - hostdata->timebase); |
hostdata | 1460 | drivers/scsi/atari_NCR5380.c | hostdata->pendingw--; |
hostdata | 1465 | drivers/scsi/atari_NCR5380.c | hostdata->time_read[cmd->target] += (jiffies - hostdata->timebase); |
hostdata | 1467 | drivers/scsi/atari_NCR5380.c | hostdata->pendingr--; |
hostdata | 1513 | drivers/scsi/atari_NCR5380.c | hostdata->restart_select = 0; |
hostdata | 1527 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected) { |
hostdata | 1538 | drivers/scsi/atari_NCR5380.c | NCR5380_write(OUTPUT_DATA_REG, hostdata->id_mask); |
hostdata | 1549 | drivers/scsi/atari_NCR5380.c | && jiffies < timeout && !hostdata->connected) |
hostdata | 1555 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1561 | drivers/scsi/atari_NCR5380.c | && !hostdata->connected); |
hostdata | 1570 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected) { |
hostdata | 1585 | drivers/scsi/atari_NCR5380.c | (NCR5380_read(CURRENT_SCSI_DATA_REG) & hostdata->id_higher_mask) || |
hostdata | 1587 | drivers/scsi/atari_NCR5380.c | hostdata->connected) { |
hostdata | 1602 | drivers/scsi/atari_NCR5380.c | hostdata->connected) { |
hostdata | 1623 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected) { |
hostdata | 1639 | drivers/scsi/atari_NCR5380.c | NCR5380_write(OUTPUT_DATA_REG, (hostdata->id_mask | (1 << cmd->target))); |
hostdata | 1656 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected) { |
hostdata | 1725 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1744 | drivers/scsi/atari_NCR5380.c | if (hostdata->targets_present & (1 << cmd->target)) { |
hostdata | 1746 | drivers/scsi/atari_NCR5380.c | if (hostdata->restart_select) |
hostdata | 1751 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1756 | drivers/scsi/atari_NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 1762 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1766 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 1770 | drivers/scsi/atari_NCR5380.c | hostdata->targets_present |= (1 << cmd->target); |
hostdata | 1798 | drivers/scsi/atari_NCR5380.c | tmp[1] = hostdata->last_message = SIMPLE_QUEUE_TAG; |
hostdata | 1816 | drivers/scsi/atari_NCR5380.c | hostdata->connected = cmd; |
hostdata | 1818 | drivers/scsi/atari_NCR5380.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 2085 | drivers/scsi/atari_NCR5380.c | hostdata->dma_len = (p & SR_IO) ? |
hostdata | 2104 | drivers/scsi/atari_NCR5380.c | hostdata->dma_len = (p & SR_IO) ? |
hostdata | 2142 | drivers/scsi/atari_NCR5380.c | Scsi_Cmnd *cmd = (Scsi_Cmnd *) hostdata->connected; |
hostdata | 2284 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2311 | drivers/scsi/atari_NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 2314 | drivers/scsi/atari_NCR5380.c | cmd = hostdata->connected; |
hostdata | 2323 | drivers/scsi/atari_NCR5380.c | hostdata->connected = NULL; |
hostdata | 2349 | drivers/scsi/atari_NCR5380.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 2352 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2395 | drivers/scsi/atari_NCR5380.c | LIST(cmd,hostdata->issue_queue); |
hostdata | 2396 | drivers/scsi/atari_NCR5380.c | NEXT(cmd) = hostdata->issue_queue; |
hostdata | 2397 | drivers/scsi/atari_NCR5380.c | hostdata->issue_queue = (Scsi_Cmnd *) cmd; |
hostdata | 2407 | drivers/scsi/atari_NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 2412 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2419 | drivers/scsi/atari_NCR5380.c | while ((NCR5380_read(STATUS_REG) & SR_BSY) && !hostdata->connected) |
hostdata | 2427 | drivers/scsi/atari_NCR5380.c | falcon_release_lock_if_possible( hostdata ); |
hostdata | 2433 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2434 | drivers/scsi/atari_NCR5380.c | switch (hostdata->last_message) { |
hostdata | 2445 | drivers/scsi/atari_NCR5380.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 2461 | drivers/scsi/atari_NCR5380.c | LIST(cmd,hostdata->disconnected_queue); |
hostdata | 2462 | drivers/scsi/atari_NCR5380.c | NEXT(cmd) = hostdata->disconnected_queue; |
hostdata | 2463 | drivers/scsi/atari_NCR5380.c | hostdata->connected = NULL; |
hostdata | 2464 | drivers/scsi/atari_NCR5380.c | hostdata->disconnected_queue = cmd; |
hostdata | 2478 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2480 | drivers/scsi/atari_NCR5380.c | while ((NCR5380_read(STATUS_REG) & SR_BSY) && !hostdata->connected) |
hostdata | 2498 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2593 | drivers/scsi/atari_NCR5380.c | hostdata->last_message = msgout; |
hostdata | 2599 | drivers/scsi/atari_NCR5380.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 2601 | drivers/scsi/atari_NCR5380.c | hostdata->connected = NULL; |
hostdata | 2604 | drivers/scsi/atari_NCR5380.c | collect_stats(hostdata, cmd); |
hostdata | 2607 | drivers/scsi/atari_NCR5380.c | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
hostdata | 2608 | drivers/scsi/atari_NCR5380.c | falcon_release_lock_if_possible( hostdata ); |
hostdata | 2672 | drivers/scsi/atari_NCR5380.c | hostdata->restart_select = 1; |
hostdata | 2674 | drivers/scsi/atari_NCR5380.c | target_mask = NCR5380_read(CURRENT_SCSI_DATA_REG) & ~(hostdata->id_mask); |
hostdata | 2739 | drivers/scsi/atari_NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->disconnected_queue, prev = NULL; |
hostdata | 2752 | drivers/scsi/atari_NCR5380.c | REMOVE(-1, hostdata->disconnected_queue, tmp, NEXT(tmp)); |
hostdata | 2753 | drivers/scsi/atari_NCR5380.c | hostdata->disconnected_queue = NEXT(tmp); |
hostdata | 2782 | drivers/scsi/atari_NCR5380.c | hostdata->connected = tmp; |
hostdata | 2843 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected == cmd) { |
hostdata | 2847 | drivers/scsi/atari_NCR5380.c | hostdata->aborted = 1; |
hostdata | 2873 | drivers/scsi/atari_NCR5380.c | for (prev = (Scsi_Cmnd **) &(hostdata->issue_queue), |
hostdata | 2874 | drivers/scsi/atari_NCR5380.c | tmp = (Scsi_Cmnd *) hostdata->issue_queue; |
hostdata | 2889 | drivers/scsi/atari_NCR5380.c | falcon_release_lock_if_possible( hostdata ); |
hostdata | 2904 | drivers/scsi/atari_NCR5380.c | if (hostdata->connected) { |
hostdata | 2937 | drivers/scsi/atari_NCR5380.c | for (tmp = (Scsi_Cmnd *) hostdata->disconnected_queue; tmp; |
hostdata | 2956 | drivers/scsi/atari_NCR5380.c | for (prev = (Scsi_Cmnd **) &(hostdata->disconnected_queue), |
hostdata | 2957 | drivers/scsi/atari_NCR5380.c | tmp = (Scsi_Cmnd *) hostdata->disconnected_queue; |
hostdata | 2971 | drivers/scsi/atari_NCR5380.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 2975 | drivers/scsi/atari_NCR5380.c | falcon_release_lock_if_possible( hostdata ); |
hostdata | 2998 | drivers/scsi/atari_NCR5380.c | falcon_release_lock_if_possible( hostdata ); |
hostdata | 3052 | drivers/scsi/atari_NCR5380.c | connected = (Scsi_Cmnd *)hostdata->connected; |
hostdata | 3053 | drivers/scsi/atari_NCR5380.c | hostdata->connected = NULL; |
hostdata | 3054 | drivers/scsi/atari_NCR5380.c | disconnected_queue = (Scsi_Cmnd *)hostdata->disconnected_queue; |
hostdata | 3055 | drivers/scsi/atari_NCR5380.c | hostdata->disconnected_queue = NULL; |
hostdata | 3060 | drivers/scsi/atari_NCR5380.c | hostdata->busy[i] = 0; |
hostdata | 3062 | drivers/scsi/atari_NCR5380.c | hostdata->dma_len = 0; |
hostdata | 174 | drivers/scsi/atari_scsi.c | (atari_scsi_host->hostdata))->dma_len) |
hostdata | 199 | drivers/scsi/atari_scsi.c | hostdata ); |
hostdata | 510 | drivers/scsi/atari_scsi.c | falcon_release_lock_if_possible( struct NCR5380_hostdata * hostdata ) |
hostdata | 520 | drivers/scsi/atari_scsi.c | !hostdata->disconnected_queue && |
hostdata | 521 | drivers/scsi/atari_scsi.c | !hostdata->issue_queue && |
hostdata | 522 | drivers/scsi/atari_scsi.c | !hostdata->connected) { |
hostdata | 846 | drivers/scsi/atari_scsi.c | struct NCR5380_hostdata *hostdata = |
hostdata | 847 | drivers/scsi/atari_scsi.c | (struct NCR5380_hostdata *)cmd->host->hostdata; |
hostdata | 878 | drivers/scsi/atari_scsi.c | falcon_release_lock_if_possible(hostdata); |
hostdata | 325 | drivers/scsi/eata.c | #define HD(board) ((struct hostdata *) &sh[board]->hostdata) |
hostdata | 482 | drivers/scsi/eata.c | sh[j] = scsi_register(tpnt, sizeof(struct hostdata)); |
hostdata | 506 | drivers/scsi/eata.c | memset(HD(j), 0, sizeof(struct hostdata)); |
hostdata | 622 | drivers/scsi/eata.c | j = ((struct hostdata *) SCpnt->host->hostdata)->board_number; |
hostdata | 725 | drivers/scsi/eata.c | j = ((struct hostdata *) SCarg->host->hostdata)->board_number; |
hostdata | 786 | drivers/scsi/eata.c | j = ((struct hostdata *) SCarg->host->hostdata)->board_number; |
hostdata | 162 | drivers/scsi/eata_dma.c | inline void eata_latency_in(struct eata_ccb *cp, hostdata *hd) |
hostdata | 448 | drivers/scsi/eata_dma.c | hostdata *hd; |
hostdata | 992 | drivers/scsi/eata_dma.c | hostdata *hd; |
hostdata | 1102 | drivers/scsi/eata_dma.c | size = sizeof(hostdata) + ((sizeof(struct eata_ccb) + sizeof(long)) |
hostdata | 89 | drivers/scsi/eata_generic.h | #define HD(cmd) ((hostdata *)&(cmd->host->hostdata)) |
hostdata | 91 | drivers/scsi/eata_generic.h | #define SD(host) ((hostdata *)&(host->hostdata)) |
hostdata | 131 | drivers/scsi/eata_pio.c | hostdata *hd; |
hostdata | 287 | drivers/scsi/eata_pio.c | hostdata *hd; |
hostdata | 689 | drivers/scsi/eata_pio.c | hostdata *hd; |
hostdata | 735 | drivers/scsi/eata_pio.c | size = sizeof(hostdata) + (sizeof(struct eata_ccb) * ntohs(gc->queuesiz)); |
hostdata | 338 | drivers/scsi/esp.c | esp = (struct Sparc_ESP *) esp_host->hostdata; |
hostdata | 537 | drivers/scsi/esp.c | esp = (struct Sparc_ESP *) host->hostdata; |
hostdata | 638 | drivers/scsi/esp.c | esp = (struct Sparc_ESP *) SCpnt->host->hostdata; |
hostdata | 627 | drivers/scsi/g_NCR5380.c | struct NCR5380_hostdata *hostdata; |
hostdata | 635 | drivers/scsi/g_NCR5380.c | hostdata = (struct NCR5380_hostdata *)scsi_ptr->hostdata; |
hostdata | 642 | drivers/scsi/g_NCR5380.c | PRINTP("NCR53C400 card%s detected\n" ANDP (((struct NCR5380_hostdata *)scsi_ptr->hostdata)->flags & FLAG_NCR53C400)?"":" not"); |
hostdata | 656 | drivers/scsi/g_NCR5380.c | if (hostdata->connected || hostdata->issue_queue || hostdata->disconnected_queue) |
hostdata | 658 | drivers/scsi/g_NCR5380.c | if (hostdata->pendingr) |
hostdata | 659 | drivers/scsi/g_NCR5380.c | PRINTP(" %d pending reads" ANDP hostdata->pendingr); |
hostdata | 660 | drivers/scsi/g_NCR5380.c | if (hostdata->pendingw) |
hostdata | 661 | drivers/scsi/g_NCR5380.c | PRINTP(" %d pending writes" ANDP hostdata->pendingw); |
hostdata | 662 | drivers/scsi/g_NCR5380.c | if (hostdata->pendingr || hostdata->pendingw) |
hostdata | 666 | drivers/scsi/g_NCR5380.c | unsigned long br = hostdata->bytes_read[dev->id]; |
hostdata | 667 | drivers/scsi/g_NCR5380.c | unsigned long bw = hostdata->bytes_write[dev->id]; |
hostdata | 668 | drivers/scsi/g_NCR5380.c | long tr = hostdata->time_read[dev->id] / HZ; |
hostdata | 669 | drivers/scsi/g_NCR5380.c | long tw = hostdata->time_write[dev->id] / HZ; |
hostdata | 707 | drivers/scsi/g_NCR5380.c | if (!hostdata->connected) { |
hostdata | 710 | drivers/scsi/g_NCR5380.c | len += sprint_Scsi_Cmnd (buffer, len, (Scsi_Cmnd *) hostdata->connected); |
hostdata | 715 | drivers/scsi/g_NCR5380.c | for (ptr = (Scsi_Cmnd *) hostdata->issue_queue; ptr; |
hostdata | 721 | drivers/scsi/g_NCR5380.c | for (ptr = (Scsi_Cmnd *) hostdata->disconnected_queue; ptr; |
hostdata | 27 | drivers/scsi/gvp11.c | #define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata)) |
hostdata | 304 | drivers/scsi/hosts.h | unsigned long hostdata[0]; /* Used for storage of host specific stuff */ |
hostdata | 147 | drivers/scsi/in2000.c | #define DB(f,a) if (hostdata->args & (f)) a; |
hostdata | 215 | drivers/scsi/in2000.c | #define read1_io(a) (inb(hostdata->io_base+(a))) |
hostdata | 216 | drivers/scsi/in2000.c | #define read2_io(a) (inw(hostdata->io_base+(a))) |
hostdata | 217 | drivers/scsi/in2000.c | #define write1_io(b,a) (outb((b),hostdata->io_base+(a))) |
hostdata | 218 | drivers/scsi/in2000.c | #define write2_io(w,a) (outw((w),hostdata->io_base+(a))) |
hostdata | 254 | drivers/scsi/in2000.c | inline uchar read_3393(struct IN2000_hostdata *hostdata, uchar reg_num) |
hostdata | 264 | drivers/scsi/in2000.c | inline void write_3393(struct IN2000_hostdata *hostdata, uchar reg_num, uchar value) |
hostdata | 271 | drivers/scsi/in2000.c | inline void write_3393_cmd(struct IN2000_hostdata *hostdata, uchar cmd) |
hostdata | 280 | drivers/scsi/in2000.c | uchar read_1_byte(struct IN2000_hostdata *hostdata) |
hostdata | 284 | drivers/scsi/in2000.c | write_3393(hostdata,WD_CONTROL, CTRL_IDI | CTRL_EDI | CTRL_POLLED); |
hostdata | 285 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_TRANS_INFO|0x80); |
hostdata | 289 | drivers/scsi/in2000.c | x = read_3393(hostdata,WD_DATA); |
hostdata | 295 | drivers/scsi/in2000.c | void write_3393_count(struct IN2000_hostdata *hostdata, unsigned long value) |
hostdata | 304 | drivers/scsi/in2000.c | unsigned long read_3393_count(struct IN2000_hostdata *hostdata) |
hostdata | 357 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 362 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)cmd->host->hostdata; |
hostdata | 420 | drivers/scsi/in2000.c | if (!(hostdata->input_Q) || (cmd->cmnd[0] == REQUEST_SENSE)) { |
hostdata | 421 | drivers/scsi/in2000.c | cmd->host_scribble = (uchar *)hostdata->input_Q; |
hostdata | 422 | drivers/scsi/in2000.c | hostdata->input_Q = cmd; |
hostdata | 425 | drivers/scsi/in2000.c | for (tmp=(Scsi_Cmnd *)hostdata->input_Q; tmp->host_scribble; |
hostdata | 453 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 464 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)instance->hostdata; |
hostdata | 468 | drivers/scsi/in2000.c | if (hostdata->selecting || hostdata->connected) { |
hostdata | 481 | drivers/scsi/in2000.c | cmd = (Scsi_Cmnd *)hostdata->input_Q; |
hostdata | 484 | drivers/scsi/in2000.c | if (!(hostdata->busy[cmd->target] & (1 << cmd->lun))) |
hostdata | 505 | drivers/scsi/in2000.c | hostdata->input_Q = (Scsi_Cmnd *)cmd->host_scribble; |
hostdata | 512 | drivers/scsi/in2000.c | write_3393(hostdata,WD_DESTINATION_ID, cmd->target); |
hostdata | 514 | drivers/scsi/in2000.c | write_3393(hostdata,WD_DESTINATION_ID, cmd->target | DSTID_DPD); |
hostdata | 540 | drivers/scsi/in2000.c | if (hostdata->disconnect == DIS_NEVER) |
hostdata | 542 | drivers/scsi/in2000.c | if (hostdata->disconnect == DIS_ALWAYS) |
hostdata | 546 | drivers/scsi/in2000.c | if (hostdata->disconnected_Q) /* other commands disconnected? */ |
hostdata | 548 | drivers/scsi/in2000.c | if (!(hostdata->input_Q)) /* input_Q empty? */ |
hostdata | 550 | drivers/scsi/in2000.c | for (prev=(Scsi_Cmnd *)hostdata->input_Q; prev; |
hostdata | 553 | drivers/scsi/in2000.c | for (prev=(Scsi_Cmnd *)hostdata->input_Q; prev; |
hostdata | 569 | drivers/scsi/in2000.c | write_3393(hostdata,WD_SOURCE_ID,((cmd->SCp.phase)?SRCID_ER:0)); |
hostdata | 571 | drivers/scsi/in2000.c | write_3393(hostdata,WD_TARGET_LUN, cmd->lun); |
hostdata | 572 | drivers/scsi/in2000.c | write_3393(hostdata,WD_SYNCHRONOUS_TRANSFER,hostdata->sync_xfer[cmd->target]); |
hostdata | 573 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 575 | drivers/scsi/in2000.c | if ((hostdata->level2 <= L2_NONE) || |
hostdata | 576 | drivers/scsi/in2000.c | (hostdata->sync_stat[cmd->target] == SS_UNSET)) { |
hostdata | 586 | drivers/scsi/in2000.c | hostdata->selecting = cmd; |
hostdata | 598 | drivers/scsi/in2000.c | if (hostdata->sync_stat[cmd->target] == SS_UNSET) { |
hostdata | 599 | drivers/scsi/in2000.c | if (hostdata->sync_off & (1 << cmd->target)) |
hostdata | 600 | drivers/scsi/in2000.c | hostdata->sync_stat[cmd->target] = SS_SET; |
hostdata | 602 | drivers/scsi/in2000.c | hostdata->sync_stat[cmd->target] = SS_FIRST; |
hostdata | 604 | drivers/scsi/in2000.c | hostdata->state = S_SELECTING; |
hostdata | 605 | drivers/scsi/in2000.c | write_3393_count(hostdata,0); /* this guarantees a DATA_PHASE interrupt */ |
hostdata | 606 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN); |
hostdata | 619 | drivers/scsi/in2000.c | hostdata->connected = cmd; |
hostdata | 620 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND_PHASE, 0); |
hostdata | 636 | drivers/scsi/in2000.c | write_3393(hostdata, WD_OWN_ID, cmd->cmd_len); |
hostdata | 657 | drivers/scsi/in2000.c | write_3393_count(hostdata, cmd->SCp.this_residual); |
hostdata | 658 | drivers/scsi/in2000.c | write_3393(hostdata,WD_CONTROL, CTRL_IDI | CTRL_EDI | CTRL_BUS); |
hostdata | 662 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_WRITING; |
hostdata | 668 | drivers/scsi/in2000.c | f = hostdata->io_base + IO_FIFO; |
hostdata | 699 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_READING; |
hostdata | 705 | drivers/scsi/in2000.c | write_3393_count(hostdata,0); /* this guarantees a DATA_PHASE interrupt */ |
hostdata | 707 | drivers/scsi/in2000.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 708 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN_XFER); |
hostdata | 726 | drivers/scsi/in2000.c | int data_in_dir, struct IN2000_hostdata *hostdata) |
hostdata | 732 | drivers/scsi/in2000.c | write_3393(hostdata,WD_CONTROL, CTRL_IDI | CTRL_EDI | CTRL_POLLED); |
hostdata | 733 | drivers/scsi/in2000.c | write_3393_count(hostdata,cnt); |
hostdata | 734 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_TRANS_INFO); |
hostdata | 739 | drivers/scsi/in2000.c | *buf++ = read_3393(hostdata,WD_DATA); |
hostdata | 746 | drivers/scsi/in2000.c | write_3393(hostdata,WD_DATA, *buf++); |
hostdata | 763 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 768 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)cmd->host->hostdata; |
hostdata | 787 | drivers/scsi/in2000.c | write_3393(hostdata,WD_SYNCHRONOUS_TRANSFER,hostdata->sync_xfer[cmd->target]); |
hostdata | 788 | drivers/scsi/in2000.c | write_3393_count(hostdata,cmd->SCp.this_residual); |
hostdata | 789 | drivers/scsi/in2000.c | write_3393(hostdata,WD_CONTROL, CTRL_IDI | CTRL_EDI | CTRL_BUS); |
hostdata | 798 | drivers/scsi/in2000.c | if ((hostdata->level2 >= L2_DATA) || (cmd->SCp.phase == 0)) { |
hostdata | 799 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND_PHASE,0x45); |
hostdata | 800 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN_XFER); |
hostdata | 801 | drivers/scsi/in2000.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 804 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_TRANS_INFO); |
hostdata | 805 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_READING; |
hostdata | 815 | drivers/scsi/in2000.c | if ((hostdata->level2 >= L2_DATA) || (cmd->SCp.phase == 0)) { |
hostdata | 816 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND_PHASE,0x45); |
hostdata | 817 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN_XFER); |
hostdata | 818 | drivers/scsi/in2000.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 821 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_TRANS_INFO); |
hostdata | 822 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_WRITING; |
hostdata | 829 | drivers/scsi/in2000.c | f = hostdata->io_base + IO_FIFO; |
hostdata | 861 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 878 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)instance->hostdata; |
hostdata | 943 | drivers/scsi/in2000.c | cmd = (Scsi_Cmnd *)hostdata->connected; /* assume we're connected */ |
hostdata | 946 | drivers/scsi/in2000.c | if (hostdata->fifo == FI_FIFO_READING) { |
hostdata | 953 | drivers/scsi/in2000.c | f = hostdata->io_base + IO_FIFO; |
hostdata | 969 | drivers/scsi/in2000.c | else if (hostdata->fifo == FI_FIFO_WRITING) { |
hostdata | 1024 | drivers/scsi/in2000.c | cmd = (Scsi_Cmnd *)hostdata->connected; /* assume we're connected */ |
hostdata | 1025 | drivers/scsi/in2000.c | sr = read_3393(hostdata,WD_SCSI_STATUS); /* clear the interrupt */ |
hostdata | 1026 | drivers/scsi/in2000.c | phs = read_3393(hostdata,WD_COMMAND_PHASE); |
hostdata | 1050 | drivers/scsi/in2000.c | if (hostdata->fifo == FI_FIFO_READING) { |
hostdata | 1058 | drivers/scsi/in2000.c | i = (cmd->SCp.this_residual - read_3393_count(hostdata)) - cmd->SCp.have_data_in; |
hostdata | 1060 | drivers/scsi/in2000.c | f = hostdata->io_base + IO_FIFO; |
hostdata | 1071 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_UNUSED; |
hostdata | 1073 | drivers/scsi/in2000.c | cmd->SCp.this_residual = read_3393_count(hostdata); |
hostdata | 1080 | drivers/scsi/in2000.c | else if (hostdata->fifo == FI_FIFO_WRITING) { |
hostdata | 1081 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_UNUSED; |
hostdata | 1083 | drivers/scsi/in2000.c | cmd->SCp.this_residual = read_3393_count(hostdata); |
hostdata | 1098 | drivers/scsi/in2000.c | if (hostdata->state == S_RUNNING_LEVEL2) |
hostdata | 1099 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 1101 | drivers/scsi/in2000.c | cmd = (Scsi_Cmnd *)hostdata->selecting; /* get a valid cmd */ |
hostdata | 1103 | drivers/scsi/in2000.c | hostdata->selecting = NULL; |
hostdata | 1107 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1108 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1125 | drivers/scsi/in2000.c | hostdata->connected = cmd = (Scsi_Cmnd *)hostdata->selecting; |
hostdata | 1127 | drivers/scsi/in2000.c | hostdata->selecting = NULL; |
hostdata | 1131 | drivers/scsi/in2000.c | hostdata->outgoing_msg[0] = (0x80 | 0x00 | cmd->lun); |
hostdata | 1133 | drivers/scsi/in2000.c | hostdata->outgoing_msg[0] |= 0x40; |
hostdata | 1135 | drivers/scsi/in2000.c | if (hostdata->sync_stat[cmd->target] == SS_FIRST) { |
hostdata | 1140 | drivers/scsi/in2000.c | hostdata->sync_stat[cmd->target] = SS_WAITING; |
hostdata | 1144 | drivers/scsi/in2000.c | hostdata->outgoing_msg[1] = EXTENDED_MESSAGE; |
hostdata | 1145 | drivers/scsi/in2000.c | hostdata->outgoing_msg[2] = 3; |
hostdata | 1146 | drivers/scsi/in2000.c | hostdata->outgoing_msg[3] = EXTENDED_SDTR; |
hostdata | 1147 | drivers/scsi/in2000.c | hostdata->outgoing_msg[4] = OPTIMUM_SX_PER/4; |
hostdata | 1148 | drivers/scsi/in2000.c | hostdata->outgoing_msg[5] = OPTIMUM_SX_OFF; |
hostdata | 1149 | drivers/scsi/in2000.c | hostdata->outgoing_len = 6; |
hostdata | 1152 | drivers/scsi/in2000.c | hostdata->outgoing_len = 1; |
hostdata | 1154 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1163 | drivers/scsi/in2000.c | if (hostdata->state != S_RUNNING_LEVEL2) |
hostdata | 1164 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1173 | drivers/scsi/in2000.c | if (hostdata->state != S_RUNNING_LEVEL2) |
hostdata | 1174 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1184 | drivers/scsi/in2000.c | transfer_pio(cmd->cmnd, cmd->cmd_len, DATA_OUT_DIR, hostdata); |
hostdata | 1185 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1194 | drivers/scsi/in2000.c | cmd->SCp.Status = read_1_byte(hostdata); |
hostdata | 1195 | drivers/scsi/in2000.c | if (hostdata->level2 >= L2_BASIC) { |
hostdata | 1196 | drivers/scsi/in2000.c | sr = read_3393(hostdata,WD_SCSI_STATUS); /* clear interrupt */ |
hostdata | 1197 | drivers/scsi/in2000.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 1198 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND_PHASE, 0x50); |
hostdata | 1199 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN_XFER); |
hostdata | 1203 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1214 | drivers/scsi/in2000.c | msg = read_1_byte(hostdata); |
hostdata | 1215 | drivers/scsi/in2000.c | sr = read_3393(hostdata,WD_SCSI_STATUS); /* clear interrupt */ |
hostdata | 1217 | drivers/scsi/in2000.c | hostdata->incoming_msg[hostdata->incoming_ptr] = msg; |
hostdata | 1218 | drivers/scsi/in2000.c | if (hostdata->incoming_msg[0] == EXTENDED_MESSAGE) |
hostdata | 1221 | drivers/scsi/in2000.c | hostdata->incoming_ptr = 0; |
hostdata | 1228 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1229 | drivers/scsi/in2000.c | hostdata->state = S_PRE_CMP_DISC; |
hostdata | 1234 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1235 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1240 | drivers/scsi/in2000.c | if (hostdata->level2 >= L2_BASIC) { |
hostdata | 1241 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND_PHASE, 0x45); |
hostdata | 1242 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN_XFER); |
hostdata | 1243 | drivers/scsi/in2000.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 1246 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1247 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1254 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1255 | drivers/scsi/in2000.c | hostdata->state = S_PRE_TMP_DISC; |
hostdata | 1263 | drivers/scsi/in2000.c | if (hostdata->sync_stat[cmd->target] == SS_WAITING) |
hostdata | 1264 | drivers/scsi/in2000.c | hostdata->sync_stat[cmd->target] = SS_SET; |
hostdata | 1265 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1266 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1272 | drivers/scsi/in2000.c | ucp = hostdata->incoming_msg; |
hostdata | 1275 | drivers/scsi/in2000.c | printk("%02x",ucp[hostdata->incoming_ptr]); |
hostdata | 1279 | drivers/scsi/in2000.c | if ((hostdata->incoming_ptr >= 2) && |
hostdata | 1280 | drivers/scsi/in2000.c | (hostdata->incoming_ptr == (ucp[1] + 1))) { |
hostdata | 1285 | drivers/scsi/in2000.c | if (hostdata->sync_stat[cmd->target] != SS_WAITING) { |
hostdata | 1296 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_ASSERT_ATN); /* want MESS_OUT */ |
hostdata | 1297 | drivers/scsi/in2000.c | hostdata->outgoing_msg[0] = EXTENDED_MESSAGE; |
hostdata | 1298 | drivers/scsi/in2000.c | hostdata->outgoing_msg[1] = 3; |
hostdata | 1299 | drivers/scsi/in2000.c | hostdata->outgoing_msg[2] = EXTENDED_SDTR; |
hostdata | 1300 | drivers/scsi/in2000.c | hostdata->outgoing_msg[3] = hostdata->default_sx_per/4; |
hostdata | 1301 | drivers/scsi/in2000.c | hostdata->outgoing_msg[4] = 0; |
hostdata | 1302 | drivers/scsi/in2000.c | hostdata->outgoing_len = 5; |
hostdata | 1303 | drivers/scsi/in2000.c | hostdata->sync_xfer[cmd->target] = |
hostdata | 1304 | drivers/scsi/in2000.c | calc_sync_xfer(hostdata->default_sx_per/4,0); |
hostdata | 1307 | drivers/scsi/in2000.c | hostdata->sync_xfer[cmd->target] = id; |
hostdata | 1310 | drivers/scsi/in2000.c | printk("sync_xfer=%02x",hostdata->sync_xfer[cmd->target]); |
hostdata | 1312 | drivers/scsi/in2000.c | hostdata->sync_stat[cmd->target] = SS_SET; |
hostdata | 1313 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1314 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1317 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_ASSERT_ATN); /* want MESS_OUT */ |
hostdata | 1319 | drivers/scsi/in2000.c | hostdata->outgoing_msg[0] = EXTENDED_MESSAGE; |
hostdata | 1320 | drivers/scsi/in2000.c | hostdata->outgoing_msg[1] = 2; |
hostdata | 1321 | drivers/scsi/in2000.c | hostdata->outgoing_msg[2] = EXTENDED_WDTR; |
hostdata | 1322 | drivers/scsi/in2000.c | hostdata->outgoing_msg[3] = 0; /* 8 bit transfer width */ |
hostdata | 1323 | drivers/scsi/in2000.c | hostdata->outgoing_len = 4; |
hostdata | 1324 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1325 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1328 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_ASSERT_ATN); /* want MESS_OUT */ |
hostdata | 1330 | drivers/scsi/in2000.c | hostdata->outgoing_msg[0] = MESSAGE_REJECT; |
hostdata | 1331 | drivers/scsi/in2000.c | hostdata->outgoing_len = 1; |
hostdata | 1332 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1333 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1336 | drivers/scsi/in2000.c | hostdata->incoming_ptr = 0; |
hostdata | 1342 | drivers/scsi/in2000.c | hostdata->incoming_ptr++; |
hostdata | 1343 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1344 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1350 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_ASSERT_ATN); /* want MESS_OUT */ |
hostdata | 1351 | drivers/scsi/in2000.c | hostdata->outgoing_msg[0] = MESSAGE_REJECT; |
hostdata | 1352 | drivers/scsi/in2000.c | hostdata->outgoing_len = 1; |
hostdata | 1353 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1354 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1368 | drivers/scsi/in2000.c | write_3393(hostdata,WD_SOURCE_ID, SRCID_ER); |
hostdata | 1372 | drivers/scsi/in2000.c | lun = read_3393(hostdata,WD_TARGET_LUN); |
hostdata | 1375 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 1380 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1381 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1401 | drivers/scsi/in2000.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 1402 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND_PHASE, 0x41); |
hostdata | 1403 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN_XFER); |
hostdata | 1425 | drivers/scsi/in2000.c | if (hostdata->outgoing_len == 0) { |
hostdata | 1426 | drivers/scsi/in2000.c | hostdata->outgoing_len = 1; |
hostdata | 1427 | drivers/scsi/in2000.c | hostdata->outgoing_msg[0] = NOP; |
hostdata | 1429 | drivers/scsi/in2000.c | transfer_pio(hostdata->outgoing_msg, hostdata->outgoing_len, |
hostdata | 1430 | drivers/scsi/in2000.c | DATA_OUT_DIR, hostdata); |
hostdata | 1431 | drivers/scsi/in2000.c | DB(DB_INTR,printk("%02x",hostdata->outgoing_msg[0])) |
hostdata | 1432 | drivers/scsi/in2000.c | hostdata->outgoing_len = 0; |
hostdata | 1433 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1453 | drivers/scsi/in2000.c | write_3393(hostdata,WD_SOURCE_ID, SRCID_ER); |
hostdata | 1456 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1460 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 1461 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1462 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1485 | drivers/scsi/in2000.c | write_3393(hostdata,WD_SOURCE_ID, SRCID_ER); |
hostdata | 1489 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1491 | drivers/scsi/in2000.c | switch (hostdata->state) { |
hostdata | 1493 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 1494 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1495 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1504 | drivers/scsi/in2000.c | cmd->host_scribble = (uchar *)hostdata->disconnected_Q; |
hostdata | 1505 | drivers/scsi/in2000.c | hostdata->disconnected_Q = cmd; |
hostdata | 1506 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 1507 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1516 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1537 | drivers/scsi/in2000.c | if (hostdata->level2 <= L2_NONE) { |
hostdata | 1539 | drivers/scsi/in2000.c | if (hostdata->selecting) { |
hostdata | 1540 | drivers/scsi/in2000.c | cmd = (Scsi_Cmnd *)hostdata->selecting; |
hostdata | 1541 | drivers/scsi/in2000.c | hostdata->selecting = NULL; |
hostdata | 1542 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1543 | drivers/scsi/in2000.c | cmd->host_scribble = (uchar *)hostdata->input_Q; |
hostdata | 1544 | drivers/scsi/in2000.c | hostdata->input_Q = cmd; |
hostdata | 1552 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1553 | drivers/scsi/in2000.c | cmd->host_scribble = (uchar *)hostdata->input_Q; |
hostdata | 1554 | drivers/scsi/in2000.c | hostdata->input_Q = cmd; |
hostdata | 1567 | drivers/scsi/in2000.c | id = read_3393(hostdata,WD_SOURCE_ID); |
hostdata | 1575 | drivers/scsi/in2000.c | lun = read_3393(hostdata,WD_DATA); |
hostdata | 1576 | drivers/scsi/in2000.c | if (hostdata->level2 < L2_RESELECT) |
hostdata | 1577 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_NEGATE_ACK); |
hostdata | 1582 | drivers/scsi/in2000.c | cmd = (Scsi_Cmnd *)hostdata->disconnected_Q; |
hostdata | 1603 | drivers/scsi/in2000.c | hostdata->disconnected_Q = (Scsi_Cmnd *)cmd->host_scribble; |
hostdata | 1604 | drivers/scsi/in2000.c | hostdata->connected = cmd; |
hostdata | 1612 | drivers/scsi/in2000.c | write_3393(hostdata,WD_DESTINATION_ID,cmd->target); |
hostdata | 1614 | drivers/scsi/in2000.c | write_3393(hostdata,WD_DESTINATION_ID,cmd->target | DSTID_DPD); |
hostdata | 1615 | drivers/scsi/in2000.c | if (hostdata->level2 >= L2_RESELECT) { |
hostdata | 1616 | drivers/scsi/in2000.c | write_3393_count(hostdata,0); /* we want a DATA_PHASE interrupt */ |
hostdata | 1617 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND_PHASE, 0x45); |
hostdata | 1618 | drivers/scsi/in2000.c | write_3393_cmd(hostdata,WD_CMD_SEL_ATN_XFER); |
hostdata | 1619 | drivers/scsi/in2000.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 1622 | drivers/scsi/in2000.c | hostdata->state = S_CONNECTED; |
hostdata | 1646 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 1650 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)instance->hostdata; |
hostdata | 1657 | drivers/scsi/in2000.c | x = read_3393(hostdata,WD_SCSI_STATUS); /* clear any WD intrpt */ |
hostdata | 1658 | drivers/scsi/in2000.c | write_3393(hostdata,WD_OWN_ID, instance->this_id | |
hostdata | 1660 | drivers/scsi/in2000.c | write_3393(hostdata,WD_CONTROL, CTRL_IDI | CTRL_EDI | CTRL_POLLED); |
hostdata | 1661 | drivers/scsi/in2000.c | write_3393(hostdata,WD_SYNCHRONOUS_TRANSFER, |
hostdata | 1662 | drivers/scsi/in2000.c | calc_sync_xfer(hostdata->default_sx_per/4,DEFAULT_SX_OFF)); |
hostdata | 1667 | drivers/scsi/in2000.c | write_3393(hostdata,WD_COMMAND, WD_CMD_RESET); |
hostdata | 1671 | drivers/scsi/in2000.c | x = read_3393(hostdata,WD_SCSI_STATUS); /* clear interrupt */ |
hostdata | 1673 | drivers/scsi/in2000.c | write_3393(hostdata,WD_QUEUE_TAG,0xa5); /* any random number */ |
hostdata | 1674 | drivers/scsi/in2000.c | qt = read_3393(hostdata,WD_QUEUE_TAG); |
hostdata | 1677 | drivers/scsi/in2000.c | write_3393(hostdata,WD_QUEUE_TAG,0); |
hostdata | 1679 | drivers/scsi/in2000.c | write_3393(hostdata,WD_TIMEOUT_PERIOD, TIMEOUT_PERIOD_VALUE); |
hostdata | 1680 | drivers/scsi/in2000.c | write_3393(hostdata,WD_CONTROL, CTRL_IDI | CTRL_EDI | CTRL_POLLED); |
hostdata | 1695 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 1699 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)instance->hostdata; |
hostdata | 1709 | drivers/scsi/in2000.c | hostdata->busy[x] = 0; |
hostdata | 1710 | drivers/scsi/in2000.c | hostdata->sync_xfer[x] = calc_sync_xfer(DEFAULT_SX_PER/4,DEFAULT_SX_OFF); |
hostdata | 1711 | drivers/scsi/in2000.c | hostdata->sync_stat[x] = SS_UNSET; /* using default sync values */ |
hostdata | 1713 | drivers/scsi/in2000.c | hostdata->input_Q = NULL; |
hostdata | 1714 | drivers/scsi/in2000.c | hostdata->selecting = NULL; |
hostdata | 1715 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 1716 | drivers/scsi/in2000.c | hostdata->disconnected_Q = NULL; |
hostdata | 1717 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1718 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_UNUSED; |
hostdata | 1719 | drivers/scsi/in2000.c | hostdata->incoming_ptr = 0; |
hostdata | 1720 | drivers/scsi/in2000.c | hostdata->outgoing_len = 0; |
hostdata | 1732 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 1742 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)instance->hostdata; |
hostdata | 1746 | drivers/scsi/in2000.c | READ_AUX_STAT(),read_3393_count(hostdata),cmd->SCp.this_residual,cmd->SCp.buffers_residual, |
hostdata | 1754 | drivers/scsi/in2000.c | tmp = (Scsi_Cmnd *)hostdata->input_Q; |
hostdata | 1783 | drivers/scsi/in2000.c | if (hostdata->connected == cmd) { |
hostdata | 1789 | drivers/scsi/in2000.c | write_3393(hostdata, WD_CONTROL, CTRL_IDI | CTRL_EDI | CTRL_POLLED); |
hostdata | 1790 | drivers/scsi/in2000.c | write_3393_cmd(hostdata, WD_CMD_ABORT); |
hostdata | 1799 | drivers/scsi/in2000.c | read_3393(hostdata, WD_DATA); |
hostdata | 1801 | drivers/scsi/in2000.c | sr = read_3393(hostdata, WD_SCSI_STATUS); |
hostdata | 1803 | drivers/scsi/in2000.c | asr, sr, read_3393_count(hostdata), timeout); |
hostdata | 1812 | drivers/scsi/in2000.c | write_3393_cmd(hostdata, WD_CMD_DISCONNECT); |
hostdata | 1818 | drivers/scsi/in2000.c | sr = read_3393(hostdata, WD_SCSI_STATUS); |
hostdata | 1821 | drivers/scsi/in2000.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1822 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 1823 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1840 | drivers/scsi/in2000.c | for (tmp=(Scsi_Cmnd *)hostdata->disconnected_Q; tmp; |
hostdata | 1966 | drivers/scsi/in2000.c | struct IN2000_hostdata *hostdata; |
hostdata | 2065 | drivers/scsi/in2000.c | hostdata = (struct IN2000_hostdata *)instance->hostdata; |
hostdata | 2066 | drivers/scsi/in2000.c | instance->io_port = hostdata->io_base = base; |
hostdata | 2067 | drivers/scsi/in2000.c | hostdata->dip_switch = switches; |
hostdata | 2068 | drivers/scsi/in2000.c | hostdata->hrev = hrev; |
hostdata | 2089 | drivers/scsi/in2000.c | hostdata->busy[x] = 0; |
hostdata | 2090 | drivers/scsi/in2000.c | hostdata->sync_xfer[x] = calc_sync_xfer(DEFAULT_SX_PER/4,DEFAULT_SX_OFF); |
hostdata | 2091 | drivers/scsi/in2000.c | hostdata->sync_stat[x] = SS_UNSET; /* using default sync values */ |
hostdata | 2093 | drivers/scsi/in2000.c | hostdata->input_Q = NULL; |
hostdata | 2094 | drivers/scsi/in2000.c | hostdata->selecting = NULL; |
hostdata | 2095 | drivers/scsi/in2000.c | hostdata->connected = NULL; |
hostdata | 2096 | drivers/scsi/in2000.c | hostdata->disconnected_Q = NULL; |
hostdata | 2097 | drivers/scsi/in2000.c | hostdata->state = S_UNCONNECTED; |
hostdata | 2098 | drivers/scsi/in2000.c | hostdata->fifo = FI_FIFO_UNUSED; |
hostdata | 2099 | drivers/scsi/in2000.c | hostdata->level2 = L2_BASIC; |
hostdata | 2100 | drivers/scsi/in2000.c | hostdata->disconnect = DIS_ADAPTIVE; |
hostdata | 2101 | drivers/scsi/in2000.c | hostdata->args = DEBUG_DEFAULTS; |
hostdata | 2102 | drivers/scsi/in2000.c | hostdata->incoming_ptr = 0; |
hostdata | 2103 | drivers/scsi/in2000.c | hostdata->outgoing_len = 0; |
hostdata | 2104 | drivers/scsi/in2000.c | hostdata->default_sx_per = DEFAULT_SX_PER; |
hostdata | 2109 | drivers/scsi/in2000.c | hostdata->sync_off = 0x00; /* sync defaults to on */ |
hostdata | 2111 | drivers/scsi/in2000.c | hostdata->sync_off = 0xff; /* sync defaults to off */ |
hostdata | 2113 | drivers/scsi/in2000.c | hostdata->proc = PR_VERSION|PR_INFO|PR_TOTALS| |
hostdata | 2124 | drivers/scsi/in2000.c | hostdata->sync_off = val; |
hostdata | 2127 | drivers/scsi/in2000.c | hostdata->default_sx_per = sx_table[round_period((unsigned int)val)].period_ns; |
hostdata | 2131 | drivers/scsi/in2000.c | hostdata->disconnect = val; |
hostdata | 2133 | drivers/scsi/in2000.c | hostdata->disconnect = DIS_ADAPTIVE; |
hostdata | 2137 | drivers/scsi/in2000.c | hostdata->args ^= A_NO_SCSI_RESET; |
hostdata | 2140 | drivers/scsi/in2000.c | hostdata->args = (val & DB_MASK); |
hostdata | 2143 | drivers/scsi/in2000.c | hostdata->proc = val; |
hostdata | 2145 | drivers/scsi/in2000.c | x = reset_hardware(instance,(hostdata->args & A_NO_SCSI_RESET)?RESET_CARD:RESET_CARD_AND_BUS); |
hostdata | 2147 | drivers/scsi/in2000.c | hostdata->microcode = read_3393(hostdata,WD_CDB_1); |
hostdata | 2150 | drivers/scsi/in2000.c | hostdata->chip = C_WD33C93B; |
hostdata | 2152 | drivers/scsi/in2000.c | hostdata->chip = C_WD33C93A; |
hostdata | 2155 | drivers/scsi/in2000.c | hostdata->chip = C_WD33C93; |
hostdata | 2159 | drivers/scsi/in2000.c | instance->irq,hostdata->io_base, |
hostdata | 2164 | drivers/scsi/in2000.c | (hostdata->chip==C_WD33C93)?"WD33c93": |
hostdata | 2165 | drivers/scsi/in2000.c | (hostdata->chip==C_WD33C93A)?"WD33c93A": |
hostdata | 2166 | drivers/scsi/in2000.c | (hostdata->chip==C_WD33C93B)?"WD33c93B":"unknown", |
hostdata | 2167 | drivers/scsi/in2000.c | hostdata->microcode); |
hostdata | 2174 | drivers/scsi/in2000.c | if (hostdata->sync_off == 0xff) |
hostdata | 2249 | drivers/scsi/in2000.c | hd = (struct IN2000_hostdata *)instance->hostdata; |
hostdata | 167 | drivers/scsi/scsi.h | void *hostdata; /* available to low-level driver */ |
hostdata | 295 | drivers/scsi/u14-34f.c | #define HD(board) ((struct hostdata *) &sh[board]->hostdata) |
hostdata | 430 | drivers/scsi/u14-34f.c | sh[j] = scsi_register(tpnt, sizeof(struct hostdata)); |
hostdata | 467 | drivers/scsi/u14-34f.c | memset(HD(j), 0, sizeof(struct hostdata)); |
hostdata | 587 | drivers/scsi/u14-34f.c | j = ((struct hostdata *) SCpnt->host->hostdata)->board_number; |
hostdata | 686 | drivers/scsi/u14-34f.c | j = ((struct hostdata *) SCarg->host->hostdata)->board_number; |
hostdata | 747 | drivers/scsi/u14-34f.c | j = ((struct hostdata *) SCarg->host->hostdata)->board_number; |
hostdata | 104 | drivers/scsi/wd33c93.c | #define DB(f,a) if (hostdata->args & (f)) a; |
hostdata | 272 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 279 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)cmd->host->hostdata; |
hostdata | 331 | drivers/scsi/wd33c93.c | if (!(hostdata->input_Q) || (cmd->cmnd[0] == REQUEST_SENSE)) { |
hostdata | 332 | drivers/scsi/wd33c93.c | cmd->host_scribble = (uchar *)hostdata->input_Q; |
hostdata | 333 | drivers/scsi/wd33c93.c | hostdata->input_Q = cmd; |
hostdata | 336 | drivers/scsi/wd33c93.c | for (tmp=(Scsi_Cmnd *)hostdata->input_Q; tmp->host_scribble; |
hostdata | 364 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 373 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)instance->hostdata; |
hostdata | 374 | drivers/scsi/wd33c93.c | regp = hostdata->regp; |
hostdata | 378 | drivers/scsi/wd33c93.c | if (hostdata->selecting || hostdata->connected) { |
hostdata | 391 | drivers/scsi/wd33c93.c | cmd = (Scsi_Cmnd *)hostdata->input_Q; |
hostdata | 394 | drivers/scsi/wd33c93.c | if (!(hostdata->busy[cmd->target] & (1 << cmd->lun))) |
hostdata | 415 | drivers/scsi/wd33c93.c | hostdata->input_Q = (Scsi_Cmnd *)cmd->host_scribble; |
hostdata | 450 | drivers/scsi/wd33c93.c | if (hostdata->disconnect == DIS_NEVER) |
hostdata | 452 | drivers/scsi/wd33c93.c | if (hostdata->disconnect == DIS_ALWAYS) |
hostdata | 456 | drivers/scsi/wd33c93.c | if (hostdata->disconnected_Q) /* other commands disconnected? */ |
hostdata | 458 | drivers/scsi/wd33c93.c | if (!(hostdata->input_Q)) /* input_Q empty? */ |
hostdata | 460 | drivers/scsi/wd33c93.c | for (prev=(Scsi_Cmnd *)hostdata->input_Q; prev; |
hostdata | 463 | drivers/scsi/wd33c93.c | for (prev=(Scsi_Cmnd *)hostdata->input_Q; prev; |
hostdata | 482 | drivers/scsi/wd33c93.c | write_wd33c93(regp,WD_SYNCHRONOUS_TRANSFER,hostdata->sync_xfer[cmd->target]); |
hostdata | 483 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] |= (1 << cmd->lun); |
hostdata | 485 | drivers/scsi/wd33c93.c | if ((hostdata->level2 == L2_NONE) || |
hostdata | 486 | drivers/scsi/wd33c93.c | (hostdata->sync_stat[cmd->target] == SS_UNSET)) { |
hostdata | 496 | drivers/scsi/wd33c93.c | hostdata->selecting = cmd; |
hostdata | 509 | drivers/scsi/wd33c93.c | if (hostdata->sync_stat[cmd->target] == SS_UNSET) { |
hostdata | 510 | drivers/scsi/wd33c93.c | if (hostdata->no_sync & (1 << cmd->target)) |
hostdata | 511 | drivers/scsi/wd33c93.c | hostdata->sync_stat[cmd->target] = SS_SET; |
hostdata | 513 | drivers/scsi/wd33c93.c | hostdata->sync_stat[cmd->target] = SS_FIRST; |
hostdata | 515 | drivers/scsi/wd33c93.c | hostdata->state = S_SELECTING; |
hostdata | 530 | drivers/scsi/wd33c93.c | hostdata->connected = cmd; |
hostdata | 554 | drivers/scsi/wd33c93.c | if (hostdata->dma_setup(cmd, |
hostdata | 560 | drivers/scsi/wd33c93.c | hostdata->dma = D_DMA_RUNNING; |
hostdata | 566 | drivers/scsi/wd33c93.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 585 | drivers/scsi/wd33c93.c | int data_in_dir, struct WD33C93_hostdata *hostdata) |
hostdata | 622 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 624 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)cmd->host->hostdata; |
hostdata | 641 | drivers/scsi/wd33c93.c | write_wd33c93(regp,WD_SYNCHRONOUS_TRANSFER,hostdata->sync_xfer[cmd->target]); |
hostdata | 645 | drivers/scsi/wd33c93.c | if (hostdata->dma_setup(cmd, data_in_dir)) { |
hostdata | 647 | drivers/scsi/wd33c93.c | data_in_dir, hostdata); |
hostdata | 663 | drivers/scsi/wd33c93.c | if ((hostdata->level2 >= L2_DATA) || (cmd->SCp.phase == 0)) { |
hostdata | 666 | drivers/scsi/wd33c93.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 671 | drivers/scsi/wd33c93.c | hostdata->dma = D_DMA_RUNNING; |
hostdata | 679 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 687 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)instance->hostdata; |
hostdata | 688 | drivers/scsi/wd33c93.c | regp = hostdata->regp; |
hostdata | 699 | drivers/scsi/wd33c93.c | cmd = (Scsi_Cmnd *)hostdata->connected; /* assume we're connected */ |
hostdata | 720 | drivers/scsi/wd33c93.c | if (hostdata->dma == D_DMA_RUNNING) { |
hostdata | 722 | drivers/scsi/wd33c93.c | hostdata->dma_stop(cmd->host, cmd, 1); |
hostdata | 723 | drivers/scsi/wd33c93.c | hostdata->dma = D_DMA_OFF; |
hostdata | 738 | drivers/scsi/wd33c93.c | if (hostdata->state == S_RUNNING_LEVEL2) |
hostdata | 739 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 741 | drivers/scsi/wd33c93.c | cmd = (Scsi_Cmnd *)hostdata->selecting; /* get a valid cmd */ |
hostdata | 742 | drivers/scsi/wd33c93.c | hostdata->selecting = NULL; |
hostdata | 746 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 747 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 764 | drivers/scsi/wd33c93.c | hostdata->connected = cmd = (Scsi_Cmnd *)hostdata->selecting; |
hostdata | 765 | drivers/scsi/wd33c93.c | hostdata->selecting = NULL; |
hostdata | 769 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[0] = (0x80 | 0x00 | cmd->lun); |
hostdata | 771 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[0] |= 0x40; |
hostdata | 773 | drivers/scsi/wd33c93.c | if (hostdata->sync_stat[cmd->target] == SS_FIRST) { |
hostdata | 778 | drivers/scsi/wd33c93.c | hostdata->sync_stat[cmd->target] = SS_WAITING; |
hostdata | 782 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[1] = EXTENDED_MESSAGE; |
hostdata | 783 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[2] = 3; |
hostdata | 784 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[3] = EXTENDED_SDTR; |
hostdata | 785 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[4] = OPTIMUM_SX_PER/4; |
hostdata | 786 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[5] = OPTIMUM_SX_OFF; |
hostdata | 787 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 6; |
hostdata | 790 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 1; |
hostdata | 792 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 801 | drivers/scsi/wd33c93.c | if (hostdata->state != S_RUNNING_LEVEL2) |
hostdata | 802 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 811 | drivers/scsi/wd33c93.c | if (hostdata->state != S_RUNNING_LEVEL2) |
hostdata | 812 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 822 | drivers/scsi/wd33c93.c | transfer_pio(regp, cmd->cmnd, cmd->cmd_len, DATA_OUT_DIR, hostdata); |
hostdata | 823 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 833 | drivers/scsi/wd33c93.c | if (hostdata->level2 >= L2_BASIC) { |
hostdata | 835 | drivers/scsi/wd33c93.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 841 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 855 | drivers/scsi/wd33c93.c | hostdata->incoming_msg[hostdata->incoming_ptr] = msg; |
hostdata | 856 | drivers/scsi/wd33c93.c | if (hostdata->incoming_msg[0] == EXTENDED_MESSAGE) |
hostdata | 859 | drivers/scsi/wd33c93.c | hostdata->incoming_ptr = 0; |
hostdata | 867 | drivers/scsi/wd33c93.c | hostdata->state = S_PRE_CMP_DISC; |
hostdata | 873 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 878 | drivers/scsi/wd33c93.c | if (hostdata->level2 >= L2_BASIC) { |
hostdata | 881 | drivers/scsi/wd33c93.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 885 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 893 | drivers/scsi/wd33c93.c | hostdata->state = S_PRE_TMP_DISC; |
hostdata | 901 | drivers/scsi/wd33c93.c | if (hostdata->sync_stat[cmd->target] == SS_WAITING) |
hostdata | 902 | drivers/scsi/wd33c93.c | hostdata->sync_stat[cmd->target] = SS_SET; |
hostdata | 904 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 910 | drivers/scsi/wd33c93.c | ucp = hostdata->incoming_msg; |
hostdata | 913 | drivers/scsi/wd33c93.c | printk("%02x",ucp[hostdata->incoming_ptr]); |
hostdata | 917 | drivers/scsi/wd33c93.c | if ((hostdata->incoming_ptr >= 2) && |
hostdata | 918 | drivers/scsi/wd33c93.c | (hostdata->incoming_ptr == (ucp[1] + 1))) { |
hostdata | 923 | drivers/scsi/wd33c93.c | if (hostdata->sync_stat[cmd->target] != SS_WAITING) { |
hostdata | 935 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[0] = EXTENDED_MESSAGE; |
hostdata | 936 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[1] = 3; |
hostdata | 937 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[2] = EXTENDED_SDTR; |
hostdata | 938 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[3] = hostdata->default_sx_per/4; |
hostdata | 939 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[4] = 0; |
hostdata | 940 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 5; |
hostdata | 941 | drivers/scsi/wd33c93.c | hostdata->sync_xfer[cmd->target] = |
hostdata | 942 | drivers/scsi/wd33c93.c | calc_sync_xfer(hostdata->default_sx_per/4,0); |
hostdata | 945 | drivers/scsi/wd33c93.c | hostdata->sync_xfer[cmd->target] = id; |
hostdata | 948 | drivers/scsi/wd33c93.c | printk("sync_xfer=%02x",hostdata->sync_xfer[cmd->target]); |
hostdata | 950 | drivers/scsi/wd33c93.c | hostdata->sync_stat[cmd->target] = SS_SET; |
hostdata | 952 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 957 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[0] = EXTENDED_MESSAGE; |
hostdata | 958 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[1] = 2; |
hostdata | 959 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[2] = EXTENDED_WDTR; |
hostdata | 960 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[3] = 0; /* 8 bit transfer width */ |
hostdata | 961 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 4; |
hostdata | 963 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 968 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[0] = MESSAGE_REJECT; |
hostdata | 969 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 1; |
hostdata | 971 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 974 | drivers/scsi/wd33c93.c | hostdata->incoming_ptr = 0; |
hostdata | 980 | drivers/scsi/wd33c93.c | hostdata->incoming_ptr++; |
hostdata | 982 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 989 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[0] = MESSAGE_REJECT; |
hostdata | 990 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 1; |
hostdata | 992 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 1013 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 1018 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1019 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1038 | drivers/scsi/wd33c93.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 1062 | drivers/scsi/wd33c93.c | if (hostdata->outgoing_len == 0) { |
hostdata | 1063 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 1; |
hostdata | 1064 | drivers/scsi/wd33c93.c | hostdata->outgoing_msg[0] = NOP; |
hostdata | 1066 | drivers/scsi/wd33c93.c | transfer_pio(regp, hostdata->outgoing_msg, hostdata->outgoing_len, |
hostdata | 1067 | drivers/scsi/wd33c93.c | DATA_OUT_DIR, hostdata); |
hostdata | 1068 | drivers/scsi/wd33c93.c | DB(DB_INTR,printk("%02x",hostdata->outgoing_msg[0])) |
hostdata | 1069 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 0; |
hostdata | 1070 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 1093 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1097 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 1098 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1099 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1125 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1127 | drivers/scsi/wd33c93.c | switch (hostdata->state) { |
hostdata | 1129 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 1130 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1131 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1140 | drivers/scsi/wd33c93.c | cmd->host_scribble = (uchar *)hostdata->disconnected_Q; |
hostdata | 1141 | drivers/scsi/wd33c93.c | hostdata->disconnected_Q = cmd; |
hostdata | 1142 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 1143 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1152 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1172 | drivers/scsi/wd33c93.c | if (hostdata->level2 <= L2_NONE) { |
hostdata | 1174 | drivers/scsi/wd33c93.c | if (hostdata->selecting) { |
hostdata | 1175 | drivers/scsi/wd33c93.c | cmd = (Scsi_Cmnd *)hostdata->selecting; |
hostdata | 1176 | drivers/scsi/wd33c93.c | hostdata->selecting = NULL; |
hostdata | 1177 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1178 | drivers/scsi/wd33c93.c | cmd->host_scribble = (uchar *)hostdata->input_Q; |
hostdata | 1179 | drivers/scsi/wd33c93.c | hostdata->input_Q = cmd; |
hostdata | 1187 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1188 | drivers/scsi/wd33c93.c | cmd->host_scribble = (uchar *)hostdata->input_Q; |
hostdata | 1189 | drivers/scsi/wd33c93.c | hostdata->input_Q = cmd; |
hostdata | 1211 | drivers/scsi/wd33c93.c | if (hostdata->level2 < L2_RESELECT) |
hostdata | 1217 | drivers/scsi/wd33c93.c | cmd = (Scsi_Cmnd *)hostdata->disconnected_Q; |
hostdata | 1238 | drivers/scsi/wd33c93.c | hostdata->disconnected_Q = (Scsi_Cmnd *)cmd->host_scribble; |
hostdata | 1239 | drivers/scsi/wd33c93.c | hostdata->connected = cmd; |
hostdata | 1250 | drivers/scsi/wd33c93.c | if (hostdata->level2 >= L2_RESELECT) { |
hostdata | 1254 | drivers/scsi/wd33c93.c | hostdata->state = S_RUNNING_LEVEL2; |
hostdata | 1257 | drivers/scsi/wd33c93.c | hostdata->state = S_CONNECTED; |
hostdata | 1276 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 1280 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)instance->hostdata; |
hostdata | 1281 | drivers/scsi/wd33c93.c | regp = hostdata->regp; |
hostdata | 1284 | drivers/scsi/wd33c93.c | instance->this_id | hostdata->clock_freq); |
hostdata | 1287 | drivers/scsi/wd33c93.c | calc_sync_xfer(hostdata->default_sx_per/4,DEFAULT_SX_OFF)); |
hostdata | 1294 | drivers/scsi/wd33c93.c | hostdata->microcode = read_wd33c93(regp, WD_CDB_1); |
hostdata | 1296 | drivers/scsi/wd33c93.c | hostdata->chip = C_WD33C93; |
hostdata | 1301 | drivers/scsi/wd33c93.c | hostdata->chip = C_WD33C93B; |
hostdata | 1305 | drivers/scsi/wd33c93.c | hostdata->chip = C_WD33C93A; |
hostdata | 1308 | drivers/scsi/wd33c93.c | hostdata->chip = C_UNKNOWN_CHIP; |
hostdata | 1324 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 1328 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)instance->hostdata; |
hostdata | 1334 | drivers/scsi/wd33c93.c | ((struct WD33C93_hostdata *)instance->hostdata)->dma_stop(instance,NULL,0); |
hostdata | 1336 | drivers/scsi/wd33c93.c | hostdata->busy[i] = 0; |
hostdata | 1337 | drivers/scsi/wd33c93.c | hostdata->sync_xfer[i] = calc_sync_xfer(DEFAULT_SX_PER/4,DEFAULT_SX_OFF); |
hostdata | 1338 | drivers/scsi/wd33c93.c | hostdata->sync_stat[i] = SS_UNSET; /* using default sync values */ |
hostdata | 1340 | drivers/scsi/wd33c93.c | hostdata->input_Q = NULL; |
hostdata | 1341 | drivers/scsi/wd33c93.c | hostdata->selecting = NULL; |
hostdata | 1342 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 1343 | drivers/scsi/wd33c93.c | hostdata->disconnected_Q = NULL; |
hostdata | 1344 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1345 | drivers/scsi/wd33c93.c | hostdata->dma = D_DMA_OFF; |
hostdata | 1346 | drivers/scsi/wd33c93.c | hostdata->incoming_ptr = 0; |
hostdata | 1347 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 0; |
hostdata | 1360 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 1369 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)instance->hostdata; |
hostdata | 1370 | drivers/scsi/wd33c93.c | regp = hostdata->regp; |
hostdata | 1377 | drivers/scsi/wd33c93.c | tmp = (Scsi_Cmnd *)hostdata->input_Q; |
hostdata | 1406 | drivers/scsi/wd33c93.c | if (hostdata->connected == cmd) { |
hostdata | 1414 | drivers/scsi/wd33c93.c | if (hostdata->dma == D_DMA_RUNNING) { |
hostdata | 1415 | drivers/scsi/wd33c93.c | hostdata->dma_stop(instance, cmd, 0); |
hostdata | 1416 | drivers/scsi/wd33c93.c | hostdata->dma = D_DMA_OFF; |
hostdata | 1452 | drivers/scsi/wd33c93.c | hostdata->busy[cmd->target] &= ~(1 << cmd->lun); |
hostdata | 1453 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 1454 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1471 | drivers/scsi/wd33c93.c | tmp = (Scsi_Cmnd *)hostdata->disconnected_Q; |
hostdata | 1591 | drivers/scsi/wd33c93.c | struct WD33C93_hostdata *hostdata; |
hostdata | 1597 | drivers/scsi/wd33c93.c | hostdata = (struct WD33C93_hostdata *)instance->hostdata; |
hostdata | 1599 | drivers/scsi/wd33c93.c | hostdata->regp = regs; |
hostdata | 1600 | drivers/scsi/wd33c93.c | hostdata->clock_freq = clock_freq; |
hostdata | 1601 | drivers/scsi/wd33c93.c | hostdata->dma_setup = setup; |
hostdata | 1602 | drivers/scsi/wd33c93.c | hostdata->dma_stop = stop; |
hostdata | 1603 | drivers/scsi/wd33c93.c | hostdata->dma_bounce_buffer = NULL; |
hostdata | 1604 | drivers/scsi/wd33c93.c | hostdata->dma_bounce_len = 0; |
hostdata | 1606 | drivers/scsi/wd33c93.c | hostdata->busy[i] = 0; |
hostdata | 1607 | drivers/scsi/wd33c93.c | hostdata->sync_xfer[i] = calc_sync_xfer(DEFAULT_SX_PER/4,DEFAULT_SX_OFF); |
hostdata | 1608 | drivers/scsi/wd33c93.c | hostdata->sync_stat[i] = SS_UNSET; /* using default sync values */ |
hostdata | 1610 | drivers/scsi/wd33c93.c | hostdata->input_Q = NULL; |
hostdata | 1611 | drivers/scsi/wd33c93.c | hostdata->selecting = NULL; |
hostdata | 1612 | drivers/scsi/wd33c93.c | hostdata->connected = NULL; |
hostdata | 1613 | drivers/scsi/wd33c93.c | hostdata->disconnected_Q = NULL; |
hostdata | 1614 | drivers/scsi/wd33c93.c | hostdata->state = S_UNCONNECTED; |
hostdata | 1615 | drivers/scsi/wd33c93.c | hostdata->dma = D_DMA_OFF; |
hostdata | 1616 | drivers/scsi/wd33c93.c | hostdata->level2 = L2_BASIC; |
hostdata | 1617 | drivers/scsi/wd33c93.c | hostdata->disconnect = DIS_ADAPTIVE; |
hostdata | 1618 | drivers/scsi/wd33c93.c | hostdata->args = DEBUG_DEFAULTS; |
hostdata | 1619 | drivers/scsi/wd33c93.c | hostdata->incoming_ptr = 0; |
hostdata | 1620 | drivers/scsi/wd33c93.c | hostdata->outgoing_len = 0; |
hostdata | 1621 | drivers/scsi/wd33c93.c | hostdata->default_sx_per = DEFAULT_SX_PER; |
hostdata | 1622 | drivers/scsi/wd33c93.c | hostdata->no_sync = 0xff; /* sync defaults to off */ |
hostdata | 1625 | drivers/scsi/wd33c93.c | hostdata->proc = PR_VERSION|PR_INFO|PR_TOTALS| |
hostdata | 1635 | drivers/scsi/wd33c93.c | hostdata->no_sync = val; |
hostdata | 1638 | drivers/scsi/wd33c93.c | hostdata->default_sx_per = sx_table[round_period((unsigned int)val)].period_ns; |
hostdata | 1642 | drivers/scsi/wd33c93.c | hostdata->disconnect = val; |
hostdata | 1644 | drivers/scsi/wd33c93.c | hostdata->disconnect = DIS_ADAPTIVE; |
hostdata | 1648 | drivers/scsi/wd33c93.c | hostdata->args = val & DB_MASK; |
hostdata | 1659 | drivers/scsi/wd33c93.c | hostdata->clock_freq = val; |
hostdata | 1669 | drivers/scsi/wd33c93.c | hostdata->proc = val; |
hostdata | 1678 | drivers/scsi/wd33c93.c | (hostdata->chip==C_WD33C93)?"WD33c93": |
hostdata | 1679 | drivers/scsi/wd33c93.c | (hostdata->chip==C_WD33C93A)?"WD33c93A": |
hostdata | 1680 | drivers/scsi/wd33c93.c | (hostdata->chip==C_WD33C93B)?"WD33c93B":"unknown", |
hostdata | 1681 | drivers/scsi/wd33c93.c | hostdata->microcode); |
hostdata | 1688 | drivers/scsi/wd33c93.c | printk("wd33c93-%d: debug_flags = %04x\n",instance->host_no,hostdata->args); |
hostdata | 1719 | drivers/scsi/wd33c93.c | hd = (struct WD33C93_hostdata *)instance->hostdata; |
hostdata | 905 | drivers/scsi/wd7000.c | Adapter *host = (Adapter *) SCpnt->host->hostdata; |
hostdata | 1146 | drivers/scsi/wd7000.c | host = (Adapter *) sh->hostdata; |
hostdata | 1196 | drivers/scsi/wd7000.c | Adapter *host = (Adapter *) SCpnt->host->hostdata; |