Skip to contentSkip to conversation

fusion RAID class support

PATCH New James Bottomley 1 participant 1 message Jan 29, 2006

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fusion RAID class support

This refreshes the RAID class support to match the current driver. It still only applies the raid class to the 1030 (I suppose it could also be applied now to the SAS raid devices, but I haven't yet looked into that).

James

[PATCH] Add raid_class support to mptspi

This adds basic raid monitoring (via the raid class) to the mptspi driver.

drivers/message/fusion/Kconfig +1 -0
Index: BUILD-2.6/drivers/message/fusion/Kconfig
===================================================================
@@ -10,6 +10,7 @@
 	depends on PCI && SCSI
 	select FUSION
 	select SCSI_SPI_ATTRS
+	select RAID_ATTRS
 	---help---
 	  SCSI HOST support for a parallel SCSI host adapters.
 
drivers/message/fusion/mptbase.h +11 -5
Index: BUILD-2.6/drivers/message/fusion/mptbase.h
===================================================================
@@ -332,6 +332,8 @@
  */
 typedef struct _VirtTarget {
 	struct scsi_target	*starget;
+	RaidVolumePage0_t	*raidVolume;	/* set, if RAID Volume */
+	int			 raidpg0size;
 	u8			 tflags;
 	u8			 ioc_id;
 	u8			 target_id;
@@ -340,7 +342,6 @@
 	u8			 maxOffset;	/* 0 if async */
 	u8			 maxWidth;	/* 0 if narrow, 1 if wide */
 	u8			 negoFlags;	/* bit field, see above */
-	u8			 raidVolume;	/* set, if RAID Volume */
 	u8			 type;		/* byte 0 of Inquiry data */
 	u32			 num_luns;
 	u32			 luns[8];		/* Max LUNs is 256 */
@@ -894,10 +895,15 @@
 typedef struct _MPT_LOCAL_REPLY {
 	ConfigPageHeader_t header;
 	int	completion;
-	u8	sense[SCSI_STD_SENSE_BYTES];
-	u8	scsiStatus;
-	u8	skip;
-	u32	pad;
+	union {
+		struct {
+			u8	sense[SCSI_STD_SENSE_BYTES];
+			u8	scsiStatus;
+			u8	skip;
+			u32	pad;
+		} s;
+		u64	r[6];
+	} u;
 } MPT_LOCAL_REPLY;
 
 #define MPT_HOST_BUS_UNKNOWN		(0xFF)
drivers/message/fusion/mptscsih.c +172 -8

245 lines not on this page · raw message

drivers/message/fusion/mptscsih.h +9 -0
Index: BUILD-2.6/drivers/message/fusion/mptscsih.h
===================================================================
@@ -99,3 +99,12 @@
 extern int mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth);
 extern void mptscsih_timer_expired(unsigned long data);
 extern int mptscsih_TMHandler(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 target, u8 lun, int ctx2abort, ulong timeout);
+extern int mptscsih_raid_action(MPT_SCSI_HOST *hd, int action, int volume,
+				int volbus, MpiRaidActionReply_t *pRep,
+				int repLen);
+extern int mptscsih_read_raid_page0(struct scsi_device *sdev,
+				    struct _CONFIG_PAGE_RAID_VOL_0 *pass_pg0,
+				    int pg0len, int version);
+extern struct scsi_device *
+mptscsih_find_raid_device(struct _MPT_SCSI_HOST *hd, int physDiskBus,
+			  int physDiskID);
drivers/message/fusion/mptspi.c +149 -55

256 lines not on this page · raw message