aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptbase.h
diff options
context:
space:
mode:
authorMoore, Eric Dean <Eric.Moore@lsil.com>2005-11-16 20:54:25 -0500
committerJames Bottomley <jejb@mulgrave.(none)>2005-12-13 20:41:15 -0500
commitc7c82987b4844f555d309ccbd42abe95d46822ff (patch)
tree55eb2c02fa1ff25548b1cc673c47aaa19e380214 /drivers/message/fusion/mptbase.h
parentf2ea8671a8376e09cf759aa8cb3de8b8d3bced9e (diff)
[SCSI] mptfusion - mapping fixs required support for transport layers.
This utilizes the hostdata area that is hung off of scsi_target and scsi_device for saving unique firmware mapping. This will be required for supporting new Fibre and SPI transport support. This also fixs problems in error handling error code for SAS controllers, in which the incorrect mapping was passed to the firmware. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion/mptbase.h')
-rw-r--r--drivers/message/fusion/mptbase.h28
1 files changed, 12 insertions, 16 deletions
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index 7a6c11418452..2a46b33fa760 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -321,7 +321,7 @@ typedef struct _SYSIF_REGS
321 * Dynamic Multi-Pathing specific stuff... 321 * Dynamic Multi-Pathing specific stuff...
322 */ 322 */
323 323
324/* VirtDevice negoFlags field */ 324/* VirtTarget negoFlags field */
325#define MPT_TARGET_NO_NEGO_WIDE 0x01 325#define MPT_TARGET_NO_NEGO_WIDE 0x01
326#define MPT_TARGET_NO_NEGO_SYNC 0x02 326#define MPT_TARGET_NO_NEGO_SYNC 0x02
327#define MPT_TARGET_NO_NEGO_QAS 0x04 327#define MPT_TARGET_NO_NEGO_QAS 0x04
@@ -330,8 +330,7 @@ typedef struct _SYSIF_REGS
330/* 330/*
331 * VirtDevice - FC LUN device or SCSI target device 331 * VirtDevice - FC LUN device or SCSI target device
332 */ 332 */
333typedef struct _VirtDevice { 333typedef struct _VirtTarget {
334 struct scsi_device *device;
335 u8 tflags; 334 u8 tflags;
336 u8 ioc_id; 335 u8 ioc_id;
337 u8 target_id; 336 u8 target_id;
@@ -342,21 +341,18 @@ typedef struct _VirtDevice {
342 u8 negoFlags; /* bit field, see above */ 341 u8 negoFlags; /* bit field, see above */
343 u8 raidVolume; /* set, if RAID Volume */ 342 u8 raidVolume; /* set, if RAID Volume */
344 u8 type; /* byte 0 of Inquiry data */ 343 u8 type; /* byte 0 of Inquiry data */
345 u8 cflags; /* controller flags */
346 u8 rsvd1raid;
347 u16 fc_phys_lun;
348 u16 fc_xlat_lun;
349 u32 num_luns; 344 u32 num_luns;
350 u32 luns[8]; /* Max LUNs is 256 */ 345 u32 luns[8]; /* Max LUNs is 256 */
351 u8 pad[4];
352 u8 inq_data[8]; 346 u8 inq_data[8];
353 /* IEEE Registered Extended Identifier 347} VirtTarget;
354 obtained via INQUIRY VPD page 0x83 */ 348
355 /* NOTE: Do not separate uniq_prepad and uniq_data 349typedef struct _VirtDevice {
356 as they are treateed as a single entity in the code */ 350 VirtTarget *vtarget;
357 u8 uniq_prepad[8]; 351 u8 ioc_id;
358 u8 uniq_data[20]; 352 u8 bus_id;
359 u8 pad2[4]; 353 u8 target_id;
354 u8 configured_lun;
355 u32 lun;
360} VirtDevice; 356} VirtDevice;
361 357
362/* 358/*
@@ -912,7 +908,7 @@ typedef struct _MPT_SCSI_HOST {
912 int port; 908 int port;
913 u32 pad0; 909 u32 pad0;
914 struct scsi_cmnd **ScsiLookup; 910 struct scsi_cmnd **ScsiLookup;
915 VirtDevice **Targets; 911 VirtTarget **Targets;
916 MPT_LOCAL_REPLY *pLocal; /* used for internal commands */ 912 MPT_LOCAL_REPLY *pLocal; /* used for internal commands */
917 struct timer_list timer; 913 struct timer_list timer;
918 /* Pool of memory for holding SCpnts before doing 914 /* Pool of memory for holding SCpnts before doing