i2c: rcar: fix RCAR_IRQ_ACK_{RECV|SEND}
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Fri, 5 Sep 2014 23:34:32 +0000 (03:34 +0400)
committerWolfram Sang <wsa@the-dreams.de>
Sat, 20 Sep 2014 09:56:20 +0000 (11:56 +0200)
Bits 8-31 of all registers reflect the value of bits 0-7 on reads and should be
0 on writes, according to the manuals. RCAR_IRQ_ACK_{RECV|SEND} macros have all
1's in bits 8-31, thus going against the manuals, so fix them.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: stable@vger.kernel.org
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-rcar.c

index 1cc146cfc1f3dce02d4d83c7e79b698f07b161c9..e506fcd3ca04350416dce7a640f2483a97d5d34d 100644 (file)
@@ -76,8 +76,8 @@
 #define RCAR_IRQ_RECV  (MNR | MAL | MST | MAT | MDR)
 #define RCAR_IRQ_STOP  (MST)
 
-#define RCAR_IRQ_ACK_SEND      (~(MAT | MDE))
-#define RCAR_IRQ_ACK_RECV      (~(MAT | MDR))
+#define RCAR_IRQ_ACK_SEND      (~(MAT | MDE) & 0xFF)
+#define RCAR_IRQ_ACK_RECV      (~(MAT | MDR) & 0xFF)
 
 #define ID_LAST_MSG    (1 << 0)
 #define ID_IOERROR     (1 << 1)