From 7d4c7a95218a30b8048f0cc86f5e4be8775bc7c2 Mon Sep 17 00:00:00 2001 From: Dave Jiang Date: Wed, 5 Sep 2012 16:35:44 -0700 Subject: [PATCH] --- yaml --- r: 328905 b: refs/heads/master c: 44ef2bf72df34ef2628dc3475b4507ab984d6744 h: refs/heads/master i: 328903: eb840e2a1262aa1e756d87d47d9133e663e39765 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/isci/host.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 88a94b6c20d1..c982e2477b45 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 54b46677757ff8d6c282305fc7710f466b63d6dc +refs/heads/master: 44ef2bf72df34ef2628dc3475b4507ab984d6744 diff --git a/trunk/drivers/scsi/isci/host.c b/trunk/drivers/scsi/isci/host.c index d4daa0f24595..ab026a50ace3 100644 --- a/trunk/drivers/scsi/isci/host.c +++ b/trunk/drivers/scsi/isci/host.c @@ -1122,10 +1122,16 @@ void isci_host_completion_routine(unsigned long data) sci_controller_completion_handler(ihost); spin_unlock_irq(&ihost->scic_lock); - /* the coalesence timeout doubles at each encoding step, so + /* + * we subtract SCI_MAX_PORTS to account for the number of dummy TCs + * issued for hardware issue workaround + */ + active = isci_tci_active(ihost) - SCI_MAX_PORTS; + + /* + * the coalesence timeout doubles at each encoding step, so * update it based on the ilog2 value of the outstanding requests */ - active = isci_tci_active(ihost); writel(SMU_ICC_GEN_VAL(NUMBER, active) | SMU_ICC_GEN_VAL(TIMER, ISCI_COALESCE_BASE + ilog2(active)), &ihost->smu_registers->interrupt_coalesce_control);