From 90fcc8987390bffd79c6fd16aa59cc6ef549efcb Mon Sep 17 00:00:00 2001
From: Clemens Ladisch <clemens@ladisch.de>
Date: Sun, 18 Mar 2012 19:03:26 +0100
Subject: [PATCH] firewire: ohci: optimize control bit checks

Doing the endian conversion on the constant instead of the memory
field allows the compiler to do the conversion at compile time.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
 drivers/firewire/ohci.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 588a72892ff1..a2fc64cd8b81 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -2728,7 +2728,7 @@ static int handle_ir_packet_per_buffer(struct context *context,
 	p = last + 1;
 	copy_iso_headers(ctx, p);
 
-	if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS) {
+	if (last->control & cpu_to_le16(DESCRIPTOR_IRQ_ALWAYS)) {
 		ir_header = (__le32 *) p;
 		ctx->base.callback.sc(&ctx->base,
 				      le32_to_cpu(ir_header[0]) & 0xffff,
@@ -2760,7 +2760,7 @@ static int handle_ir_buffer_fill(struct context *context,
 				      le16_to_cpu(last->req_count),
 				      DMA_FROM_DEVICE);
 
-	if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS)
+	if (last->control & cpu_to_le16(DESCRIPTOR_IRQ_ALWAYS))
 		ctx->base.callback.mc(&ctx->base,
 				      le32_to_cpu(last->data_address) +
 				      le16_to_cpu(last->req_count),
@@ -2832,7 +2832,7 @@ static int handle_it_packet(struct context *context,
 				le16_to_cpu(pd->res_count));
 		ctx->header_length += 4;
 	}
-	if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS) {
+	if (last->control & cpu_to_le16(DESCRIPTOR_IRQ_ALWAYS)) {
 		ctx->base.callback.sc(&ctx->base, le16_to_cpu(last->res_count),
 				      ctx->header_length, ctx->header,
 				      ctx->base.callback_data);