Lines Matching refs:data

370 	nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata;  in nsp32_build_identify()  local
371 int pos = data->msgout_len; in nsp32_build_identify()
379 data->msgoutbuf[pos] = IDENTIFY(mode, SCpnt->device->lun); pos++; in nsp32_build_identify()
381 data->msgout_len = pos; in nsp32_build_identify()
391 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_build_sdtr() local
392 int pos = data->msgout_len; in nsp32_build_sdtr()
394 data->msgoutbuf[pos] = EXTENDED_MESSAGE; pos++; in nsp32_build_sdtr()
395 data->msgoutbuf[pos] = EXTENDED_SDTR_LEN; pos++; in nsp32_build_sdtr()
396 data->msgoutbuf[pos] = EXTENDED_SDTR; pos++; in nsp32_build_sdtr()
397 data->msgoutbuf[pos] = period; pos++; in nsp32_build_sdtr()
398 data->msgoutbuf[pos] = offset; pos++; in nsp32_build_sdtr()
400 data->msgout_len = pos; in nsp32_build_sdtr()
408 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_build_nop() local
409 int pos = data->msgout_len; in nsp32_build_nop()
417 data->msgoutbuf[pos] = NOP; pos++; in nsp32_build_nop()
418 data->msgout_len = pos; in nsp32_build_nop()
426 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_build_reject() local
427 int pos = data->msgout_len; in nsp32_build_reject()
429 data->msgoutbuf[pos] = MESSAGE_REJECT; pos++; in nsp32_build_reject()
430 data->msgout_len = pos; in nsp32_build_reject()
457 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_selection_autopara() local
461 nsp32_autoparam *param = data->autoparam; in nsp32_selection_autopara()
486 if (data->msgout_len == 0) { in nsp32_selection_autopara()
490 } else if (data->msgout_len > 0 && data->msgout_len <= 3) { in nsp32_selection_autopara()
492 for (i = 0; i < data->msgout_len; i++) { in nsp32_selection_autopara()
500 msgout |= ((unsigned int)(data->msgoutbuf[i]) << 24); in nsp32_selection_autopara()
503 msgout |= (unsigned int)data->msgout_len; /* len */ in nsp32_selection_autopara()
526 param->syncreg = data->cur_target->syncreg; in nsp32_selection_autopara()
527 param->ackwidth = data->cur_target->ackwidth; in nsp32_selection_autopara()
529 param->sample_reg = data->cur_target->sample_reg; in nsp32_selection_autopara()
543 switch (data->trans_method) { in nsp32_selection_autopara()
565 param->sgt_pointer = cpu_to_le32(data->cur_lunt->sglun_paddr); in nsp32_selection_autopara()
570 nsp32_write4(base, SGT_ADR, data->auto_paddr); in nsp32_selection_autopara()
588 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_selection_autoscsi() local
646 if (data->msgout_len == 0) { in nsp32_selection_autoscsi()
651 } else if (data->msgout_len > 0 && data->msgout_len <= 3) { in nsp32_selection_autoscsi()
653 for (i = 0; i < data->msgout_len; i++) { in nsp32_selection_autoscsi()
661 msgout |= ((unsigned int)(data->msgoutbuf[i]) << 24); in nsp32_selection_autoscsi()
664 msgout |= (unsigned int)data->msgout_len; /* len */ in nsp32_selection_autoscsi()
682 nsp32_write1(base, SREQ_SMPL_RATE, data->cur_target->sample_reg); in nsp32_selection_autoscsi()
693 nsp32_write1(base, SYNC_REG, data->cur_target->syncreg); in nsp32_selection_autoscsi()
698 nsp32_write1(base, ACK_WIDTH, data->cur_target->ackwidth); in nsp32_selection_autoscsi()
705 data->msgout_len, msgout); in nsp32_selection_autoscsi()
710 nsp32_write4(base, SGT_ADR, data->cur_lunt->sglun_paddr); in nsp32_selection_autoscsi()
717 if (data->trans_method & NSP32_TRANSFER_BUSMASTER) { in nsp32_selection_autoscsi()
721 } else if (data->trans_method & NSP32_TRANSFER_MMIO) { in nsp32_selection_autoscsi()
723 } else if (data->trans_method & NSP32_TRANSFER_PIO) { in nsp32_selection_autoscsi()
812 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_reselection() local
838 if (newid >= ARRAY_SIZE(data->lunt) || newlun >= ARRAY_SIZE(data->lunt[0])) { in nsp32_reselection()
841 } else if(data->lunt[newid][newlun].SCpnt == NULL) { in nsp32_reselection()
846 data->cur_id = newid; in nsp32_reselection()
847 data->cur_lun = newlun; in nsp32_reselection()
848 data->cur_target = &(data->target[newid]); in nsp32_reselection()
849 data->cur_lunt = &(data->lunt[newid][newlun]); in nsp32_reselection()
866 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_setup_sg_table() local
868 nsp32_sgtable *sgt = data->cur_lunt->sglun->sgt; in nsp32_setup_sg_table()
912 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_queuecommand_lck() local
923 if (data->CurrentSC != NULL) { in nsp32_queuecommand_lck()
925 data->CurrentSC = NULL; in nsp32_queuecommand_lck()
950 data->CurrentSC = SCpnt; in nsp32_queuecommand_lck()
961 data->msgout_len = 0; in nsp32_queuecommand_lck()
962 data->msgin_len = 0; in nsp32_queuecommand_lck()
963 cur_lunt = &(data->lunt[SCpnt->device->id][SCpnt->device->lun]); in nsp32_queuecommand_lck()
967 data->cur_lunt = cur_lunt; in nsp32_queuecommand_lck()
968 data->cur_id = SCpnt->device->id; in nsp32_queuecommand_lck()
969 data->cur_lun = SCpnt->device->lun; in nsp32_queuecommand_lck()
987 target = &data->target[scmd_id(SCpnt)]; in nsp32_queuecommand_lck()
988 data->cur_target = target; in nsp32_queuecommand_lck()
994 nsp32_set_max_sync(data, target, &period, &offset); in nsp32_queuecommand_lck()
998 nsp32_set_async(data, target); in nsp32_queuecommand_lck()
1011 nsp32_set_async(data, target); in nsp32_queuecommand_lck()
1023 nsp32_set_async(data, target); in nsp32_queuecommand_lck()
1054 static int nsp32hw_init(nsp32_hw_data *data) in DEF_SCSI_QCMD()
1056 unsigned int base = data->BaseAddress; in DEF_SCSI_QCMD()
1081 if ((data->trans_method & NSP32_TRANSFER_PIO) || in DEF_SCSI_QCMD()
1082 (data->trans_method & NSP32_TRANSFER_MMIO)) { in DEF_SCSI_QCMD()
1085 } else if (data->trans_method & NSP32_TRANSFER_BUSMASTER) { in DEF_SCSI_QCMD()
1096 nsp32_index_write1(base, CLOCK_DIV, data->clock); in DEF_SCSI_QCMD()
1163 nsp32_hw_data *data = dev_id; in do_nsp32_isr() local
1164 unsigned int base = data->BaseAddress; in do_nsp32_isr()
1165 struct scsi_cmnd *SCpnt = data->CurrentSC; in do_nsp32_isr()
1171 struct Scsi_Host *host = data->Host; in do_nsp32_isr()
1195 if (data->CurrentSC != NULL) { in do_nsp32_isr()
1213 nsp32_do_bus_reset(data); in do_nsp32_isr()
1257 (data->msgout_len <= 3)) { in do_nsp32_isr()
1262 data->msgout_len = 0; in do_nsp32_isr()
1338 nsp32_sack_assert(data); in do_nsp32_isr()
1339 nsp32_wait_req(data, NEGATE); in do_nsp32_isr()
1340 nsp32_sack_negate(data); in do_nsp32_isr()
1448 nsp32_hw_data *data; in nsp32_show_info() local
1456 data = (nsp32_hw_data *)host->hostdata; in nsp32_show_info()
1464 …seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - … in nsp32_show_info()
1469 model = data->pci_devid->driver_data; in nsp32_show_info()
1476 spin_lock_irqsave(&(data->Lock), flags); in nsp32_show_info()
1477 seq_printf(m, "CurrentSC: 0x%p\n\n", data->CurrentSC); in nsp32_show_info()
1478 spin_unlock_irqrestore(&(data->Lock), flags); in nsp32_show_info()
1482 for (id = 0; id < ARRAY_SIZE(data->target); id++) { in nsp32_show_info()
1491 if (data->target[id].sync_flag == SDTR_DONE) { in nsp32_show_info()
1492 if (data->target[id].period == 0 && in nsp32_show_info()
1493 data->target[id].offset == ASYNC_OFFSET ) { in nsp32_show_info()
1502 if (data->target[id].period != 0) { in nsp32_show_info()
1504 speed = 1000000 / (data->target[id].period * 4); in nsp32_show_info()
1509 data->target[id].offset in nsp32_show_info()
1525 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_scsi_done() local
1544 data->cur_lunt->SCpnt = NULL; in nsp32_scsi_done()
1545 data->cur_lunt = NULL; in nsp32_scsi_done()
1546 data->cur_target = NULL; in nsp32_scsi_done()
1547 data->CurrentSC = NULL; in nsp32_scsi_done()
1563 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_busfree_occur() local
1617 data->cur_lunt->msgin03 = FALSE; in nsp32_busfree_occur()
1619 data->cur_lunt->msgin03 = TRUE; in nsp32_busfree_occur()
1641 if (data->cur_target->sync_flag & SDTR_INITIATOR) { in nsp32_busfree_occur()
1646 nsp32_set_async(data, data->cur_target); in nsp32_busfree_occur()
1647 data->cur_target->sync_flag &= ~SDTR_INITIATOR; in nsp32_busfree_occur()
1648 data->cur_target->sync_flag |= SDTR_DONE; in nsp32_busfree_occur()
1649 } else if (data->cur_target->sync_flag & SDTR_TARGET) { in nsp32_busfree_occur()
1665 nsp32_set_async(data, data->cur_target); in nsp32_busfree_occur()
1667 data->cur_target->sync_flag &= ~SDTR_TARGET; in nsp32_busfree_occur()
1668 data->cur_target->sync_flag |= SDTR_DONE; in nsp32_busfree_occur()
1721 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_adjust_busfree() local
1722 int old_entry = data->cur_entry; in nsp32_adjust_busfree()
1724 int sg_num = data->cur_lunt->sg_num; in nsp32_adjust_busfree()
1725 nsp32_sgtable *sgt = data->cur_lunt->sglun->sgt; in nsp32_adjust_busfree()
1768 data->cur_entry = new_entry; in nsp32_adjust_busfree()
1794 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_msgout_occur() local
1801 "enter: msgout_len: 0x%x", data->msgout_len); in nsp32_msgout_occur()
1807 if (data->msgout_len == 0) { in nsp32_msgout_occur()
1816 new_sgtp = data->cur_lunt->sglun_paddr + in nsp32_msgout_occur()
1817 (data->cur_lunt->cur_entry * sizeof(nsp32_sgtable)); in nsp32_msgout_occur()
1822 for (i = 0; i < data->msgout_len; i++) { in nsp32_msgout_occur()
1824 "%d : 0x%x", i, data->msgoutbuf[i]); in nsp32_msgout_occur()
1829 nsp32_wait_req(data, ASSERT); in nsp32_msgout_occur()
1831 if (i == (data->msgout_len - 1)) { in nsp32_msgout_occur()
1850 nsp32_write1(base, SCSI_DATA_WITH_ACK, data->msgoutbuf[i]); in nsp32_msgout_occur()
1851 nsp32_wait_sack(data, NEGATE); in nsp32_msgout_occur()
1857 data->msgout_len = 0; in nsp32_msgout_occur()
1870 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_restart_autoscsi() local
1871 unsigned int base = data->BaseAddress; in nsp32_restart_autoscsi()
1876 if (data->cur_target == NULL || data->cur_lunt == NULL) { in nsp32_restart_autoscsi()
1884 nsp32_write1(base, SYNC_REG, data->cur_target->syncreg); in nsp32_restart_autoscsi()
1889 nsp32_write1(base, ACK_WIDTH, data->cur_target->ackwidth); in nsp32_restart_autoscsi()
1894 nsp32_write1(base, SREQ_SMPL_RATE, data->cur_target->sample_reg); in nsp32_restart_autoscsi()
1899 nsp32_write4(base, SGT_ADR, data->cur_lunt->sglun_paddr); in nsp32_restart_autoscsi()
1906 if (data->trans_method & NSP32_TRANSFER_BUSMASTER) { in nsp32_restart_autoscsi()
1910 } else if (data->trans_method & NSP32_TRANSFER_MMIO) { in nsp32_restart_autoscsi()
1912 } else if (data->trans_method & NSP32_TRANSFER_PIO) { in nsp32_restart_autoscsi()
1938 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_msgin_occur() local
1954 data->msginbuf[(unsigned char)data->msgin_len] = msg; in nsp32_msgin_occur()
1955 msgtype = data->msginbuf[0]; in nsp32_msgin_occur()
1958 data->msgin_len, msg, msgtype); in nsp32_msgin_occur()
1967 nsp32_sack_assert(data); in nsp32_msgin_occur()
2021 data->cur_lunt->msgin03 = FALSE; in nsp32_msgin_occur()
2031 new_sgtp = data->cur_lunt->sglun_paddr + in nsp32_msgin_occur()
2032 (data->cur_lunt->cur_entry * sizeof(nsp32_sgtable)); in nsp32_msgin_occur()
2050 if (data->cur_target->sync_flag & in nsp32_msgin_occur()
2057 nsp32_set_async(data, data->cur_target); in nsp32_msgin_occur()
2058 data->cur_target->sync_flag &= ~SDTR_INITIATOR; in nsp32_msgin_occur()
2059 data->cur_target->sync_flag |= SDTR_DONE; in nsp32_msgin_occur()
2086 if (data->msgin_len >= 1) { in nsp32_msgin_occur()
2099 if (data->msgin_len < 1) { in nsp32_msgin_occur()
2108 if ((data->msginbuf[1] + 1) > data->msgin_len) { in nsp32_msgin_occur()
2123 switch (data->msginbuf[2]) { in nsp32_msgin_occur()
2133 if (data->msgin_len != EXTENDED_SDTR_LEN + 1) { in nsp32_msgin_occur()
2167 data->msgin_len = 0; in nsp32_msgin_occur()
2176 if (data->msgout_len > 0) { in nsp32_msgin_occur()
2190 if (data->cur_lunt->msgin03 == TRUE) { in nsp32_msgin_occur()
2193 data->cur_lunt->msgin03 = FALSE; in nsp32_msgin_occur()
2195 data->msgin_len++; in nsp32_msgin_occur()
2206 nsp32_wait_req(data, NEGATE); in nsp32_msgin_occur()
2211 nsp32_sack_negate(data); in nsp32_msgin_occur()
2221 msg, data->msgin_len, msgtype); in nsp32_msgin_occur()
2223 data->msgin_len = 0; in nsp32_msgin_occur()
2233 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_analyze_sdtr() local
2234 nsp32_target *target = data->cur_target; in nsp32_analyze_sdtr()
2236 unsigned char get_period = data->msginbuf[3]; in nsp32_analyze_sdtr()
2237 unsigned char get_offset = data->msginbuf[4]; in nsp32_analyze_sdtr()
2243 synct = data->synct; in nsp32_analyze_sdtr()
2244 syncnum = data->syncnum; in nsp32_analyze_sdtr()
2292 if (get_period < data->synct[0].period_num) { in nsp32_analyze_sdtr()
2300 entry = nsp32_search_period_entry(data, target, get_period); in nsp32_analyze_sdtr()
2313 nsp32_set_sync_entry(data, target, entry, get_offset); in nsp32_analyze_sdtr()
2327 if (get_period < data->synct[0].period_num) { in nsp32_analyze_sdtr()
2328 get_period = data->synct[0].period_num; in nsp32_analyze_sdtr()
2331 entry = nsp32_search_period_entry(data, target, get_period); in nsp32_analyze_sdtr()
2334 nsp32_set_async(data, target); in nsp32_analyze_sdtr()
2337 nsp32_set_sync_entry(data, target, entry, get_offset); in nsp32_analyze_sdtr()
2354 nsp32_set_async(data, target); /* set as ASYNC transfer mode */ in nsp32_analyze_sdtr()
2366 static int nsp32_search_period_entry(nsp32_hw_data *data, in nsp32_search_period_entry() argument
2372 if (target->limit_entry >= data->syncnum) { in nsp32_search_period_entry()
2377 for (i = target->limit_entry; i < data->syncnum; i++) { in nsp32_search_period_entry()
2378 if (period >= data->synct[i].start_period && in nsp32_search_period_entry()
2379 period <= data->synct[i].end_period) { in nsp32_search_period_entry()
2388 if (i == data->syncnum) { in nsp32_search_period_entry()
2399 static void nsp32_set_async(nsp32_hw_data *data, nsp32_target *target) in nsp32_set_async() argument
2401 unsigned char period = data->synct[target->limit_entry].period_num; in nsp32_set_async()
2416 static void nsp32_set_max_sync(nsp32_hw_data *data, in nsp32_set_max_sync() argument
2423 period_num = data->synct[target->limit_entry].period_num; in nsp32_set_max_sync()
2424 *period = data->synct[target->limit_entry].start_period; in nsp32_set_max_sync()
2425 ackwidth = data->synct[target->limit_entry].ackwidth; in nsp32_set_max_sync()
2438 static void nsp32_set_sync_entry(nsp32_hw_data *data, in nsp32_set_sync_entry() argument
2445 period = data->synct[entry].period_num; in nsp32_set_sync_entry()
2446 ackwidth = data->synct[entry].ackwidth; in nsp32_set_sync_entry()
2448 sample_rate = data->synct[entry].sample_rate; in nsp32_set_sync_entry()
2467 static void nsp32_wait_req(nsp32_hw_data *data, int state) in nsp32_wait_req() argument
2469 unsigned int base = data->BaseAddress; in nsp32_wait_req()
2496 static void nsp32_wait_sack(nsp32_hw_data *data, int state) in nsp32_wait_sack() argument
2498 unsigned int base = data->BaseAddress; in nsp32_wait_sack()
2527 static void nsp32_sack_assert(nsp32_hw_data *data) in nsp32_sack_assert() argument
2529 unsigned int base = data->BaseAddress; in nsp32_sack_assert()
2540 static void nsp32_sack_negate(nsp32_hw_data *data) in nsp32_sack_negate() argument
2542 unsigned int base = data->BaseAddress; in nsp32_sack_negate()
2563 nsp32_hw_data *data; in nsp32_detect() local
2581 data = (nsp32_hw_data *)host->hostdata; in nsp32_detect()
2583 memcpy(data, &nsp32_data_base, sizeof(nsp32_hw_data)); in nsp32_detect()
2585 host->irq = data->IrqNumber; in nsp32_detect()
2586 host->io_port = data->BaseAddress; in nsp32_detect()
2587 host->unique_id = data->BaseAddress; in nsp32_detect()
2588 host->n_io_port = data->NumAddress; in nsp32_detect()
2589 host->base = (unsigned long)data->MmioAddress; in nsp32_detect()
2591 data->Host = host; in nsp32_detect()
2592 spin_lock_init(&(data->Lock)); in nsp32_detect()
2594 data->cur_lunt = NULL; in nsp32_detect()
2595 data->cur_target = NULL; in nsp32_detect()
2600 data->trans_method = NSP32_TRANSFER_BUSMASTER; in nsp32_detect()
2607 data->clock = CLOCK_4; in nsp32_detect()
2612 switch (data->clock) { in nsp32_detect()
2615 data->synct = nsp32_sync_table_40M; in nsp32_detect()
2616 data->syncnum = ARRAY_SIZE(nsp32_sync_table_40M); in nsp32_detect()
2620 data->synct = nsp32_sync_table_20M; in nsp32_detect()
2621 data->syncnum = ARRAY_SIZE(nsp32_sync_table_20M); in nsp32_detect()
2625 data->synct = nsp32_sync_table_pci; in nsp32_detect()
2626 data->syncnum = ARRAY_SIZE(nsp32_sync_table_pci); in nsp32_detect()
2632 data->clock = CLOCK_4; in nsp32_detect()
2633 data->synct = nsp32_sync_table_40M; in nsp32_detect()
2634 data->syncnum = ARRAY_SIZE(nsp32_sync_table_40M); in nsp32_detect()
2652 data->autoparam = pci_alloc_consistent(pdev, sizeof(nsp32_autoparam), &(data->auto_paddr)); in nsp32_detect()
2653 if (data->autoparam == NULL) { in nsp32_detect()
2661 data->sg_list = pci_alloc_consistent(pdev, NSP32_SG_TABLE_SIZE, in nsp32_detect()
2662 &(data->sg_paddr)); in nsp32_detect()
2663 if (data->sg_list == NULL) { in nsp32_detect()
2668 for (i = 0; i < ARRAY_SIZE(data->lunt); i++) { in nsp32_detect()
2669 for (j = 0; j < ARRAY_SIZE(data->lunt[0]); j++) { in nsp32_detect()
2670 int offset = i * ARRAY_SIZE(data->lunt[0]) + j; in nsp32_detect()
2677 .sglun = &(data->sg_list[offset]), in nsp32_detect()
2678 .sglun_paddr = data->sg_paddr + (offset * sizeof(nsp32_sglun)), in nsp32_detect()
2681 data->lunt[i][j] = tmp; in nsp32_detect()
2688 for (i = 0; i < ARRAY_SIZE(data->target); i++) { in nsp32_detect()
2689 nsp32_target *target = &(data->target[i]); in nsp32_detect()
2693 nsp32_set_async(data, target); in nsp32_detect()
2699 ret = nsp32_getprom_param(data); in nsp32_detect()
2701 data->resettime = 3; /* default 3 */ in nsp32_detect()
2707 nsp32hw_init(data); in nsp32_detect()
2709 snprintf(data->info_str, sizeof(data->info_str), in nsp32_detect()
2731 nsp32_do_bus_reset(data); in nsp32_detect()
2733 ret = request_irq(host->irq, do_nsp32_isr, IRQF_SHARED, "nsp32", data); in nsp32_detect()
2747 data->BaseAddress, data->NumAddress); in nsp32_detect()
2764 free_irq(host->irq, data); in nsp32_detect()
2768 data->sg_list, data->sg_paddr); in nsp32_detect()
2772 data->autoparam, data->auto_paddr); in nsp32_detect()
2783 nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata; in nsp32_release() local
2785 if (data->autoparam) { in nsp32_release()
2786 pci_free_consistent(data->Pci, sizeof(nsp32_autoparam), in nsp32_release()
2787 data->autoparam, data->auto_paddr); in nsp32_release()
2790 if (data->sg_list) { in nsp32_release()
2791 pci_free_consistent(data->Pci, NSP32_SG_TABLE_SIZE, in nsp32_release()
2792 data->sg_list, data->sg_paddr); in nsp32_release()
2796 free_irq(host->irq, data); in nsp32_release()
2803 if (data->MmioAddress) { in nsp32_release()
2804 iounmap(data->MmioAddress); in nsp32_release()
2812 nsp32_hw_data *data = (nsp32_hw_data *)shpnt->hostdata; in nsp32_info() local
2814 return data->info_str; in nsp32_info()
2823 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_eh_abort() local
2828 if (data->cur_lunt->SCpnt == NULL) { in nsp32_eh_abort()
2833 if (data->cur_target->sync_flag & (SDTR_INITIATOR | SDTR_TARGET)) { in nsp32_eh_abort()
2835 data->cur_target->sync_flag = 0; in nsp32_eh_abort()
2836 nsp32_set_async(data, data->cur_target); in nsp32_eh_abort()
2851 nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; in nsp32_eh_bus_reset() local
2860 nsp32_do_bus_reset(data); in nsp32_eh_bus_reset()
2867 static void nsp32_do_bus_reset(nsp32_hw_data *data) in nsp32_do_bus_reset() argument
2869 unsigned int base = data->BaseAddress; in nsp32_do_bus_reset()
2888 for (i = 0; i < ARRAY_SIZE(data->target); i++) { in nsp32_do_bus_reset()
2889 nsp32_target *target = &data->target[i]; in nsp32_do_bus_reset()
2892 nsp32_set_async(data, target); in nsp32_do_bus_reset()
2906 data->CurrentSC = NULL; in nsp32_do_bus_reset()
2913 nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata; in nsp32_eh_host_reset() local
2920 nsp32hw_init(data); in nsp32_eh_host_reset()
2922 nsp32_do_bus_reset(data); in nsp32_eh_host_reset()
2937 static int nsp32_getprom_param(nsp32_hw_data *data) in nsp32_getprom_param() argument
2939 int vendor = data->pci_devid->vendor; in nsp32_getprom_param()
2940 int device = data->pci_devid->device; in nsp32_getprom_param()
2946 ret = nsp32_prom_read(data, 0x7e); in nsp32_getprom_param()
2951 ret = nsp32_prom_read(data, 0x7f); in nsp32_getprom_param()
2962 ret = nsp32_getprom_c16(data); in nsp32_getprom_param()
2965 ret = nsp32_getprom_at24(data); in nsp32_getprom_param()
2968 ret = nsp32_getprom_at24(data); in nsp32_getprom_param()
2976 val = nsp32_prom_read(data, i); in nsp32_getprom_param()
3012 static int nsp32_getprom_at24(nsp32_hw_data *data) in nsp32_getprom_at24() argument
3024 data->resettime = nsp32_prom_read(data, 0x12); in nsp32_getprom_at24()
3039 ret = nsp32_prom_read(data, 0x07); in nsp32_getprom_at24()
3061 target = &data->target[i]; in nsp32_getprom_at24()
3065 ret = nsp32_prom_read(data, i); in nsp32_getprom_at24()
3066 entry = nsp32_search_period_entry(data, target, ret); in nsp32_getprom_at24()
3099 static int nsp32_getprom_c16(nsp32_hw_data *data) in nsp32_getprom_c16() argument
3110 data->resettime = nsp32_prom_read(data, 0x11); in nsp32_getprom_c16()
3116 target = &data->target[i]; in nsp32_getprom_c16()
3117 ret = nsp32_prom_read(data, i); in nsp32_getprom_c16()
3135 entry = nsp32_search_period_entry(data, target, val); in nsp32_getprom_c16()
3150 static int nsp32_prom_read(nsp32_hw_data *data, int romaddr) in nsp32_prom_read() argument
3155 nsp32_prom_start(data); in nsp32_prom_read()
3158 nsp32_prom_write_bit(data, 1); /* 1 */ in nsp32_prom_read()
3159 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3160 nsp32_prom_write_bit(data, 1); /* 1 */ in nsp32_prom_read()
3161 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3162 nsp32_prom_write_bit(data, 0); /* A2: 0 (GND) */ in nsp32_prom_read()
3163 nsp32_prom_write_bit(data, 0); /* A1: 0 (GND) */ in nsp32_prom_read()
3164 nsp32_prom_write_bit(data, 0); /* A0: 0 (GND) */ in nsp32_prom_read()
3167 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3170 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3174 nsp32_prom_write_bit(data, ((romaddr >> i) & 1)); in nsp32_prom_read()
3178 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3181 nsp32_prom_start(data); in nsp32_prom_read()
3184 nsp32_prom_write_bit(data, 1); /* 1 */ in nsp32_prom_read()
3185 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3186 nsp32_prom_write_bit(data, 1); /* 1 */ in nsp32_prom_read()
3187 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3188 nsp32_prom_write_bit(data, 0); /* A2: 0 (GND) */ in nsp32_prom_read()
3189 nsp32_prom_write_bit(data, 0); /* A1: 0 (GND) */ in nsp32_prom_read()
3190 nsp32_prom_write_bit(data, 0); /* A0: 0 (GND) */ in nsp32_prom_read()
3193 nsp32_prom_write_bit(data, 1); in nsp32_prom_read()
3196 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3201 val += (nsp32_prom_read_bit(data) << i); in nsp32_prom_read()
3205 nsp32_prom_write_bit(data, 1); in nsp32_prom_read()
3208 nsp32_prom_stop(data); in nsp32_prom_read()
3213 static void nsp32_prom_set(nsp32_hw_data *data, int bit, int val) in nsp32_prom_set() argument
3215 int base = data->BaseAddress; in nsp32_prom_set()
3231 static int nsp32_prom_get(nsp32_hw_data *data, int bit) in nsp32_prom_get() argument
3233 int base = data->BaseAddress; in nsp32_prom_get()
3255 static void nsp32_prom_start (nsp32_hw_data *data) in nsp32_prom_start() argument
3258 nsp32_prom_set(data, SCL, 1); in nsp32_prom_start()
3259 nsp32_prom_set(data, SDA, 1); in nsp32_prom_start()
3260 nsp32_prom_set(data, ENA, 1); /* output mode */ in nsp32_prom_start()
3261 nsp32_prom_set(data, SDA, 0); /* keeping SCL=1 and transiting in nsp32_prom_start()
3263 nsp32_prom_set(data, SCL, 0); in nsp32_prom_start()
3266 static void nsp32_prom_stop (nsp32_hw_data *data) in nsp32_prom_stop() argument
3269 nsp32_prom_set(data, SCL, 1); in nsp32_prom_stop()
3270 nsp32_prom_set(data, SDA, 0); in nsp32_prom_stop()
3271 nsp32_prom_set(data, ENA, 1); /* output mode */ in nsp32_prom_stop()
3272 nsp32_prom_set(data, SDA, 1); in nsp32_prom_stop()
3273 nsp32_prom_set(data, SCL, 0); in nsp32_prom_stop()
3276 static void nsp32_prom_write_bit(nsp32_hw_data *data, int val) in nsp32_prom_write_bit() argument
3279 nsp32_prom_set(data, SDA, val); in nsp32_prom_write_bit()
3280 nsp32_prom_set(data, SCL, 1 ); in nsp32_prom_write_bit()
3281 nsp32_prom_set(data, SCL, 0 ); in nsp32_prom_write_bit()
3284 static int nsp32_prom_read_bit(nsp32_hw_data *data) in nsp32_prom_read_bit() argument
3289 nsp32_prom_set(data, ENA, 0); /* input mode */ in nsp32_prom_read_bit()
3290 nsp32_prom_set(data, SCL, 1); in nsp32_prom_read_bit()
3292 val = nsp32_prom_get(data, SDA); in nsp32_prom_read_bit()
3294 nsp32_prom_set(data, SCL, 0); in nsp32_prom_read_bit()
3295 nsp32_prom_set(data, ENA, 1); /* output mode */ in nsp32_prom_read_bit()
3324 nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata; in nsp32_resume() local
3333 reg = nsp32_read2(data->BaseAddress, INDEX_REG); in nsp32_resume()
3335 nsp32_msg(KERN_INFO, "io=0x%x reg=0x%x", data->BaseAddress, reg); in nsp32_resume()
3342 nsp32hw_init (data); in nsp32_resume()
3343 nsp32_do_bus_reset(data); in nsp32_resume()
3358 nsp32_hw_data *data = &nsp32_data_base; in nsp32_probe() local
3368 data->Pci = pdev; in nsp32_probe()
3369 data->pci_devid = id; in nsp32_probe()
3370 data->IrqNumber = pdev->irq; in nsp32_probe()
3371 data->BaseAddress = pci_resource_start(pdev, 0); in nsp32_probe()
3372 data->NumAddress = pci_resource_len (pdev, 0); in nsp32_probe()
3373 data->MmioAddress = pci_ioremap_bar(pdev, 1); in nsp32_probe()
3374 data->MmioLength = pci_resource_len (pdev, 1); in nsp32_probe()
3382 data->MmioAddress, data->MmioLength, in nsp32_probe()