From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date: Thu, 19 Jun 2014 12:31:52 +0000 (+0200)
Subject: drivers/sbus/char: Micro-optimization in display7seg.c
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=54dcf0ceb8a21a898cd436617483e5646f2edcc6;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

drivers/sbus/char: Micro-optimization in display7seg.c

Flipping a bit doesn't need four lines of code; and gcc seems to
actually generate two branches.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
---

diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c
index b48899ce8506..2b0ce7c350ee 100644
--- a/drivers/sbus/char/display7seg.c
+++ b/drivers/sbus/char/display7seg.c
@@ -144,10 +144,7 @@ static long d7s_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 
 	case D7SIOCTM:
 		/* toggle device mode-- flip display orientation */
-		if (regs & D7S_FLIP)
-			regs &= ~D7S_FLIP;
-		else
-			regs |= D7S_FLIP;
+		regs ^= D7S_FLIP;
 		writeb(regs, p->regs);
 		break;
 	}