aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptbase.h
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@steeleye.com>2006-03-01 10:02:49 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-01 10:44:04 -0500
commitc92f222e1f14588171e63b550ca8c85fa9130061 (patch)
tree83db58755951518865324ac880fc321e516755b9 /drivers/message/fusion/mptbase.h
parent3ef0b47ee498ea183bffd9b3b4a1eef757fef4ba (diff)
[SCSI] mptspi: Add transport class Domain Validation
This is the first half of a patch to add the generic domain validation to mptspi. It also creates a secondary "virtual" channel for raid component devices since these are now exported with no_uld_attach. What Eric and I would have really liked is to export all physical components on channel 0 and all raid components on channel 1. Unfortunately, this would result in device renumbering on platforms with mixed RAID/Physical devices which was considered unacceptable for userland stability reasons. Still to be done is to plug back the extra parameter setting and DV pieces on reset and hotplug. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion/mptbase.h')
-rw-r--r--drivers/message/fusion/mptbase.h14
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index 723d54300953..f4197a9962a3 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -331,6 +331,7 @@ typedef struct _SYSIF_REGS
331 * VirtDevice - FC LUN device or SCSI target device 331 * VirtDevice - FC LUN device or SCSI target device
332 */ 332 */
333typedef struct _VirtTarget { 333typedef struct _VirtTarget {
334 struct scsi_target *starget;
334 u8 tflags; 335 u8 tflags;
335 u8 ioc_id; 336 u8 ioc_id;
336 u8 target_id; 337 u8 target_id;
@@ -343,7 +344,6 @@ typedef struct _VirtTarget {
343 u8 type; /* byte 0 of Inquiry data */ 344 u8 type; /* byte 0 of Inquiry data */
344 u32 num_luns; 345 u32 num_luns;
345 u32 luns[8]; /* Max LUNs is 256 */ 346 u32 luns[8]; /* Max LUNs is 256 */
346 u8 inq_data[8];
347} VirtTarget; 347} VirtTarget;
348 348
349typedef struct _VirtDevice { 349typedef struct _VirtDevice {
@@ -364,6 +364,7 @@ typedef struct _VirtDevice {
364#define MPT_TARGET_FLAGS_Q_YES 0x08 364#define MPT_TARGET_FLAGS_Q_YES 0x08
365#define MPT_TARGET_FLAGS_VALID_56 0x10 365#define MPT_TARGET_FLAGS_VALID_56 0x10
366#define MPT_TARGET_FLAGS_SAF_TE_ISSUED 0x20 366#define MPT_TARGET_FLAGS_SAF_TE_ISSUED 0x20
367#define MPT_TARGET_FLAGS_RAID_COMPONENT 0x40
367 368
368/* 369/*
369 * /proc/mpt interface 370 * /proc/mpt interface
@@ -447,13 +448,6 @@ typedef struct _mpt_ioctl_events {
447 * Substructure to store SCSI specific configuration page data 448 * Substructure to store SCSI specific configuration page data
448 */ 449 */
449 /* dvStatus defines: */ 450 /* dvStatus defines: */
450#define MPT_SCSICFG_NEGOTIATE 0x01 /* Negotiate on next IO */
451#define MPT_SCSICFG_NEED_DV 0x02 /* Schedule DV */
452#define MPT_SCSICFG_DV_PENDING 0x04 /* DV on this physical id pending */
453#define MPT_SCSICFG_DV_NOT_DONE 0x08 /* DV has not been performed */
454#define MPT_SCSICFG_BLK_NEGO 0x10 /* WriteSDP1 with WDTR and SDTR disabled */
455#define MPT_SCSICFG_RELOAD_IOC_PG3 0x20 /* IOC Pg 3 data is obsolete */
456 /* Args passed to writeSDP1: */
457#define MPT_SCSICFG_USE_NVRAM 0x01 /* WriteSDP1 using NVRAM */ 451#define MPT_SCSICFG_USE_NVRAM 0x01 /* WriteSDP1 using NVRAM */
458#define MPT_SCSICFG_ALL_IDS 0x02 /* WriteSDP1 to all IDS */ 452#define MPT_SCSICFG_ALL_IDS 0x02 /* WriteSDP1 to all IDS */
459/* #define MPT_SCSICFG_BLK_NEGO 0x10 WriteSDP1 with WDTR and SDTR disabled */ 453/* #define MPT_SCSICFG_BLK_NEGO 0x10 WriteSDP1 with WDTR and SDTR disabled */
@@ -464,7 +458,6 @@ typedef struct _SpiCfgData {
464 IOCPage4_t *pIocPg4; /* SEP devices addressing */ 458 IOCPage4_t *pIocPg4; /* SEP devices addressing */
465 dma_addr_t IocPg4_dma; /* Phys Addr of IOCPage4 data */ 459 dma_addr_t IocPg4_dma; /* Phys Addr of IOCPage4 data */
466 int IocPg4Sz; /* IOCPage4 size */ 460 int IocPg4Sz; /* IOCPage4 size */
467 u8 dvStatus[MPT_MAX_SCSI_DEVICES];
468 u8 minSyncFactor; /* 0xFF if async */ 461 u8 minSyncFactor; /* 0xFF if async */
469 u8 maxSyncOffset; /* 0 if async */ 462 u8 maxSyncOffset; /* 0 if async */
470 u8 maxBusWidth; /* 0 if narrow, 1 if wide */ 463 u8 maxBusWidth; /* 0 if narrow, 1 if wide */
@@ -474,13 +467,11 @@ typedef struct _SpiCfgData {
474 u8 sdp0version; /* SDP0 version */ 467 u8 sdp0version; /* SDP0 version */
475 u8 sdp0length; /* SDP0 length */ 468 u8 sdp0length; /* SDP0 length */
476 u8 dvScheduled; /* 1 if scheduled */ 469 u8 dvScheduled; /* 1 if scheduled */
477 u8 forceDv; /* 1 to force DV scheduling */
478 u8 noQas; /* Disable QAS for this adapter */ 470 u8 noQas; /* Disable QAS for this adapter */
479 u8 Saf_Te; /* 1 to force all Processors as 471 u8 Saf_Te; /* 1 to force all Processors as
480 * SAF-TE if Inquiry data length 472 * SAF-TE if Inquiry data length
481 * is too short to check for SAF-TE 473 * is too short to check for SAF-TE
482 */ 474 */
483 u8 mpt_dv; /* command line option: enhanced=1, basic=0 */
484 u8 bus_reset; /* 1 to allow bus reset */ 475 u8 bus_reset; /* 1 to allow bus reset */
485 u8 rsvd[1]; 476 u8 rsvd[1];
486}SpiCfgData; 477}SpiCfgData;
@@ -1033,7 +1024,6 @@ extern int mpt_findImVolumes(MPT_ADAPTER *ioc);
1033extern int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); 1024extern int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc);
1034extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode); 1025extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode);
1035extern int mptbase_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum); 1026extern int mptbase_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum);
1036extern int mpt_alt_ioc_wait(MPT_ADAPTER *ioc);
1037 1027
1038/* 1028/*
1039 * Public data decl's... 1029 * Public data decl's...