serial: stm32: fix clearing interrupt error flags
authorFabrice Gasnier <fabrice.gasnier@st.com>
Thu, 21 Nov 2019 08:10:49 +0000 (09:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Nov 2019 17:23:02 +0000 (18:23 +0100)
commit1250ed7114a977cdc2a67a0c09d6cdda63970eb9
tree950263eafe94a141182a8693e6c7537d92467cfa
parentda88ac0bd683c13a80b2e55939f2465a25d7cdd4
serial: stm32: fix clearing interrupt error flags

The interrupt clear flag register is a "write 1 to clear" register.
So, only writing ones allows to clear flags:
- Replace buggy stm32_clr_bits() by a simple write to clear error flags
- Replace useless read/modify/write stm32_set_bits() routine by a
  simple write to clear TC (transfer complete) flag.

Fixes: 4f01d833fdcd ("serial: stm32: fix rx error handling")
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/1574323849-1909-1-git-send-email-fabrice.gasnier@st.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/stm32-usart.c