summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sym53c8xx_2/sym_glue.c
diff options
context:
space:
mode:
authorKai Makisara2007-10-05 21:54:58 +0200
committerJames Bottomley2007-10-23 21:07:45 +0200
commit34996acc5571e64be7f3dba3adced1f7221a8d07 (patch)
tree10e8394e0d356c40e5c5b2694a14985a13878c4d /drivers/scsi/sym53c8xx_2/sym_glue.c
parent[SCSI] qla1280: eliminate wasted space in request and response ring (diff)
downloadkernel-qcow2-linux-34996acc5571e64be7f3dba3adced1f7221a8d07.tar.gz
kernel-qcow2-linux-34996acc5571e64be7f3dba3adced1f7221a8d07.tar.xz
kernel-qcow2-linux-34996acc5571e64be7f3dba3adced1f7221a8d07.zip
[SCSI] sym53c8xx: Work around 53c896 erratum
Prevent DMA transfers from crossing the 16MB limit for early 53c896 chips. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/sym53c8xx_2/sym_glue.c')
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
index db03c4c8ec1e..44169390c467 100644
--- a/drivers/scsi/sym53c8xx_2/sym_glue.c
+++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
@@ -1531,6 +1531,10 @@ static struct Scsi_Host * __devinit sym_attach(struct scsi_host_template *tpnt,
BUG_ON(sym2_transport_template == NULL);
instance->transportt = sym2_transport_template;
+ /* 53c896 rev 1 errata: DMA may not cross 16MB boundary */
+ if (pdev->device == PCI_DEVICE_ID_NCR_53C896 && np->revision_id < 2)
+ instance->dma_boundary = 0xFFFFFF;
+
spin_unlock_irqrestore(instance->host_lock, flags);
return instance;