hpsa: avoid unnecessary readl on every command submission
for controllers which support either of the ioaccel transport methods. Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Reviewed-by: Mike Miller <michael.miller@canonical.com> Reviewed-by: Joe Handzik <joseph.t.handzik@hp.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
committed by
Christoph Hellwig
parent
094963dad8
commit
b3a52e791e
@@ -346,6 +346,12 @@ static void SA5_submit_command(struct ctlr_info *h,
|
||||
(void) readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
|
||||
}
|
||||
|
||||
static void SA5_submit_command_no_read(struct ctlr_info *h,
|
||||
struct CommandList *c)
|
||||
{
|
||||
writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET);
|
||||
}
|
||||
|
||||
static void SA5_submit_command_ioaccel2(struct ctlr_info *h,
|
||||
struct CommandList *c)
|
||||
{
|
||||
@@ -353,7 +359,6 @@ static void SA5_submit_command_ioaccel2(struct ctlr_info *h,
|
||||
writel(c->busaddr, h->vaddr + IOACCEL2_INBOUND_POSTQ_32);
|
||||
else
|
||||
writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET);
|
||||
(void) readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -564,6 +569,14 @@ static struct access_method SA5_performant_access = {
|
||||
SA5_performant_completed,
|
||||
};
|
||||
|
||||
static struct access_method SA5_performant_access_no_read = {
|
||||
SA5_submit_command_no_read,
|
||||
SA5_performant_intr_mask,
|
||||
SA5_fifo_full,
|
||||
SA5_performant_intr_pending,
|
||||
SA5_performant_completed,
|
||||
};
|
||||
|
||||
struct board_type {
|
||||
u32 board_id;
|
||||
char *product_name;
|
||||
|
Reference in New Issue
Block a user