aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/xilinx_uartps.c
diff options
context:
space:
mode:
authorSoren Brinkmann <soren.brinkmann@xilinx.com>2014-04-04 17:23:42 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-24 16:21:51 -0700
commitb494a5fae452fc43519872565892fa873f6ea4fb (patch)
treeee0666b2b415be4d22ae69532a6ddd363a01356c /drivers/tty/serial/xilinx_uartps.c
parenttty: xuartps: Refactor read-modify-writes (diff)
downloadlinux-dev-b494a5fae452fc43519872565892fa873f6ea4fb.tar.xz
linux-dev-b494a5fae452fc43519872565892fa873f6ea4fb.zip
tty: xuartps: Don't write IRQ disable register to enable interrupts
A comment states, that, according to the data sheet, to enable interrupts the disable register should be written, but the enable register could be left untouched. And it suspsects a HW bug requiring to write both. Reviewing the data sheet, these statements seem wrong. Just as one would expect. Writing to the enable/disable register enables/disables interrupts. Hence the misleading comment and needless write to the disable register are removed from the enable sequence. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Tested-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/xilinx_uartps.c')
-rw-r--r--drivers/tty/serial/xilinx_uartps.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index b182ab8cfd07..f9a2c2fc03c4 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -1085,11 +1085,7 @@ static void xuartps_console_write(struct console *co, const char *s,
xuartps_writel(ctrl, XUARTPS_CR_OFFSET);
- /* restore interrupt state, it seems like there may be a h/w bug
- * in that the interrupt enable register should not need to be
- * written based on the data sheet
- */
- xuartps_writel(~imr, XUARTPS_IDR_OFFSET);
+ /* restore interrupt state */
xuartps_writel(imr, XUARTPS_IER_OFFSET);
if (locked)