firewire: Reduce some redundant register definitions.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index ec47ae9..02b2b69 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -55,6 +55,11 @@
 	__le16 transfer_status;
 } __attribute__((aligned(16)));
 
+#define control_set(regs)	(regs)
+#define control_clear(regs)	((regs) + 4)
+#define command_ptr(regs)	((regs) + 12)
+#define context_match(regs)	((regs) + 16)
+
 struct ar_buffer {
 	struct descriptor descriptor;
 	struct ar_buffer *next;
@@ -66,9 +71,7 @@
 	struct ar_buffer *current_buffer;
 	struct ar_buffer *last_buffer;
 	void *pointer;
-	u32 command_ptr;
-	u32 control_set;
-	u32 control_clear;
+	u32 regs;
 	struct tasklet_struct tasklet;
 };
 
@@ -85,9 +88,7 @@
 		struct descriptor last;
 	} d;
 
-	u32 command_ptr;
-	u32 control_set;
-	u32 control_clear;
+	u32 regs;
 
 	struct tasklet_struct tasklet;
 };
@@ -102,10 +103,7 @@
 struct iso_context {
 	struct fw_iso_context base;
 	struct tasklet_struct tasklet;
-	u32 control_set;
-	u32 control_clear;
-	u32 command_ptr;
-	u32 context_match;
+	u32 regs;
 
 	struct descriptor *buffer;
 	dma_addr_t buffer_bus;
@@ -248,7 +246,7 @@
 	ctx->last_buffer->next = ab;
 	ctx->last_buffer = ab;
 
-	reg_write(ctx->ohci, ctx->control_set, CONTEXT_WAKE);
+	reg_write(ctx->ohci, control_set(ctx->regs), CONTEXT_WAKE);
 	flush_writes(ctx->ohci);
 
 	return 0;
@@ -375,15 +373,13 @@
 }
 
 static int
-ar_context_init(struct ar_context *ctx, struct fw_ohci *ohci, u32 control_set)
+ar_context_init(struct ar_context *ctx, struct fw_ohci *ohci, u32 regs)
 {
 	struct ar_buffer ab;
 
-	ctx->control_set   = control_set;
-	ctx->control_clear = control_set + 4;
-	ctx->command_ptr   = control_set + 12;
-	ctx->ohci          = ohci;
-	ctx->last_buffer   = &ab;
+	ctx->regs        = regs;
+	ctx->ohci        = ohci;
+	ctx->last_buffer = &ab;
 	tasklet_init(&ctx->tasklet, ar_context_tasklet, (unsigned long)ctx);
 
 	ar_context_add_page(ctx);
@@ -391,8 +387,8 @@
 	ctx->current_buffer = ab.next;
 	ctx->pointer = ctx->current_buffer->data;
 
-	reg_write(ctx->ohci, ctx->command_ptr, ab.descriptor.branch_address);
-	reg_write(ctx->ohci, ctx->control_set, CONTEXT_RUN);
+	reg_write(ctx->ohci, command_ptr(ctx->regs), ab.descriptor.branch_address);
+	reg_write(ctx->ohci, control_set(ctx->regs), CONTEXT_RUN);
 	flush_writes(ctx->ohci);
 
 	return 0;
@@ -489,9 +485,9 @@
 
 	/* FIXME: Document how the locking works. */
 	if (ohci->generation == packet->generation) {
-		reg_write(ctx->ohci, ctx->command_ptr,
+		reg_write(ctx->ohci, command_ptr(ctx->regs),
 			  ctx->descriptor_bus | z);
-		reg_write(ctx->ohci, ctx->control_set,
+		reg_write(ctx->ohci, control_set(ctx->regs),
 			  CONTEXT_RUN | CONTEXT_WAKE);
 	} else {
 		/* We dont return error codes from this function; all
@@ -505,9 +501,9 @@
 {
 	u32 reg;
 
-	reg_write(ctx->ohci, ctx->control_clear, CONTEXT_RUN);
+	reg_write(ctx->ohci, control_clear(ctx->regs), CONTEXT_RUN);
 
-	reg = reg_read(ctx->ohci, ctx->control_set);
+	reg = reg_read(ctx->ohci, control_set(ctx->regs));
 	if (reg & CONTEXT_ACTIVE)
 		fw_notify("Tried to stop context, but it is still active "
 			  "(0x%08x).\n", reg);
@@ -578,7 +574,7 @@
 }
 
 static int
-at_context_init(struct at_context *ctx, struct fw_ohci *ohci, u32 control_set)
+at_context_init(struct at_context *ctx, struct fw_ohci *ohci, u32 regs)
 {
 	INIT_LIST_HEAD(&ctx->list);
 
@@ -588,10 +584,8 @@
 	if (ctx->descriptor_bus == 0)
 		return -ENOMEM;
 
-	ctx->control_set   = control_set;
-	ctx->control_clear = control_set + 4;
-	ctx->command_ptr   = control_set + 12;
-	ctx->ohci          = ohci;
+	ctx->regs = regs;
+	ctx->ohci = ohci;
 
 	tasklet_init(&ctx->tasklet, at_context_tasklet, (unsigned long)ctx);