diff options
author | Scott Teel <scott.teel@hp.com> | 2014-02-18 14:56:34 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2014-03-15 13:19:06 -0400 |
commit | c349775e4c53aade9942ef1010b23f84dbaf9ac9 (patch) | |
tree | 475aca5173a61cbfb9f630890bdde91ac281bb75 /drivers/scsi/hpsa.h | |
parent | b9af4937e6f5b55b6ffb2a92ec580e79e1401825 (diff) |
[SCSI] hpsa: get ioaccel mode 2 i/o working
Signed-off-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Joe Handzik <Joseph.T.Handzik@hp.com>
Signed-off-by: Mike Miller <michael.miller@canonical.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/hpsa.h')
-rw-r--r-- | drivers/scsi/hpsa.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h index 0e14e9bf735a..45bb1ea6835e 100644 --- a/drivers/scsi/hpsa.h +++ b/drivers/scsi/hpsa.h | |||
@@ -282,6 +282,18 @@ static void SA5_submit_command(struct ctlr_info *h, | |||
282 | (void) readl(h->vaddr + SA5_SCRATCHPAD_OFFSET); | 282 | (void) readl(h->vaddr + SA5_SCRATCHPAD_OFFSET); |
283 | } | 283 | } |
284 | 284 | ||
285 | static void SA5_submit_command_ioaccel2(struct ctlr_info *h, | ||
286 | struct CommandList *c) | ||
287 | { | ||
288 | dev_dbg(&h->pdev->dev, "Sending %x, tag = %x\n", c->busaddr, | ||
289 | c->Header.Tag.lower); | ||
290 | if (c->cmd_type == CMD_IOACCEL2) | ||
291 | writel(c->busaddr, h->vaddr + IOACCEL2_INBOUND_POSTQ_32); | ||
292 | else | ||
293 | writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); | ||
294 | (void) readl(h->vaddr + SA5_SCRATCHPAD_OFFSET); | ||
295 | } | ||
296 | |||
285 | /* | 297 | /* |
286 | * This card is the opposite of the other cards. | 298 | * This card is the opposite of the other cards. |
287 | * 0 turns interrupts on... | 299 | * 0 turns interrupts on... |
@@ -475,6 +487,14 @@ static struct access_method SA5_ioaccel_mode1_access = { | |||
475 | SA5_ioaccel_mode1_completed, | 487 | SA5_ioaccel_mode1_completed, |
476 | }; | 488 | }; |
477 | 489 | ||
490 | static struct access_method SA5_ioaccel_mode2_access = { | ||
491 | SA5_submit_command_ioaccel2, | ||
492 | SA5_performant_intr_mask, | ||
493 | SA5_fifo_full, | ||
494 | SA5_performant_intr_pending, | ||
495 | SA5_performant_completed, | ||
496 | }; | ||
497 | |||
478 | static struct access_method SA5_performant_access = { | 498 | static struct access_method SA5_performant_access = { |
479 | SA5_submit_command, | 499 | SA5_submit_command, |
480 | SA5_performant_intr_mask, | 500 | SA5_performant_intr_mask, |