diff options
author | Dan Williams <dan.j.williams@intel.com> | 2011-06-09 19:04:28 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 07:04:51 -0400 |
commit | 994a9303d33f8238d57f58c26067b6d4ac9af222 (patch) | |
tree | 8a7a1f680761ee3cfb2a258c2784194eea69b703 /drivers/scsi/isci/isci.h | |
parent | dd047c8e2bca22856050dbe0378a37cf44eecc97 (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.h | 4 |
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) |