diff options
author | Stephen M. Cameron <scameron@beardog.cce.hp.com> | 2010-07-19 14:45:41 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-08-07 12:52:11 -0400 |
commit | 322e304c4d71b79b3950ca560db4868cc3e04ee6 (patch) | |
tree | 6e49b3739233490a5023b9d99814b047677e9375 /drivers/block/cciss.c | |
parent | 501b92cd6b394ba56bb978fd55606b5639b4d3fb (diff) |
cciss: factor out cciss_enable_scsi_prefetch()
cciss: factor out cciss_enable_scsi_prefetch()
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/block/cciss.c')
-rw-r--r-- | drivers/block/cciss.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 9a4869572a0b..b4264bcda618 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c | |||
@@ -4108,6 +4108,18 @@ static inline bool CISS_signature_present(ctlr_info_t *h) | |||
4108 | return true; | 4108 | return true; |
4109 | } | 4109 | } |
4110 | 4110 | ||
4111 | /* Need to enable prefetch in the SCSI core for 6400 in x86 */ | ||
4112 | static inline void cciss_enable_scsi_prefetch(ctlr_info_t *h) | ||
4113 | { | ||
4114 | #ifdef CONFIG_X86 | ||
4115 | u32 prefetch; | ||
4116 | |||
4117 | prefetch = readl(&(h->cfgtable->SCSI_Prefetch)); | ||
4118 | prefetch |= 0x100; | ||
4119 | writel(prefetch, &(h->cfgtable->SCSI_Prefetch)); | ||
4120 | #endif | ||
4121 | } | ||
4122 | |||
4111 | static int __devinit cciss_pci_init(ctlr_info_t *c) | 4123 | static int __devinit cciss_pci_init(ctlr_info_t *c) |
4112 | { | 4124 | { |
4113 | int prod_index, err; | 4125 | int prod_index, err; |
@@ -4169,16 +4181,7 @@ static int __devinit cciss_pci_init(ctlr_info_t *c) | |||
4169 | err = -ENODEV; | 4181 | err = -ENODEV; |
4170 | goto err_out_free_res; | 4182 | goto err_out_free_res; |
4171 | } | 4183 | } |
4172 | #ifdef CONFIG_X86 | 4184 | cciss_enable_scsi_prefetch(c); |
4173 | { | ||
4174 | /* Need to enable prefetch in the SCSI core for 6400 in x86 */ | ||
4175 | __u32 prefetch; | ||
4176 | prefetch = readl(&(c->cfgtable->SCSI_Prefetch)); | ||
4177 | prefetch |= 0x100; | ||
4178 | writel(prefetch, &(c->cfgtable->SCSI_Prefetch)); | ||
4179 | } | ||
4180 | #endif | ||
4181 | |||
4182 | /* Disabling DMA prefetch and refetch for the P600. | 4185 | /* Disabling DMA prefetch and refetch for the P600. |
4183 | * An ASIC bug may result in accesses to invalid memory addresses. | 4186 | * An ASIC bug may result in accesses to invalid memory addresses. |
4184 | * We've disabled prefetch for some time now. Testing with XEN | 4187 | * We've disabled prefetch for some time now. Testing with XEN |