From: Denis Turischev <denis@compulab.co.il>
Date: Thu, 22 Apr 2010 16:50:03 +0000 (+0300)
Subject: watchdog: sbc_fitpc2_wdt: fixed I/O operations order
X-Git-Tag: firefly_0821_release~9833^2~2263^2~2
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=fcf1dd7e68ceb6420478c8d89d35b4745d0b2f42;p=firefly-linux-kernel-4.4.55.git

watchdog: sbc_fitpc2_wdt: fixed I/O operations order

There are fitpc2 compatible boards that hang with existent i/o
operations order. Solution is to switch between writing to data
and command ports.

Signed-off-by: Denis Turischev <denis@compulab.co.il>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
---

diff --git a/drivers/watchdog/sbc_fitpc2_wdt.c b/drivers/watchdog/sbc_fitpc2_wdt.c
index 8d44c9b6fb5b..2e44dd4e7c1b 100644
--- a/drivers/watchdog/sbc_fitpc2_wdt.c
+++ b/drivers/watchdog/sbc_fitpc2_wdt.c
@@ -45,10 +45,10 @@ static DEFINE_SPINLOCK(wdt_lock);
 
 static void wdt_send_data(unsigned char command, unsigned char data)
 {
-	outb(command, COMMAND_PORT);
-	msleep(100);
 	outb(data, DATA_PORT);
 	msleep(200);
+	outb(command, COMMAND_PORT);
+	msleep(100);
 }
 
 static void wdt_enable(void)