soc/amd/common/block/lpc/spi_dma: Yield after completing transaction
There is no telling when the next udelay will be, so explicitly call `thread_yield()` after completing a transaction. This will allow any pending transactions to immediately start. BUG=b:179699789 TEST=Verify new transaction is enqueued right after another. Signed-off-by: Raul E Rangel <rrangel@chromium.org> Change-Id: I9c1272bde46c3e0c15305b76c2ea7a6dde5ed0b0 Reviewed-on: https://review.coreboot.org/c/coreboot/+/56321 Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
6f3c9018c6
commit
3af732ada0
|
@ -193,6 +193,9 @@ static ssize_t spi_dma_readat_dma(const struct region_device *rd, void *destinat
|
||||||
printk(BIOS_SPEW, "%s: end: dest: %p, source: %#zx, remaining: %zu\n",
|
printk(BIOS_SPEW, "%s: end: dest: %p, source: %#zx, remaining: %zu\n",
|
||||||
__func__, destination, source, transaction.remaining);
|
__func__, destination, source, transaction.remaining);
|
||||||
|
|
||||||
|
/* Allow queued up transaction to continue */
|
||||||
|
thread_yield();
|
||||||
|
|
||||||
if (transaction.remaining)
|
if (transaction.remaining)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue