diff options
author | James Bottomley <James.Bottomley@steeleye.com> | 2006-03-01 10:02:49 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-03-01 10:44:04 -0500 |
commit | c92f222e1f14588171e63b550ca8c85fa9130061 (patch) | |
tree | 83db58755951518865324ac880fc321e516755b9 /drivers/message/fusion/mptbase.h | |
parent | 3ef0b47ee498ea183bffd9b3b4a1eef757fef4ba (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.h | 14 |
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 | */ |
333 | typedef struct _VirtTarget { | 333 | typedef 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 | ||
349 | typedef struct _VirtDevice { | 349 | typedef 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); | |||
1033 | extern int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); | 1024 | extern int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc); |
1034 | extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode); | 1025 | extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode); |
1035 | extern int mptbase_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum); | 1026 | extern int mptbase_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum); |
1036 | extern int mpt_alt_ioc_wait(MPT_ADAPTER *ioc); | ||
1037 | 1027 | ||
1038 | /* | 1028 | /* |
1039 | * Public data decl's... | 1029 | * Public data decl's... |