Linux SCSI subsystem development
 help / color / mirror / Atom feed
* [PATCH] Optionally disable QAS in MPT Fusion spi driver
@ 2006-06-02 21:14 Andrew Patterson
  2006-06-15 15:12 ` Christoph Hellwig
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Patterson @ 2006-06-02 21:14 UTC (permalink / raw)
  To: linux-scsi; +Cc: Moore, Eric Dean

Certain drives report that they support QAS, but it some cases can have
trouble with it causing bus resets.  This patch optionally disables QAS
for the MPT Fusion spi driver.  QAS is disabled using the mpt_qas module
parameter.

Andrew

Signed-off-by: Andrew Patterson <andrew.patterson@hp.com>

-- 
Andrew Patterson
Hewlett-Packard

Index: scsi-misc-2.6/drivers/message/fusion/mptscsih.h
===================================================================
--- scsi-misc-2.6.orig/drivers/message/fusion/mptscsih.h	2006-06-02 12:29:31.000000000 -0600
+++ scsi-misc-2.6/drivers/message/fusion/mptscsih.h	2006-06-02 14:32:07.000000000 -0600
@@ -66,6 +66,7 @@
 #define MPTSCSIH_DOMAIN_VALIDATION      1
 #define MPTSCSIH_MAX_WIDTH              1
 #define MPTSCSIH_MIN_SYNC               0x08
+#define MPTSCSIH_QAS                    1
 #define MPTSCSIH_SAF_TE                 0
 #define MPTSCSIH_PT_CLEAR               0
 
Index: scsi-misc-2.6/drivers/message/fusion/mptspi.c
===================================================================
--- scsi-misc-2.6.orig/drivers/message/fusion/mptspi.c	2006-06-02 12:29:31.000000000 -0600
+++ scsi-misc-2.6/drivers/message/fusion/mptspi.c	2006-06-02 14:32:07.000000000 -0600
@@ -87,6 +87,10 @@ static int mpt_pq_filter = 0;
 module_param(mpt_pq_filter, int, 0);
 MODULE_PARM_DESC(mpt_pq_filter, " Enable peripheral qualifier filter: enable=1  (default=0)");
 
+static int mpt_qas = MPTSCSIH_QAS;
+module_param(mpt_qas, int, 1);
+MODULE_PARM_DESC(mpt_qas, " Quick Arbitration and Selection (QAS) enabled=1, disabled=0 (default=MPTSCSIH_QAS=1)");
+
 static void mptspi_write_offset(struct scsi_target *, int);
 static void mptspi_write_width(struct scsi_target *, int);
 static int mptspi_write_spi_device_pg1(struct scsi_target *,
@@ -607,7 +611,8 @@ static void mptspi_write_qas(struct scsi
 	VirtTarget *vtarget = starget->hostdata;
 	u32 nego;
 
-	if ((vtarget->negoFlags & MPT_TARGET_NO_NEGO_QAS) ||
+	if (!mpt_qas ||
+	    (vtarget->negoFlags & MPT_TARGET_NO_NEGO_QAS) ||
 	    hd->ioc->spi_data.noQas)
 		spi_qas(starget) = 0;
 	else
@@ -989,7 +994,7 @@ mptspi_probe(struct pci_dev *pdev, const
 		ioc->name,
 		mpt_saf_te,
 		mpt_pq_filter));
-	ioc->spi_data.noQas = 0;
+	ioc->spi_data.noQas = mpt_qas ? 0 : MPT_TARGET_NO_NEGO_QAS;
 
 	init_waitqueue_head(&hd->scandv_waitq);
 	hd->scandv_wait_done = 0;



^ permalink raw reply	[flat|nested] 7+ messages in thread
* RE: [PATCH] Optionally disable QAS in MPT Fusion spi driver
@ 2006-06-14 23:16 Moore, Eric
  0 siblings, 0 replies; 7+ messages in thread
From: Moore, Eric @ 2006-06-14 23:16 UTC (permalink / raw)
  To: Andrew Patterson, linux-scsi, James.Bottomley

On Friday, June 02, 2006 3:14 PM, Andrew Patterson wrote: 
> 
> Certain drives report that they support QAS, but it some 
> cases can have
> trouble with it causing bus resets.  This patch optionally 
> disables QAS
> for the MPT Fusion spi driver.  QAS is disabled using the 
> mpt_qas module
> parameter.
> 
> Andrew
> 
> Signed-off-by: Andrew Patterson <andrew.patterson@hp.com>
> 

ACK, James pls apply to your scsi-misc tree.   I validated
the patch here in the labs.

Sorry for the delay. I've been mostly out of the office the
past three weeks.

Eric Moore
LSI Logic

^ permalink raw reply	[flat|nested] 7+ messages in thread
* RE: [PATCH] Optionally disable QAS in MPT Fusion spi driver
@ 2006-06-15 15:31 Moore, Eric
  2006-06-15 16:21 ` James Bottomley
  0 siblings, 1 reply; 7+ messages in thread
From: Moore, Eric @ 2006-06-15 15:31 UTC (permalink / raw)
  To: Christoph Hellwig, Andrew Patterson; +Cc: linux-scsi

On Thursday, June 15, 2006 9:12 AM, Christoph Hellwig wrote: 
> 
> On Fri, Jun 02, 2006 at 03:14:25PM -0600, Andrew Patterson wrote:
> > Certain drives report that they support QAS, but it some 
> cases can have
> > trouble with it causing bus resets.  This patch optionally 
> disables QAS
> > for the MPT Fusion spi driver.  QAS is disabled using the 
> mpt_qas module
> > parameter.
> 
> I'm not very happy about making this a module paramater in 
> the LLDD as that
> can't scale.  This kind of stuff needs to be done in the 
> generic DV code.
> 

We had discussed this with James Bottomley at Storage Summit,
Sorry I wanted to run this by you as well, but forgot. 
The QAS enable/disable feature is per device in spi transport
layer, not per host, which is what we need.

James said it was okay for having this done in lld, instead
of transport.  I'm sure both me and Andrew would be happy 
the same if the transport handled this.  
Is that possible for you to look into this, or James?

Eric Moore

^ permalink raw reply	[flat|nested] 7+ messages in thread
* RE: [PATCH] Optionally disable QAS in MPT Fusion spi driver
@ 2006-06-15 18:21 Moore, Eric
  0 siblings, 0 replies; 7+ messages in thread
From: Moore, Eric @ 2006-06-15 18:21 UTC (permalink / raw)
  To: Andrew Patterson, James Bottomley; +Cc: Christoph Hellwig, linux-scsi

On Thursday, June 15, 2006 11:28 AM, Andrew Patterson wrote:  

> 
> We can only reproduce this problem at a specific site which 
> we no longer
> have access to.  At that site, we had problems with both HP 
> OEM'd Maxtor
> and Fujitsu drives.  I also don't have any other u320 cards 
> to try this
> on other than Fusion.  Eric? Have you been able to reproduce this
> problem on Linux at LSI?
> 

No I haven't.  


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

end of thread, other threads:[~2006-06-15 18:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-02 21:14 [PATCH] Optionally disable QAS in MPT Fusion spi driver Andrew Patterson
2006-06-15 15:12 ` Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2006-06-14 23:16 Moore, Eric
2006-06-15 15:31 Moore, Eric
2006-06-15 16:21 ` James Bottomley
2006-06-15 17:28   ` Andrew Patterson
2006-06-15 18:21 Moore, Eric

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