NFC: trf7970a: Only fill FIFO if there is space
Handle the case where trf7970a_fill_fifo() is called but there is no room in the FIFO for more TX data. When this happens, wait for another interrupt indicating that there is now space (and set a timer in case that interrupt never occurs). Signed-off-by: Mark A. Greer <mgreer@animalcreek.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
7a1e5552af
commit
0e840ed59b
|
@ -580,6 +580,12 @@ static void trf7970a_fill_fifo(struct trf7970a *trf)
|
|||
|
||||
/* Calculate how much more data can be written to the fifo */
|
||||
len = TRF7970A_FIFO_SIZE - fifo_bytes;
|
||||
if (!len) {
|
||||
schedule_delayed_work(&trf->timeout_work,
|
||||
msecs_to_jiffies(TRF7970A_WAIT_FOR_FIFO_DRAIN_TIMEOUT));
|
||||
return;
|
||||
}
|
||||
|
||||
len = min(skb->len, len);
|
||||
|
||||
prefix = TRF7970A_CMD_BIT_CONTINUOUS | TRF7970A_FIFO_IO_REGISTER;
|
||||
|
|
Loading…
Reference in New Issue