diff options
author | Dirk Behme <dirk.behme@de.bosch.com> | 2014-09-03 12:33:53 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-08 16:26:07 -0700 |
commit | 26c474128b96d277234f35a7fd870ed12bef96ca (patch) | |
tree | cff98901f80c6fc6d7e3e2050156893db04c5535 /include/clocksource/pxa.h | |
parent | c993257bf7571945201205491de86268437ea174 (diff) | |
download | linux-rt-26c474128b96d277234f35a7fd870ed12bef96ca.tar.gz |
serial: imx: clean up imx_poll_get_char()
Looking at the get_poll_char() function of the 8250.c serial driver,
we learn:
* poll_get_char() doesn't have to save/disable/restore the interrupt
registers. No interrupt handling is needed in this function at all.
Remove it.
* Don't block in case there is no data available. So instead blocking
in the do {} while loop, just return with NO_POLL_CHAR, immediately .
Additionally, while the i.MX6 register URXD[7-0] contain the RX_DATA,
the upper bits of this register (URXD[15-10]) might contain some
control flags. To ensure that these are not returned with the data
read, just mask out URXD[7-0].
These changes fix the 'hang' working with kdb:
$ echo ttymxc3 > /sys/module/kgdboc/parameters/kgdboc
$ echo g >/proc/sysrq-trigger
[0]kdb> help
...
<hang>
Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: linux-serial@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/clocksource/pxa.h')
0 files changed, 0 insertions, 0 deletions