1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef ATARI_SCSI_H
16#define ATARI_SCSI_H
17
18
19
20#ifndef ASM
21int atari_scsi_detect (struct scsi_host_template *);
22const char *atari_scsi_info (struct Scsi_Host *);
23int atari_scsi_reset (Scsi_Cmnd *, unsigned int);
24int atari_scsi_release (struct Scsi_Host *);
25
26
27
28
29
30
31
32
33
34
35
36#define ATARI_TT_CAN_QUEUE 16
37#define ATARI_TT_CMD_PER_LUN 8
38#define ATARI_TT_SG_TABLESIZE SG_ALL
39
40#define ATARI_FALCON_CAN_QUEUE 8
41#define ATARI_FALCON_CMD_PER_LUN 1
42#define ATARI_FALCON_SG_TABLESIZE SG_NONE
43
44#define DEFAULT_USE_TAGGED_QUEUING 0
45
46
47#define NCR5380_implementation_fields
48
49#define NCR5380_read(reg) atari_scsi_reg_read( reg )
50#define NCR5380_write(reg, value) atari_scsi_reg_write( reg, value )
51
52#define NCR5380_intr atari_scsi_intr
53#define NCR5380_queue_command atari_scsi_queue_command
54#define NCR5380_abort atari_scsi_abort
55#define NCR5380_proc_info atari_scsi_proc_info
56#define NCR5380_dma_read_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 0)
57#define NCR5380_dma_write_setup(inst,d,c) atari_scsi_dma_setup (inst, d, c, 1)
58#define NCR5380_dma_residual(inst) atari_scsi_dma_residual( inst )
59#define NCR5380_dma_xfer_len(i,cmd,phase) \
60 atari_dma_xfer_len(cmd->SCp.this_residual,cmd,((phase) & SR_IO) ? 0 : 1)
61
62
63
64#define SCSI_ABORT_SNOOZE 0
65#define SCSI_ABORT_SUCCESS 1
66#define SCSI_ABORT_PENDING 2
67#define SCSI_ABORT_BUSY 3
68#define SCSI_ABORT_NOT_RUNNING 4
69#define SCSI_ABORT_ERROR 5
70
71#define SCSI_RESET_SNOOZE 0
72#define SCSI_RESET_PUNT 1
73#define SCSI_RESET_SUCCESS 2
74#define SCSI_RESET_PENDING 3
75#define SCSI_RESET_WAKEUP 4
76#define SCSI_RESET_NOT_RUNNING 5
77#define SCSI_RESET_ERROR 6
78
79#define SCSI_RESET_SYNCHRONOUS 0x01
80#define SCSI_RESET_ASYNCHRONOUS 0x02
81#define SCSI_RESET_SUGGEST_BUS_RESET 0x04
82#define SCSI_RESET_SUGGEST_HOST_RESET 0x08
83
84#define SCSI_RESET_BUS_RESET 0x100
85#define SCSI_RESET_HOST_RESET 0x200
86#define SCSI_RESET_ACTION 0xff
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116#define dprint(flg, format...) \
117({ \
118 if (NDEBUG & (flg)) \
119 printk(KERN_DEBUG format); \
120})
121
122#define ARB_PRINTK(format, args...) \
123 dprint(NDEBUG_ARBITRATION, format , ## args)
124#define ASEN_PRINTK(format, args...) \
125 dprint(NDEBUG_AUTOSENSE, format , ## args)
126#define DMA_PRINTK(format, args...) \
127 dprint(NDEBUG_DMA, format , ## args)
128#define HSH_PRINTK(format, args...) \
129 dprint(NDEBUG_HANDSHAKE, format , ## args)
130#define INF_PRINTK(format, args...) \
131 dprint(NDEBUG_INFORMATION, format , ## args)
132#define INI_PRINTK(format, args...) \
133 dprint(NDEBUG_INIT, format , ## args)
134#define INT_PRINTK(format, args...) \
135 dprint(NDEBUG_INTR, format , ## args)
136#define LNK_PRINTK(format, args...) \
137 dprint(NDEBUG_LINKED, format , ## args)
138#define MAIN_PRINTK(format, args...) \
139 dprint(NDEBUG_MAIN, format , ## args)
140#define NDAT_PRINTK(format, args...) \
141 dprint(NDEBUG_NO_DATAOUT, format , ## args)
142#define NWR_PRINTK(format, args...) \
143 dprint(NDEBUG_NO_WRITE, format , ## args)
144#define PIO_PRINTK(format, args...) \
145 dprint(NDEBUG_PIO, format , ## args)
146#define PDMA_PRINTK(format, args...) \
147 dprint(NDEBUG_PSEUDO_DMA, format , ## args)
148#define QU_PRINTK(format, args...) \
149 dprint(NDEBUG_QUEUES, format , ## args)
150#define RSL_PRINTK(format, args...) \
151 dprint(NDEBUG_RESELECTION, format , ## args)
152#define SEL_PRINTK(format, args...) \
153 dprint(NDEBUG_SELECTION, format , ## args)
154#define USL_PRINTK(format, args...) \
155 dprint(NDEBUG_USLEEP, format , ## args)
156#define LBS_PRINTK(format, args...) \
157 dprint(NDEBUG_LAST_BYTE_SENT, format , ## args)
158#define RSS_PRINTK(format, args...) \
159 dprint(NDEBUG_RESTART_SELECT, format , ## args)
160#define EXT_PRINTK(format, args...) \
161 dprint(NDEBUG_EXTENDED, format , ## args)
162#define ABRT_PRINTK(format, args...) \
163 dprint(NDEBUG_ABORT, format , ## args)
164#define TAG_PRINTK(format, args...) \
165 dprint(NDEBUG_TAGS, format , ## args)
166#define MER_PRINTK(format, args...) \
167 dprint(NDEBUG_MERGING, format , ## args)
168
169
170
171#define NCR_PRINT(mask) \
172 ((NDEBUG & (mask)) ? NCR5380_print(instance) : (void)0)
173
174#define NCR_PRINT_PHASE(mask) \
175 ((NDEBUG & (mask)) ? NCR5380_print_phase(instance) : (void)0)
176
177#define NCR_PRINT_STATUS(mask) \
178 ((NDEBUG & (mask)) ? NCR5380_print_status(instance) : (void)0)
179
180
181#endif
182#endif
183
184
185