aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/hpsa.h
diff options
context:
space:
mode:
authorScott Teel <scott.teel@hp.com>2014-02-18 14:56:34 -0500
committerJames Bottomley <JBottomley@Parallels.com>2014-03-15 13:19:06 -0400
commitc349775e4c53aade9942ef1010b23f84dbaf9ac9 (patch)
tree475aca5173a61cbfb9f630890bdde91ac281bb75 /drivers/scsi/hpsa.h
parentb9af4937e6f5b55b6ffb2a92ec580e79e1401825 (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.h20
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
285static 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
490static 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
478static struct access_method SA5_performant_access = { 498static struct access_method SA5_performant_access = {
479 SA5_submit_command, 499 SA5_submit_command,
480 SA5_performant_intr_mask, 500 SA5_performant_intr_mask,