aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/isci.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2011-06-09 19:04:28 -0400
committerDan Williams <dan.j.williams@intel.com>2011-07-03 07:04:51 -0400
commit994a9303d33f8238d57f58c26067b6d4ac9af222 (patch)
tree8a7a1f680761ee3cfb2a258c2784194eea69b703 /drivers/scsi/isci/isci.h
parentdd047c8e2bca22856050dbe0378a37cf44eecc97 (diff)
isci: cleanup/optimize queue increment macros
Every single i/o or event completion incurs a test and branch to see if the cycle bit changed. For power-of-2 queue sizes the cycle bit can be read directly from the rollover of the queue pointer. Likely premature optimization, but the hidden if() and hidden assignments / side-effects in the macros were already asking to be cleaned up. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/isci.h')
-rw-r--r--drivers/scsi/isci/isci.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/isci/isci.h b/drivers/scsi/isci/isci.h
index 81bade421b96..207328369edd 100644
--- a/drivers/scsi/isci/isci.h
+++ b/drivers/scsi/isci/isci.h
@@ -90,7 +90,8 @@ enum sci_controller_mode {
90#define SCI_MAX_DOMAINS SCI_MAX_PORTS 90#define SCI_MAX_DOMAINS SCI_MAX_PORTS
91 91
92#define SCU_MAX_CRITICAL_NOTIFICATIONS (384) 92#define SCU_MAX_CRITICAL_NOTIFICATIONS (384)
93#define SCU_MAX_EVENTS (128) 93#define SCU_MAX_EVENTS_SHIFT (7)
94#define SCU_MAX_EVENTS (1 << SCU_MAX_EVENTS_SHIFT)
94#define SCU_MAX_UNSOLICITED_FRAMES (128) 95#define SCU_MAX_UNSOLICITED_FRAMES (128)
95#define SCU_MAX_COMPLETION_QUEUE_SCRATCH (128) 96#define SCU_MAX_COMPLETION_QUEUE_SCRATCH (128)
96#define SCU_MAX_COMPLETION_QUEUE_ENTRIES (SCU_MAX_CRITICAL_NOTIFICATIONS \ 97#define SCU_MAX_COMPLETION_QUEUE_ENTRIES (SCU_MAX_CRITICAL_NOTIFICATIONS \
@@ -98,6 +99,7 @@ enum sci_controller_mode {
98 + SCU_MAX_UNSOLICITED_FRAMES \ 99 + SCU_MAX_UNSOLICITED_FRAMES \
99 + SCI_MAX_IO_REQUESTS \ 100 + SCI_MAX_IO_REQUESTS \
100 + SCU_MAX_COMPLETION_QUEUE_SCRATCH) 101 + SCU_MAX_COMPLETION_QUEUE_SCRATCH)
102#define SCU_MAX_COMPLETION_QUEUE_SHIFT (ilog2(SCU_MAX_COMPLETION_QUEUE_ENTRIES))
101 103
102#define SCU_ABSOLUTE_MAX_UNSOLICITED_FRAMES (4096) 104#define SCU_ABSOLUTE_MAX_UNSOLICITED_FRAMES (4096)
103#define SCU_UNSOLICITED_FRAME_BUFFER_SIZE (1024) 105#define SCU_UNSOLICITED_FRAME_BUFFER_SIZE (1024)