• Home
  • Raw
  • Download

Lines Matching +full:0 +full:x8ff

45 static int       trans_mode = 0;	/* default: BIOS */
46 module_param (trans_mode, int, 0);
47 MODULE_PARM_DESC(trans_mode, "transfer mode (0: BIOS(default) 1: Async 2: Ultra20M");
51 static bool auto_param = 0; /* default: ON */
52 module_param (auto_param, bool, 0);
53 MODULE_PARM_DESC(auto_param, "AutoParameter mode (0: ON(default) 1: OFF)");
56 module_param (disc_priv, bool, 0);
57 MODULE_PARM_DESC(disc_priv, "disconnection privilege mode (0: ON 1: OFF(default))");
126 {0,0,},
140 {0x1, 0, 0x0c, 0x0c, SMPL_40M}, /* 20.0 : 50ns, 25ns */
141 {0x2, 0, 0x0d, 0x18, SMPL_40M}, /* 13.3 : 75ns, 25ns */
142 {0x3, 1, 0x19, 0x19, SMPL_40M}, /* 10.0 : 100ns, 50ns */
143 {0x4, 1, 0x1a, 0x1f, SMPL_20M}, /* 8.0 : 125ns, 50ns */
144 {0x5, 2, 0x20, 0x25, SMPL_20M}, /* 6.7 : 150ns, 75ns */
145 {0x6, 2, 0x26, 0x31, SMPL_20M}, /* 5.7 : 175ns, 75ns */
146 {0x7, 3, 0x32, 0x32, SMPL_20M}, /* 5.0 : 200ns, 100ns */
147 {0x8, 3, 0x33, 0x38, SMPL_10M}, /* 4.4 : 225ns, 100ns */
148 {0x9, 3, 0x39, 0x3e, SMPL_10M}, /* 4.0 : 250ns, 100ns */
152 {0x1, 0, 0x19, 0x19, SMPL_40M}, /* 10.0 : 100ns, 50ns */
153 {0x2, 0, 0x1a, 0x25, SMPL_20M}, /* 6.7 : 150ns, 50ns */
154 {0x3, 1, 0x26, 0x32, SMPL_20M}, /* 5.0 : 200ns, 100ns */
155 {0x4, 1, 0x33, 0x3e, SMPL_10M}, /* 4.0 : 250ns, 100ns */
156 {0x5, 2, 0x3f, 0x4b, SMPL_10M}, /* 3.3 : 300ns, 150ns */
157 {0x6, 2, 0x4c, 0x57, SMPL_10M}, /* 2.8 : 350ns, 150ns */
158 {0x7, 3, 0x58, 0x64, SMPL_10M}, /* 2.5 : 400ns, 200ns */
159 {0x8, 3, 0x65, 0x70, SMPL_10M}, /* 2.2 : 450ns, 200ns */
160 {0x9, 3, 0x71, 0x7d, SMPL_10M}, /* 2.0 : 500ns, 200ns */
164 {0x1, 0, 0x0c, 0x0f, SMPL_40M}, /* 16.6 : 60ns, 30ns */
165 {0x2, 0, 0x10, 0x16, SMPL_40M}, /* 11.1 : 90ns, 30ns */
166 {0x3, 1, 0x17, 0x1e, SMPL_20M}, /* 8.3 : 120ns, 60ns */
167 {0x4, 1, 0x1f, 0x25, SMPL_20M}, /* 6.7 : 150ns, 60ns */
168 {0x5, 2, 0x26, 0x2d, SMPL_20M}, /* 5.6 : 180ns, 90ns */
169 {0x6, 2, 0x2e, 0x34, SMPL_10M}, /* 4.8 : 210ns, 90ns */
170 {0x7, 3, 0x35, 0x3c, SMPL_10M}, /* 4.2 : 240ns, 120ns */
171 {0x8, 3, 0x3d, 0x43, SMPL_10M}, /* 3.7 : 270ns, 120ns */
172 {0x9, 3, 0x44, 0x4b, SMPL_10M}, /* 3.3 : 300ns, 120ns */
279 # define NSP32_DEBUG_MASK 0x000000
280 # define nsp32_msg(type, args...) nsp32_message ("", 0, (type), args)
283 # define NSP32_DEBUG_MASK 0xffffff
290 #define NSP32_DEBUG_QUEUECOMMAND BIT(0)
339 printk("nsp32-debug: 0x%x %s (%d): %s\n", mask, func, line, buf); in nsp32_dmessage()
362 if (disc_priv == 0) { in nsp32_build_identify()
398 if (pos != 0) { in nsp32_build_nop()
423 #if 0
473 if (data->msgout_len == 0) { in nsp32_selection_autopara()
477 } else if (data->msgout_len > 0 && data->msgout_len <= 3) { in nsp32_selection_autopara()
478 msgout = 0; in nsp32_selection_autopara()
479 for (i = 0; i < data->msgout_len; i++) { in nsp32_selection_autopara()
482 * MCNT 3: MSG#0 -> MSG#1 -> MSG#2 in nsp32_selection_autopara()
493 msgout = 0; in nsp32_selection_autopara()
496 // nsp_dbg(NSP32_DEBUG_AUTOSCSI, "sel time out=0x%x\n", nsp32_read2(base, SEL_TIME_OUT)); in nsp32_selection_autopara()
502 memset(param, 0, sizeof(nsp32_autoparam)); in nsp32_selection_autopara()
505 for (i = 0; i < SCpnt->cmd_len; i++) { in nsp32_selection_autopara()
518 // nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "sample rate=0x%x\n", data->cur_target->sample_reg); in nsp32_selection_autopara()
529 s = 0; in nsp32_selection_autopara()
581 unsigned short command = 0; in nsp32_selection_autoscsi()
582 unsigned int msgout = 0; in nsp32_selection_autoscsi()
617 for (i = 0; i < SCpnt->cmd_len; i++) { in nsp32_selection_autoscsi()
620 nsp32_dbg(NSP32_DEBUG_CDB_CONTENTS, "CDB[0]=[0x%x]", SCpnt->cmnd[0]); in nsp32_selection_autoscsi()
633 if (data->msgout_len == 0) { in nsp32_selection_autoscsi()
638 } else if (data->msgout_len > 0 && data->msgout_len <= 3) { in nsp32_selection_autoscsi()
639 msgout = 0; in nsp32_selection_autoscsi()
640 for (i = 0; i < data->msgout_len; i++) { in nsp32_selection_autoscsi()
643 * MCNT 3: MSG#0 -> MSG#1 -> MSG#2 in nsp32_selection_autoscsi()
655 nsp32_write4(base, SCSI_MSG_OUT, 0); in nsp32_selection_autoscsi()
666 * TODO: sample_rate (BASE+0F) is 0 when internal clock = 40MHz. in nsp32_selection_autoscsi()
688 "syncreg=0x%x, ackwidth=0x%x, sgtpaddr=0x%x, id=0x%x", in nsp32_selection_autoscsi()
691 nsp32_dbg(NSP32_DEBUG_AUTOSCSI, "msgout_len=%d, msgout=0x%x", in nsp32_selection_autoscsi()
702 command = 0; in nsp32_selection_autoscsi()
705 if (scsi_bufflen(SCpnt) > 0) { in nsp32_selection_autoscsi()
734 nsp32_write2(base, IRQ_CONTROL, 0); in nsp32_selection_autoscsi()
752 int time = 0; in nsp32_arbitration()
757 } while ((arbit & (ARBIT_WIN | ARBIT_FAIL)) == 0 && in nsp32_arbitration()
761 "arbit: 0x%x, delay time: %d", arbit, time); in nsp32_arbitration()
811 newid = 0; in nsp32_reselection()
825 if (newid >= ARRAY_SIZE(data->lunt) || newlun >= ARRAY_SIZE(data->lunt[0])) { in nsp32_reselection()
867 else if (num < 0) in nsp32_setup_sg_table()
877 if (le32_to_cpu(sgt[i].len) > 0x10000) { in nsp32_setup_sg_table()
879 "can't transfer over 64KB at a time, size=0x%lx", le32_to_cpu(sgt[i].len)); in nsp32_setup_sg_table()
883 "num 0x%x : addr 0x%lx len 0x%lx", in nsp32_setup_sg_table()
905 "enter. target: 0x%x LUN: 0x%llx cmnd: 0x%x cmndlen: 0x%x " in nsp32_queuecommand_lck()
906 "use_sg: 0x%x reqbuf: 0x%lx reqlen: 0x%x", in nsp32_queuecommand_lck()
907 SCpnt->device->id, SCpnt->device->lun, SCpnt->cmnd[0], SCpnt->cmd_len, in nsp32_queuecommand_lck()
915 return 0; in nsp32_queuecommand_lck()
923 return 0; in nsp32_queuecommand_lck()
931 return 0; in nsp32_queuecommand_lck()
939 SCpnt->SCp.Message = 0; in nsp32_queuecommand_lck()
945 SCpnt->SCp.buffers_residual = 0; in nsp32_queuecommand_lck()
948 data->msgout_len = 0; in nsp32_queuecommand_lck()
949 data->msgin_len = 0; in nsp32_queuecommand_lck()
952 cur_lunt->save_datp = 0; in nsp32_queuecommand_lck()
963 return 0; in nsp32_queuecommand_lck()
990 "SDTR: entry: %d start_period: 0x%x offset: 0x%x\n", in nsp32_queuecommand_lck()
1019 "target: %d sync_flag: 0x%x syncreg: 0x%x ackwidth: 0x%x", in nsp32_queuecommand_lck()
1024 if (auto_param == 0) { in nsp32_queuecommand_lck()
1035 return 0; in nsp32_queuecommand_lck()
1049 if ((lc_reg & 0xff00) == 0) { in DEF_SCSI_QCMD()
1050 lc_reg |= (0x20 << 8); in DEF_SCSI_QCMD()
1051 nsp32_index_write2(base, CFG_LATE_CACHE, lc_reg & 0xffff); in DEF_SCSI_QCMD()
1055 nsp32_write2(base, TRANSFER_CONTROL, 0); in DEF_SCSI_QCMD()
1056 nsp32_write4(base, BM_CNT, 0); in DEF_SCSI_QCMD()
1057 nsp32_write2(base, SCSI_EXECUTE_PHASE, 0); in DEF_SCSI_QCMD()
1061 nsp32_dbg(NSP32_DEBUG_INIT, "irq_stat 0x%x", irq_stat); in DEF_SCSI_QCMD()
1070 nsp32_index_write1(base, FIFO_FULL_SHLD_COUNT, 0x40); in DEF_SCSI_QCMD()
1071 nsp32_index_write1(base, FIFO_EMPTY_SHLD_COUNT, 0x40); in DEF_SCSI_QCMD()
1073 nsp32_index_write1(base, FIFO_FULL_SHLD_COUNT, 0x10); in DEF_SCSI_QCMD()
1074 nsp32_index_write1(base, FIFO_EMPTY_SHLD_COUNT, 0x60); in DEF_SCSI_QCMD()
1079 nsp32_dbg(NSP32_DEBUG_INIT, "full 0x%x emp 0x%x", in DEF_SCSI_QCMD()
1085 nsp32_write1(base, PARITY_CONTROL, 0); /* parity check is disable */ in DEF_SCSI_QCMD()
1099 * we have to set TRANSFERCONTROL_BM_START as 0 and set in DEF_SCSI_QCMD()
1110 nsp32_index_write1(base, TERM_PWR_CONTROL, 0); in DEF_SCSI_QCMD()
1120 nsp32_write1(base, SYNC_REG, 0); in DEF_SCSI_QCMD()
1121 nsp32_write1(base, ACK_WIDTH, 0); in DEF_SCSI_QCMD()
1137 nsp32_write2(base, IRQ_CONTROL, 0); in DEF_SCSI_QCMD()
1157 int handled = 0; in do_nsp32_isr()
1167 "enter IRQ: %d, IRQstatus: 0x%x", irq, irq_stat); in do_nsp32_isr()
1169 if ((irq_stat & IRQSTATUS_ANY_IRQ) == 0) { in do_nsp32_isr()
1170 nsp32_dbg(NSP32_DEBUG_INTR, "shared interrupt: irq other 0x%x", irq_stat); in do_nsp32_isr()
1180 if ((irq_stat == 0xffff) && (trans_stat == 0xffff)) { in do_nsp32_isr()
1210 nsp32_msg(KERN_WARNING, "irq_stat=0x%x trans_stat=0x%x", irq_stat, trans_stat); in do_nsp32_isr()
1223 nsp32_write2(base, SCSI_EXECUTE_PHASE, 0); in do_nsp32_isr()
1249 data->msgout_len = 0; in do_nsp32_isr()
1256 (scsi_get_resid(SCpnt) > 0) && in do_nsp32_isr()
1257 ((nsp32_read2(base, FIFO_REST_CNT) & FIFO_REST_MASK) != 0)) { in do_nsp32_isr()
1268 nsp32_dbg(NSP32_DEBUG_INTR, "BMCNT=0x%lx", in do_nsp32_isr()
1270 nsp32_dbg(NSP32_DEBUG_INTR, "addr=0x%lx", in do_nsp32_isr()
1272 nsp32_dbg(NSP32_DEBUG_INTR, "SACK=0x%lx", in do_nsp32_isr()
1274 nsp32_dbg(NSP32_DEBUG_INTR, "SSACK=0x%lx", in do_nsp32_isr()
1277 scsi_set_resid(SCpnt, 0); /* all data transferred! */ in do_nsp32_isr()
1370 nsp32_dbg(NSP32_DEBUG_INTR, "irq_stat=0x%x trans_stat=0x%x", irq_stat, trans_stat); in do_nsp32_isr()
1385 nsp32_msgin_occur(SCpnt, irq_stat, 0); in do_nsp32_isr()
1389 nsp32_msg(KERN_WARNING, "irq_stat=0x%x trans_stat=0x%x\n", in do_nsp32_isr()
1413 #if 0 in do_nsp32_isr()
1415 "irq_stat=0x%x trans_stat=0x%x", irq_stat, trans_stat); in do_nsp32_isr()
1421 nsp32_write2(base, IRQ_CONTROL, 0); in do_nsp32_isr()
1450 …seq_printf(m, "IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_po… in nsp32_show_info()
1451 …seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - … in nsp32_show_info()
1453 seq_printf(m, "Chip revision: 0x%x\n", (nsp32_read2(base, INDEX_REG) >> 8) & 0xff); in nsp32_show_info()
1464 seq_printf(m, "CurrentSC: 0x%p\n\n", data->CurrentSC); in nsp32_show_info()
1469 for (id = 0; id < ARRAY_SIZE(data->target); id++) { in nsp32_show_info()
1479 if (data->target[id].period == 0 && in nsp32_show_info()
1489 if (data->target[id].period != 0) { in nsp32_show_info()
1501 return 0; in nsp32_show_info()
1520 nsp32_write2(base, TRANSFER_CONTROL, 0); in nsp32_scsi_done()
1521 nsp32_write4(base, BM_CNT, 0); in nsp32_scsi_done()
1553 nsp32_dbg(NSP32_DEBUG_BUSFREE, "enter execph=0x%x", execph); in nsp32_busfree_occur()
1556 nsp32_write4(base, BM_CNT, 0); in nsp32_busfree_occur()
1557 nsp32_write2(base, TRANSFER_CONTROL, 0); in nsp32_busfree_occur()
1588 * If SAVEDSACKCNT == 0, it means SavedDataPointer is in nsp32_busfree_occur()
1591 if (s_sacklen > 0) { in nsp32_busfree_occur()
1669 SCpnt->SCp.Message = 0; in nsp32_busfree_occur()
1671 "normal end stat=0x%x resid=0x%x\n", in nsp32_busfree_occur()
1675 (SCpnt->SCp.Status << 0); in nsp32_busfree_occur()
1691 //SCpnt->result = (DID_OK << 16) | (SCpnt->SCp.Message << 8) | (SCpnt->SCp.Status << 0); in nsp32_busfree_occur()
1716 nsp32_dbg(NSP32_DEBUG_SGLIST, "old resid=0x%x", scsi_get_resid(SCpnt)); in nsp32_adjust_busfree()
1725 sentlen = 0; in nsp32_adjust_busfree()
1765 nsp32_dbg(NSP32_DEBUG_SGLIST, "new resid=0x%x", scsi_get_resid(SCpnt)); in nsp32_adjust_busfree()
1788 "enter: msgout_len: 0x%x", data->msgout_len); in nsp32_msgout_occur()
1794 if (data->msgout_len == 0) { in nsp32_msgout_occur()
1809 for (i = 0; i < data->msgout_len; i++) { in nsp32_msgout_occur()
1811 "%d : 0x%x", i, data->msgoutbuf[i]); in nsp32_msgout_occur()
1840 nsp32_dbg(NSP32_DEBUG_MSGOUTOCCUR, "bus: 0x%x\n", in nsp32_msgout_occur()
1844 data->msgout_len = 0; in nsp32_msgout_occur()
1859 unsigned short transfer = 0; in nsp32_restart_autoscsi()
1891 transfer = 0; in nsp32_restart_autoscsi()
1894 if (scsi_bufflen(SCpnt) > 0) { in nsp32_restart_autoscsi()
1930 unsigned short command = 0; in nsp32_msgin_occur()
1942 msgtype = data->msginbuf[0]; in nsp32_msgin_occur()
1944 "enter: msglen: 0x%x msgin: 0x%x msgtype: 0x%x", in nsp32_msgin_occur()
1959 if (msgtype & 0x80) { in nsp32_msgin_occur()
1965 newlun = msgtype & 0x1f; /* TODO: SPI-3 compliant? */ in nsp32_msgin_occur()
1990 "unexpected message of AutoSCSI MsgIn: 0x%x", msg); in nsp32_msgin_occur()
2002 if ((execph & MSGIN_02_VALID) && (s_sacklen > 0)) { in nsp32_msgin_occur()
2055 "unsupported message: 0x%x", msgtype); in nsp32_msgin_occur()
2068 case 0x23: in nsp32_msgin_occur()
2070 * 0x23: Ignore_Wide_Residue is not declared in scsi.h. in nsp32_msgin_occur()
2098 * (msgin_len starts counting from 0, so buf[1] + 1). in nsp32_msgin_occur()
2154 data->msgin_len = 0; in nsp32_msgin_occur()
2158 * (msgout_len > 0), set AutoATN, and set SCSIMSGOUT as 0 in nsp32_msgin_occur()
2159 * (MV_VALID = 0). When commandcontrol is written with in nsp32_msgin_occur()
2163 if (data->msgout_len > 0) { in nsp32_msgin_occur()
2164 nsp32_write4(base, SCSI_MSG_OUT, 0); in nsp32_msgin_occur()
2207 "current msg: 0x%x (len: 0x%x), processing msg: 0x%x", in nsp32_msgin_occur()
2210 data->msgin_len = 0; in nsp32_msgin_occur()
2279 if (get_period < data->synct[0].period_num) { in nsp32_analyze_sdtr()
2289 if (entry < 0) { in nsp32_analyze_sdtr()
2314 if (get_period < data->synct[0].period_num) { in nsp32_analyze_sdtr()
2315 get_period = data->synct[0].period_num; in nsp32_analyze_sdtr()
2320 if (get_offset == ASYNC_OFFSET || entry < 0) { in nsp32_analyze_sdtr()
2322 nsp32_build_sdtr(SCpnt, 0, ASYNC_OFFSET); in nsp32_analyze_sdtr()
2343 target->period = 0; in nsp32_analyze_sdtr()
2361 target->limit_entry = 0; in nsp32_search_period_entry()
2391 target->period = 0; in nsp32_set_async()
2393 target->ackwidth = 0; in nsp32_set_async()
2394 target->sample_reg = 0; in nsp32_set_async()
2418 target->sample_reg = 0; /* disable SREQ sampling */ in nsp32_set_max_sync()
2456 int wait_time = 0; in nsp32_wait_req()
2463 req_bit = (state == ASSERT ? BUSMON_REQ : 0); in nsp32_wait_req()
2476 nsp32_msg(KERN_WARNING, "wait REQ timeout, req_bit: 0x%x", req_bit); in nsp32_wait_req()
2485 int wait_time = 0; in nsp32_wait_sack()
2492 ack_bit = (state == ASSERT ? BUSMON_ACK : 0); in nsp32_wait_sack()
2505 nsp32_msg(KERN_WARNING, "wait SACK timeout, ack_bit: 0x%x", ack_bit); in nsp32_wait_sack()
2539 * Note: n_io_port is defined as 0x7f because I/O register port is
2541 * 0x800-0x8ff: memory mapped I/O port
2542 * 0x900-0xbff: (map same 0x800-0x8ff I/O port image repeatedly)
2543 * 0xc00-0xfff: CardBus status registers
2630 if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)) != 0) { in nsp32_detect()
2656 for (i = 0; i < ARRAY_SIZE(data->lunt); i++) { in nsp32_detect()
2657 for (j = 0; j < ARRAY_SIZE(data->lunt[0]); j++) { in nsp32_detect()
2658 int offset = i * ARRAY_SIZE(data->lunt[0]) + j; in nsp32_detect()
2661 .save_datp = 0, in nsp32_detect()
2663 .sg_num = 0, in nsp32_detect()
2664 .cur_entry = 0, in nsp32_detect()
2676 for (i = 0; i < ARRAY_SIZE(data->target); i++) { in nsp32_detect()
2679 target->limit_entry = 0; in nsp32_detect()
2680 target->sync_flag = 0; in nsp32_detect()
2698 "NinjaSCSI-32Bi/UDE: irq %d, io 0x%lx+0x%x", in nsp32_detect()
2722 if (ret < 0) { in nsp32_detect()
2734 "I/O region 0x%lx+0x%lx is already used", in nsp32_detect()
2746 return 0; in nsp32_detect()
2795 return 0; in nsp32_release()
2823 data->cur_target->sync_flag = 0; in nsp32_eh_abort()
2827 nsp32_write2(base, TRANSFER_CONTROL, 0); in nsp32_eh_abort()
2828 nsp32_write2(base, BM_CNT, 0); in nsp32_eh_abort()
2850 nsp32_write2(base, TRANSFER_CONTROL, 0); in nsp32_do_bus_reset()
2851 nsp32_write4(base, BM_CNT, 0); in nsp32_do_bus_reset()
2858 for (i = 0; i < ARRAY_SIZE(data->target); i++) { in nsp32_do_bus_reset()
2861 target->sync_flag = 0; in nsp32_do_bus_reset()
2870 nsp32_write1(base, SCSI_BUS_CONTROL, 0); in nsp32_do_bus_reset()
2871 for(i = 0; i < 5; i++) { in nsp32_do_bus_reset()
2873 nsp32_dbg(NSP32_DEBUG_BUSRESET, "irq:1: 0x%x", intrdat); in nsp32_do_bus_reset()
2886 nsp32_dbg(NSP32_DEBUG_BUSRESET, "SCpnt=0x%x", SCpnt); in nsp32_eh_host_reset()
2893 nsp32_write2(base, IRQ_CONTROL, 0); in nsp32_eh_host_reset()
2916 ret = nsp32_prom_read(data, 0x7e); in nsp32_getprom_param()
2917 if (ret != 0x55) { in nsp32_getprom_param()
2918 nsp32_msg(KERN_INFO, "No EEPROM detected: 0x%x", ret); in nsp32_getprom_param()
2921 ret = nsp32_prom_read(data, 0x7f); in nsp32_getprom_param()
2922 if (ret != 0xaa) { in nsp32_getprom_param()
2923 nsp32_msg(KERN_INFO, "Invalid number: 0x%x", ret); in nsp32_getprom_param()
2945 for (i = 0; i <= 0x1f; i++) { in nsp32_getprom_param()
2948 "rom address 0x%x : 0x%x", i, val); in nsp32_getprom_param()
2959 * 0x00 - 0x06 : Device Synchronous Transfer Period (SCSI ID 0 - 6)
2960 * Value 0x0: ASYNC, 0x0c: Ultra-20M, 0x19: Fast-10M
2961 * 0x07 : HBA Synchronous Transfer Period
2962 * Value 0: AutoSync, 1: Manual Setting
2963 * 0x08 - 0x0f : Not Used? (0x0)
2964 * 0x10 : Bus Termination
2965 * Value 0: Auto[ON], 1: ON, 2: OFF
2966 * 0x11 : Not Used? (0)
2967 * 0x12 : Bus Reset Delay Time (0x03)
2968 * 0x13 : Bootable CD Support
2969 * Value 0: Disable, 1: Enable
2970 * 0x14 : Device Scan
2971 * Bit 7 6 5 4 3 2 1 0
2973 * | SCSI ID: Value 0: Skip, 1: YES
2974 * |-> Value 0: ALL scan, Value 1: Manual
2975 * 0x15 - 0x1b : Not Used? (0)
2976 * 0x1c : Constant? (0x01) (clock div?)
2977 * 0x1d - 0x7c : Not Used (0xff)
2978 * 0x7d : Not Used? (0xff)
2979 * 0x7e : Constant (0x55), Validity signature
2980 * 0x7f : Constant (0xaa), Validity signature
2994 data->resettime = nsp32_prom_read(data, 0x12); in nsp32_getprom_at24()
2999 * Note: auto_sync = 0: auto, 1: manual. Ninja SCSI HBA spec says in nsp32_getprom_at24()
3000 * that if auto_sync is 0 (auto), and connected SCSI devices are in nsp32_getprom_at24()
3006 * only ignored. If auto_sync is 0 (auto), then transfer speed is in nsp32_getprom_at24()
3009 ret = nsp32_prom_read(data, 0x07); in nsp32_getprom_at24()
3011 case 0: in nsp32_getprom_at24()
3030 for (i = 0; i < NSP32_HOST_SCSIID; i++) { in nsp32_getprom_at24()
3033 target->limit_entry = 0; /* set as ULTRA20M */ in nsp32_getprom_at24()
3037 if (entry < 0) { in nsp32_getprom_at24()
3039 entry = 0; in nsp32_getprom_at24()
3053 * 0x00 - 0x06 : Device Synchronous Transfer Period (SCSI ID 0 - 6)
3054 * Value 0x0: 20MB/S, 0x1: 10MB/S, 0x2: 5MB/S, 0x3: ASYNC
3055 * 0x07 : 0 (HBA Synchronous Transfer Period: Auto Sync)
3056 * 0x08 - 0x0f : Not Used? (0x0)
3057 * 0x10 : Transfer Mode
3058 * Value 0: PIO, 1: Busmater
3059 * 0x11 : Bus Reset Delay Time (0x00-0x20)
3060 * 0x12 : Bus Termination
3061 * Value 0: Disable, 1: Enable
3062 * 0x13 - 0x19 : Disconnection
3063 * Value 0: Disable, 1: Enable
3064 * 0x1a - 0x7c : Not Used? (0)
3065 * 0x7d : Not Used? (0xf8)
3066 * 0x7e : Constant (0x55), Validity signature
3067 * 0x7f : Constant (0xaa), Validity signature
3080 data->resettime = nsp32_prom_read(data, 0x11); in nsp32_getprom_c16()
3085 for (i = 0; i < NSP32_HOST_SCSIID; i++) { in nsp32_getprom_c16()
3089 case 0: /* 20MB/s */ in nsp32_getprom_c16()
3090 val = 0x0c; in nsp32_getprom_c16()
3093 val = 0x19; in nsp32_getprom_c16()
3096 val = 0x32; in nsp32_getprom_c16()
3099 val = 0x00; in nsp32_getprom_c16()
3102 val = 0x0c; in nsp32_getprom_c16()
3106 if (entry < 0 || trans_mode == ULTRA20M_MODE) { in nsp32_getprom_c16()
3108 entry = 0; in nsp32_getprom_c16()
3129 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3131 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3132 nsp32_prom_write_bit(data, 0); /* A2: 0 (GND) */ in nsp32_prom_read()
3133 nsp32_prom_write_bit(data, 0); /* A1: 0 (GND) */ in nsp32_prom_read()
3134 nsp32_prom_write_bit(data, 0); /* A0: 0 (GND) */ in nsp32_prom_read()
3137 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3140 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3143 for (i = 7; i >= 0; i--) { in nsp32_prom_read()
3148 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3155 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3157 nsp32_prom_write_bit(data, 0); /* 0 */ in nsp32_prom_read()
3158 nsp32_prom_write_bit(data, 0); /* A2: 0 (GND) */ in nsp32_prom_read()
3159 nsp32_prom_write_bit(data, 0); /* A1: 0 (GND) */ in nsp32_prom_read()
3160 nsp32_prom_write_bit(data, 0); /* A0: 0 (GND) */ in nsp32_prom_read()
3166 nsp32_prom_write_bit(data, 0); in nsp32_prom_read()
3169 val = 0; in nsp32_prom_read()
3170 for (i = 7; i >= 0; i--) { in nsp32_prom_read()
3190 if (val == 0) { in nsp32_prom_set()
3208 return 0; in nsp32_prom_get()
3214 if (tmp == 0) { in nsp32_prom_get()
3215 ret = 0; in nsp32_prom_get()
3231 nsp32_prom_set(data, SDA, 0); /* keeping SCL=1 and transiting in nsp32_prom_start()
3232 * SDA 1->0 is start condition */ in nsp32_prom_start()
3233 nsp32_prom_set(data, SCL, 0); in nsp32_prom_start()
3240 nsp32_prom_set(data, SDA, 0); in nsp32_prom_stop()
3243 nsp32_prom_set(data, SCL, 0); in nsp32_prom_stop()
3251 nsp32_prom_set(data, SCL, 0 ); in nsp32_prom_write_bit()
3259 nsp32_prom_set(data, ENA, 0); /* input mode */ in nsp32_prom_read_bit()
3264 nsp32_prom_set(data, SCL, 0); in nsp32_prom_read_bit()
3281 …nsp32_msg(KERN_INFO, "pci-suspend: pdev=0x%p, state=%ld, slot=%s, host=0x%p", pdev, state, pci_nam… in nsp32_suspend()
3287 return 0; in nsp32_suspend()
3297 nsp32_msg(KERN_INFO, "pci-resume: pdev=0x%p, slot=%s, host=0x%p", pdev, pci_name(pdev), host); in nsp32_resume()
3300 pci_enable_wake (pdev, PCI_D0, 0); in nsp32_resume()
3305 nsp32_msg(KERN_INFO, "io=0x%x reg=0x%x", data->BaseAddress, reg); in nsp32_resume()
3307 if (reg == 0xffff) { in nsp32_resume()
3309 return 0; in nsp32_resume()
3317 return 0; in nsp32_resume()
3341 data->BaseAddress = pci_resource_start(pdev, 0); in nsp32_probe()
3342 data->NumAddress = pci_resource_len (pdev, 0); in nsp32_probe()
3350 nsp32_msg(KERN_INFO, "irq: %i mmio: %p+0x%lx slot: %s model: %s", in nsp32_probe()