aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2006-11-02 15:16:08 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2006-12-07 15:46:58 -0500
commit424a9642b8b436bba04ad5d2d254b43757166cdf (patch)
tree2b68e64f75f53d7fb05d2d94a569cde86132b6af /drivers/ieee1394
parentedf1fb213e5df03983b91bb050bdd2914465a843 (diff)
ieee1394: sbp2: coding style of some macros
Adjust parentheses, indentation, line lengths. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/ieee1394')
-rw-r--r--drivers/ieee1394/sbp2.h155
1 files changed, 78 insertions, 77 deletions
diff --git a/drivers/ieee1394/sbp2.h b/drivers/ieee1394/sbp2.h
index 56917b9fa22d..7b4242024665 100644
--- a/drivers/ieee1394/sbp2.h
+++ b/drivers/ieee1394/sbp2.h
@@ -28,22 +28,22 @@
28 * SBP2 specific structures and defines 28 * SBP2 specific structures and defines
29 */ 29 */
30 30
31#define ORB_DIRECTION_WRITE_TO_MEDIA 0x0 31#define ORB_DIRECTION_WRITE_TO_MEDIA 0x0
32#define ORB_DIRECTION_READ_FROM_MEDIA 0x1 32#define ORB_DIRECTION_READ_FROM_MEDIA 0x1
33#define ORB_DIRECTION_NO_DATA_TRANSFER 0x2 33#define ORB_DIRECTION_NO_DATA_TRANSFER 0x2
34 34
35#define ORB_SET_NULL_PTR(value) ((value & 0x1) << 31) 35#define ORB_SET_NULL_PTR(v) (((v) & 0x1) << 31)
36#define ORB_SET_NOTIFY(value) ((value & 0x1) << 31) 36#define ORB_SET_NOTIFY(v) (((v) & 0x1) << 31)
37#define ORB_SET_RQ_FMT(value) ((value & 0x3) << 29) /* unused ? */ 37#define ORB_SET_RQ_FMT(v) (((v) & 0x3) << 29)
38#define ORB_SET_NODE_ID(value) ((value & 0xffff) << 16) 38#define ORB_SET_NODE_ID(v) (((v) & 0xffff) << 16)
39#define ORB_SET_STATUS_FIFO_HI(value, id) (value >> 32 | ORB_SET_NODE_ID(id)) 39#define ORB_SET_STATUS_FIFO_HI(v, id) ((v) >> 32 | ORB_SET_NODE_ID(id))
40#define ORB_SET_STATUS_FIFO_LO(value) (value & 0xffffffff) 40#define ORB_SET_STATUS_FIFO_LO(v) ((v) & 0xffffffff)
41#define ORB_SET_DATA_SIZE(value) (value & 0xffff) 41#define ORB_SET_DATA_SIZE(v) ((v) & 0xffff)
42#define ORB_SET_PAGE_SIZE(value) ((value & 0x7) << 16) 42#define ORB_SET_PAGE_SIZE(v) (((v) & 0x7) << 16)
43#define ORB_SET_PAGE_TABLE_PRESENT(value) ((value & 0x1) << 19) 43#define ORB_SET_PAGE_TABLE_PRESENT(v) (((v) & 0x1) << 19)
44#define ORB_SET_MAX_PAYLOAD(value) ((value & 0xf) << 20) 44#define ORB_SET_MAX_PAYLOAD(v) (((v) & 0xf) << 20)
45#define ORB_SET_SPEED(value) ((value & 0x7) << 24) 45#define ORB_SET_SPEED(v) (((v) & 0x7) << 24)
46#define ORB_SET_DIRECTION(value) ((value & 0x1) << 27) 46#define ORB_SET_DIRECTION(v) (((v) & 0x1) << 27)
47 47
48struct sbp2_command_orb { 48struct sbp2_command_orb {
49 u32 next_ORB_hi; 49 u32 next_ORB_hi;
@@ -64,12 +64,12 @@ struct sbp2_command_orb {
64#define SBP2_LOGICAL_UNIT_RESET 0xe 64#define SBP2_LOGICAL_UNIT_RESET 0xe
65#define SBP2_TARGET_RESET_REQUEST 0xf 65#define SBP2_TARGET_RESET_REQUEST 0xf
66 66
67#define ORB_SET_LUN(value) (value & 0xffff) 67#define ORB_SET_LUN(v) ((v) & 0xffff)
68#define ORB_SET_FUNCTION(value) ((value & 0xf) << 16) 68#define ORB_SET_FUNCTION(v) (((v) & 0xf) << 16)
69#define ORB_SET_RECONNECT(value) ((value & 0xf) << 20) 69#define ORB_SET_RECONNECT(v) (((v) & 0xf) << 20)
70#define ORB_SET_EXCLUSIVE(value) ((value & 0x1) << 28) 70#define ORB_SET_EXCLUSIVE(v) (((v) & 0x1) << 28)
71#define ORB_SET_LOGIN_RESP_LENGTH(value) (value & 0xffff) 71#define ORB_SET_LOGIN_RESP_LENGTH(v) ((v) & 0xffff)
72#define ORB_SET_PASSWD_LENGTH(value) ((value & 0xffff) << 16) 72#define ORB_SET_PASSWD_LENGTH(v) (((v) & 0xffff) << 16)
73 73
74struct sbp2_login_orb { 74struct sbp2_login_orb {
75 u32 password_hi; 75 u32 password_hi;
@@ -82,9 +82,9 @@ struct sbp2_login_orb {
82 u32 status_fifo_lo; 82 u32 status_fifo_lo;
83} __attribute__((packed)); 83} __attribute__((packed));
84 84
85#define RESPONSE_GET_LOGIN_ID(value) (value & 0xffff) 85#define RESPONSE_GET_LOGIN_ID(v) ((v) & 0xffff)
86#define RESPONSE_GET_LENGTH(value) ((value >> 16) & 0xffff) 86#define RESPONSE_GET_LENGTH(v) (((v) >> 16) & 0xffff)
87#define RESPONSE_GET_RECONNECT_HOLD(value) (value & 0xffff) 87#define RESPONSE_GET_RECONNECT_HOLD(v) ((v) & 0xffff)
88 88
89struct sbp2_login_response { 89struct sbp2_login_response {
90 u32 length_login_ID; 90 u32 length_login_ID;
@@ -93,9 +93,8 @@ struct sbp2_login_response {
93 u32 reconnect_hold; 93 u32 reconnect_hold;
94} __attribute__((packed)); 94} __attribute__((packed));
95 95
96#define ORB_SET_LOGIN_ID(value) (value & 0xffff) 96#define ORB_SET_LOGIN_ID(v) ((v) & 0xffff)
97 97#define ORB_SET_QUERY_LOGINS_RESP_LENGTH(v) ((v) & 0xffff)
98#define ORB_SET_QUERY_LOGINS_RESP_LENGTH(value) (value & 0xffff)
99 98
100struct sbp2_query_logins_orb { 99struct sbp2_query_logins_orb {
101 u32 reserved1; 100 u32 reserved1;
@@ -108,8 +107,8 @@ struct sbp2_query_logins_orb {
108 u32 status_fifo_lo; 107 u32 status_fifo_lo;
109} __attribute__((packed)); 108} __attribute__((packed));
110 109
111#define RESPONSE_GET_MAX_LOGINS(value) (value & 0xffff) 110#define RESPONSE_GET_MAX_LOGINS(v) ((v) & 0xffff)
112#define RESPONSE_GET_ACTIVE_LOGINS(value) ((RESPONSE_GET_LENGTH(value) - 4) / 12) 111#define RESPONSE_GET_ACTIVE_LOGINS(v) ((RESPONSE_GET_LENGTH((v)) - 4) / 12)
113 112
114struct sbp2_query_logins_response { 113struct sbp2_query_logins_response {
115 u32 length_max_logins; 114 u32 length_max_logins;
@@ -140,8 +139,8 @@ struct sbp2_logout_orb {
140 u32 status_fifo_lo; 139 u32 status_fifo_lo;
141} __attribute__((packed)); 140} __attribute__((packed));
142 141
143#define PAGE_TABLE_SET_SEGMENT_BASE_HI(value) (value & 0xffff) 142#define PAGE_TABLE_SET_SEGMENT_BASE_HI(v) ((v) & 0xffff)
144#define PAGE_TABLE_SET_SEGMENT_LENGTH(value) ((value & 0xffff) << 16) 143#define PAGE_TABLE_SET_SEGMENT_LENGTH(v) (((v) & 0xffff) << 16)
145 144
146struct sbp2_unrestricted_page_table { 145struct sbp2_unrestricted_page_table {
147 u32 length_segment_base_hi; 146 u32 length_segment_base_hi;
@@ -171,23 +170,14 @@ struct sbp2_unrestricted_page_table {
171#define SFMT_DEFERRED_ERROR 0x1 170#define SFMT_DEFERRED_ERROR 0x1
172#define SFMT_VENDOR_DEPENDENT_STATUS 0x3 171#define SFMT_VENDOR_DEPENDENT_STATUS 0x3
173 172
174#define SBP2_SCSI_STATUS_GOOD 0x0 173#define STATUS_GET_SRC(v) (((v) >> 30) & 0x3)
175#define SBP2_SCSI_STATUS_CHECK_CONDITION 0x2 174#define STATUS_GET_RESP(v) (((v) >> 28) & 0x3)
176#define SBP2_SCSI_STATUS_CONDITION_MET 0x4 175#define STATUS_GET_LEN(v) (((v) >> 24) & 0x7)
177#define SBP2_SCSI_STATUS_BUSY 0x8 176#define STATUS_GET_SBP_STATUS(v) (((v) >> 16) & 0xff)
178#define SBP2_SCSI_STATUS_RESERVATION_CONFLICT 0x18 177#define STATUS_GET_ORB_OFFSET_HI(v) ((v) & 0x0000ffff)
179#define SBP2_SCSI_STATUS_COMMAND_TERMINATED 0x22 178#define STATUS_TEST_DEAD(v) ((v) & 0x08000000)
180
181#define SBP2_SCSI_STATUS_SELECTION_TIMEOUT 0xff
182
183#define STATUS_GET_SRC(value) (((value) >> 30) & 0x3)
184#define STATUS_GET_RESP(value) (((value) >> 28) & 0x3)
185#define STATUS_GET_LEN(value) (((value) >> 24) & 0x7)
186#define STATUS_GET_SBP_STATUS(value) (((value) >> 16) & 0xff)
187#define STATUS_GET_ORB_OFFSET_HI(value) ((value) & 0x0000ffff)
188#define STATUS_TEST_DEAD(value) ((value) & 0x08000000)
189/* test 'resp' | 'dead' | 'sbp2_status' */ 179/* test 'resp' | 'dead' | 'sbp2_status' */
190#define STATUS_TEST_RDS(value) ((value) & 0x38ff0000) 180#define STATUS_TEST_RDS(v) ((v) & 0x38ff0000)
191 181
192struct sbp2_status_block { 182struct sbp2_status_block {
193 u32 ORB_offset_hi_misc; 183 u32 ORB_offset_hi_misc;
@@ -199,49 +189,53 @@ struct sbp2_status_block {
199 * Miscellaneous SBP2 related config rom defines 189 * Miscellaneous SBP2 related config rom defines
200 */ 190 */
201 191
202#define SBP2_UNIT_DIRECTORY_OFFSET_KEY 0xd1 192#define SBP2_UNIT_DIRECTORY_OFFSET_KEY 0xd1
203#define SBP2_CSR_OFFSET_KEY 0x54 193#define SBP2_CSR_OFFSET_KEY 0x54
204#define SBP2_UNIT_SPEC_ID_KEY 0x12 194#define SBP2_UNIT_SPEC_ID_KEY 0x12
205#define SBP2_UNIT_SW_VERSION_KEY 0x13 195#define SBP2_UNIT_SW_VERSION_KEY 0x13
206#define SBP2_COMMAND_SET_SPEC_ID_KEY 0x38 196#define SBP2_COMMAND_SET_SPEC_ID_KEY 0x38
207#define SBP2_COMMAND_SET_KEY 0x39 197#define SBP2_COMMAND_SET_KEY 0x39
208#define SBP2_UNIT_CHARACTERISTICS_KEY 0x3a 198#define SBP2_UNIT_CHARACTERISTICS_KEY 0x3a
209#define SBP2_DEVICE_TYPE_AND_LUN_KEY 0x14 199#define SBP2_DEVICE_TYPE_AND_LUN_KEY 0x14
210#define SBP2_FIRMWARE_REVISION_KEY 0x3c 200#define SBP2_FIRMWARE_REVISION_KEY 0x3c
211 201
212#define SBP2_AGENT_STATE_OFFSET 0x00ULL 202#define SBP2_AGENT_STATE_OFFSET 0x00ULL
213#define SBP2_AGENT_RESET_OFFSET 0x04ULL 203#define SBP2_AGENT_RESET_OFFSET 0x04ULL
214#define SBP2_ORB_POINTER_OFFSET 0x08ULL 204#define SBP2_ORB_POINTER_OFFSET 0x08ULL
215#define SBP2_DOORBELL_OFFSET 0x10ULL 205#define SBP2_DOORBELL_OFFSET 0x10ULL
216#define SBP2_UNSOLICITED_STATUS_ENABLE_OFFSET 0x14ULL 206#define SBP2_UNSOLICITED_STATUS_ENABLE_OFFSET 0x14ULL
217#define SBP2_UNSOLICITED_STATUS_VALUE 0xf 207#define SBP2_UNSOLICITED_STATUS_VALUE 0xf
218 208
219#define SBP2_BUSY_TIMEOUT_ADDRESS 0xfffff0000210ULL 209#define SBP2_BUSY_TIMEOUT_ADDRESS 0xfffff0000210ULL
220#define SBP2_BUSY_TIMEOUT_VALUE 0xf 210#define SBP2_BUSY_TIMEOUT_VALUE 0xf
221 211
222#define SBP2_AGENT_RESET_DATA 0xf 212#define SBP2_AGENT_RESET_DATA 0xf
223 213
224/* 214/*
225 * Unit spec id and sw version entry for SBP-2 devices 215 * Unit spec id and sw version entry for SBP-2 devices
226 */ 216 */
227 217
228#define SBP2_UNIT_SPEC_ID_ENTRY 0x0000609e 218#define SBP2_UNIT_SPEC_ID_ENTRY 0x0000609e
229#define SBP2_SW_VERSION_ENTRY 0x00010483 219#define SBP2_SW_VERSION_ENTRY 0x00010483
230 220
231/* 221/*
232 * SCSI specific stuff 222 * SCSI specific stuff
233 */ 223 */
234 224
235#define SBP2_MAX_SG_ELEMENT_LENGTH 0xf000 225#define SBP2_MAX_SG_ELEMENT_LENGTH 0xf000
236#define SBP2_MAX_SECTORS 255 /* Max sectors supported */ 226#define SBP2_MAX_SECTORS 255
237#define SBP2_MAX_CMDS 8 /* This should be safe */ 227/* There is no real limitation of the queue depth (i.e. length of the linked
228 * list of command ORBs) at the target. The chosen depth is merely an
229 * implementation detail of the sbp2 driver. */
230#define SBP2_MAX_CMDS 8
238 231
239/* Flags for detected oddities and brokeness */ 232#define SBP2_SCSI_STATUS_GOOD 0x0
240#define SBP2_WORKAROUND_128K_MAX_TRANS 0x1 233#define SBP2_SCSI_STATUS_CHECK_CONDITION 0x2
241#define SBP2_WORKAROUND_INQUIRY_36 0x2 234#define SBP2_SCSI_STATUS_CONDITION_MET 0x4
242#define SBP2_WORKAROUND_MODE_SENSE_8 0x4 235#define SBP2_SCSI_STATUS_BUSY 0x8
243#define SBP2_WORKAROUND_FIX_CAPACITY 0x8 236#define SBP2_SCSI_STATUS_RESERVATION_CONFLICT 0x18
244#define SBP2_WORKAROUND_OVERRIDE 0x100 237#define SBP2_SCSI_STATUS_COMMAND_TERMINATED 0x22
238#define SBP2_SCSI_STATUS_SELECTION_TIMEOUT 0xff
245 239
246/* This is the two dma types we use for cmd_dma below */ 240/* This is the two dma types we use for cmd_dma below */
247enum cmd_dma_types { 241enum cmd_dma_types {
@@ -364,4 +358,11 @@ struct sbp2scsi_host_info {
364 struct list_head scsi_ids; /* List of scsi ids on this host */ 358 struct list_head scsi_ids; /* List of scsi ids on this host */
365}; 359};
366 360
361/* Flags for detected oddities and brokeness */
362#define SBP2_WORKAROUND_128K_MAX_TRANS 0x1
363#define SBP2_WORKAROUND_INQUIRY_36 0x2
364#define SBP2_WORKAROUND_MODE_SENSE_8 0x4
365#define SBP2_WORKAROUND_FIX_CAPACITY 0x8
366#define SBP2_WORKAROUND_OVERRIDE 0x100
367
367#endif /* SBP2_H */ 368#endif /* SBP2_H */