Skip to contentSkip to conversation

scsi:stex.c Support to Pegasus series.

PATCH Superseded Charles Chiou 3 participants 6 messages Sep 3, 2015 – Feb 11, 2016 SCSI

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/3 scsi:stex.c Support to Pegasus series.

From 9d7973dfa05a7785d0eb1e9bcfb0fb6d2c493209 Mon Sep 17 00:00:00 2001
From: Charles <[email protected]>
Date: Wed, 2 Sep 2015 20:41:56 +0800
Subject: [PATCH 1/3] scsi:stex.c Support to Pegasus series.

Pegasus is a high performace hardware RAID solution designed to unleash the raw power of Thunderbolt technology.

1. Add code to distinct SuperTrack and Pegasus series by sub device ID. It should support backward compatibility.

2. Change the driver version.

V2: Remove blank lines

---
 drivers/scsi/stex.c | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)
drivers/scsi/stex.c +26 -6
index 98a62bc..0c93f1f 100644
@@ -1,7 +1,7 @@
 /*
  * SuperTrak EX Series Storage Controller driver for Linux
  *
- *	Copyright (C) 2005-2009 Promise Technology Inc.
+ *	Copyright (C) 2005-2015 Promise Technology Inc.
  *
  *	This program is free software; you can redistribute it and/or
  *	modify it under the terms of the GNU General Public License
@@ -37,11 +37,11 @@
 #include <scsi/scsi_eh.h>
 
 #define DRV_NAME "stex"
-#define ST_DRIVER_VERSION "4.6.0000.4"
-#define ST_VER_MAJOR		4
-#define ST_VER_MINOR		6
-#define ST_OEM			0
-#define ST_BUILD_VER		4
+#define ST_DRIVER_VERSION	"5.00.0000.01"
+#define ST_VER_MAJOR		5
+#define ST_VER_MINOR		00
+#define ST_OEM				0000
+#define ST_BUILD_VER		01
 
 enum {
 	/* MU register offset */
@@ -327,6 +327,7 @@ struct st_hba {
 	u16 rq_count;
 	u16 rq_size;
 	u16 sts_count;
+	u8  supports_pm;
 };
 
 struct st_card_info {
@@ -1568,6 +1569,25 @@ static int stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 
 	hba->cardtype = (unsigned int) id->driver_data;
 	ci = &stex_card_info[hba->cardtype];
+	switch (id->subdevice) {
+	case 0x4221:
+	case 0x4222:
+	case 0x4223:
+	case 0x4224:
+	case 0x4225:
+	case 0x4226:
+	case 0x4227:
+	case 0x4261:
+	case 0x4262:
+	case 0x4263:
+	case 0x4264:
+	case 0x4265:
+		break;
+	default:
+		if (hba->cardtype == st_yel)
+			hba->supports_pm = 1;
+	}
+
 	sts_offset = scratch_offset = (ci->rq_count+1) * ci->rq_size;
 	if (hba->cardtype == st_yel)
 		sts_offset += (ci->sts_count+1) * sizeof(u32);
Signature · 1 line
1.9.1
Reviewed-by on v2 1/3
#1 lore raw
Quoted 84 lines · Charles Chiou

From 9d7973dfa05a7785d0eb1e9bcfb0fb6d2c493209 Mon Sep 17 00:00:00 2001
From: Charles <[email protected]>
Date: Wed, 2 Sep 2015 20:41:56 +0800
Subject: [PATCH 1/3] scsi:stex.c Support to Pegasus series.

Pegasus is a high performace hardware RAID solution designed to unleash the raw power of Thunderbolt technology.

1. Add code to distinct SuperTrack and Pegasus series by sub device ID. It should support backward compatibility.

2. Change the driver version.

V2: Remove blank lines

---
 drivers/scsi/stex.c | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)
drivers/scsi/stex.c +26 -6
index 98a62bc..0c93f1f 100644
@@ -1,7 +1,7 @@
 /*
  * SuperTrak EX Series Storage Controller driver for Linux
  *
- *	Copyright (C) 2005-2009 Promise Technology Inc.
+ *	Copyright (C) 2005-2015 Promise Technology Inc.
  *
  *	This program is free software; you can redistribute it and/or
  *	modify it under the terms of the GNU General Public License
@@ -37,11 +37,11 @@
 #include <scsi/scsi_eh.h>
 
 #define DRV_NAME "stex"
-#define ST_DRIVER_VERSION "4.6.0000.4"
-#define ST_VER_MAJOR		4
-#define ST_VER_MINOR		6
-#define ST_OEM			0
-#define ST_BUILD_VER		4
+#define ST_DRIVER_VERSION	"5.00.0000.01"
+#define ST_VER_MAJOR		5
+#define ST_VER_MINOR		00
+#define ST_OEM				0000
+#define ST_BUILD_VER		01
 
 enum {
 	/* MU register offset */
@@ -327,6 +327,7 @@ struct st_hba {
 	u16 rq_count;
 	u16 rq_size;
 	u16 sts_count;
+	u8  supports_pm;
 };
 
 struct st_card_info {
@@ -1568,6 +1569,25 @@ static int stex_probe(struct pci_dev *pdev, const struct
 pci_device_id *id)
 
 	hba->cardtype = (unsigned int) id->driver_data;
 	ci = &stex_card_info[hba->cardtype];
+	switch (id->subdevice) {
+	case 0x4221:
+	case 0x4222:
+	case 0x4223:
+	case 0x4224:
+	case 0x4225:
+	case 0x4226:
+	case 0x4227:
+	case 0x4261:
+	case 0x4262:
+	case 0x4263:
+	case 0x4264:
+	case 0x4265:
+		break;
+	default:
+		if (hba->cardtype == st_yel)
+			hba->supports_pm = 1;
+	}
+
 	sts_offset = scratch_offset = (ci->rq_count+1) * ci->rq_size;
 	if (hba->cardtype == st_yel)
Quoted 1 line

sts_offset += (ci->sts_count+1) * sizeof(u32);

I somehow find that switch() above awkward to read, but if no-one else objects, who am I to do.

Signature · 6 lines
Johannes Thumshirn                                           Storage
[email protected]                                 +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600  D0D0 0393 969D 2D76 0850
#2 lore raw

Hi all, Ping?
Does this patch has others issues need to fix? Thank you. Charles

Quoted 93 lines · Johannes Thumshirn
Quoted 84 lines · Charles Chiou

From 9d7973dfa05a7785d0eb1e9bcfb0fb6d2c493209 Mon Sep 17 00:00:00 2001
From: Charles <[email protected]>
Date: Wed, 2 Sep 2015 20:41:56 +0800
Subject: [PATCH 1/3] scsi:stex.c Support to Pegasus series.

Pegasus is a high performace hardware RAID solution designed to unleash the raw power of Thunderbolt technology.

1. Add code to distinct SuperTrack and Pegasus series by sub device ID. It should support backward compatibility.

2. Change the driver version.

V2: Remove blank lines

---
  drivers/scsi/stex.c | 32 ++++++++++++++++++++++++++------
  1 file changed, 26 insertions(+), 6 deletions(-)
drivers/scsi/stex.c +26 -6
index 98a62bc..0c93f1f 100644
@@ -1,7 +1,7 @@
  /*
   * SuperTrak EX Series Storage Controller driver for Linux
   *
- *	Copyright (C) 2005-2009 Promise Technology Inc.
+ *	Copyright (C) 2005-2015 Promise Technology Inc.
   *
   *	This program is free software; you can redistribute it and/or
   *	modify it under the terms of the GNU General Public License
@@ -37,11 +37,11 @@
  #include <scsi/scsi_eh.h>
 
  #define DRV_NAME "stex"
-#define ST_DRIVER_VERSION "4.6.0000.4"
-#define ST_VER_MAJOR		4
-#define ST_VER_MINOR		6
-#define ST_OEM			0
-#define ST_BUILD_VER		4
+#define ST_DRIVER_VERSION	"5.00.0000.01"
+#define ST_VER_MAJOR		5
+#define ST_VER_MINOR		00
+#define ST_OEM				0000
+#define ST_BUILD_VER		01
 
  enum {
  	/* MU register offset */
@@ -327,6 +327,7 @@ struct st_hba {
  	u16 rq_count;
  	u16 rq_size;
  	u16 sts_count;
+	u8  supports_pm;
  };
 
  struct st_card_info {
@@ -1568,6 +1569,25 @@ static int stex_probe(struct pci_dev *pdev, const struct
 pci_device_id *id)
 
  	hba->cardtype = (unsigned int) id->driver_data;
  	ci = &stex_card_info[hba->cardtype];
+	switch (id->subdevice) {
+	case 0x4221:
+	case 0x4222:
+	case 0x4223:
+	case 0x4224:
+	case 0x4225:
+	case 0x4226:
+	case 0x4227:
+	case 0x4261:
+	case 0x4262:
+	case 0x4263:
+	case 0x4264:
+	case 0x4265:
+		break;
+	default:
+		if (hba->cardtype == st_yel)
+			hba->supports_pm = 1;
+	}
+
  	sts_offset = scratch_offset = (ci->rq_count+1) * ci->rq_size;
  	if (hba->cardtype == st_yel)
Quoted 1 line
  		sts_offset += (ci->sts_count+1) * sizeof(u32);

I somehow find that switch() above awkward to read, but if no-one else objects, who am I to do.

#3 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Charles" == Charles Chiou <[email protected]> writes:

Charles> Does this patch has others issues need to fix?

Please resubmit your patch series with the review tag from Johannes added.

Thank you!

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering
#4 lore raw

PATCH RESEND 1/3 scsi:stex.c Support to Pegasus series.

In reply to Charles Chiou

From 9d7973dfa05a7785d0eb1e9bcfb0fb6d2c493209 Mon Sep 17 00:00:00 2001
From: Charles <[email protected]>
Date: Wed, 2 Sep 2015 20:41:56 +0800
Subject: [PATCH 1/3] scsi:stex.c Support to Pegasus series.

Pegasus is a high performace hardware RAID solution designed to unleash the raw power of Thunderbolt technology.

1. Add code to distinct SuperTrack and Pegasus series by sub device ID. It should support backward compatibility.

2. Change the driver version.

V2: Remove blank lines

---
  drivers/scsi/stex.c | 32 ++++++++++++++++++++++++++------
  1 file changed, 26 insertions(+), 6 deletions(-)
drivers/scsi/stex.c +7 -6
index 98a62bc..0c93f1f 100644
@@ -1,7 +1,7 @@
  /*
   * SuperTrak EX Series Storage Controller driver for Linux
   *
- *    Copyright (C) 2005-2009 Promise Technology Inc.
+ *    Copyright (C) 2005-2015 Promise Technology Inc.
   *
   *    This program is free software; you can redistribute it and/or
   *    modify it under the terms of the GNU General Public License
@@ -37,11 +37,11 @@
  #include <scsi/scsi_eh.h>
 
  #define DRV_NAME "stex"
-#define ST_DRIVER_VERSION "4.6.0000.4"
-#define ST_VER_MAJOR        4
-#define ST_VER_MINOR        6
-#define ST_OEM            0
-#define ST_BUILD_VER        4
+#define ST_DRIVER_VERSION    "5.00.0000.01"
+#define ST_VER_MAJOR        5
+#define ST_VER_MINOR        00
+#define ST_OEM                0000
+#define ST_BUILD_VER        01
 
  enum {
      /* MU register offset */
@@ -327,6 +327,7 @@ struct st_hba {
      u16 rq_count;
      u16 rq_size;
      u16 sts_count;
+    u8  supports_pm;
  };
 
  struct st_card_info {
@@ -1568,6 +1569,25 @@ static int stex_probe(struct pci_dev *pdev, const struct

pci_device_id *id)

      hba->cardtype = (unsigned int) id->driver_data;
      ci = &stex_card_info[hba->cardtype];
+    switch (id->subdevice) {
+    case 0x4221:
+    case 0x4222:
+    case 0x4223:
+    case 0x4224:
+    case 0x4225:
+    case 0x4226:
+    case 0x4227:
+    case 0x4261:
+    case 0x4262:
+    case 0x4263:
+    case 0x4264:
+    case 0x4265:

+ break;
+ default:
+ if (hba->cardtype == st_yel)
+ hba->supports_pm = 1;
+ }
+

      sts_offset = scratch_offset = (ci->rq_count+1) * ci->rq_size;
      if (hba->cardtype == st_yel)
          sts_offset += (ci->sts_count+1) * sizeof(u32);
#5 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Charles" == Charles Chiou <[email protected]> writes:

Charles,

Charles> Pegasus is a high performace hardware RAID solution designed to Charles> unleash the raw power of Thunderbolt technology.

Please address Oliver's concerns about power management.

Also, I was going to merge the first two patches in the series but your mailer mangled them and they did not apply. Please use git send-email to submit patches.

Thank you!

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering