public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [V2 PATCH 1/4] scsi:stex.c Support to Pegasus series.
@ 2014-11-12  3:26 Charles Chiou
  2014-11-12 10:43 ` Christoph Hellwig
  0 siblings, 1 reply; 3+ messages in thread
From: Charles Chiou @ 2014-11-12  3:26 UTC (permalink / raw)
  To: JBottomley, linux-scsi, linux-kernel


 From 5fdb4203c09d6896e7b71a8f839e46e84234eeb9 Mon Sep 17 00:00:00 2001
From: Charles Chiou <charles.chiou@tw.promise.com>
Date: Wed, 5 Nov 2014 14:18:43 +0800
Subject: [PATCH 1/4] scsi:stex.c Support to Pegasus series.

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

I add code to distinct SuperTrack and Pegasus series by subID.
It's needed for backward compatibility.

Change the driver version.
---
  drivers/scsi/stex.c | 24 +++++++++++++++++++-----
  1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 1aa4bef..f52f1de 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -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  yellowstone;
  };

  struct st_card_info {
@@ -1546,6 +1547,7 @@ static int stex_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
  	struct Scsi_Host *host;
  	const struct st_card_info *ci = NULL;
  	u32 sts_offset, cp_offset, scratch_offset;
+	u32 subID;
  	int err;

  	err = pci_enable_device(pdev);
@@ -1590,6 +1592,18 @@ 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];
+	subID = id->subdevice;
+	if ((subID == 0x4221 || subID == 0x4222 ||
+	    subID == 0x4223 || subID == 0x4224 ||
+	    subID == 0x4225 || subID == 0x4226 ||
+	    subID == 0x4227 || subID == 0x4261 ||
+	    subID == 0x4262 || subID == 0x4263 ||
+	    subID == 0x4264 || subID == 0x4265) &&
+	    (hba->cardtype == st_yel)) {
+		hba->yellowstone = 1;
+	} else if (hba->cardtype == st_yel) {
+		hba->yellowstone = 0;
+	}
  	sts_offset = scratch_offset = (ci->rq_count+1) * ci->rq_size;
  	if (hba->cardtype == st_yel)
  		sts_offset += (ci->sts_count+1) * sizeof(u32);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [V2 PATCH 1/4] scsi:stex.c Support to Pegasus series.
  2014-11-12  3:26 [V2 PATCH 1/4] scsi:stex.c Support to Pegasus series Charles Chiou
@ 2014-11-12 10:43 ` Christoph Hellwig
  2014-11-13 10:00   ` Charles Chiou
  0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2014-11-12 10:43 UTC (permalink / raw)
  To: Charles Chiou; +Cc: JBottomley, linux-scsi, linux-kernel

> +	u8  yellowstone;

Calling this flag yellowstone seems a bit confusing as there already
is a st_yel card type, and this only seems a subset of those.  Maybe
a ->support_pm flag or similar would be useful?

> +	u32 subID;

We don't use camelCaps, but I don't think you even need this variable at
all..

> 
>  	hba->cardtype = (unsigned int) id->driver_data;
>  	ci = &stex_card_info[hba->cardtype];
> +	subID = id->subdevice;
> +	if ((subID == 0x4221 || subID == 0x4222 ||
> +	    subID == 0x4223 || subID == 0x4224 ||
> +	    subID == 0x4225 || subID == 0x4226 ||
> +	    subID == 0x4227 || subID == 0x4261 ||
> +	    subID == 0x4262 || subID == 0x4263 ||
> +	    subID == 0x4264 || subID == 0x4265) &&
> +	    (hba->cardtype == st_yel)) {
> +		hba->yellowstone = 1;
> +	} else if (hba->cardtype == st_yel) {
> +		hba->yellowstone = 0;
> +	}

Just write this as

	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:
		if (hba->cardtype == st_yel) {
			hba->supports_pm = 1;
			break;
		}
	default:
		hba->supports_pm = 0;
	}


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [V2 PATCH 1/4] scsi:stex.c Support to Pegasus series.
  2014-11-12 10:43 ` Christoph Hellwig
@ 2014-11-13 10:00   ` Charles Chiou
  0 siblings, 0 replies; 3+ messages in thread
From: Charles Chiou @ 2014-11-13 10:00 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: JBottomley, linux-scsi, linux-kernel



On 11/12/2014 06:43 PM, Christoph Hellwig wrote:
>> +	u8  yellowstone;
>
> Calling this flag yellowstone seems a bit confusing as there already
> is a st_yel card type, and this only seems a subset of those.  Maybe
> a ->support_pm flag or similar would be useful?
>

OK, I'll modify it.

>> +	u32 subID;
>
> We don't use camelCaps, but I don't think you even need this variable at
> all..
>
>>
>>   	hba->cardtype = (unsigned int) id->driver_data;
>>   	ci = &stex_card_info[hba->cardtype];
>> +	subID = id->subdevice;
>> +	if ((subID == 0x4221 || subID == 0x4222 ||
>> +	    subID == 0x4223 || subID == 0x4224 ||
>> +	    subID == 0x4225 || subID == 0x4226 ||
>> +	    subID == 0x4227 || subID == 0x4261 ||
>> +	    subID == 0x4262 || subID == 0x4263 ||
>> +	    subID == 0x4264 || subID == 0x4265) &&
>> +	    (hba->cardtype == st_yel)) {
>> +		hba->yellowstone = 1;
>> +	} else if (hba->cardtype == st_yel) {
>> +		hba->yellowstone = 0;
>> +	}
>
> Just write this as
>
> 	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:
> 		if (hba->cardtype == st_yel) {
> 			hba->supports_pm = 1;
> 			break;
> 		}
> 	default:
> 		hba->supports_pm = 0;
> 	}
>

OK, I'll correct this. Thank you!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-13 10:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-12  3:26 [V2 PATCH 1/4] scsi:stex.c Support to Pegasus series Charles Chiou
2014-11-12 10:43 ` Christoph Hellwig
2014-11-13 10:00   ` Charles Chiou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox