X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fblock%2Fcciss.c;h=a17223c43aebf9404f2712c764aa7a065125c286;hb=f92e2f5f889803306e50c06e17ee330403e91b8d;hp=4899ab27f781920d31a20bfe88f0724eae92cd41;hpb=de9239167158c0210c5b9a709d67cea1b6f8ae56;p=linux-2.6-omap-h63xx.git diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 4899ab27f78..a17223c43ae 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -3003,6 +3003,17 @@ static int cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev) } #endif + /* Disabling DMA prefetch for the P600 + * An ASIC bug may result in a prefetch beyond + * physical memory. + */ + if(board_id == 0x3225103C) { + __u32 dma_prefetch; + dma_prefetch = readl(c->vaddr + I2O_DMA1_CFG); + dma_prefetch |= 0x8000; + writel(dma_prefetch, c->vaddr + I2O_DMA1_CFG); + } + #ifdef CCISS_DEBUG printk("Trying to put board into Simple mode\n"); #endif /* CCISS_DEBUG */