Commit 4a12404d authored by Grzegorz Sygieda's avatar Grzegorz Sygieda Committed by Grant Likely

spi/pl022: fix stop queue procedure

This fix prevents queue being marked as "stopped", if data exists
in the queue list.
Signed-off-by: default avatarGrzegorz Sygieda <grzegorz.sygieda@tieto.com>
Signed-off-by: default avatarLukasz Baj <lukasz.baj@tieto.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@stericsson.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 781c7b12
......@@ -1211,7 +1211,6 @@ static int stop_queue(struct pl022 *pl022)
* A wait_queue on the pl022->busy could be used, but then the common
* execution path (pump_messages) would be required to call wake_up or
* friends on every SPI message. Do this instead */
pl022->run = QUEUE_STOPPED;
while (!list_empty(&pl022->queue) && pl022->busy && limit--) {
spin_unlock_irqrestore(&pl022->queue_lock, flags);
msleep(10);
......@@ -1220,6 +1219,7 @@ static int stop_queue(struct pl022 *pl022)
if (!list_empty(&pl022->queue) || pl022->busy)
status = -EBUSY;
else pl022->run = QUEUE_STOPPED;
spin_unlock_irqrestore(&pl022->queue_lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment