[SCSI] hpsa: make tag macros into functions
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Thu, 4 Feb 2010 14:42:24 +0000 (08:42 -0600)
committerJames Bottomley <James.Bottomley@suse.de>
Wed, 17 Feb 2010 19:19:25 +0000 (13:19 -0600)
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/hpsa.c
drivers/scsi/hpsa.h

index ba3deaddf150e4c4ee6eaeafa7aba1af6efa2a47..82987e1850a16f16e22c96ef53608c0b03d9097b 100644 (file)
@@ -2723,6 +2723,24 @@ static inline void finish_cmd(struct CommandList *c, u32 raw_tag)
                complete(c->waiting);
 }
 
+static inline u32 hpsa_tag_contains_index(u32 tag)
+{
+#define DIRECT_LOOKUP_BIT 0x04
+       return tag & DIRECT_LOOKUP_BIT;
+}
+
+static inline u32 hpsa_tag_to_index(u32 tag)
+{
+#define DIRECT_LOOKUP_SHIFT 3
+       return tag >> DIRECT_LOOKUP_SHIFT;
+}
+
+static inline u32 hpsa_tag_discard_error_bits(u32 tag)
+{
+#define HPSA_ERROR_BITS 0x03
+       return tag & ~HPSA_ERROR_BITS;
+}
+
 static irqreturn_t do_hpsa_intr(int irq, void *dev_id)
 {
        struct ctlr_info *h = dev_id;
@@ -2736,15 +2754,15 @@ static irqreturn_t do_hpsa_intr(int irq, void *dev_id)
        spin_lock_irqsave(&h->lock, flags);
        while (interrupt_pending(h)) {
                while ((raw_tag = get_next_completion(h)) != FIFO_EMPTY) {
-                       if (likely(HPSA_TAG_CONTAINS_INDEX(raw_tag))) {
-                               tag_index = HPSA_TAG_TO_INDEX(raw_tag);
+                       if (likely(hpsa_tag_contains_index(raw_tag))) {
+                               tag_index = hpsa_tag_to_index(raw_tag);
                                if (bad_tag(h, tag_index, raw_tag))
                                        return IRQ_HANDLED;
                                c = h->cmd_pool + tag_index;
                                finish_cmd(c, raw_tag);
                                continue;
                        }
-                       tag = HPSA_TAG_DISCARD_ERROR_BITS(raw_tag);
+                       tag = hpsa_tag_discard_error_bits(raw_tag);
                        c = NULL;
                        hlist_for_each_entry(c, tmp, &h->cmpQ, list) {
                                if (c->busaddr == tag) {
@@ -2824,7 +2842,7 @@ static __devinit int hpsa_message(struct pci_dev *pdev, unsigned char opcode,
 
        for (i = 0; i < HPSA_MSG_SEND_RETRY_LIMIT; i++) {
                tag = readl(vaddr + SA5_REPLY_PORT_OFFSET);
-               if (HPSA_TAG_DISCARD_ERROR_BITS(tag) == paddr32)
+               if (hpsa_tag_discard_error_bits(tag) == paddr32)
                        break;
                msleep(HPSA_MSG_SEND_RETRY_INTERVAL_MSECS);
        }
index 194968e861c72699b6adf29ee76d963a3723f18c..da8dd3e619cbcabbbc9e07ab44103221fcb97d67 100644 (file)
@@ -164,9 +164,6 @@ struct ctlr_info {
 #define HPSA_FIRMWARE_READY    0xffff0000 /* value in scratchpad register */
 
 #define HPSA_ERROR_BIT         0x02
-#define HPSA_TAG_CONTAINS_INDEX(tag) ((tag) & 0x04)
-#define HPSA_TAG_TO_INDEX(tag) ((tag) >> 3)
-#define HPSA_TAG_DISCARD_ERROR_BITS(tag) ((tag) & ~3)
 
 #define HPSA_INTR_ON   1
 #define HPSA_INTR_OFF  0