tty: serial: qcom_geni_serial: Fix softlock

Transfers were being divided into device FIFO sized (64 byte max)
operations which would poll for completion within a spin_lock_irqsave /
spin_unlock_irqrestore block. This both made things slow by waiting for
the FIFO to completely drain before adding further data and would also
result in softlocks on large transmissions.

This patch allows larger transfers with continuous FIFO additions as
space becomes available and removes polling from the interrupt handler.

Change-Id: Icba9b7f7cc3fd8312e7f2473b3a5665ff8aedec2
Signed-off-by: Ryan Case <ryandcase@chromium.org>
Git-commit: a1fee899e5bed457afc20a6a2ff3915a95cc5942
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[akashast@codeaurora.org: Applied patch to downstream file - msm_geni_serial.c]
Signed-off-by: Alok Chauhan <alokc@codeaurora.org>
Signed-off-by: Akash Asthana <akashast@codeaurora.org>
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
1 file changed